zhibo/Zhibo/zhibo-h/fix-today-bugs.md

66 lines
2.9 KiB
Markdown
Raw Normal View History

# 今日新增代码Bug修复清单
## 发现的问题
### 1. Lombok编译错误 ❌
**问题**: `java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment`
**原因**: Lombok版本与JDK 1.8不兼容Spring Boot 2.2.6默认的Lombok版本可能过旧
**解决方案**: 在父pom.xml中显式指定Lombok版本为1.18.20兼容JDK 8
### 2. RedisUtil缺少lTrim方法 ❌
**问题**: `OfflineMessageServiceImpl.java`中调用了`redisUtil.lTrim()`方法,但`RedisUtil.java`中没有实现该方法
**位置**:
- `Zhibo/zhibo-h/crmeb-front/src/main/java/com/zbkj/front/service/impl/OfflineMessageServiceImpl.java:169`
- `Zhibo/zhibo-h/crmeb-common/src/main/java/com/zbkj/common/utils/RedisUtil.java`
**解决方案**: 在RedisUtil中添加lTrim方法
### 3. RedisUtil缺少delete方法 ❌
**问题**: `OfflineMessageServiceImpl.java`中调用了`redisUtil.delete()`方法但RedisUtil中只有`del()`方法
**位置**: `Zhibo/zhibo-h/crmeb-front/src/main/java/com/zbkj/front/service/impl/OfflineMessageServiceImpl.java:165`
**解决方案**: 在RedisUtil中添加delete方法作为del方法的别名
### 4. HeartbeatScheduler缺少getRoomSessions和getConversationSessions方法 ❌
**问题**: `HeartbeatScheduler.java`中调用了`liveChatHandler.getRoomSessions()`和`privateChatHandler.getConversationSessions()`但这两个Handler类中没有公开这些方法
**位置**:
- `Zhibo/zhibo-h/crmeb-front/src/main/java/com/zbkj/front/websocket/HeartbeatScheduler.java:82, 145`
- `Zhibo/zhibo-h/crmeb-front/src/main/java/com/zbkj/front/websocket/LiveChatHandler.java`
- `Zhibo/zhibo-h/crmeb-front/src/main/java/com/zbkj/front/websocket/PrivateChatHandler.java`
**解决方案**: 在LiveChatHandler和PrivateChatHandler中添加公开的getter方法
### 5. 离线消息功能缺少与WebSocket的集成 ⚠️
**问题**: 当用户离线时私聊消息应该保存到离线消息队列但目前PrivateChatHandler中没有调用OfflineMessageService
**位置**: `Zhibo/zhibo-h/crmeb-front/src/main/java/com/zbkj/front/websocket/PrivateChatHandler.java`
**解决方案**: 在PrivateChatHandler中注入OfflineMessageService当用户不在线时保存离线消息
### 6. 心跳检测缺少@EnableScheduling注解 ⚠️
**问题**: HeartbeatScheduler使用了@Scheduled注解但应用主类可能没有启用调度功能
**位置**: `Zhibo/zhibo-h/crmeb-front/src/main/java/com/zbkj/front/CrmebFrontApplication.java`
**解决方案**: 在主类上添加@EnableScheduling注解
## 修复优先级
1. **高优先级** - 编译错误(必须修复才能运行)
- Lombok版本问题
- RedisUtil缺少方法
- HeartbeatScheduler缺少getter方法
2. **中优先级** - 功能不完整(影响功能正常使用)
- 离线消息与WebSocket集成
- 心跳检测调度启用
3. **低优先级** - 优化建议
- 添加更多日志
- 异常处理优化