539 lines
12 KiB
Markdown
539 lines
12 KiB
Markdown
# 习正陪伴项目 - 待完善功能清单
|
||
|
||
> 创建时间:2026-01-27
|
||
> 分析范围:后端Java代码 + 前端Vue代码
|
||
> 优先级:P0(紧急)、P1(重要)、P2(一般)、P3(优化)
|
||
|
||
---
|
||
|
||
## 📋 目录
|
||
|
||
1. [核心业务流程问题](#核心业务流程问题)
|
||
2. [功能未实现](#功能未实现)
|
||
3. [代码质量问题](#代码质量问题)
|
||
4. [第三方集成缺失](#第三方集成缺失)
|
||
5. [权限和安全问题](#权限和安全问题)
|
||
|
||
---
|
||
|
||
## 🔴 一、核心业务流程问题
|
||
|
||
### P0 - 工单系统未完整实现
|
||
|
||
**问题描述:**
|
||
- `WorkOrderServiceImpl` 只是一个空实现,没有任何业务逻辑
|
||
- 工单创建、更新、状态流转等核心功能缺失
|
||
- 前端调用工单接口,但后端没有对应的业务处理
|
||
|
||
**影响范围:**
|
||
- 管理师无法通过工单系统管理订单
|
||
- 派单流程依赖工单系统,但工单系统不完整
|
||
|
||
**代码位置:**
|
||
```java
|
||
// peidu/backend/src/main/java/com/peidu/service/impl/WorkOrderServiceImpl.java
|
||
@Service
|
||
public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder>
|
||
implements WorkOrderService {
|
||
// 空实现,没有任何业务逻辑
|
||
}
|
||
```
|
||
|
||
**建议修复:**
|
||
1. 实现工单创建逻辑(从订单自动创建工单)
|
||
2. 实现工单状态流转(待处理→处理中→已完成)
|
||
3. 实现工单分配(分配给管理师)
|
||
4. 实现工单补充反馈功能
|
||
|
||
---
|
||
|
||
### P0 - 派单后订单状态不一致
|
||
|
||
**问题描述:**
|
||
- 管理师派单后,订单状态应该从 `status=0`(待派单)变为 `status=1`(待接单)
|
||
- 但代码中派单逻辑直接更新 `teacherId`,状态流转不清晰
|
||
- 前端和后端对订单状态的理解不一致
|
||
|
||
**影响范围:**
|
||
- 陪伴员看不到待接单订单
|
||
- 管理师统计数据不准确
|
||
- 订单状态混乱
|
||
|
||
**代码位置:**
|
||
```java
|
||
// peidu/backend/src/main/java/com/peidu/controller/ManagerController.java
|
||
// 派单接口
|
||
@PostMapping("/assign")
|
||
public Result<Boolean> assignOrder(@RequestBody Map<String, Object> requestParams) {
|
||
// ...
|
||
updateWrapper.set(Order::getTeacherId, teacherId)
|
||
.set(Order::getStatus, 1); // 1-已派单/待接单
|
||
// ...
|
||
}
|
||
```
|
||
|
||
**建议修复:**
|
||
1. 明确订单状态定义和流转规则
|
||
2. 派单时同时更新 `teacherId` 和 `status`
|
||
3. 添加状态流转验证
|
||
4. 统一前后端状态定义
|
||
|
||
---
|
||
|
||
### P1 - 订单状态定义混乱
|
||
|
||
**问题描述:**
|
||
- 代码中存在多种订单状态定义,不统一
|
||
- 前端显示的状态文本与后端状态值不匹配
|
||
- 注释中的状态说明与实际代码不一致
|
||
|
||
**状态定义冲突:**
|
||
|
||
**方案A(支付后派单):**
|
||
```
|
||
0 - 待支付
|
||
0 - 待派单(已支付)
|
||
1 - 待接单(已派单)
|
||
2 - 待服务(已接单)
|
||
3 - 服务中
|
||
4 - 已完成
|
||
```
|
||
|
||
**方案B(派单后支付):**
|
||
```
|
||
0 - 待支付
|
||
1 - 待派单
|
||
2 - 待服务
|
||
3 - 服务中
|
||
4 - 已完成
|
||
```
|
||
|
||
**影响范围:**
|
||
- 前端显示错误的状态文本
|
||
- 统计数据不准确
|
||
- 业务逻辑混乱
|
||
|
||
**建议修复:**
|
||
1. 统一订单状态定义(建议使用方案A)
|
||
2. 更新所有相关代码和注释
|
||
3. 创建状态常量类,避免硬编码
|
||
4. 添加状态流转文档
|
||
|
||
---
|
||
|
||
## 🟡 二、功能未实现(TODO标记)
|
||
|
||
### P1 - 微信支付未集成
|
||
|
||
**问题描述:**
|
||
- 微信支付接口只有空实现,没有实际调用微信API
|
||
- 支付回调、退款等功能未实现
|
||
|
||
**代码位置:**
|
||
```java
|
||
// peidu/backend/src/main/java/com/peidu/util/WxPayUtil.java
|
||
public Map<String, String> unifiedOrder(...) {
|
||
// TODO: 调用微信支付统一下单接口
|
||
// 这里需要集成微信支付SDK
|
||
return new HashMap<>();
|
||
}
|
||
```
|
||
|
||
**建议修复:**
|
||
1. 集成微信支付SDK
|
||
2. 实现统一下单接口
|
||
3. 实现支付回调处理
|
||
4. 实现退款接口
|
||
|
||
---
|
||
|
||
### P1 - 支付宝支付未实现
|
||
|
||
**问题描述:**
|
||
- 支付宝支付接口只有占位代码,未实际实现
|
||
|
||
**代码位置:**
|
||
```java
|
||
// peidu/backend/src/main/java/com/peidu/service/impl/PaymentServiceImpl.java
|
||
else if ("alipay".equals(paymentMethod)) {
|
||
// TODO: 实现支付宝支付
|
||
result.put("paymentNo", record.getPaymentNo());
|
||
result.put("payUrl", "alipay://...");
|
||
}
|
||
```
|
||
|
||
**建议修复:**
|
||
1. 集成支付宝SDK
|
||
2. 实现支付接口
|
||
3. 实现回调处理
|
||
|
||
---
|
||
|
||
### P2 - 短信验证码未实现
|
||
|
||
**问题描述:**
|
||
- 手机号绑定、注册等功能需要短信验证码
|
||
- 但验证码发送和验证逻辑未实现
|
||
|
||
**代码位置:**
|
||
```java
|
||
// peidu/backend/src/main/java/com/peidu/service/impl/UserServiceImpl.java
|
||
public boolean bindPhone(Long userId, String phone, String code) {
|
||
// TODO: 验证短信验证码(生产环境需要实现)
|
||
// 测试环境可以跳过验证
|
||
return true;
|
||
}
|
||
```
|
||
|
||
**建议修复:**
|
||
1. 集成阿里云短信服务
|
||
2. 实现验证码发送
|
||
3. 实现验证码验证
|
||
4. 添加验证码过期机制
|
||
|
||
---
|
||
|
||
### P2 - 分销海报生成未实现
|
||
|
||
**问题描述:**
|
||
- 分销员推广需要生成专属海报
|
||
- 但海报生成功能未实现
|
||
|
||
**代码位置:**
|
||
```java
|
||
// peidu/backend/src/main/java/com/peidu/service/impl/DistributorServiceImpl.java
|
||
public Map<String, Object> generatePoster(Long distributorId, Map<String, Object> params) {
|
||
// TODO: 实现海报生成逻辑
|
||
Map<String, Object> result = new HashMap<>();
|
||
result.put("posterUrl", "https://example.com/poster/123456.jpg");
|
||
return result;
|
||
}
|
||
```
|
||
|
||
**建议修复:**
|
||
1. 使用图片处理库(如:Thumbnailator)
|
||
2. 设计海报模板
|
||
3. 生成带二维码的海报
|
||
4. 上传到OSS存储
|
||
|
||
---
|
||
|
||
### P2 - 成长记录导出未实现
|
||
|
||
**问题描述:**
|
||
- 家长需要导出学生成长记录
|
||
- 但Excel导出功能未实现
|
||
|
||
**代码位置:**
|
||
```java
|
||
// peidu/backend/src/main/java/com/peidu/service/impl/GrowthRecordServiceImpl.java
|
||
public byte[] exportReport(Long teacherId, Long studentId) {
|
||
// TODO: 实现Excel导出功能
|
||
// 1. 查询符合条件的记录
|
||
// 2. 使用POI或EasyExcel生成Excel文件
|
||
return new byte[0];
|
||
}
|
||
```
|
||
|
||
**建议修复:**
|
||
1. 使用EasyExcel库
|
||
2. 设计导出模板
|
||
3. 实现数据导出
|
||
4. 支持PDF导出
|
||
|
||
---
|
||
|
||
### P3 - 定时任务未实现
|
||
|
||
**问题描述:**
|
||
- 系统需要定时任务处理过期订单、优惠券等
|
||
- 但定时任务执行逻辑未实现
|
||
|
||
**代码位置:**
|
||
```java
|
||
// peidu/backend/src/main/java/com/peidu/service/impl/ScheduledTaskServiceImpl.java
|
||
public void executeTask(Long taskId) {
|
||
// TODO: 实现任务执行逻辑
|
||
log.info("执行定时任务: {}", task.getName());
|
||
}
|
||
```
|
||
|
||
**建议修复:**
|
||
1. 使用Spring @Scheduled注解
|
||
2. 实现订单超时取消
|
||
3. 实现优惠券过期处理
|
||
4. 实现数据统计任务
|
||
|
||
---
|
||
|
||
## 🟢 三、代码质量问题
|
||
|
||
### P1 - 缺少事务管理
|
||
|
||
**问题描述:**
|
||
- 部分涉及多表操作的方法没有添加 `@Transactional` 注解
|
||
- 可能导致数据不一致
|
||
|
||
**影响范围:**
|
||
- 支付流程
|
||
- 订单完成流程
|
||
- 分销佣金结算
|
||
|
||
**建议修复:**
|
||
1. 为关键业务方法添加事务注解
|
||
2. 设置合适的事务传播级别
|
||
3. 添加异常回滚机制
|
||
|
||
---
|
||
|
||
### P2 - 硬编码过多
|
||
|
||
**问题描述:**
|
||
- 代码中存在大量魔法数字和硬编码字符串
|
||
- 不利于维护和修改
|
||
|
||
**示例:**
|
||
```java
|
||
// 硬编码状态值
|
||
if (order.getStatus() == 0) { ... }
|
||
|
||
// 硬编码比例
|
||
BigDecimal teacherRate = new BigDecimal("0.70");
|
||
|
||
// 硬编码用户ID
|
||
order.setUserId(1L);
|
||
```
|
||
|
||
**建议修复:**
|
||
1. 创建常量类定义状态值
|
||
2. 将配置项移到配置文件
|
||
3. 使用枚举类型
|
||
4. 避免硬编码用户ID
|
||
|
||
---
|
||
|
||
### P2 - 缺少参数验证
|
||
|
||
**问题描述:**
|
||
- 很多Controller方法缺少参数验证
|
||
- 可能导致空指针异常
|
||
|
||
**建议修复:**
|
||
1. 使用 `@Valid` 注解验证DTO
|
||
2. 添加非空检查
|
||
3. 添加参数范围检查
|
||
4. 统一异常处理
|
||
|
||
---
|
||
|
||
### P3 - 日志不规范
|
||
|
||
**问题描述:**
|
||
- 部分代码使用 `System.out.println` 而不是日志框架
|
||
- 日志级别使用不当
|
||
|
||
**建议修复:**
|
||
1. 统一使用 `@Slf4j` 日志
|
||
2. 规范日志级别(debug/info/warn/error)
|
||
3. 添加关键业务日志
|
||
4. 移除调试用的 `System.out`
|
||
|
||
---
|
||
|
||
## 🔵 四、第三方集成缺失
|
||
|
||
### P1 - OSS文件存储未配置
|
||
|
||
**问题描述:**
|
||
- 图片、视频上传需要OSS存储
|
||
- 但OSS配置和上传逻辑可能不完整
|
||
|
||
**建议修复:**
|
||
1. 配置阿里云OSS
|
||
2. 实现文件上传接口
|
||
3. 实现文件删除接口
|
||
4. 添加文件大小和类型限制
|
||
|
||
---
|
||
|
||
### P2 - 微信模板消息未实现
|
||
|
||
**问题描述:**
|
||
- 通知系统需要发送微信模板消息
|
||
- 但微信API调用未实现
|
||
|
||
**代码位置:**
|
||
```java
|
||
// peidu/backend/src/main/java/com/peidu/service/impl/NotificationConfigServiceImpl.java
|
||
public boolean syncWechatTemplates() {
|
||
// TODO: 实现微信模板同步逻辑
|
||
return true;
|
||
}
|
||
```
|
||
|
||
**建议修复:**
|
||
1. 集成微信公众号SDK
|
||
2. 配置模板消息
|
||
3. 实现消息发送
|
||
4. 处理发送失败重试
|
||
|
||
---
|
||
|
||
### P3 - 地图服务未集成
|
||
|
||
**问题描述:**
|
||
- 签到签退需要GPS定位
|
||
- 但地图服务(腾讯地图/高德地图)未完全集成
|
||
|
||
**建议修复:**
|
||
1. 集成地图SDK
|
||
2. 实现地址解析
|
||
3. 实现距离计算
|
||
4. 实现地图展示
|
||
|
||
---
|
||
|
||
## 🟣 五、权限和安全问题
|
||
|
||
### P0 - 缺少权限验证
|
||
|
||
**问题描述:**
|
||
- 很多接口缺少权限验证
|
||
- 用户可能访问不属于自己的数据
|
||
|
||
**示例:**
|
||
```java
|
||
// 缺少权限验证
|
||
public GrowthRecord getDetail(Long id) {
|
||
// TODO: 添加家长权限验证
|
||
return growthRecordService.getById(id);
|
||
}
|
||
```
|
||
|
||
**建议修复:**
|
||
1. 添加用户身份验证
|
||
2. 添加数据权限验证
|
||
3. 实现角色权限控制
|
||
4. 添加操作日志
|
||
|
||
---
|
||
|
||
### P1 - Token验证不完整
|
||
|
||
**问题描述:**
|
||
- 部分接口使用临时用户ID(如:`userId = 1L`)
|
||
- Token验证和用户信息获取不完整
|
||
|
||
**建议修复:**
|
||
1. 完善JWT Token验证
|
||
2. 从Token中获取用户信息
|
||
3. 添加Token过期处理
|
||
4. 实现Token刷新机制
|
||
|
||
---
|
||
|
||
### P2 - 敏感信息未加密
|
||
|
||
**问题描述:**
|
||
- 用户手机号、身份证等敏感信息未加密存储
|
||
- 可能存在信息泄露风险
|
||
|
||
**建议修复:**
|
||
1. 敏感字段加密存储
|
||
2. 日志中脱敏处理
|
||
3. 接口返回数据脱敏
|
||
4. 添加数据访问审计
|
||
|
||
---
|
||
|
||
## 📊 六、统计汇总
|
||
|
||
### 问题分布
|
||
|
||
| 优先级 | 数量 | 占比 |
|
||
|--------|------|------|
|
||
| P0(紧急) | 4 | 16% |
|
||
| P1(重要) | 8 | 32% |
|
||
| P2(一般) | 9 | 36% |
|
||
| P3(优化) | 4 | 16% |
|
||
| **总计** | **25** | **100%** |
|
||
|
||
### 问题分类
|
||
|
||
| 类别 | 数量 |
|
||
|------|------|
|
||
| 核心业务流程 | 4 |
|
||
| 功能未实现 | 7 |
|
||
| 代码质量 | 4 |
|
||
| 第三方集成 | 3 |
|
||
| 权限安全 | 3 |
|
||
| 其他 | 4 |
|
||
|
||
---
|
||
|
||
## 🎯 七、修复建议优先级
|
||
|
||
### 第一阶段(1-2周)- 核心功能
|
||
|
||
1. ✅ **修复工单系统**(P0)
|
||
- 实现工单创建、更新、状态流转
|
||
- 完善派单流程
|
||
|
||
2. ✅ **统一订单状态定义**(P0)
|
||
- 明确状态流转规则
|
||
- 更新所有相关代码
|
||
|
||
3. ✅ **完善权限验证**(P0)
|
||
- 添加用户身份验证
|
||
- 添加数据权限验证
|
||
|
||
4. ✅ **集成微信支付**(P1)
|
||
- 实现支付接口
|
||
- 实现回调处理
|
||
|
||
### 第二阶段(2-3周)- 支撑功能
|
||
|
||
5. ✅ **实现短信验证码**(P2)
|
||
6. ✅ **完善事务管理**(P1)
|
||
7. ✅ **实现文件上传**(P1)
|
||
8. ✅ **集成微信模板消息**(P2)
|
||
|
||
### 第三阶段(3-4周)- 优化完善
|
||
|
||
9. ✅ **代码重构**(P2-P3)
|
||
- 消除硬编码
|
||
- 规范日志
|
||
- 优化代码结构
|
||
|
||
10. ✅ **实现其他功能**(P2-P3)
|
||
- 海报生成
|
||
- 数据导出
|
||
- 定时任务
|
||
|
||
---
|
||
|
||
## 📝 八、备注
|
||
|
||
1. **优先级说明**
|
||
- P0:影响核心业务,必须立即修复
|
||
- P1:影响重要功能,需要尽快修复
|
||
- P2:影响一般功能,可以计划修复
|
||
- P3:优化项,可以后续迭代
|
||
|
||
2. **修复原则**
|
||
- 先修复核心业务流程
|
||
- 再完善支撑功能
|
||
- 最后进行代码优化
|
||
|
||
3. **测试要求**
|
||
- 每个修复都要编写测试用例
|
||
- 回归测试确保不影响现有功能
|
||
- 性能测试确保系统稳定
|
||
|
||
---
|
||
|
||
**文档结束**
|
||
|
||
> 本文档列出了项目中所有待完善的功能和问题,建议按优先级逐步修复。
|
||
> 每完成一项修复,请在对应项目前打勾标记。
|