Commit Graph

47 Commits

Author SHA1 Message Date
zhonghua
dbac0cca95 接口优化 2026-03-11 16:57:22 +08:00
zhonghua
2d33866e19 Merge branch 'main' of http://8.148.151.56:3000/tonytech/kindergarten_java
# Conflicts:
#	reading-platform-frontend/src/components.d.ts
2026-03-11 16:53:16 +08:00
zhonghua
8c5bef7de5 git忽略 2026-03-11 16:52:29 +08:00
zhonghua
b12b87b17f 接口接口优化 2026-03-11 16:46:42 +08:00
En
a3ec8f47f4 Merge branch 'main_dev' 2026-03-11 16:29:34 +08:00
zhonghua
128b89241e 接口同步 2026-03-11 16:27:37 +08:00
En
8c79bc81c1 Merge branch 'main_dev' 2026-03-11 16:24:41 +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
zhonghua
271e02032c 开发规范完善 2026-03-11 14:38:43 +08:00
zhonghua
0dbbdb0813 tem 2026-03-11 14:00:07 +08:00
zhonghua
7d86fb08c5 Merge branch 'main' of http://8.148.151.56:3000/tonytech/kindergarten_java into main_dev 2026-03-11 13:53:48 +08:00
zhonghua
a51e334107 Merge branch 'main' of http://8.148.151.56:3000/tonytech/kindergarten_java 2026-03-11 11:26:47 +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
zhonghua
aa71d18dd4 feat(stats): 完善前端统计与任务 API
Made-with: Cursor
2026-03-10 17:28:31 +08:00
zhonghua
5d96c832f6 refactor(api): 重构 API 接口以使用新的 readingApi 客户端
- 将多个 API 函数从旧的 http 实现迁移到新的 readingApi 客户端
- 更新登录、登出、获取用户信息等功能以适应新的数据结构
- 统一课程、主题和课时的 API 调用方式,简化代码结构
- 保留部分旧接口以兼容后端,确保现有功能不受影响
2026-03-10 16:44:24 +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
70e9683506 fix(auth): 修正后端返回数据结构,从 res.data 中提取登录数据 2026-03-09 19:09:53 +08:00
En
73ed8015b9 fix(login): 添加登录调试日志 2026-03-09 19:05:59 +08:00
En
a2b9b3478d feat(debug): 添加远程调试支持,开放 JDWP 端口 5005 2026-03-09 18:37:59 +08:00
En
c7737ea490 fix(db): 本地开发配置改用远程开发服务器数据库 8.148.151.56 2026-03-09 18:19:58 +08:00
En
745f4e4b06 feat(api): 新增自动化 API 更新工具和协作文档
- 添加 api-generator.bat/api-generator.sh 脚本,简化后端接口修改后的前端 API 同步流程
- 新增 reading-platform-frontend/README.md,说明 API 开发协作规范
- 更新 docs/开发协作指南.md,补充协作模式说明和新功能开发检查清单
- 同步最新 API 规范和生成的 TypeScript 类型代码

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:04:29 +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
14b38039b2 fix(deploy): 为 docker-compose 添加 image 标签以对齐 CI/CD 流程
switch.sh 依赖 reading-platform-backend:latest 和
reading-platform-frontend:latest 镜像名来启动容器,
不加 image 字段时 docker compose build 会生成错误的镜像名
导致 CI/CD 部署后实际运行的仍是旧镜像

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 16:08:55 +08:00
lesingle
3f2815a47e docs: 更新开发协作指南,补充数据库连接信息和本地启动方式
- 新增共享数据库连接信息(Host/Port/账号密码/JDBC URL)
- 更新本地启动方式为 Docker Compose,说明共享数据库机制
- 更新 FAQ 中数据库连接失败的排查方法

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 16:11:49 +08:00
lesingle
0d506cf19c chore(deploy): 本地开发连接远程开发服务器数据库
- 去掉本地 MySQL 容器,直接连 8.148.151.56:3306
- 关闭 Flyway 自动迁移(SPRING_FLYWAY_ENABLED=false),防止本地误跑

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 16:07:06 +08:00
lesingle
146923bcdd chore(deploy): 更新本地开发 docker-compose 使用 Java 后端
- docker-compose.yml: 替换 NestJS 后端为 Java (Spring Boot) + MySQL 8.0
  - 前端端口 3000:80,后端端口 8080:8080,MySQL 端口 3306:3306
- nginx.conf: proxy_pass 改为 http://backend:8080(Java 内部端口)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 15:41:28 +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
71d8819361 fix(frontend): 修复登录响应字段映射,适配 Java 后端平铺结构 2026-03-03 14:24:59 +08:00
30677a7c02 fix(auth): 登录接口同时接受 account 和 username 字段 2026-03-03 14:21:21 +08:00
995e18d399 fix(frontend): 修复本地开发代理指向 Java 后端端口 8080 2026-03-03 14:19:25 +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
3f3ed084f7 docs: 新增开发协作指南(前后端/测试/原型工程师) 2026-03-03 11:43:17 +08:00
076d832a42 chore(api): 将 OpenAPI 规范文件改为 YAML 格式
- api-spec.json → api-spec.yml(内容相同,YAML 更易读)
- api:fetch 脚本自动转换 JSON→YAML 后删除 json 临时文件

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 11:11:53 +08:00
2a394a4882 chore(api): 接入 orval 自动生成 API 客户端
- 新增 orval.config.ts:从 OpenAPI spec 自动生成 TypeScript 代码
- 新增 src/api/request.ts:orval mutator,复用现有 axios 实例
- 新增 src/api/generated/:自动生成的 API 函数和类型定义(106个接口,155个类型)
- 新增 api-spec.json:后端 OpenAPI 规范快照
- package.json 新增脚本:api:fetch / api:gen / api:update

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 11:03:56 +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
5e0c87768c chore(frontend): 更新依赖锁文件和组件类型声明
- package-lock.json:本地 npm install 后依赖树更新
- components.d.ts:unplugin-vue-components 自动生成的
  组件类型声明同步更新
2026-02-28 19:33:01 +08:00
0b3998489d feat(deploy): 添加 docker-compose 一键部署配置
定义 backend 和 frontend 两个服务:
- backend 监听 3001 端口,设置 Prisma OpenSSL 3.x 环境变量,
  JWT_SECRET 通过宿主机环境变量注入避免硬编码
- frontend 监听 8080 端口,depends_on backend 保证启动顺序

使用方式:
  JWT_SECRET=your-secret docker-compose up -d
2026-02-28 19:32:54 +08:00
92071e5ba6 feat(frontend): 添加 Docker 部署配置和生产环境变量
- Dockerfile:多阶段构建,node:20-alpine 编译 Vue3,
  nginx:alpine 提供静态资源服务,使用国内 npm 镜像加速
- nginx.conf:配置 Vue Router history 模式(try_files),
  /api/ 和 /uploads/ 反向代理到后端容器
- .env.production:生产环境 API 地址(8.148.151.56:3001)
- .gitignore:放开 .env.production 提交权限(无敏感信息)
2026-02-28 19:32:45 +08:00
3a921250c3 feat(backend): 添加 Docker 部署配置
- Dockerfile:基于 node:20-alpine,包含 TypeScript 编译和
  Prisma Client 生成步骤,对外暴露 3001 端口
- .env.example:提供环境变量模板,团队成员按此创建 .env 文件
  (.env 本身含敏感信息,已加入 .gitignore 不提交)
2026-02-28 19:32:14 +08:00
f056bf72a2 fix(backend): 修复 Prisma 在 Alpine Linux 容器中的 OpenSSL 兼容性问题
在 generator client 中添加 binaryTargets,显式指定
linux-musl-openssl-3.0.x,解决 Alpine Linux 3.18+ 使用
OpenSSL 3.x 时 Prisma 引擎无法加载的问题。
2026-02-28 19:32:03 +08:00
2c67204ef7 添加 dev.db 数据库文件 2026-02-28 17:53:32 +08:00
7f757b6a63 初始提交:幼儿园阅读平台三端代码
- reading-platform-backend:NestJS 后端
- reading-platform-frontend:Vue3 前端
- reading-platform-java:Spring Boot 服务端
2026-02-28 17:51:15 +08:00