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

2.9 KiB
Raw Blame 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. 低优先级 - 优化建议

    • 添加更多日志
    • 异常处理优化