Commit Graph

107 Commits

Author SHA1 Message Date
zhonghua
802327f075 fix: 任务模板 API 修复与学校端功能实现
- TaskTemplateCreateRequest: isDefault/isPublic 改为 Boolean 类型
- SchoolTaskTemplateController: 接入 TaskTemplateService 实现完整 CRUD
- getTemplates: 支持 publicOnly、keyword、taskType 参数
- 学校端列表显示全部模板(含 isPublic=0)
- 前端 getTaskTemplates: 分页字段 Number 转换

Made-with: Cursor
2026-03-20 13:49:15 +08:00
zhonghua
37a6aba8cc feat: 任务完成情况 API 与 UI 优化
- 学校/教师端: 新增 GET/PUT 任务完成情况接口,支持分页与状态筛选
- 后端: TaskCompletionDetailResponse 含学生姓名、班级信息
- 后端: 新增 getTaskCompletionStats、getTaskCompletionsWithStudent
- 学校端: 状态筛选移至弹框标题后,分页始终显示
- 班级字段: 支持 ACTIVE 状态,无记录时用 student.grade 兜底
- 迁移 V43: 添加 student_class_history 测试数据

Made-with: Cursor
2026-03-20 11:48:56 +08:00
zhonghua
f90037dd17 feat: 根据排课lessonType直接进入子课程,子课程结束即上课结束;右侧添加课程类型展示
- 后端:LessonDetailResponse 新增 lessonType,从 SchedulePlan 读取
- 前端:根据 lessonType 直接进入对应子课程,子课程结束即上课结束
- 前端:右侧面板课程资源上方添加课程类型标签展示

Made-with: Cursor
2026-03-20 10:56:41 +08:00
zhonghua
5a05af18dd Merge branch 'master' of http://8.148.151.56:3000/tonytech/kindergarten_java 2026-03-20 10:07:26 +08:00
zhonghua
8502d8b2d3 fix:优化上课备课路由死循环 2026-03-20 10:07:17 +08:00
En
c3b1056c29 feat: 租户管理与课程套餐优化
- 优化租户管理相关接口与实体类
- 更新课程套餐服务层实现
- 新增数据库迁移脚本 V42
- 同步更新前端 API 类型与页面组件
2026-03-19 23:28:40 +08:00
zhonghua
ed9371b21f feat: 排课/预约优化与国际化
- main.ts: dayjs 时间国际化使用中文
- 排课日期禁止选择过去时间(学校端、教师端、校本课程预约)
- 移除选择课程套餐,租户仅一个套餐直接展示课程包
- 教师端预约上课增加排课计划参考表格

Made-with: Cursor
2026-03-19 18:31:54 +08:00
zhonghua
824ce7ad80 feat: 教师端预约上课与学校端新建排课流程一致
- 后端:教师可访问课程套餐/课程包/lesson-types API
- 后端:TeacherScheduleServiceImpl 支持 coursePackageId、lessonType
- 前端:新增 TeacherCreateScheduleModal 四步流程(选择课程包→课程类型→班级→时间)
- 前端:ScheduleView 集成新弹窗
- 前端:课程中心 PrepareModeView 预约上课使用相同四步流程,支持预设

Made-with: Cursor
2026-03-19 18:14:25 +08:00
zhonghua
3f6696d7bb feat: 教师端排课优化
- 排课详情/课表:显示班级、课程、课程类型(使用 toSchedulePlanResponse 填充)
- 开始上课:改用 from-schedule API,避免 teacherId/title/lessonDate 校验失败
- 前端:TeacherSchedule 增加 lessonType/coursePackageName,课程展示兼容 coursePackageName

Made-with: Cursor
2026-03-19 18:00:03 +08:00
zhonghua
7c5110b6d2 feat: 新建排课课程类型图标改用 @ant-design/icons-vue
Made-with: Cursor
2026-03-19 17:41:39 +08:00
zhonghua
829a70e448 feat: 学校端课程排期功能完善
- 排课计划参考:对齐管理端课程包详情,支持时间/课程类型/课程名称/区域活动/备注五列
- 支持两种 schedule_ref_data 格式(周排课表、课程类型说明)
- 新建排课弹窗样式提取为 CreateScheduleModal.scss 修复 SASS 编译错误
- 切换视图(列表/课表/日历)时自动刷新数据
- 排课列表、课表、日历视图增加课程类型 tag 展示
- 后端:timetable/lesson-types 接口修复,LessonTypeEnum 补充类型

Made-with: Cursor
2026-03-19 16:34:48 +08:00
zhonghua
f425209abe feat: 校园端课程列表筛选与卡片展示参考教师端
- 筛选栏:年级/领域/课程类型下拉、搜索框,保留授权新课程按钮
- 卡片:新增 lessonTags 展示(导入课、集体课、领域等)
- 后端:学校课程 API 支持 domain、lessonType 参数及 lessonTags 返回
- 主题保持校园端绿色

Made-with: Cursor
2026-03-19 15:07:40 +08:00
zhonghua
20c500e921 feat: 教师课程中心 - 年级/领域/课程类型筛选与 lessonTags 展示
- 新增 lessonType 筛选参数,支持 SOCIAL/SOCIETY/DOMAIN_* 等格式兼容
- 列表接口返回 lessonTags(name,lessonType) 供 tag 展示
- 新增 LessonTagResponse DTO
- 完善 tagMaps 与 LESSON_TYPE_NAMES 映射(INTRO/DOMAIN_*)
- 修复筛选参数未传递到接口的问题

Made-with: Cursor
2026-03-19 15:01:13 +08:00
zhonghua
81dd74662e fix: 修复 /api/v1/school/courses 接口 gradeTags 前端显示数据丢失
- 后端: 增强 SchoolCourseController.parseJsonArray 兼容多种 JSON 格式
- 后端: 新增 SchoolCourseResponse,gradeTags/domainTags 规范为 String[]
- 前端: 学校端课程列表/详情统一使用 parseGradeLevels 解析 gradeTags
- 前端: 兼容 grade_tags/domain_tags snake_case 字段

Made-with: Cursor
2026-03-19 14:05:28 +08:00
En
efedb37cae Merge remote-tracking branch 'origin/master'
# Conflicts:
#	reading-platform-frontend/src/views/admin/collections/CollectionEditView.vue
2026-03-19 12:34:35 +08:00
En
9a9caab60b feat(db): 添加 V40 迁移脚本删除 tenant_package 表的 package_id 字段
- 创建 V40__drop_tenant_package_package_id.sql 迁移脚本
- 安全删除 tenant_package 表中废弃的 package_id/packageId 列
- 该字段已在 V31 中尝试删除,V40 用于修复执行失败的情况
- TenantPackage 实体已使用 collectionId 字段替代

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 12:34:00 +08:00
zhonghua
8f5a0fcdda fix: 套餐管理优化与 gradeLevels/重复包修复
- gradeLevels: 后端 JSON 解析修复,前端兼容错误格式
- 筛选下拉: 状态选项按业务流程排序
- 已下架: 列表与详情页增加编辑、删除操作
- 课程包关联: 前后端去重,修复 uk_collection_package 唯一约束冲突

Made-with: Cursor
2026-03-19 11:37:04 +08:00
zhonghua
289fcbee52 feat: 课程套餐与课程包管理优化
- 课程套餐:适用年级从已选课程包自动同步,年级列改为只读
- 课程套餐:草稿/已驳回状态添加发布按钮
- 课程包:已发布状态不显示编辑按钮,编辑页增加状态校验
- 套餐创建:年级列从课程包读取,不可编辑

Made-with: Cursor
2026-03-19 11:18:02 +08:00
zhonghua
2eb4a28b89 修复文件上传 2026-03-19 10:53:13 +08:00
En
deb8431910 fix: 修复 course.ts 中 http 对象未导入的问题
- 添加 http 对象封装,支持 get/post/put/delete 方法
- 修复 submitCourse 和 rejectCourse 函数中 http.post 未导入的问题
- 确保课程包编辑页面的"保存"和"保存草稿"按钮能正常请求后端

同时包含之前的数据库外键修复:
- 新增 V39 迁移脚本删除外键约束
- 修改 V28 移除外键创建语句
- 增强 CourseCollectionService 应用层验证
2026-03-19 10:32:58 +08:00
En
1d4bf52d05 fix: 修复租户管理选择套餐显示 NaN 元问题
问题原因:
- 租户管理页面调用 /api/v1/admin/packages/all 获取课程包
- 但 CoursePackage 实体没有 price 和 discountPrice 字段
- 这些字段在 CourseCollection(课程套餐)实体中

后端修改:
- AdminCourseCollectionController 新增 GET /all 接口
- 返回已发布的课程套餐列表(含价格信息)
- 添加 @Slf4j 注解和必要导入

前端修改:
- src/api/admin.ts 修改 API 调用路径为 /collections/all
- 修改返回类型为 CourseCollectionResponse[]
- TenantListView.vue 修改 packageList 类型
- 修复 formatPackagePrice 处理 undefined 值
- 修复 handlePackageTypeChange 类型检查

数据库迁移:
- 添加 V38 脚本为 course_collection 表添加自增主键

其他修改:
- .gitignore 移除 *.sql 排除规则(允许迁移脚本)
- CourseCollectionRejectRequest 和 CourseRejectRequest 用于审核驳回

修复的 TypeScript 错误:
- formatPackagePrice 参数改为可选类型
- selectedPackage.name 添加可选链操作符
2026-03-19 09:34:54 +08:00
Claude Opus 4.6
ddd3d8c152 feat: 套餐管理功能增强
新增功能:
- 后端新增套餐状态管理端点(下架、重新发布、撤销审核)
- 前端套餐详情页增加完整状态流转操作
- 前端套餐管理增加课程包添加/移除功能
- 修复套餐详情页空值引用错误
- 新增 collections.ts API 封装模块

后端变更:
- AdminCourseCollectionController 新增 archive/republish/withdraw 端点
- CourseCollectionService 新增对应服务方法

前端变更:
- collections.ts 新增 API 封装
- CollectionDetailView 增加状态管理按钮和课程包管理
- CollectionListView 增加状态筛选和操作按钮
- 修复 route 配置和 API 调用路径
- 合并远程更新,解决 TenantListView.vue 冲突

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 18:19:25 +08:00
zhonghua
337dcc43d8 feat(课程包): 三课表单formRules校验与UI优化
- LessonConfigPanel: 添加a-form+formRules表单校验
- 导入课/集体课/领域课: 核心资源均必填校验
- 修复教学目标/教学准备/教学延伸等重复校验提示
- 核心资源校验错误提示可见展示
- 教学环节: 环节名称改为水平布局(标签左对齐)

Made-with: Cursor
2026-03-18 16:59:42 +08:00
zhonghua
17dc815030 feat(课程包): 表单校验增强 - 教学环节必填标识与校验、核心资源必填标识
Made-with: Cursor
2026-03-18 16:19:22 +08:00
zhonghua
a72984c860 feat(课程包): 表单校验增强与交互优化
- 顶部操作栏吸顶,下一步/保存草稿合并到顶部
- 导入课、集体课、领域课至少配置一种的校验
- 领域课 getSaveData 仅返回已填写教学目标的领域
- 教学环节添加必填标识(*)

Made-with: Cursor
2026-03-18 16:06:35 +08:00
zhonghua
694fda88c0 调整API走代理,不直接请求 2026-03-18 15:46:56 +08:00
En
d9a8da6a84 Merge remote-tracking branch 'origin/master' 2026-03-18 15:30:14 +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
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
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
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