后端变更: - TenantResponse 添加 classCount、lessonCount 字段用于统计显示 - TenantServiceImpl 添加 getTenantDetail() 和 buildTenantResponse() 方法 - 移除最近教师/学生/班级列表查询逻辑(性能优化) - 新增 StudentClassStatus 枚举类 前端变更: - TenantListView.vue 更新详情展示,使用统计数字替代列表 - admin.ts 更新 TenantDetail 类型定义 优化: - ClassServiceImpl 和 StudentServiceImpl 代码优化 Co-Authored-By: Claude <noreply@anthropic.com>
64 lines
2.6 KiB
Markdown
64 lines
2.6 KiB
Markdown
# 开发日志 - 2026-03-24
|
|
|
|
## 工作内容
|
|
|
|
### 租户管理详情页字段补充
|
|
|
|
#### 背景
|
|
超管端租户管理查看详情时,前端页面期望展示以下数据:
|
|
1. 使用统计:教师数、学生数、**班级数**、**授课数**
|
|
2. **最近教师列表**(姓名、手机号、状态)
|
|
3. **最近学生列表**(姓名、性别、阅读数)
|
|
4. **最近班级列表**(名称、年级、学生数)
|
|
|
|
#### 修改内容
|
|
|
|
**1. 后端 DTO 扩展** (`TenantResponse.java`)
|
|
- 新增 `classCount` 字段 - 班级数量
|
|
- 新增 `lessonCount` 字段 - 授课数量
|
|
- 新增 `teachers` 字段 - 最近教师列表(`TeacherItem` 内部类)
|
|
- 新增 `students` 字段 - 最近学生列表(`StudentItem` 内部类)
|
|
- 新增 `classes` 字段 - 最近班级列表(`ClassItem` 内部类)
|
|
|
|
**2. 后端 Service 层修改** (`TenantServiceImpl.java`)
|
|
- 新增 `getTenantDetail()` 方法 - 返回完整的租户详情响应
|
|
- 新增 `buildTenantResponse()` 方法 - 构建包含统计信息和列表的响应数据
|
|
- 新增 Mapper 依赖注入:
|
|
- `ClazzMapper` - 班级数据访问
|
|
- `StudentRecordMapper` - 学生阅读记录访问
|
|
- `StudentClassHistoryMapper` - 学生班级关联访问
|
|
|
|
**3. 后端 Controller 层修改** (`AdminTenantController.java`)
|
|
- 修改 `getTenant()` 方法调用 `tenantService.getTenantDetail(id)` 返回完整详情
|
|
|
|
**4. 前端类型定义更新** (`admin.ts`)
|
|
- 扩展 `TenantDetail` 接口:
|
|
- 添加 `classCount` 和 `lessonCount` 字段
|
|
- `students[].classId` 改为可选字段(因为学生班级关联是可选的)
|
|
|
|
**5. 前端详情组件更新** (`TenantListView.vue`)
|
|
- 修改统计数据显示使用 `detailData.classCount` 和 `detailData.lessonCount`
|
|
|
|
#### 技术细节
|
|
|
|
1. **学生班级 ID 获取**:由于学生实体没有直接的 `classId` 字段,通过 `student_class_history` 关联表查询学生当前所在的班级 ID。
|
|
|
|
2. **班级学生数统计**:通过 `student_class_history` 表查询每个班级的 ACTIVE 状态学生数量。
|
|
|
|
3. **学生阅读次数统计**:通过 `student_record` 表统计每个学生的记录数。
|
|
|
|
4. **教师授课次数统计**:通过 `schedule_plan` 表统计每个教师的排课数量。
|
|
|
|
#### 验证步骤
|
|
1. ✅ 后端编译成功
|
|
2. ⏳ 启动服务测试(待用户验证)
|
|
|
|
#### 文件清单
|
|
| 文件 | 修改内容 |
|
|
|------|---------|
|
|
| `TenantResponse.java` | 新增字段和内部类 |
|
|
| `TenantServiceImpl.java` | 新增方法和 Mapper 依赖 |
|
|
| `AdminTenantController.java` | 修改详情查询方法 |
|
|
| `admin.ts` | 扩展类型定义 |
|
|
| `TenantListView.vue` | 更新详情展示 |
|