Explorar el Código

fix(game): 修复游戏排名组插入时赛事ID为空的问题

- 添加赛事ID的缓存获取逻辑
- 当赛事ID为空时从Redis缓存中获取默认赛事ID
- 处理Integer和Long类型的缓存对象转换
- 添加空值检查避免空指针异常
zhou hace 1 semana
padre
commit
a9a3bea091

+ 10 - 2
ruoyi-modules/ruoyi-game-event/src/main/java/org/dromara/system/service/impl/GameRankGroupServiceImpl.java

@@ -102,10 +102,18 @@ public class GameRankGroupServiceImpl implements IGameRankGroupService {
      */
     @Override
     public Boolean insertByBo(GameRankGroupBo bo) {
+        //设置赛事ID
+        if (bo.getEventId() == null) {
+            Object cacheObject = RedisUtils.getCacheObject(GameEventConstant.DEFAULT_EVENT_ID);
+            if (cacheObject instanceof Integer) {
+                bo.setEventId(((Integer) cacheObject).longValue()); // 显式转换为 Long 类型
+            } else if (cacheObject instanceof Long) {
+                bo.setEventId((Long) cacheObject);
+            }
+        }
         GameRankGroup add = MapstructUtils.convert(bo, GameRankGroup.class);
-
+        if (add == null) return false;
         validEntityBeforeSave(add);
-
         // 设置祖级列表
         if (add.getParentId() != 0) {
             GameRankGroup parent = baseMapper.selectById(add.getParentId());