Commit Graph

258 Commits

Author SHA1 Message Date
En
e08530c04b fix: 修复 CourseServiceImpl 编译错误
修复 getCoursesByTenantId 方法调用 getTenantPackageCourses 时参数不足的问题。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 15:24:57 +08:00
zhonghua
db70b1ad47 fix: 租户管理表单校验与后端字段对齐
- 前端: 学习地址必填、有效期绑定 formData.dateRange 修复校验
- 前端: admin.ts 请求体字段映射 loginAccount->code, contactPerson->contactName
- 后端: TenantCreateRequest 新增 password 字段
- 后端: TenantServiceImpl 创建租户时设置 username(code) 和 password

Made-with: Cursor
2026-03-18 15:16:37 +08:00
En
aff8162180 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	reading-platform-frontend/src/components.d.ts
2026-03-18 15:14:01 +08:00
En
db508dc2b6 refactor(teacher): 教师端 Controller 注释中文化
将教师端所有 Controller 的 @Tag 和 @Operation 注释从英文改为中文,提升代码可读性和一致性。

涉及的 Controller:
- TeacherCourseController
- TeacherFeedbackController
- TeacherGrowthController
- TeacherLessonController
- TeacherNotificationController
- TeacherScheduleController
- TeacherStatsController
- TeacherTaskController
- TeacherTaskTemplateController

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 15:10:01 +08:00
Claude Opus 4.6
279fa79b56 merge: 合并远程更新并解决冲突
- 合并学校课程管理搜索与年级筛选功能
- 修复教学资源区域间距问题
- 删除已忽略的自动生成文件
- 新增排课弹窗优化(移除课程选择,自动选择第一门课程)
- 新增 lessonType 从 schedule_ref_data 解析功能
- 修复前端代理配置(端口 8480)
2026-03-18 14:46:32 +08:00
zhonghua
43d5bc8662 fix: 教学资源区域增加间距,避免动画被遮挡
Made-with: Cursor
2026-03-18 14:13:57 +08:00
zhonghua
1264c4707e 播放器: bigPlayButton 居中显示
Made-with: Cursor
2026-03-18 11:11:57 +08:00
zhonghua
c2f4a77d85 gitignore: 忽略自动生成的 components.d.ts 和 typed-router.d.ts
Made-with: Cursor
2026-03-18 10:17:26 +08:00
zhonghua
7fe2c319ee 学校课程管理: 前后端对齐,实现搜索与年级筛选功能
Made-with: Cursor
2026-03-18 10:15:37 +08:00
En
c85a3fd195 Merge remote-tracking branch 'origin/master' 2026-03-18 10:02:26 +08:00
En
ad249d0392 租户编辑,暂时不能更换套餐 2026-03-18 10:01:50 +08:00
Claude Opus 4.6
6b5d0e171b feat: 添加排课计划参考示例数据
- 创建 Flyway 迁移脚本 V29__add_schedule_ref_data.sql
- 为小猪佩奇绘本阅读、好饿的毛毛虫、三只小猪添加排课计划参考
- 包含导入课、集体课、五大领域课的排课建议
- 更新开发日志和变更日志

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 09:39:27 +08:00
Claude Opus 4.6
d3cf4fd43b feat: 添加课程包课程列表查询API
- 新增 GET /api/v1/school/packages/{packageId}/courses 接口
- 返回课程包详情,包含课程列表和排课计划参考数据
- 更新开发日志和变更日志

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 09:39:27 +08:00
Claude Opus 4.6
2e3143affb feat: 添加课程包排课计划参考数据返回
后端改动:
1. CoursePackageResponse.CoursePackageCourseItem 添加 scheduleRefData 和 lessonType 字段
2. CoursePackageService.toResponse() 填充 scheduleRefData 和 lessonType
3. CourseCollectionService.toPackageResponse() 重写以包含课程列表和排课计划参考
4. 添加必要的 mapper 依赖注入

前端改动:
1. school.ts CoursePackage 接口添加 scheduleRefData 字段
2. CreateScheduleModal.vue 优化 selectPackage() 方法,直接从响应数据中提取排课计划参考

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 09:38:52 +08:00
En
1d7ade9d90 feat: 学校端接口租户隔离修复与Response规范化
## 租户隔离修复
- 修复 SchoolCourseController 硬编码 tenantId=1L 的严重 bug
- 为 SchoolClassController 8个接口添加租户验证
- 为 SchoolTeacherController 4个接口添加租户验证
- 为 SchoolStudentController 3个接口添加租户验证
- 为 SchoolParentController 6个接口添加租户验证
- 为 SchoolTaskController 3个接口添加租户验证
- 为 SchoolGrowthController 3个接口添加租户验证

## Map 返回类型改 Response
- SchoolTaskTemplateController: Map → TaskTemplateResponse
- SchoolScheduleController: Map → SchedulePlanResponse
- SchoolPackageController: Map → PackageInfoResponse/PackageUsageResponse
- SchoolSettingsController: Map → SchoolSettingsResponse 等
- SchoolReportController: Map → ReportOverviewResponse 等

## 新增 Response DTO
- PackageInfoResponse, PackageUsageResponse
- SchoolSettingsResponse, BasicSettingsResponse
- NotificationSettingsResponse, SecuritySettingsResponse
- ReportOverviewResponse, TeacherReportResponse
- CourseReportResponse, StudentReportResponse

## 新增 Request DTO
- RenewRequest, SchoolSettingsUpdateRequest
- BasicSettingsUpdateRequest, NotificationSettingsUpdateRequest
- SecuritySettingsUpdateRequest

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 00:02:05 +08:00
Claude Opus 4.6
bd244a7c7d test: 修复排课功能冲突检测API测试并完成全面测试
- 修复冲突检测API测试参数错误(使用正确的classId/scheduledDate/scheduledTime)
- 新增全面API测试脚本 (test_all_apis.sh)
- 新增Python Playwright浏览器自动化测试 (test_schedule_page.py)
- 新增前端E2E测试用例 (schedule-comprehensive.spec.ts, schedule-real.spec.ts)
- 更新测试报告,所有API测试通过

测试覆盖:
- 登录认证 
- 课程套餐列表(两层结构)
- 排课列表/课表/日历视图 
- 班级/教师列表 
- 冲突检测API  (已修复)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 20:34:41 +08:00
Claude Opus 4.6
ab7a06adea fix: 修复学校端排课路由冲突 - 移除重复的子路由 2026-03-17 19:44:10 +08:00
Claude Opus 4.6
42e5232426 chore: 删除已清理的测试报告文件 2026-03-17 19:36:32 +08:00
Claude Opus 4.6
7f8a077f58 docs: 清理测试结果文件,保留排课功能测试记录
- 删除 playwright-report/index.html(测试报告目录已清理)
- 保留排课功能完整测试报告文档

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 19:36:26 +08:00
Claude Opus 4.6
0809a43349 chore: 添加项目 .gitignore 和整理工具文件
- 新增 .gitignore:忽略备份、临时文件、IDE配置等
- 创建 backups/ 目录:存放数据库备份
- 创建 tools/ 目录:存放实用脚本(reset_passwords.py)
- 移动文件到相应目录

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 19:36:08 +08:00
Claude Opus 4.6
0a09097095 feat: 添加排课功能支持代码 - 课程类型枚举、冲突检测、定时提醒
新增功能:
- LessonTypeEnum: 7种课程类型枚举(导入课、集体课、五大领域课)
- ScheduleConflictService: 排课冲突检测服务
- ScheduleReminderTask: 排课提醒定时任务
- ScheduleConfig: 排课相关配置
- 新增DTO: ScheduleCreateByClassesRequest, CalendarViewResponse等

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 19:34:19 +08:00
zhonghua
eb1b1a3153 课程包详情: 核心发展目标字段翻译为中文显示
Made-with: Cursor
2026-03-17 17:56:30 +08:00
zhonghua
0baf3936d0 课程详情: 收藏/已收藏图标颜色区分(红/灰)
Made-with: Cursor
2026-03-17 17:47:49 +08:00
zhonghua
8f94774e19 Merge remote-tracking branch 'origin/master'
Made-with: Cursor
2026-03-17 17:28:17 +08:00
zhonghua
971f78e630 KidsMode: 取消 controlsVisible 自动隐藏底部导航
Made-with: Cursor
2026-03-17 17:25:43 +08:00
Claude Opus 4.6
c90873bea9 Merge remote-tracking branch 'origin/master' and complete two-tier structure refactoring
合并同事的远程更新:
- 多地点登录支持功能
- 资源库管理优化
- 数据看板修复
- 视频预览功能
- KidsMode增强

两层结构重构完成:
- 数据库迁移 V28(course_collection、course_collection_package)
- 后端实体、Service、Controller实现
- 前端API类型和组件重构
- 修复冲突文件:CHANGELOG.md、components.d.ts、TeacherLessonController.java

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 16:59:06 +08:00
Claude Opus 4.6
d2a9dbd0f8 Merge remote-tracking branch 'origin/master' 2026-03-17 16:56:41 +08:00
En
95b3e973e0 Merge remote-tracking branch 'origin/master' 2026-03-17 16:23:18 +08:00
En
6af88225c9 fix: 数据看板前后端接口数据结构差异修复
- admin.ts: 新增后端响应类型定义和数据映射函数
  - AdminStatsResponse, StatsTrendResponse, ActiveTenantResponse, PopularCourseResponse
  - mapStatsData, mapTrendData, mapActiveTenants, mapPopularCourses
- admin/DashboardView: 活跃租户列表显示调整
- teacher/DashboardView: 数据加载添加字段映射和默认值处理
- school/DashboardView: 图表初始化添加空数据处理和数据校验

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 16:21:51 +08:00
zhonghua
846ba61b88 资源库: 按类型限制上传文件、移除搜索框重复图标
Made-with: Cursor
2026-03-17 16:18:51 +08:00
zhonghua
193bbe90ae feat: 资源库管理优化 - 直传、WebOffice预览、接口对齐
- 资源上传改为 OSS 直传,支持进度与取消
- Office 文档(PDF/PPT/Word/Excel)使用 WebOffice 在线预览
- 后端 ResourceItemResponse 补充 title/fileType/filePath/fileSize/tags/library
- 后端 getStats 返回 totalLibraries/totalItems/itemsByLibraryType
- 前后端字段对齐:libraryType、name/type 兼容
- 修复 tags 反序列化、name 必填、主键冲突问题
- 新增 V16 迁移修复 resource_item AUTO_INCREMENT

Made-with: Cursor
2026-03-17 15:53:04 +08:00
En
673214481d feat: 课程包功能完善与代码优化
后端:
- 新增 YesNo 枚举类
- 新增 LessonStepCreateRequest、PackageGrantRequest 等 DTO
- 新增 ResourceItemCreateRequest、ResourceLibraryCreateRequest
- 新增 StatsService 统计服务实现
- 优化 AdminCourseController、AdminResourceController 等控制器
- 完善 TenantService 套餐授权功能

前端:
- 优化套餐详情页和列表页展示
- 更新自动生成的 API 类型定义

文档:
- 更新设计文档和开发日志

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 15:03:02 +08:00
En
d57affd2ee feat: 套餐审核支持通过时同时发布
- 后端 PackageReviewRequest 新增 publish 字段
- 后端 CoursePackageService.reviewPackage 支持审核通过后直接发布
- 前端审核弹窗拆分为"通过"和"通过并发布"两个按钮

状态流转:
- 驳回: status → REJECTED
- 仅通过: status → APPROVED
- 通过并发布: status → PUBLISHED

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 15:00:49 +08:00
zhonghua
459fa434ac feat: KidsMode 文档/视频预览调整,player 增强
- KidsMode: 视频对接 player 组件,文档对接 WebOffice 组件
- WebOffice: 新增 noPage 嵌入模式,支持 props 传入 url/fileName
- player: 参考 VideoPlayer 增强功能(title、emit、键盘快捷键、加载遮罩、唯一ID)

Made-with: Cursor
2026-03-17 14:43:08 +08:00
zhonghua
155f5f230b 视频预览 2026-03-17 14:17:21 +08:00
En
bb7fb86c3b feat: 租户套餐枚举优化与学校端课程查询实现
- 新增 TenantPackageStatus 枚举类,消除 status 字段魔法值
- 修改 TenantPackage 实体 status 字段类型为枚举
- 更新 CoursePackageService、TenantServiceImpl、CourseLessonService 使用枚举
- 实现学校端课程查询接口 /api/v1/school/courses
- 新增 CourseService.getTenantPackageCourses() 方法查询租户套餐下的课程
- 前端新增 Course 类型定义

共修改 26 个文件,新增 609 行,删除 83 行
2026-03-17 13:42:01 +08:00
En
dfbf89e8fe feat: 实现多地点登录支持
主要变更:
- 修改 JwtTokenRedisService.validateToken() 方法,移除 token 一致性检查
- 在 JwtAuthenticationFilter 中新增 isAccountActive() 方法,每次请求验证账户状态
- 所有状态判断改为忽略大小写 (equalsIgnoreCase)
- 保留黑名单机制用于主动踢人、登出等场景

功能特性:
- 同一账号可以在多个设备/浏览器同时登录
- 各个登录状态的 token 都有效,不会互踢下线
- 支持所有角色:admin, school, teacher, parent
- JWT token 过期时间(默认 24 小时)保证安全性

修改文件:
- JwtTokenRedisService.java
- JwtAuthenticationFilter.java
- AuthServiceImpl.java

文档更新:
- docs/CHANGELOG.md
- docs/dev-logs/2026-03-17.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 12:13:21 +08:00
zhonghua
a9ee650f66 fix: 上课页面数据与进度保存优化
- 授课记录详情接口返回完整课程和班级:新增 LessonDetailResponse,含 course(courseLessons+steps)、class
- 课程环节增加 steps:CourseLessonResponse 新增 steps 字段,getCourseByIdWithLessons 填充教学步骤
- 进度保存反序列化修复:LessonProgressRequest 的 lessonIds/completedLessonIds 改为 List<Long>,progressData 改为 Object
- LessonStepResponse 增加 NoArgsConstructor/AllArgsConstructor

Made-with: Cursor
2026-03-17 11:40:04 +08:00
zhonghua
c8ecbe277c fix: 教师端课程与授课记录优化
- 修复 assessment_data JSON 字段:普通文本自动包装为有效 JSON
- 修复返回时页面 ID 丢失:校验无效 ID 并跳转,goBackToDetail 优先使用路由 ID
- 修复上课记录列表:getLessons 支持 pageNum、日期范围、状态映射,list 转 items
- 修复班级与课程取值:LessonResponse 增加 courseName/className,接口返回时自动填充
- 备课/详情页增加 ID 校验,防止跳转到 undefined

Made-with: Cursor
2026-03-17 11:24:25 +08:00
Claude Opus 4.6
1d8f040681 Merge remote-tracking branch 'origin/master' 2026-03-17 10:39:43 +08:00
En
e8b44b25e0 优化 2026-03-17 10:38:51 +08:00
En
7b54b29821 fix: 修复课程包审核管理按状态查询不生效问题
- AdminCourseController.getCoursePage 方法添加 status 和 reviewOnly 参数接收
- 修复前端按审核状态过滤时后端无法接收参数的问题
- Service 层已支持参数处理(无需修改)

相关文件:reading-platform-java/.../controller/admin/AdminCourseController.java
2026-03-17 10:33:40 +08:00
Claude Opus 4.6
d0439bc8b5 Merge remote-tracking branch 'origin/master' 2026-03-17 10:29:50 +08:00
En
113994238b Merge remote-tracking branch 'origin/master' 2026-03-17 10:27:33 +08:00
Claude Opus 4.6
1a79fef30f Merge remote-tracking branch 'origin/master' 2026-03-17 10:22:02 +08:00
En
4d4e042c22 fix: 修复 Flyway V13 迁移失败问题与后端启动故障
问题原因:
- Flyway V13/V14/V15 迁移脚本使用了 MySQL 不支持的语法
- 导致数据库迁移失败,后端无法启动

修复内容:
1. 修正 V13/V14/V15 Flyway 迁移脚本
2. 更新 Entity 类添加缺失字段
3. 新增教师端 Service 服务层
4. 新增教师端 DTO 请求/响应类
5. 更新 TeacherController 相关接口

新增文件:
- TaskTemplateService/Impl
- TeacherFeedbackService/Impl
- TeacherScheduleService/Impl
- 7 个 Request DTO
- 1 个 Response DTO

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 10:08:24 +08:00
zhonghua
03726b5ab8 样式优化 2026-03-17 09:56:38 +08:00
zhonghua
4e17ee281c 在线文档支持 2026-03-16 20:06:56 +08:00
En
ce7ee34666 feat: 集成阿里云 IMM (即时媒体服务) 与 OSS 跨域配置优化
主要变更:
- 新增阿里云 IMM SDK 依赖 (imm20200930 v1.28.3)
- 新增 IMM 配置类 (ImmConfig, ImmUtil, ImmController, ImmTokenVo)
- 新增前端 API 生成文件 (imm.api.ts)
- 更新 WebOffice.vue 使用新的 imm.api 导入

配置优化:
- 三环境 (dev/test/prod) 均开启 OSS CORS 跨域支持
- 添加 IMM 服务配置 (endpoint, region, project, 密钥)
- 测试/开发环境跨域域名设置为通配符

技术栈:
- 后端:Spring Boot + 阿里云 IMM SDK
- 前端:Vue 3 + TypeScript API 生成

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 19:35:31 +08:00
zhonghua
709e59e142 feat: 展播模式优化与排课表修复
- 展播模式:空状态/错误状态添加返回上课按钮
- 展播模式:退出时自动跳转回上课页面或关闭标签页
- 数据库:lesson表id添加AUTO_INCREMENT,修复预约上课报错

Made-with: Cursor
2026-03-16 19:22:06 +08:00