kindergarten_java/docs/dev-logs/2026-03-14-package-fix.md
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

59 lines
2.1 KiB
Markdown

# 套餐和课程数据前端显示问题修复
## 问题描述
数据库中有很多套餐和课程包数据,但超管端、学校端、老师端页面上没有显示数据。接口有返回数据,但前端无法正确解析显示。
## 问题原因
1. **字段格式不匹配**:后端 `gradeLevels` 存储的是逗号分隔字符串,前端期望数组格式
2. **数据结构不匹配**:学校端期望的数据结构与后端返回不一致
## 修复内容
### 后端修改
#### 1. CoursePackageResponse.java
- `gradeLevels`: `String``String[]`
- 新增 `courses` 字段(包含的课程列表)
- 新增 `startDate`、`endDate` 字段(租户套餐信息)
#### 2. CoursePackageService.java
- `toResponse()`: 添加 `gradeLevels` 转换和 `courses` 填充逻辑
- `findTenantPackages()`: 返回 `CoursePackageResponse` 列表,包含租户套餐信息
#### 3. CoursePackageMapper.java
- 添加 MapStruct 类型转换方法处理 `String``String[]`
#### 4. SchoolPackageController.java
- 导入 `CoursePackageResponse`
- 修改返回类型
### 前端修改
#### 1. src/views/school/PackageView.vue
- 修改数据访问路径:`item.package.xxx` → `item.xxx`
- 更新类型定义
#### 2. src/api/school.ts
- 更新 `CoursePackage` 接口定义
- 修改 API 返回类型
## 测试验证
1. 启动后端服务:`mvn spring-boot:run`
2. 启动前端服务:`npm run dev`
3. 访问超管端套餐列表页:`/admin/packages`
4. 访问学校端套餐视图页:`/school/package`
## 相关文件
- 后端:
- `reading-platform-java/src/main/java/com/reading/platform/dto/response/CoursePackageResponse.java`
- `reading-platform-java/src/main/java/com/reading/platform/service/CoursePackageService.java`
- `reading-platform-java/src/main/java/com/reading/platform/common/mapper/CoursePackageMapper.java`
- `reading-platform-java/src/main/java/com/reading/platform/controller/school/SchoolPackageController.java`
- 前端:
- `reading-platform-frontend/src/views/school/PackageView.vue`
- `reading-platform-frontend/src/api/school.ts`
## 修复日期
2026-03-14