190 lines
6.3 KiB
Markdown
190 lines
6.3 KiB
Markdown
|
|
# 开发日志 - 2026-03-12
|
|||
|
|
|
|||
|
|
## 今日任务:Java 后端完善 - 根据 NestJS 后端补充缺失模块
|
|||
|
|
|
|||
|
|
### 任务背景
|
|||
|
|
|
|||
|
|
根据统一开发规范,项目将全面使用 Java (Spring Boot) 后端,不再使用 Node.js/NestJS。今日任务是根据 NestJS 后端代码,将 Java 后端缺失的模块全部补全。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 完成的工作
|
|||
|
|
|
|||
|
|
### Phase 1: 分析 NestJS 后端结构 ✅
|
|||
|
|
|
|||
|
|
分析了以下 NestJS 模块的代码结构:
|
|||
|
|
- Tenant (租户管理)
|
|||
|
|
- CoursePackage (课程包/套餐管理)
|
|||
|
|
- CourseLesson (课程环节管理)
|
|||
|
|
- FileUpload (文件上传)
|
|||
|
|
- Resource (资源库管理)
|
|||
|
|
- Theme (主题字典)
|
|||
|
|
- SchoolCourse (校本课程)
|
|||
|
|
|
|||
|
|
### Phase 2: 创建实体类 (Entity) ✅
|
|||
|
|
|
|||
|
|
创建了以下实体类:
|
|||
|
|
1. `CoursePackage.java` - 课程套餐
|
|||
|
|
2. `CoursePackageCourse.java` - 套餐课程关联
|
|||
|
|
3. `TenantPackage.java` - 租户套餐关联
|
|||
|
|
4. `CourseLesson.java` - 课程环节
|
|||
|
|
5. `LessonStep.java` - 教学环节
|
|||
|
|
6. `LessonStepResource.java` - 环节资源关联
|
|||
|
|
7. `Theme.java` - 主题字典
|
|||
|
|
|
|||
|
|
### Phase 3: 创建 Mapper 层 ✅
|
|||
|
|
|
|||
|
|
创建了对应的 Mapper 接口:
|
|||
|
|
1. `CoursePackageMapper.java`
|
|||
|
|
2. `CoursePackageCourseMapper.java`
|
|||
|
|
3. `TenantPackageMapper.java`
|
|||
|
|
4. `CourseLessonMapper.java`
|
|||
|
|
5. `LessonStepMapper.java`
|
|||
|
|
6. `LessonStepResourceMapper.java`
|
|||
|
|
7. `ThemeMapper.java`
|
|||
|
|
|
|||
|
|
### Phase 4: 创建 DTO 类 ✅
|
|||
|
|
|
|||
|
|
创建了请求 DTO:
|
|||
|
|
1. `PackageCreateRequest.java` - 创建套餐请求
|
|||
|
|
2. `ThemeCreateRequest.java` - 创建主题请求
|
|||
|
|
3. `CourseLessonCreateRequest.java` - 创建课程环节请求
|
|||
|
|
|
|||
|
|
### Phase 5: 创建 Service 层 ✅
|
|||
|
|
|
|||
|
|
创建了以下服务类:
|
|||
|
|
1. `ThemeService.java` - 主题字典服务
|
|||
|
|
- findAll, findById, create, update, delete, reorder
|
|||
|
|
|
|||
|
|
2. `CoursePackageService.java` - 课程套餐服务
|
|||
|
|
- findAllPackages, findOnePackage, createPackage, updatePackage, deletePackage
|
|||
|
|
- setPackageCourses, submitPackage, reviewPackage, publishPackage, offlinePackage
|
|||
|
|
- findTenantPackages, renewTenantPackage
|
|||
|
|
|
|||
|
|
3. `CourseLessonService.java` - 课程环节服务
|
|||
|
|
- findByCourseId, findById, findByType, create, update, delete, reorder
|
|||
|
|
- findSteps, createStep, updateStep, deleteStep, reorderSteps
|
|||
|
|
- findCourseLessonsForTeacher (带权限检查)
|
|||
|
|
|
|||
|
|
4. `FileStorageService.java` - 文件存储服务
|
|||
|
|
- saveFile, deleteFile, validateFileType, validateFileSize
|
|||
|
|
|
|||
|
|
5. `ResourceLibraryService.java` - 资源库服务
|
|||
|
|
- findAllLibraries, findLibraryById, createLibrary, updateLibrary, deleteLibrary
|
|||
|
|
- findAllItems, findItemById, createItem, updateItem, deleteItem, batchDeleteItems
|
|||
|
|
- getStats
|
|||
|
|
|
|||
|
|
### Phase 6: 创建 Controller 层 ✅
|
|||
|
|
|
|||
|
|
创建了以下控制器:
|
|||
|
|
|
|||
|
|
**超管端:**
|
|||
|
|
1. `AdminThemeController.java` - 主题字典管理
|
|||
|
|
- GET /api/v1/admin/themes
|
|||
|
|
- GET /api/v1/admin/themes/{id}
|
|||
|
|
- POST /api/v1/admin/themes
|
|||
|
|
- PUT /api/v1/admin/themes/{id}
|
|||
|
|
- DELETE /api/v1/admin/themes/{id}
|
|||
|
|
- PUT /api/v1/admin/themes/reorder
|
|||
|
|
|
|||
|
|
2. `AdminPackageController.java` - 课程套餐管理
|
|||
|
|
- GET /api/v1/admin/packages (分页查询)
|
|||
|
|
- GET /api/v1/admin/packages/{id}
|
|||
|
|
- POST /api/v1/admin/packages (创建)
|
|||
|
|
- PUT /api/v1/admin/packages/{id} (更新)
|
|||
|
|
- DELETE /api/v1/admin/packages/{id}
|
|||
|
|
- PUT /api/v1/admin/packages/{id}/courses (设置课程)
|
|||
|
|
- POST /api/v1/admin/packages/{id}/submit (提交审核)
|
|||
|
|
- POST /api/v1/admin/packages/{id}/review (审核)
|
|||
|
|
- POST /api/v1/admin/packages/{id}/publish (发布)
|
|||
|
|
- POST /api/v1/admin/packages/{id}/offline (下线)
|
|||
|
|
|
|||
|
|
3. `AdminCourseLessonController.java` - 课程环节管理
|
|||
|
|
- GET /api/v1/admin/courses/{courseId}/lessons
|
|||
|
|
- GET /api/v1/admin/courses/{courseId}/lessons/{id}
|
|||
|
|
- GET /api/v1/admin/courses/{courseId}/lessons/type/{lessonType}
|
|||
|
|
- POST /api/v1/admin/courses/{courseId}/lessons (创建)
|
|||
|
|
- PUT /api/v1/admin/courses/{courseId}/lessons/{id} (更新)
|
|||
|
|
- DELETE /api/v1/admin/courses/{courseId}/lessons/{id}
|
|||
|
|
- PUT /api/v1/admin/courses/{courseId}/lessons/reorder
|
|||
|
|
- GET /api/v1/admin/courses/{courseId}/lessons/{lessonId}/steps
|
|||
|
|
- POST /api/v1/admin/courses/{courseId}/lessons/{lessonId}/steps (创建环节)
|
|||
|
|
- PUT /api/v1/admin/courses/{courseId}/lessons/steps/{stepId} (更新环节)
|
|||
|
|
- DELETE /api/v1/admin/courses/{courseId}/lessons/steps/{stepId}
|
|||
|
|
- PUT /api/v1/admin/courses/{courseId}/lessons/{lessonId}/steps/reorder
|
|||
|
|
|
|||
|
|
4. `AdminResourceController.java` - 资源库管理
|
|||
|
|
- GET /api/v1/admin/resources/libraries (分页查询)
|
|||
|
|
- GET /api/v1/admin/resources/libraries/{id}
|
|||
|
|
- POST /api/v1/admin/resources/libraries (创建)
|
|||
|
|
- PUT /api/v1/admin/resources/libraries/{id}
|
|||
|
|
- DELETE /api/v1/admin/resources/libraries/{id}
|
|||
|
|
- GET /api/v1/admin/resources/items (分页查询)
|
|||
|
|
- GET /api/v1/admin/resources/items/{id}
|
|||
|
|
- POST /api/v1/admin/resources/items (创建)
|
|||
|
|
- PUT /api/v1/admin/resources/items/{id}
|
|||
|
|
- DELETE /api/v1/admin/resources/items/{id}
|
|||
|
|
- POST /api/v1/admin/resources/items/batch-delete
|
|||
|
|
- GET /api/v1/admin/resources/stats (统计)
|
|||
|
|
|
|||
|
|
**学校端:**
|
|||
|
|
1. `SchoolPackageController.java` - 套餐管理
|
|||
|
|
- GET /api/v1/school/packages (查询租户套餐)
|
|||
|
|
- POST /api/v1/school/packages/{id}/renew (续费)
|
|||
|
|
|
|||
|
|
**公共:**
|
|||
|
|
1. `FileUploadController.java` - 文件上传
|
|||
|
|
- POST /api/v1/files/upload (上传文件)
|
|||
|
|
- DELETE /api/v1/files/delete (删除文件)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 技术规范遵循
|
|||
|
|
|
|||
|
|
所有代码严格遵循以下规范:
|
|||
|
|
1. **Spring Boot 3.2+** - 使用最新版本
|
|||
|
|
2. **MyBatis-Plus** - 简化 CRUD 操作
|
|||
|
|
3. **三层架构** - Controller → Service → Mapper
|
|||
|
|
4. **统一响应格式** - Result<T>
|
|||
|
|
5. **OpenAPI 文档** - 使用 Swagger 注解
|
|||
|
|
6. **类型安全** - 强类型校验
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 待完成任务
|
|||
|
|
|
|||
|
|
1. **数据库迁移脚本** - 需要为新实体创建对应的数据库表
|
|||
|
|
2. **单元测试** - 为新创建的 Service 编写测试用例
|
|||
|
|
3. **集成测试** - 验证 API 接口功能
|
|||
|
|
4. **前端适配** - 更新前端 API 调用地址
|
|||
|
|
5. **Tenant 完善** - 完善 AdminTenantController 的缺失功能
|
|||
|
|
6. **SchoolCourse 完善** - 完善校本课程功能
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 文件统计
|
|||
|
|
|
|||
|
|
**新增文件:**
|
|||
|
|
- Entity: 7 个
|
|||
|
|
- Mapper: 7 个
|
|||
|
|
- DTO: 3 个
|
|||
|
|
- Service: 5 个
|
|||
|
|
- Controller: 5 个
|
|||
|
|
|
|||
|
|
**总计:27 个新文件**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 下一步计划
|
|||
|
|
|
|||
|
|
1. 创建数据库迁移脚本(Flyway)
|
|||
|
|
2. 完善 Tenant 相关功能
|
|||
|
|
3. 完善 SchoolCourse 相关功能
|
|||
|
|
4. 启动 Java 后端进行功能测试
|
|||
|
|
5. 更新启动脚本,只启动 Java 后端
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
*本日志记录于 2026-03-12*
|
|||
|
|
*任务状态:Java 后端核心模块已补充完成*
|