Commit Graph

30 Commits

Author SHA1 Message Date
En
55343ead0b fix(前端): 修复 ID 类型和分页 total 类型不匹配问题
- 将 Props 中 ID 字段从 number 改为 number | string,兼容后端 Long 序列化为 String
- 修复分页组件 total 字段类型,使用 Number() 转换避免 Vue warn
- 影响组件: PrepareNavigation, LessonCard, SelectLessonsModal 等
- 影响视图: StudentListView, TeacherListView, ParentListView 等
2026-03-25 10:47:19 +08:00
zhonghua
c1ee18ca97 fix(admin): 课程编辑加载与表单告警;FileUploader 预览 watch 顺序;教学环节 Form.ItemRest
Made-with: Cursor
2026-03-24 18:05:34 +08:00
zhonghua
c8f97c45d4 fix(admin): 核心发展目标下拉按中文子项与领域名搜索
Made-with: Cursor
2026-03-24 16:58:27 +08:00
zhonghua
1751d0e355 chore(课程包编辑): 隐藏完成度进度条
Made-with: Cursor
2026-03-24 15:59:47 +08:00
zhonghua
b551af1355 feat(课程包): 未提交状态与草稿分流,草稿不可发布审核;保存草稿跳过校验
Made-with: Cursor
2026-03-24 15:30:31 +08:00
zhonghua
40782a8905 feat(theme): 主题字典颜色、课程主题 Tag 展示与列表数据规范化
- 后端:theme 表增加 color 字段;主题创建/更新/课程响应返回 themeColor
- 前端:主题管理页颜色选择器与列表;管理端课程列表与详情主题 Tag
- 课程中心/课程包卡片展示主题 Tag,course-center 规范化接口字段
- 隐藏管理端课程配置列与筛选;课程详情关联主题使用 themeName/color

Made-with: Cursor
2026-03-24 15:11:40 +08:00
En
67af92ddfd refactor: 代码优化与错误处理增强
前端:
- mutator.ts: 响应拦截器增加业务错误码处理
- 多个 ListView/DetailView: 导入语句格式化(按字母排序)
- CollectionListView/CollectionDetailView/CourseListView: 优化下架错误处理,显示具体错误信息

后端:
- CourseCollectionServiceImpl: 下架套餐前检查是否有租户正在使用
- TeacherServiceImpl: 添加教师状态变更日志
- CoursePackageServiceImpl: 导入语句格式化
2026-03-24 14:11:16 +08:00
zhonghua
0e77fae390 fix: 课程包下架后需重新提交审核才能发布
- ARCHIVED 状态改为「提交审核」按钮,移除直接重新发布
- CollectionEditView/PackageEditView: 选择弹窗回显与分页保持选中

Made-with: Cursor
2026-03-23 17:23:00 +08:00
zhonghua
fdf34e9352 feat: 套餐优惠类型统一、课程审核表单校验、人工审核项必填标识
- 套餐/租户: 统一优惠类型映射(PERCENTAGE->折扣,FIXED->立减),租户套餐下拉显示优惠类型
- 课程审核: 添加 formRules 校验,人工审核项需完成全部4项,驳回时审核意见必填
- 人工审核项: 添加红色必填星号标识

Made-with: Cursor
2026-03-23 17:11:53 +08:00
zhonghua
c6328dd441 fix:保存主题统一 2026-03-23 16:26:10 +08:00
zhonghua
1783706d63 fix: 课程包详情页标题改为「详情」; 优化课程包编辑页相关逻辑
Made-with: Cursor
2026-03-23 15:34:26 +08:00
zhonghua
877acf33b8 fix(admin): 课程包编辑页问题修复
- 封面回显与保存:使用 getFileUrl 统一处理,修复 watch 逻辑
- 课程介绍/排课参考/环创建设回显:修复 API 字段映射和解析
- 测评内容 JSON 格式:新增 parseAssessmentDataForDisplay 前后端统一
- 保存后跳转列表:修复新建/编辑流程的 router.replace
- 表单校验:导入课、集体课、领域课各必填一条,下一步时校验
- 保存按钮:修复 @click 将 event 误传为 isDraft 导致不跳转
- Lesson API:updateLesson/updateStep 传入正确的 courseId

Made-with: Cursor
2026-03-23 15:15:56 +08:00
zhonghua
4122bcd240 feat: 课程包年级筛选与适用年级对齐,修复JSON_CONTAINS占位符
Made-with: Cursor
2026-03-23 10:48:09 +08:00
zhonghua
fceef0fa12 feat(admin): 课程包列表增加课程配置列,参考学校端排课展示课程类型标签
Made-with: Cursor
2026-03-23 10:36:06 +08:00
En
b361b1885b fix: 教师端首页今日课程 courseName 和 className 关联查询
问题:
- 今日课程功能只查询了 lesson 表,没有 JOIN 关联表
- TeacherLessonVO 的 courseName 和 className 字段为 null
- 前端无法显示课程名称和班级名称

修复:
- LessonMapper 新增 selectTodayLessonsWithDetails() 方法
- 通过 LEFT JOIN course_package 和 clazz 表获取名称
- TeacherStatsServiceImpl 重写 getTodayLessons() 方法
- 添加类型转换辅助方法 (getLong/getString/getLocalDate/getLocalTime/getLocalDateTime)

影响范围:
- 教师端首页 - 今日课程模块
- API: GET /api/v1/teacher/today-lessons
- API: GET /api/v1/teacher/dashboard

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 18:43:47 +08:00
En
c3b1056c29 feat: 租户管理与课程套餐优化
- 优化租户管理相关接口与实体类
- 更新课程套餐服务层实现
- 新增数据库迁移脚本 V42
- 同步更新前端 API 类型与页面组件
2026-03-19 23:28:40 +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
zhonghua
289fcbee52 feat: 课程套餐与课程包管理优化
- 课程套餐:适用年级从已选课程包自动同步,年级列改为只读
- 课程套餐:草稿/已驳回状态添加发布按钮
- 课程包:已发布状态不显示编辑按钮,编辑页增加状态校验
- 套餐创建:年级列从课程包读取,不可编辑

Made-with: Cursor
2026-03-19 11:18:02 +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
a72984c860 feat(课程包): 表单校验增强与交互优化
- 顶部操作栏吸顶,下一步/保存草稿合并到顶部
- 导入课、集体课、领域课至少配置一种的校验
- 领域课 getSaveData 仅返回已填写教学目标的领域
- 教学环节添加必填标识(*)

Made-with: Cursor
2026-03-18 16:06:35 +08:00
zhonghua
eb1b1a3153 课程包详情: 核心发展目标字段翻译为中文显示
Made-with: Cursor
2026-03-17 17:56:30 +08:00
En
43095f97af fix: 课程创建功能调试和测试脚本优化
前端:
- CourseEditView 添加调试日志,修复创建课程后跳转逻辑(window.location.href → router.push)
- E2E 测试脚本增加日志监听和更精确的选择器
- 优化测试等待时间和元素定位逻辑
- helpers.ts 增强登录流程日志

后端:
- AdminCourseController 添加日志记录,简化课程列表查询参数
- CourseServiceImpl 添加课程创建日志

配置:
- application-dev.yml 修改为本地数据库配置(192.168.1.250)
- application-test.yml 同步使用本地数据库

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 14:17:11 +08:00
zhonghua
8956f0b790 fix: 课程包管理详情 - 修复大整数 ID 精度丢失,使用 string 传递避免课程不存在
Made-with: Cursor
2026-03-16 14:13:59 +08:00
zhonghua
691e0248a2 fix: 课程包管理审核页面优化
- 修复 list/items 数据格式转换,解决暂无数据问题
- 新增课程驳回接口 POST /api/v1/admin/courses/{id}/reject
- 审核页仅返回待审核和已驳回(reviewOnly),排除已通过
- 修复状态筛选、自动检查列逻辑
- 后端支持 status 和 reviewOnly 参数

Made-with: Cursor
2026-03-16 11:08:27 +08:00
En
938503f2b8 chore: 更新启动脚本使用 Java (Spring Boot) 后端
- 修改后端目录从 reading-platform-backend 改为 reading-platform-java
- 修改后端端口从 3000 改为 8080
- 修改启动命令从 npm run start:dev 改为 mvn spring-boot:run
- 添加 JAVA_HOME 自动检测和设置(默认使用 /f/Java/jdk-17)
- 修改日志文件从 reading-platform-backend.log 改为 reading-platform-java.log
- 修改健康检查接口为 /actuator/health
- 增加启动等待超时时间到 60 秒(Java 启动较慢)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 10:35:30 +08:00
En
6e11c874d2 chore: 忽略 target 目录和 .class 文件
- 添加 target/ 到 .gitignore
- 从 git 暂存区移除已追踪的 target 目录

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 16:50:54 +08:00
Claude Opus 4.6
56508eb066 feat: 三端全链路测试完成 - 学校端、教师端、课程包业务
## 后端修复
- 修复教师端课程查询 - 包含系统课程和租户课程
- 修复系统课程创建 - isSystem 标志正确保存到数据库
- 新增套餐授权接口 POST /api/v1/admin/packages/{id}/grant

## 新增 Controller
- SchoolStatsController - 学校端统计数据
- SchoolCourseController - 学校端课程管理
- TeacherStatsController - 教师端统计数据

## 前端修复
- 修复 API 客户端导入 - getApi → getReadingPlatformAPI
- 修复三端 API 调用方法名
- 更新 Orval 生成配置和 API 类型
- 修复学校端视图 - result.items → result.list

## 测试结果
-  超管端:课程创建/发布、套餐完整流程、授权
-  学校端:登录、统计、课程、套餐查看
-  教师端:登录、Dashboard、班级、课程查看

## 文档更新
- 新增测试记录:/docs/test-logs/
- 更新 CHANGELOG.md
- 更新今日开发日志

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 13:48:28 +08:00
Claude Opus 4.6
e87e2dde00 refactor: 完成代码重构规范化 - 2026-03-12
后端重构:
- 添加统一响应格式 ResultDto<T> 和 PageResultDto<T>
- 添加分页查询 DTO 基类 PageQueryDto
- 添加响应转换拦截器 TransformInterceptor
- 添加公共工具函数(JSON 解析、分页计算)
- 配置 Swagger/OpenAPI 文档(访问路径:/api-docs)
- Tenant 模块 DTO 规范化示例(添加 @ApiProperty 装饰器)
- CourseLesson 控制器重构 - 移除类级路径参数,修复 Orval 验证错误
- 后端 DTO 规范化 - 为 Course、Lesson、TeacherCourse、SchoolCourse 控制器添加完整的 Swagger 装饰器

前端重构:
- 配置 Orval 从后端 OpenAPI 自动生成 API 客户端
- 生成 API 客户端代码(带完整参数定义)
- 创建 API 客户端统一入口 (src/api/client.ts)
- 创建 API 适配层 (src/api/teacher.adapter.ts)
- 配置文件路由 (unplugin-vue-router)
- 课程模块迁移到新 API 客户端
- 修复 PrepareModeView.vue API 调用错误
- 教师模块迁移到新 API 客户端
- 修复 school-course.ts 类型错误
- 清理 teacher.adapter.ts 未使用导入
- 修复 client.ts API 客户端结构
- 创建文件路由目录结构

Bug 修复:
- 修复路由配置问题 - 移除 top-level await,改用手动路由配置
- 修复响应拦截器 - 正确解包 { code, message, data } 格式的响应
- 清理 teacher.adapter.ts 未使用导入
- 修复 client.ts API 客户端结构
- 创建文件路由目录结构

系统测试:
- 后端 API 测试通过 (7/7)
- 前端路由测试通过 (4/4)
- 数据库完整性验证通过
- Orval API 客户端验证通过
- 超管端功能测试通过 (97.8% 通过率)

新增文件:
- reading-platform-backend/src/common/dto/result.dto.ts
- reading-platform-backend/src/common/dto/page-query.dto.ts
- reading-platform-backend/src/common/interceptors/transform.interceptor.ts
- reading-platform-backend/src/common/utils/json.util.ts
- reading-platform-backend/src/common/utils/pagination.util.ts
- reading-platform-frontend/orval.config.ts
- reading-platform-frontend/src/api/generated/mutator.ts
- reading-platform-frontend/src/api/client.ts
- reading-platform-frontend/src/api/teacher.adapter.ts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 17:27:13 +08:00
张逸遥
ad0204a59a 提交说明 2026-02-28 16:41:39 +08:00
lesingle
54f6daea62 Initialize the Kindergarten platform source code. 2026-02-26 15:22:26 +08:00