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

2.1 KiB

套餐和课程数据前端显示问题修复

问题描述

数据库中有很多套餐和课程包数据,但超管端、学校端、老师端页面上没有显示数据。接口有返回数据,但前端无法正确解析显示。

问题原因

  1. 字段格式不匹配:后端 gradeLevels 存储的是逗号分隔字符串,前端期望数组格式
  2. 数据结构不匹配:学校端期望的数据结构与后端返回不一致

修复内容

后端修改

1. CoursePackageResponse.java

  • gradeLevels: StringString[]
  • 新增 courses 字段(包含的课程列表)
  • 新增 startDateendDate 字段(租户套餐信息)

2. CoursePackageService.java

  • toResponse(): 添加 gradeLevels 转换和 courses 填充逻辑
  • findTenantPackages(): 返回 CoursePackageResponse 列表,包含租户套餐信息

3. CoursePackageMapper.java

  • 添加 MapStruct 类型转换方法处理 StringString[]

4. SchoolPackageController.java

  • 导入 CoursePackageResponse
  • 修改返回类型

前端修改

1. src/views/school/PackageView.vue

  • 修改数据访问路径:item.package.xxxitem.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