|
|
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
|
a72984c860
|
feat(课程包): 表单校验增强与交互优化
- 顶部操作栏吸顶,下一步/保存草稿合并到顶部
- 导入课、集体课、领域课至少配置一种的校验
- 领域课 getSaveData 仅返回已填写教学目标的领域
- 教学环节添加必填标识(*)
Made-with: Cursor
|
2026-03-18 16:06:35 +08:00 |
|
|
|
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 |
|
|
|
ad249d0392
|
租户编辑,暂时不能更换套餐
|
2026-03-18 10:01:50 +08:00 |
|
zhonghua
|
eb1b1a3153
|
课程包详情: 核心发展目标字段翻译为中文显示
Made-with: Cursor
|
2026-03-17 17:56:30 +08:00 |
|
|
|
95b3e973e0
|
Merge remote-tracking branch 'origin/master'
|
2026-03-17 16:23:18 +08:00 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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
|
4a713c41d3
|
chore: 隐藏通知设置及顶部通知铃铛
- 学校端系统设置:移除通知设置卡片
- 超管端系统设置:移除通知设置标签页
- 各端 Layout:移除顶部通知铃铛图标
Made-with: Cursor
|
2026-03-16 15:32:19 +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 |
|
|
|
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
|
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 |
|
|
|
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 |
|
|
|
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
|
e07e21f430
|
Merge design branch - 代码重构规范化完成
合并内容:
- 后端 Swagger/OpenAPI 配置
- 后端 DTO 规范化
- 前端 Orval API 客户端自动生成
- 前端文件路由配置
- 所有测试文件和配置
冲突解决:
- main.ts: 保留 Swagger 和 TransformInterceptor
- package.json: 合并 orval 相关脚本和依赖
- playwright.config.ts: 使用 design 分支配置
- .env: 保留 design 分支配置
- 启动脚本: 保留 design 分支版本
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-12 17:27:48 +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 |
|
zhonghua
|
0d4d9f5768
|
菜单顶部栏优化
|
2026-02-28 06:44:56 +08:00 |
|
lesingle
|
54f6daea62
|
Initialize the Kindergarten platform source code.
|
2026-02-26 15:22:26 +08:00 |
|