Commit Graph

20 Commits

Author SHA1 Message Date
zhonghua
cfaca4a2aa chore: 固定后台布局与全局滚动样式优化
Made-with: Cursor
2026-03-12 11:08:41 +08:00
En
30b9cd5e05 feat: 套餐管理功能完整实现
前端新增:
- 套餐管理列表页 PackageListView.vue
- 套餐详情页 PackageDetailView.vue
- 套餐编辑页 PackageEditView.vue
- 套餐 API 客户端 productBundle.ts

后端新增:
- ProductBundle 实体(产品套餐)
- ProductBundleCoursePackage 实体(套餐 - 课程包关联)
- TenantProductBundle 实体(学校套餐购买记录)
- CoursePackageCourse 实体(课程包 - 课程关联)
- AdminProductBundleController(套餐管理接口)
- AdminBundleCoursePackageController(套餐课程包关联接口)
- AdminPackageCourseController(课程包课程关联接口)
- AdminTenantBundleController(学校套餐购买接口)
- 对应 Service 和 Mapper

数据库迁移:
- 添加 Flyway 迁移脚本 V20260312__create_bundle_tables.sql

代码规范:
- Service 层统一继承 IService 和 ServiceImpl
- Entity 类补充 @Schema 注解
- DTO/VO 类补充 @Schema 注解
2026-03-12 10:47:03 +08:00
En
1c1321bddd fix: 修复 admin 套餐管理页面路由和 TypeScript 错误
- 修复侧边栏菜单 key 从 packages 改为 bundles,与路由路径对齐
- 修复 PackageListView.vue 中 columns.fixed 类型错误
- 修复 PackageDetailView.vue 中 API 返回类型解包错误
- 修复 PackageEditView.vue 中 rowSelection 类型定义
- 清理 package.ts 中未使用的导入和类型
- 新增 productBundle.ts 手写 API 客户端(套餐管理接口)

后端套餐管理接口:
- GET /api/v1/admin/bundles - 获取套餐列表
- GET /api/v1/admin/bundles/{id} - 获取套餐详情
- POST /api/v1/admin/bundles - 创建套餐
- PUT /api/v1/admin/bundles/{id} - 更新套餐
- DELETE /api/v1/admin/bundles/{id} - 删除套餐
- POST /api/v1/admin/bundles/{id}/submit - 提交审核
- POST /api/v1/admin/bundles/{id}/review - 审核套餐
- POST /api/v1/admin/bundles/{id}/publish - 发布套餐
- POST /api/v1/admin/bundles/{id}/offline - 下架套餐
2026-03-12 10:41:07 +08:00
En
ef2dfdfeaf feat: 补全旧后端缺失接口
新增接口:
- admin/resources: 批量删除资源项、全平台资源统计
- school/courses: 校本课程列表(无分页)
- school/task-templates: 任务模板管理(兼容旧路径)
- school/packages: 课程包列表(兼容旧路径)
- school/school-courses: 校本课程 CRUD(兼容旧路径)
- teacher/students: 教师学生列表(兼容旧路径)

修改文件:
- AdminResourceController: 新增批量删除和统计接口
- ResourceService/ResourceServiceImpl: 新增 getAdminStats() 方法
- SchoolCourseController: 重构路径,支持/courses 和/school-courses 双路径
- SchoolCoursePackageController: 新增/packages 兼容路径
- SchoolTaskController: 新增 SchoolTaskTemplateController 支持独立/task-templates 路径
- TeacherCourseController: 重构路径,支持/students 兼容路径

文档更新:
- 旧后端接口完整清单.md: 更新已实现接口标记
2026-03-11 21:47:30 +08:00
En
97fec4f450 普通推送 2026-03-11 17:57:08 +08:00
En
e501e17403 feat: 完善学校统计报告、资源服务及实体类字段
主要变更:
1. 新增学校报告服务 (SchoolReportService)
   - 学校概览统计 (getOverviewStats)
   - 教师统计报表 (getTeacherStats)
   - 课程统计报表 (getCourseStats)
   - 学生统计报表 (getStudentStats)
   - 课时趋势分析 (getLessonTrend)

2. 新增学校端 Controller
   - SchoolReportController: 学校统计报告接口
   - SchoolResourceController: 学校资源管理接口
   - SchoolFeedbackController: 学校反馈管理接口

3. 完善实体类字段
   - CourseLesson: 添加 lessonOrder 字段
   - ResourceItem: 添加 tenantId、type 字段
   - Task: 添加 name 字段
   - LessonFeedback: 添加 courseId、tenantId、overallRating 字段

4. 完善服务层实现
   - ResourceServiceImpl: 实现资源库和资源项管理方法
   - SchoolReportServiceImpl: 实现学校统计报表逻辑
   - TeacherDashboardServiceImpl: 修复时间类型转换
   - AdminStatsServiceImpl: 完善统计逻辑

5. 新增 Flyway 迁移脚本 (V2)
   - 添加 ORM 实体类缺失字段的数据库迁移

6. 修复路由冲突
   - 移除 AdminCourseController 中重复的 getCourseLessons 方法

7. 添加测试工具类
   - CheckDatabase, CheckClazzTable: 数据库检查工具
   - InitDatabase, InitClasses: 数据初始化工具
   - GeneratePasswordHash: 密码哈希生成工具

8. 配置 Maven Wrapper
   - 添加 maven-wrapper.properties 和 mvnw.cmd
   - 确保使用 Java 17 编译
2026-03-11 16:21:22 +08:00
En
0d4275b235 feat: 完善 OpenAPI 注解和前端 API 客户端
主要变更:
1. 所有 Entity/DTO/VO 添加 @Schema 注解,完善 API 文档
2. 新增前端 API 封装模块 (src/apis),包含 fetch.ts 和 apis.ts
3. 生成完整的 TypeScript 类型定义(100+ 个模型)
4. pom.xml 添加 Maven 编译配置和 UTF-8 编码支持
5. 更新 CLAUDE.md 开发文档,新增接口规范和 Swagger 注解规范
6. 清理旧的文档文件和 Flyway 迁移脚本

技术细节:
- 后端:27 个实体类 + 所有 DTO/Response 添加 Swagger 注解
- 前端:新增 orval 生成的 API 客户端类型
- 构建:配置 Maven compiler plugin 和 Spring Boot 插件的 JVM 参数
- 数据库:新增 schema 导出文件,删除旧 Flyway 迁移脚本

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 23:51:02 +08:00
En
9204f9329e feat: 完善 OpenAPI 注解和前端 API 客户端
主要变更:
1. 所有 Entity/DTO/VO 添加 @Schema 注解,完善 API 文档
2. 新增前端 API 封装模块 (src/apis),包含 fetch.ts 和 apis.ts
3. 生成完整的 TypeScript 类型定义(100+ 个模型)
4. pom.xml 添加 Maven 编译配置和 UTF-8 编码支持
5. 更新 CLAUDE.md 开发文档
6. 清理旧的文档文件

技术细节:
- 后端:27 个实体类 + 所有 DTO/Response 添加 Swagger 注解
- 前端:新增 orval 生成的 API 客户端类型
- 构建:配置 Maven compiler plugin 和 Spring Boot 插件的 JVM 参数

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 23:50:25 +08:00
En
583b47c430 feat: 新增学校通知、任务模板和日程管理功能
- 新增学校通知控制器 (SchoolNotificationController)
- 新增任务模板创建/更新请求 DTO
- 新增日程计划创建和模板应用请求 DTO
- 新增 TokenService 服务实现
- 新增多个服务实现类 (AdminStats, CourseLesson, CoursePackage 等)
- 添加数据库迁移脚本 V7__fix_schedule_plans.sql
- 更新配置文件和依赖

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 01:06:03 +08:00
En
c7737ea490 fix(db): 本地开发配置改用远程开发服务器数据库 8.148.151.56 2026-03-09 18:19:58 +08:00
En
32d2364c77 refactor(i18n): 全面翻译Swagger注解和实体注释为中文
- 翻译41个控制器的所有@Tag和@Operation注解为中文
  - Admin系列控制器:9个
  - School系列控制器:13个
  - Teacher系列控制器:9个
  - Parent系列控制器:4个
  - AuthController和FileUploadController:2个

- 翻译41个实体类的类注释为中文
  - 管理员/教师/学生/家长/租户等核心实体
  - 课程/课时/任务/成长档案等业务实体
  - 各类关系映射实体

- 翻译21个DTO的@Schema注解为中文
  - Request DTOs: 19个(创建/更新请求)
  - Response DTOs: 4个(登录/用户信息/课程/租户响应)

- 新增CLAUDE.md项目文档

所有翻译确保符合上下文语义,保持代码功能不变。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 12:23:10 +08:00
lesingle
bbddb57104 fix(backend): 修复管理员创建系统课程时 isSystem 未持久化的 bug
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 15:05:53 +08:00
lesingle
e700029ee7 fix(backend): 修复课程套餐路径和新增状态变更接口
- AdminCoursePackageController: 路径从 /admin/course-packages 改为 /admin/packages
- AdminCoursePackageController: 分页参数 pageNum → page,新增 submit/review/publish/offline
- CoursePackageService: 新增 submit/review/publish/offline 方法

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 15:04:43 +08:00
lesingle
01897a7ecc Merge branch 'main' of http://8.148.151.56:3000/tonytech/kindergarten_java 2026-03-03 14:50:42 +08:00
lesingle
18170609d9 fix: 修复前端API路径和后端课程管理接口
- 前端 course.ts: /courses → /admin/courses (匹配Java后端路径)
- 路由守卫: 修复token存在但role缺失时的无限循环404问题
- AdminCourseController: 新增审核相关接口 (submit/withdraw/approve/reject/unpublish/republish/direct-publish)
- AdminCourseController: 课程列表支持status过滤,显示所有状态课程
- CourseService/Impl: 新增提交审核、审批、拒绝等方法

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 14:49:16 +08:00
30677a7c02 fix(auth): 登录接口同时接受 account 和 username 字段 2026-03-03 14:21:21 +08:00
e9dff31242 feat(backend): 补全所有未提交的 Java 源码文件
新增 44 个此前仅在本地存在、从未提交到 git 的源码文件:
- Controllers: FileUpload, AdminStats, AdminTheme, AdminCoursePackage,
  AdminCourseLesson, AdminResource, AdminOperationLog,
  School(Course/Schedule/Settings/Stats/Export/OperationLog/CoursePackage),
  Teacher(Dashboard/Schedule/SchoolCourse/CourseLesson)
- Entities: CourseLesson, CoursePackage, SchoolCourse, Theme
- Mappers: CourseLesson, CoursePackage, SchoolCourse, Theme
- Services: All 13 service classes
- Config: WebMvcConfig

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 13:51:33 +08:00
8b7615bcf1 fix(auth): 修复学校账号登录角色返回错误问题
loginWithRole()中SCHOOL/TEACHER分支改为返回请求中指定的role(school或teacher),
而非硬编码"teacher"。同步修复getCurrentUserInfo()和changePassword()支持"school"角色。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 15:41:58 +08:00
859c71db09 fix(backend): 修复租户创建、接口字段和500错误
Bug 1: 创建租户时同步创建学校登录账号(teachers表)
- TenantCreateRequest支持loginAccount/contactPerson/studentQuota/teacherQuota字段
- TenantServiceImpl.createTenant()后自动插入Teacher记录,包含BCrypt加密密码
- 返回tempPassword字段供前端展示

Bug 2: 修复多个接口500错误
- 新增POST /auth/logout端点(JWT无状态,直接返回成功)
- 新增GET /admin/stats/trend端点(最近6个月统计趋势)
- 完善getStats()返回activeTenantCount/publishedCourseCount/monthlyLessons字段
- 新增AdminSettingsController(GET/PUT /admin/settings)
- 新增租户操作端点:/status、/reset-password、/quota

Bug 3: 统一前后端接口字段名
- Tenant实体用@JsonProperty重命名:code→loginAccount, contactName→contactPerson
  maxStudents→studentQuota, maxTeachers→teacherQuota, expireAt→expireDate
- status字段用UpperCaseSerializer返回大写值(前端期望ACTIVE/SUSPENDED)
- TenantCreateRequest/UpdateRequest用@JsonAlias接受前端字段名
- PageResult用@JsonProperty重命名:list→items, pageNum→page, pages→totalPages
- 所有分页控制器将pageNum参数改为page(与前端对齐)
- 新增TenantService.resetSchoolAccountPassword()方法

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 15:20:37 +08:00
7f757b6a63 初始提交:幼儿园阅读平台三端代码
- reading-platform-backend:NestJS 后端
- reading-platform-frontend:Vue3 前端
- reading-platform-java:Spring Boot 服务端
2026-02-28 17:51:15 +08:00