Browse Source

refactor(game-event): 重构比赛项目相关实体和接口

-移除 GameAthlete 中的 number 字段
- 更新 GameEventProject 中的裁判员相关字段和方法
- 调整 GameEventProjectBo 和 GameEventProjectVo相关属性
- 优化 GameEventProjectServiceImpl 中的裁判列表查询和更新逻辑
- 更新相关 XML 配置
zhou 2 weeks ago
parent
commit
885028204d

+ 1 - 1
.run/ruoyi-monitor-admin.run.xml

@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="ruoyi-monitor-admin" type="docker-deploy" factoryName="dockerfile">
+  <configuration default="false" name="ruoyi-monitor-admin" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
     <deployment type="dockerfile">
     <deployment type="dockerfile">
       <settings>
       <settings>
         <option name="imageTag" value="ruoyi/ruoyi-monitor-admin:5.4.1" />
         <option name="imageTag" value="ruoyi/ruoyi-monitor-admin:5.4.1" />

+ 0 - 5
ruoyi-modules/ruoyi-game-event/src/main/java/org/dromara/system/domain/GameAthlete.java

@@ -97,11 +97,6 @@ public class GameAthlete extends TenantEntity {
      */
      */
     private String groupType;
     private String groupType;
 
 
-    /**
-     * 号码
-     */
-    private String number;
-
     /**
     /**
      * 参与项目列表
      * 参与项目列表
      */
      */

+ 2 - 2
ruoyi-modules/ruoyi-game-event/src/main/java/org/dromara/system/domain/GameEventProject.java

@@ -50,9 +50,9 @@ public class GameEventProject extends TenantEntity {
     private String groupType;
     private String groupType;
 
 
     /**
     /**
-     * 裁判员ID
+     * 裁判
      */
      */
-    private String refereeId;
+    private String refereeGroup;
 
 
     /**
     /**
      * 比赛场地
      * 比赛场地

+ 0 - 6
ruoyi-modules/ruoyi-game-event/src/main/java/org/dromara/system/domain/bo/GameAthleteBo.java

@@ -117,12 +117,6 @@ public class GameAthleteBo extends BaseEntity {
 //    @NotBlank(message = "组别不能为空", groups = { AddGroup.class, EditGroup.class })
 //    @NotBlank(message = "组别不能为空", groups = { AddGroup.class, EditGroup.class })
     private String groupType;
     private String groupType;
 
 
-    /**
-     * 号码
-     */
-//    @NotBlank(message = "号码不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String number;
-
     /**
     /**
      * 参与项目列表
      * 参与项目列表
      */
      */

+ 4 - 5
ruoyi-modules/ruoyi-game-event/src/main/java/org/dromara/system/domain/bo/GameEventProjectBo.java

@@ -61,15 +61,14 @@ public class GameEventProjectBo extends BaseEntity {
     private String groupType;
     private String groupType;
 
 
     /**
     /**
-     * 裁判员ID
+     * 裁判
      */
      */
-//    @NotNull(message = "裁判员ID不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String refereeId;
+    private String refereeGroup;
 
 
     /**
     /**
-     * 裁判id集合
+     * 裁判组员集合
      */
      */
-    private List<String> refereeIds;
+    private List<String> refereeGroups;
 
 
     /**
     /**
      * 比赛场地
      * 比赛场地

+ 0 - 6
ruoyi-modules/ruoyi-game-event/src/main/java/org/dromara/system/domain/vo/GameAthleteVo.java

@@ -124,12 +124,6 @@ public class GameAthleteVo implements Serializable {
     @ExcelProperty(value = "组别")
     @ExcelProperty(value = "组别")
     private String groupType;
     private String groupType;
 
 
-    /**
-     * 号码
-     */
-    @ExcelProperty(value = "号码")
-    private String number;
-
     /**
     /**
      * 参与项目列表
      * 参与项目列表
      */
      */

+ 6 - 5
ruoyi-modules/ruoyi-game-event/src/main/java/org/dromara/system/domain/vo/GameEventProjectVo.java

@@ -65,13 +65,14 @@ public class GameEventProjectVo implements Serializable {
     private String groupType;
     private String groupType;
 
 
     /**
     /**
-     * 裁判员ID
+     * 裁判
      */
      */
-    // @ExcelProperty(value = "裁判员ID")
-    private String refereeId;
+    private String refereeGroup;
 
 
-    // @ExcelProperty(value = "裁判员ID")
-    private List<String> refereeIds;
+    /**
+     * 裁判组员
+     */
+    private List<String> refereeGroups;
 
 
     /**
     /**
      * 比赛场地
      * 比赛场地

+ 51 - 17
ruoyi-modules/ruoyi-game-event/src/main/java/org/dromara/system/service/impl/GameEventProjectServiceImpl.java

@@ -28,10 +28,7 @@ import org.dromara.system.domain.GameEventProject;
 import org.dromara.system.mapper.GameEventProjectMapper;
 import org.dromara.system.mapper.GameEventProjectMapper;
 import org.dromara.system.service.IGameEventProjectService;
 import org.dromara.system.service.IGameEventProjectService;
 
 
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 /**
 /**
@@ -57,7 +54,7 @@ public class GameEventProjectServiceImpl implements IGameEventProjectService {
     @Override
     @Override
     public GameEventProjectVo queryById(Long projectId) {
     public GameEventProjectVo queryById(Long projectId) {
         GameEventProjectVo vo = baseMapper.selectVoById(projectId);
         GameEventProjectVo vo = baseMapper.selectVoById(projectId);
-        vo.setRefereeIds(JSONUtil.toList(vo.getRefereeId(), String.class));
+        vo.setRefereeGroups(JSONUtil.toList(vo.getRefereeGroup(), String.class));
         return vo;
         return vo;
     }
     }
 
 
@@ -82,7 +79,8 @@ public class GameEventProjectServiceImpl implements IGameEventProjectService {
         Page<GameEventProjectVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
         Page<GameEventProjectVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
 
 
         // 使用 forEach 直接修改原对象
         // 使用 forEach 直接修改原对象
-        result.getRecords().forEach(vo -> {
+        result.getRecords()
+            .forEach(vo -> {
             Optional.ofNullable(vo.getEventId())
             Optional.ofNullable(vo.getEventId())
                 .filter(ObjectUtil::isNotEmpty)
                 .filter(ObjectUtil::isNotEmpty)
                 .ifPresent(eventId -> {
                 .ifPresent(eventId -> {
@@ -92,11 +90,11 @@ public class GameEventProjectServiceImpl implements IGameEventProjectService {
                     }
                     }
                 });
                 });
 
 
-            Optional.ofNullable(vo.getRefereeId())
+            Optional.ofNullable(vo.getRefereeGroup())
                 .filter(ObjectUtil::isNotEmpty)
                 .filter(ObjectUtil::isNotEmpty)
                 .ifPresent(refereeIdStr -> {
                 .ifPresent(refereeIdStr -> {
                     List<String> refereeList = JSONUtil.toList(refereeIdStr.toString(), String.class);
                     List<String> refereeList = JSONUtil.toList(refereeIdStr.toString(), String.class);
-                    vo.setRefereeIds(refereeList);
+                    vo.setRefereeGroups(refereeList);
                 });
                 });
         });
         });
 
 
@@ -111,11 +109,34 @@ public class GameEventProjectServiceImpl implements IGameEventProjectService {
      */
      */
     @Override
     @Override
     public List<GameEventProjectVo> queryList(GameEventProjectBo bo) {
     public List<GameEventProjectVo> queryList(GameEventProjectBo bo) {
-        if (bo.getEventId() == null){
-            bo.setEventId(RedisUtils.getCacheObject(GameEventConstant.DEFAULT_EVENT_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);
+            }
         }
         }
         LambdaQueryWrapper<GameEventProject> lqw = buildQueryWrapper(bo);
         LambdaQueryWrapper<GameEventProject> lqw = buildQueryWrapper(bo);
-        return baseMapper.selectVoList(lqw);
+        List<GameEventProjectVo> list = baseMapper.selectVoList(lqw);
+        list.forEach(vo -> {
+            Optional.ofNullable(vo.getEventId())
+                .filter(ObjectUtil::isNotEmpty)
+                .ifPresent(eventId -> {
+                    GameEvent gameEvent = gameEventMapper.selectById(eventId);
+                    if (gameEvent != null) {
+                        vo.setEventName(gameEvent.getEventName());
+                    }
+                });
+
+            Optional.ofNullable(vo.getRefereeGroup())
+                .filter(ObjectUtil::isNotEmpty)
+                .ifPresent(refereeIdStr -> {
+                    List<String> refereeList = JSONUtil.toList(refereeIdStr.toString(), String.class);
+                    vo.setRefereeGroups(refereeList);
+                });
+        });
+        return list;
     }
     }
 
 
     private LambdaQueryWrapper<GameEventProject> buildQueryWrapper(GameEventProjectBo bo) {
     private LambdaQueryWrapper<GameEventProject> buildQueryWrapper(GameEventProjectBo bo) {
@@ -157,13 +178,18 @@ public class GameEventProjectServiceImpl implements IGameEventProjectService {
      */
      */
     @Override
     @Override
     public Boolean insertByBo(GameEventProjectBo bo) {
     public Boolean insertByBo(GameEventProjectBo bo) {
-        if (bo.getEventId() == null){
-            bo.setEventId(RedisUtils.getCacheObject(GameEventConstant.DEFAULT_EVENT_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);
+            }
         }
         }
         GameEventProject add = MapstructUtils.convert(bo, GameEventProject.class);
         GameEventProject add = MapstructUtils.convert(bo, GameEventProject.class);
         validEntityBeforeSave(add);
         validEntityBeforeSave(add);
-        if (StrUtil.isNotEmpty(bo.getRefereeId())) {
-            add.setRefereeId(JSONUtil.toJsonStr(bo.getRefereeIds()));
+        if (CollectionUtils.isNotEmpty(bo.getRefereeGroups())) {
+            add.setRefereeGroup(JSONUtil.toJsonStr(bo.getRefereeGroups()));
         }
         }
         boolean flag = baseMapper.insert(add) > 0;
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
         if (flag) {
@@ -180,10 +206,18 @@ public class GameEventProjectServiceImpl implements IGameEventProjectService {
      */
      */
     @Override
     @Override
     public Boolean updateByBo(GameEventProjectBo bo) {
     public Boolean updateByBo(GameEventProjectBo bo) {
-        if (bo.getEventId() == null){
-            bo.setEventId(RedisUtils.getCacheObject(GameEventConstant.DEFAULT_EVENT_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);
+            }
         }
         }
         GameEventProject update = MapstructUtils.convert(bo, GameEventProject.class);
         GameEventProject update = MapstructUtils.convert(bo, GameEventProject.class);
+        if (CollectionUtils.isNotEmpty(bo.getRefereeGroups())) {
+            update.setRefereeGroup(JSONUtil.toJsonStr(bo.getRefereeGroups()));
+        }
         validEntityBeforeSave(update);
         validEntityBeforeSave(update);
         return baseMapper.updateById(update) > 0;
         return baseMapper.updateById(update) > 0;
     }
     }