Commit Graph

63 Commits

Author SHA1 Message Date
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
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
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
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
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
zhonghua
a7e22ff35b 文件直传优化 2026-03-16 18:46:16 +08:00
En
e7348656ff feat: 更新 FileUploader 组件和生成的 API 类型
- 更新 FileUploader.vue 组件
- 更新组件类型定义
- 更新 API 生成的类型定义

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 18:15:34 +08:00
En
a1dcd529ef feat: 实现 OSS 直传功能
后端实现:
- 新增 OssTokenVo 响应类
- 修改 OssUtils 支持生成 OSS 直传 Token
- 修改 FileUploadController 添加 /oss/token 接口
- 修改 SecurityConfig 配置 OSS 相关接口权限
- 更新多环境 OSS 配置

前端实现:
- 新增 env.ts 工具函数,支持环境前缀
- file.ts 新增 getOssToken 和 uploadToOss 方法
- 修改 uploadFile 方法使用 OSS 直传

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 18:13:56 +08:00
En
f1bb1447bb feat: 前端 uploadFile 接口改为 OSS 直传
- 修改 uploadFile 方法使用 OSS 直传方式上传
- 新增 getOssToken 和 uploadToOss 方法
- 返回格式保持兼容,filePath 返回 OSS 完整 URL
- 自动添加环境前缀 (dev/test/prod)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 18:11:07 +08:00
zhonghua
d72e85f71a 添加logo 2026-03-16 17:49:09 +08:00
En
05d075eefc refactor: 代码优化和资源表修复
- 修复 CourseStatus 枚举
- 优化 CourseServiceImpl 和 TeacherStatsServiceImpl
- 修复资源表迁移脚本
- 更新开发日志

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 15:36:09 +08:00
zhonghua
4a713c41d3 chore: 隐藏通知设置及顶部通知铃铛
- 学校端系统设置:移除通知设置卡片
- 超管端系统设置:移除通知设置标签页
- 各端 Layout:移除顶部通知铃铛图标

Made-with: Cursor
2026-03-16 15:32:19 +08:00
zhonghua
7e96b80a38 Merge branch 'master' of http://8.148.151.56:3000/tonytech/kindergarten_java 2026-03-16 15:28:49 +08:00
zhonghua
1f6bd41b64 删除自动化一键登录按钮 2026-03-16 15:28:45 +08:00
En
57f9c804c9 fix: 登录验证错误信息传递修复
- JwtTokenProvider 新增 validateTokenWithReason 方法,返回具体错误原因
- JwtAuthenticationFilter token 验证失败时返回 401 错误响应
- 前端 axios 拦截器增强 403 处理,区分 token 过期和权限不足场景

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 15:26:37 +08:00
zhonghua
f25664cf9a feat: 实现各端个人信息功能
- 新增 ProfileView 共享个人信息页面
- 扩展 auth API UserProfile 支持各角色
- 为 admin/school/teacher/parent 添加 profile 路由
- 各端 Layout 用户菜单增加个人信息入口及跳转
- 家长端移动版抽屉菜单增加个人信息入口

Made-with: Cursor
2026-03-16 15:04:48 +08:00
zhonghua
23eab43590 fix(teacher): 教师端多项修复
- 课程中心: 修复搜索框重复图标、页面无数据、gradeTags/domainTags 解析
- 备课/上课: 课程/授课 ID 使用 string 避免 Long 精度丢失
- 预约上课: 补充 teacherId/title/lessonDate 等必填字段
- 备课模式: 解析 gradeTags 字符串修复 translateGradeTags 报错
- 涉及: CourseListView, PrepareModeView, LessonView, BroadcastView, LessonRecordsView

Made-with: Cursor
2026-03-16 14:54:18 +08:00
zhonghua
b6e46ba21e fix(school): 修复搜索框重复显示两个搜索图标
- 移除 a-input-search 的 #prefix 插槽(组件自带搜索按钮)
- 涉及:课程管理、教师/学生/家长/班级管理

Made-with: Cursor
2026-03-16 14:36:24 +08:00
zhonghua
73ff311370 搜索框样式调整 2026-03-16 14:33:13 +08:00
zhonghua
0777d2901a Merge branch 'master' of http://8.148.151.56:3000/tonytech/kindergarten_java 2026-03-16 14:25:32 +08:00
zhonghua
6b65bd656f fix(school): 校园端页面添加内边距,与其他端保持一致
- 为 Dashboard、教师/学生/家长/班级管理、课程、反馈、报告、成长档案、设置等页面添加 padding: 24px
- 任务、排期、课表、操作日志等页面补充 padding 与背景样式
- 课程详情、校本课程包详情页添加内边距
- 统一校园端内容区视觉与 admin/teacher 端一致

Made-with: Cursor
2026-03-16 14:25:05 +08:00
En
928f1b7afe redis添加密码 2026-03-16 14:24:17 +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
3918ccc9af 字段读取优化 2026-03-16 13:53:44 +08:00
zhonghua
87899886d1 feat: 套餐审核管理 - 审核页面、驳回可重新编辑提交、审核页已驳回不允许审核
Made-with: Cursor
2026-03-16 13:43:14 +08:00
zhonghua
f5de4e613d fix: 课程套餐管理详情修复 - Long 序列化为 String 避免 JS 精度丢失,修复 PUT 课程列表 JSON 格式
Made-with: Cursor
2026-03-16 11:53:27 +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
zhonghua
a461f58d3a fix: orval API 生成优化 - 修复 oneOf schema 验证错误
- 新增 scripts/fetch-openapi.js:拉取并修复 OpenAPI 文档
- 内联 ResultObject[] 的 \,移除非法 schema 名
- orval 使用本地 openapi.json,api:update 自动执行 api:fetch
- AdminStatsController: Result<Object[]> 改为 Result<List<Map<String, Object>>>
- .gitignore: 忽略 openapi.json

Made-with: Cursor
2026-03-16 10:45:15 +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
En
1aec778dd6 fix: 修复教师端成长档案列表 loading 问题
- 删除 teacher.ts 中重复的 getTeacherCourseUsage 导出
- 修复 GrowthRecordView.vue 中字段名不匹配:items -> list

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 16:36:57 +08:00
En
1fb6488468 test: 学校端 E2E 测试全部通过 - 修复菜单点击和退出登录问题
修复的问题:
- 二级菜单点击问题:使用 page.evaluate() 绕过 Playwright 可见性检查
- 页面标题断言严格模式冲突:使用 getByRole('heading').first()
- 退出登录功能:增强 logout() 函数,支持多种退出方式

测试结果:
- 69 个测试全部通过
- 1 个测试跳过(通知管理 - 学校端无此菜单)
- 执行时间:8.3 分钟

修改的文件:
- tests/e2e/school/helpers.ts - 修复 clickSubMenu 和 logout 函数
- tests/e2e/school/04-students.spec.ts - 修复页面标题断言
- tests/e2e/school/05-teachers.spec.ts - 修复页面标题断言
- tests/e2e/school/99-logout.spec.ts - 使用增强的 logout 函数

文档更新:
- docs/dev-logs/2026-03-14.md - 更新测试结果
- docs/CHANGELOG.md - 添加学校端测试记录
- docs/test-logs/school/2026-03-14-school-e2e-full-pass.md - 详细测试报告

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 11:25:38 +08:00
Claude Opus 4.6
066b1f2257 refactor: 代码合规性审查修复 - 三层架构、API路径、文档规范
## P0 三层架构违规修复 (4项)
- 创建 SchoolStatsService/TeacherStatsService,移除Controller直接调用Mapper
- 修复 AdminCourseController 使用 Service 层方法
- 修复 TeacherCourseController 使用 ClassService 获取班级
- 新增 ClassService.getActiveClassesByTenantId()
- 新增 CourseService.createSystemCourse()

## P1 API 路径统一 (8项)
后端路径统一为 /api/v1/admin/*:
- AdminCourseController: /api/admin/courses → /api/v1/admin/courses
- AdminTenantController: /api/admin/tenants → /api/v1/admin/tenants

前端配置调整:
- vite.config.ts: 移除代理重写规则
- src/api/index.ts: baseURL /api/v1 → /api
- 更新 admin.ts, lesson.ts, package.ts, theme.ts 使用 /v1/admin/* 路径

## P2 文档规范更新 (5项)
- 更新 CLAUDE.md 前端 API 调用文档
- 新增三种调用方式说明(http/适配层/Orval客户端)
- 新增 API 路径规范表格
- 更新前端目录结构说明

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 14:13:46 +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
081fac9d97 feat: Java后端迁移完成 - 资源管理API修复与文档更新
完成从Node.js/NestJS到Java Spring Boot的后端迁移,修复资源管理API错误。

**核心修复:**
- 修复资源库API 500错误 - ResourceLibrary/ResourceItem实体与数据库表结构对齐
- 更新ID类型从Long改为String,匹配数据库varchar(32)
- 修正字段映射(libraryType → type)

**新增Java实体(7个):**
- CoursePackage, CoursePackageCourse, TenantPackage
- CourseLesson, LessonStep, LessonStepResource
- Theme

**新增API控制器(5个):**
- AdminResourceController - 资源库管理
- AdminPackageController - 课程套餐管理
- AdminCourseLessonController - 课程环节管理
- AdminThemeController - 主题字典管理
- SchoolPackageController - 学校套餐管理

**新增服务层(5个):**
- ResourceLibraryService, CoursePackageService, CourseLessonService
- ThemeService, FileStorageService

**文档更新:**
- 新增 Java环境配置与启动指南.md
- 新增 Java后端启动完整指南.md
- 新增 数据库迁移指南.md
- 更新 CHANGELOG.md 和开发日志

**前端修复:**
- 解决package.json合并冲突

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 19:49:48 +08:00