|
|
4d97e1cbf9
|
Merge remote-tracking branch 'origin/master'
|
2026-03-24 18:09:27 +08:00 |
|
|
|
6f47a07401
|
docs(开发日志): 补充 RSA 加密功能文档和细节调整
- 追加 RSA 密码加密传输的完整实现文档
- 操作日志相关细节调整
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-24 18:08:29 +08:00 |
|
|
|
c935988188
|
feat(登录安全): 实现 RSA 密码加密传输
后端:
- 新增 RsaEncryptionUtil 工具类,支持 RSA 2048 位加解密
- 新增 RsaKeyRotationTask 定时任务,每月 1 日凌晨 2 点自动更换密钥
- 新增 EncryptedLoginRequest 和 PublicKeyResponse DTO
- AuthController 添加 /public-key 和 /login/encrypted 接口
前端:
- 添加 jsencrypt 依赖用于 RSA 加密
- 新增 encryption.ts 工具函数
- auth.ts 添加 getPublicKey 和 loginEncrypted API
- user.ts 修改 login 函数使用 RSA 加密流程
feat(操作日志): 添加请求参数和请求接口字段
- 数据库迁移 V50 添加 request_uri 字段
- LogAspect 记录请求 URI
- OperationLogResponse 新增 requestParams 和 requestUri 字段
- 前端 OperationLogView 详情弹窗展示新字段
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-24 18:06:19 +08:00 |
|
zhonghua
|
51b94cf5cb
|
feat(teacher): 退出上课放弃课时记录; 课时列表按创建/更新时间倒序
Made-with: Cursor
|
2026-03-24 16:43:25 +08:00 |
|
zhonghua
|
aa44f6262b
|
fix(阅读任务): 前后端字段对齐与列表时间展示;教师端时间筛选与 dateRange 修复
Made-with: Cursor
|
2026-03-24 15:56:53 +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 |
|
|
|
67af92ddfd
|
refactor: 代码优化与错误处理增强
前端:
- mutator.ts: 响应拦截器增加业务错误码处理
- 多个 ListView/DetailView: 导入语句格式化(按字母排序)
- CollectionListView/CollectionDetailView/CourseListView: 优化下架错误处理,显示具体错误信息
后端:
- CourseCollectionServiceImpl: 下架套餐前检查是否有租户正在使用
- TeacherServiceImpl: 添加教师状态变更日志
- CoursePackageServiceImpl: 导入语句格式化
|
2026-03-24 14:11:16 +08:00 |
|
|
|
e2547daa63
|
fix: 学校端家长管理选择孩子列表优化
- 学生列表分页参数修复:page 改为 pageNum
- StudentResponse 添加 className 字段,显示班级名称
- 性别显示逻辑简化,兼容空值
- 修复 TeacherListView 中 Modal 导入错误
feat: 排课管理支持删除已取消的排课
- 新增 ScheduleRepeatType 和 ScheduleStatus 枚举
- 添加物理删除接口 /force,仅允许删除已取消的排课
- ScheduleList 和 TimetableView 增加删除按钮
|
2026-03-24 14:06:09 +08:00 |
|
zhonghua
|
342456347e
|
feat: 实现课程包数据统计前后端对齐
- 新增 CoursePackageStatsService 及 GET /packages/{id}/stats 接口
- 数据统计页:总授课次数、教师数、学生数、平均评分、趋势、反馈、最近授课、学生表现
- 课程包列表数据统计列:实时计算 usageCount、teacherCount、avgRating
- 前端 getCourseStats 调用真实 API
Made-with: Cursor
|
2026-03-24 13:57:06 +08:00 |
|
|
|
53273ab6e0
|
feat: 租户详情优化 - 添加统计字段,移除最近列表查询
后端变更:
- TenantResponse 添加 classCount、lessonCount 字段用于统计显示
- TenantServiceImpl 添加 getTenantDetail() 和 buildTenantResponse() 方法
- 移除最近教师/学生/班级列表查询逻辑(性能优化)
- 新增 StudentClassStatus 枚举类
前端变更:
- TenantListView.vue 更新详情展示,使用统计数字替代列表
- admin.ts 更新 TenantDetail 类型定义
优化:
- ClassServiceImpl 和 StudentServiceImpl 代码优化
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-03-24 11:34:25 +08:00 |
|
|
|
bf03bc30af
|
feat: 教师手机号唯一性校验 & 班级相关功能优化
1. 教师手机号唯一性校验 (TeacherServiceImpl)
- 添加 checkPhoneUnique 私有方法
- createTeacher 和 updateTeacher 方法中调用校验
- 租户隔离,编辑时排除当前教师
2. 班级相关功能优化
- SchoolClassController: 班级管理接口
- ClassService/ClassServiceImpl: 班级服务层
- ClassCreateRequest/ClassUpdateRequest: 请求 DTO 优化
- 新增班级教师相关 DTO: AddClassTeacherRequest, ClassTeacherUpdateRequest, UpdateClassTeacherRequest
- 新增 ClassTeacherRole 枚举
3. 前端适配
- school.ts API 更新
- ClassListView.vue 班级列表页面优化
- ParentListView.vue 家长列表页面优化
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-23 23:54:01 +08:00 |
|
|
|
b715c9a31c
|
Merge remote-tracking branch 'origin/master'
|
2026-03-23 19:58:11 +08:00 |
|
|
|
8aaa8cdd94
|
feat: 操作日志模块同步方案
后端新增:
- 新增 LogModule 枚举类,统一管理操作日志模块
- 新增 LogOperationType 枚举类,统一管理操作类型
- 修改 @Log 注解,module 参数改为 LogModule 枚举类型
- 修改 LogAspect 切面,将枚举转换为字符串存储
- 新增 GET /api/v1/school/operation-logs/modules 接口
前端修改:
- 新增 logOperationType.ts 常量文件
- 修改 OperationLogView.vue,通过 API 动态获取模块列表
- 修改 school.ts,新增 getOperationLogModules API
数据库修改:
- OperationLog 实体新增 requestParams 字段,用于记录请求参数
- 新增 V48 迁移脚本,添加 request_params 字段
重构:
- 所有 Controller 中的 @Log 注解改为使用 LogModule 枚举
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-23 19:57:40 +08:00 |
|
zhonghua
|
2d9856edac
|
feat: 课程中心增加课程包主题筛选,过滤导入课/集体课
- 后端: 套餐筛选元数据新增 themes,getPackages 支持 themeId
- 前端: 学校端/教师端课程中心增加课程包主题下拉筛选
- 课程配置筛选和卡片展示均过滤导入课、集体课
Made-with: Cursor
|
2026-03-23 18:28:54 +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
|
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
|
029881f09f
|
fix: 成长记录 images 序列化统一 + 租户套餐移除确认流程
- 成长记录: images 统一为 string[],修复 OpenAPI/Java DTO/前端类型
- 租户更新: TenantUpdateRequest 新增 forceRemove,ErrorCode 新增 REMOVE_PACKAGE_HAS_SCHEDULES
- 异常处理: BusinessException 支持附加 data,GlobalExceptionHandler 返回 data 供前端确认弹窗
Made-with: Cursor
|
2026-03-23 14:47:01 +08:00 |
|
|
|
fb4d63ec99
|
Merge remote-tracking branch 'origin/master'
|
2026-03-23 14:13:39 +08:00 |
|
|
|
48c64176e5
|
feat: 超管端实现租户重置密码功能
后端实现:
- TenantService 添加 resetPasswordAndReturnTemp 方法
- TenantServiceImpl 实现重置密码逻辑,生成 8 位随机临时密码
- AdminTenantController 完善 resetTenantPassword 接口,返回临时密码
前端实现:
- TenantListView 添加重置密码模态框组件
- 采用与教师端一致的 UI 样式
- 使用超管端 Indigo 紫色主题色 (#6366F1)
- 支持密码一键复制功能
API 端点:
- POST /api/v1/admin/tenants/{id}/reset-password
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-23 14:13:11 +08:00 |
|
zhonghua
|
ac8e07c784
|
feat: 课程中心主题筛选改为课程配置筛选,课程包卡片展示课程配置
Made-with: Cursor
|
2026-03-23 11:12:09 +08:00 |
|
zhonghua
|
4122bcd240
|
feat: 课程包年级筛选与适用年级对齐,修复JSON_CONTAINS占位符
Made-with: Cursor
|
2026-03-23 10:48:09 +08:00 |
|
|
|
c1f5b5085e
|
feat: 学校端数据报告功能实现
主要变更:
1. 新建 ReportMapper - 数据报告统计查询
- getOverviewStats: 概览统计(教师/学生/班级总数、本月授课次数)
- getTeacherReports: 教师教学数据统计
- getCourseReports: 课程使用排行统计
- getStudentReports: 学生学习数据统计
2. 新建 SchoolReportService - 数据报告服务层
- 4 个报告查询接口实现
3. 修改 SchoolStatsController - 调整统计接口参数
- getLessonTrend 改为支持 startDate 和 endDate 参数
4. 前端更新 ReportView.vue
- 对接 4 个报告接口
- 优化图表展示和数据表格
- 支持日期范围筛选
5. 更新开发日志和测试记录
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-23 09:46:08 +08:00 |
|
|
|
e8219e5aab
|
Merge branch 'retirado'
# Conflicts:
# docs/dev-logs/2026-03-21.md
|
2026-03-21 21:37:17 +08:00 |
|
|
|
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 |
|
Claude Opus 4.6
|
3183d1d388
|
feat: 学校端课程中心优化 - 照搬教师端实现
主要变更:
- 学校端课程详情页返回完整 CourseResponse(与教师端一致)
- 新增课程中心视图 CourseCenterView.vue(学校端/教师端)
- 新增 course-center.ts API 层
- 新增 PackageFilterMetaResponse 用于筛选元数据
- 菜单文案修改:课程管理 -> 课程中心
后端优化:
- SchoolCourseController.getCourse() 返回 CourseResponse
- CourseCollectionService 新增筛选元数据查询方法
- CoursePackageResponse 新增 filterMeta 字段
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-21 18:14:49 +08:00 |
|
|
|
6e1758a44d
|
Merge remote-tracking branch 'origin/master'
# Conflicts:
# reading-platform-frontend/openapi.json
# reading-platform-frontend/src/api/generated/index.ts
# reading-platform-frontend/src/api/generated/model/index.ts
# reading-platform-frontend/src/api/generated/model/taskCreateRequest.ts
|
2026-03-21 12:54:02 +08:00 |
|
|
|
6f64723428
|
feat: 教师端数据看板与学校端课程统计功能
教师端数据看板:
- 新增 TeacherDashboardResponse/TeacherLessonVO/TeacherLessonTrendVO
- 新增 TeacherWeeklyStatsResponse 周统计响应
- 新增 TeacherActivityLevel 枚举和 TeacherActivityRankResponse 活跃度排行
- 实现教师端课程统计、任务完成详情、任务反馈接口
学校端课程统计:
- 新增 CourseUsageVO/CourseUsageStatsVO/CoursePackageVO
- 新增 SchoolCourseResponse 和学校端课程使用查询接口
- 实现学校端统计数据和课程趋势接口
用户资料功能:
- 新增 UpdateProfileRequest/UpdateProfileResponse
- 实现用户资料更新接口
前后端对齐:
- 更新 OpenAPI 规范和前端 API 类型生成
- 优化 DashboardView 组件和 API 调用
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-21 12:45:56 +08:00 |
|
zhonghua
|
5cb903d7ed
|
feat: 家长端任务、教师端统计、数据库迁移等
- 家长端阅读任务:从 task_target 获取任务(学生+班级),支持家长关联孩子查看
- 家长端提交任务:修复照片上传,使用 uploadFile(file, poster) 符合 API 规范
- 教师端任务列表:TaskResponse 新增 targetCount、completionCount,填充目标人数与完成人数
- 数据库迁移:V45 添加 task_completion.photos,V46 添加 submitted_at、reviewed_at
- 其他:班级学生、家长孩子、学校班级统计等修复
Made-with: Cursor
|
2026-03-20 18:43:47 +08:00 |
|
zhonghua
|
463c3d9922
|
feat: 阅读任务模块 - 关联绘本、任务模板与教师端优化
Made-with: Cursor
|
2026-03-20 15:55:33 +08:00 |
|
zhonghua
|
26f55da670
|
Merge branch 'retirado' of http://8.148.151.56:3000/tonytech/kindergarten_java
# Conflicts:
# reading-platform-frontend/src/api/school.ts
# reading-platform-frontend/src/api/teacher.ts
# reading-platform-frontend/src/views/school/tasks/TaskListView.vue
# reading-platform-frontend/src/views/teacher/tasks/TaskListView.vue
# reading-platform-java/src/main/java/com/reading/platform/controller/school/SchoolTaskController.java
# reading-platform-java/src/main/java/com/reading/platform/controller/teacher/TeacherTaskController.java
# reading-platform-java/src/main/java/com/reading/platform/dto/response/TaskCompletionDetailResponse.java
# reading-platform-java/src/main/java/com/reading/platform/service/TaskService.java
# reading-platform-java/src/main/java/com/reading/platform/service/impl/TaskServiceImpl.java
|
2026-03-20 14:27:28 +08:00 |
|
Claude Opus 4.6
|
f62aa18e72
|
feat: 阅读任务模块重写(Phase 1-4)
## 主要变更
### 后端改造 (Phase 1)
- 新增 task_feedback 表存储教师评价
- task 表添加 related_book_name 字段
- task_completion 表添加 video_url, audio_url 字段
- 新增 TaskFeedback 实体和服务层
- 扩展 TaskService 支持完成情况查询和评价功能
- 学校端 API 改为只读模式 (/v1/school/reading-tasks)
### 教师端前端 (Phase 2)
- 创建任务弹窗添加关联绘本字段
- 完成情况弹窗支持新状态值 (PENDING/SUBMITTED/REVIEWED)
- 新增评价弹窗组件(评价结果、评分、评语)
- 显示提交内容预览(照片、视频、音频、文字)
### 家长端前端 (Phase 3)
- 提交功能改造支持照片上传(最多9张)
- 支持视频/音频链接输入
- 阅读心得文字输入
- 新增查看教师评价功能
- 状态驱动操作(待提交/已提交/已评价)
### 学校端前端 (Phase 4)
- 完全重写为只读模式
- 移除创建/编辑/删除功能
- 多维度筛选(关键字、类型、状态、日期、排序)
- 统计卡片(任务数、进行中、已提交、已评价)
- 任务详情弹窗
- 完成情况列表弹窗
- 提交详情弹窗
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-20 14:08:36 +08:00 |
|
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 |
|
|
|
c3b1056c29
|
feat: 租户管理与课程套餐优化
- 优化租户管理相关接口与实体类
- 更新课程套餐服务层实现
- 新增数据库迁移脚本 V42
- 同步更新前端 API 类型与页面组件
|
2026-03-19 23:28:40 +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
|
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 |
|
|
|
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 |
|
|
|
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
|
2eb4a28b89
|
修复文件上传
|
2026-03-19 10:53:13 +08:00 |
|
|
|
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 |
|
|
|
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 |
|