# 套餐和课程数据前端显示问题修复 ## 问题描述 数据库中有很多套餐和课程包数据,但超管端、学校端、老师端页面上没有显示数据。接口有返回数据,但前端无法正确解析显示。 ## 问题原因 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