Ver código fonte

refactor(game-team): 重构团队查询逻辑

- 移除项目值字段的注释和验证注解
- 添加projectId字段用于精确查询
- 在查询条件中增加项目ID的存在性检查逻辑
- 通过子查询优化团队与运动员项目的关联匹配
zhou 1 semana atrás
pai
commit
7e5baadd9d

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

@@ -68,11 +68,8 @@ public class GameTeamBo extends BaseEntity {
     private String athleteValue;
     private List<Long> athleteList;
 
-    /**
-     * 参与项目列表
-     */
-//    @NotBlank(message = "参与项目列表不能为空", groups = { AddGroup.class, EditGroup.class })
     private String projectValue;
+    private Long projectId;
 
     /**
      * 人数

+ 1 - 0
ruoyi-modules/ruoyi-game-event/src/main/java/org/dromara/system/service/impl/GameTeamServiceImpl.java

@@ -157,6 +157,7 @@ public class GameTeamServiceImpl implements IGameTeamService {
         lqw.eq(StringUtils.isNotBlank(bo.getLeader()), GameTeam::getLeader, bo.getLeader());
         lqw.eq(StringUtils.isNotBlank(bo.getAthleteValue()), GameTeam::getAthleteValue, bo.getAthleteValue());
         lqw.eq(StringUtils.isNotBlank(bo.getProjectValue()), GameTeam::getProjectValue, bo.getProjectValue());
+        lqw.apply(bo.getProjectId() != null, "EXISTS (SELECT 1 FROM game_athlete ga WHERE ga.team_id = gt.team_id AND ga.del_flag = '0' AND (JSON_CONTAINS(ga.project_value, CAST({0} AS CHAR)) OR JSON_CONTAINS(ga.project_value, CONCAT('\"', {0}, '\"'))))", bo.getProjectId());
         lqw.eq(bo.getAthleteNum() != null, GameTeam::getAthleteNum, bo.getAthleteNum());
         lqw.eq(StringUtils.isNotBlank(bo.getNumberRange()), GameTeam::getNumberRange, bo.getNumberRange());
         lqw.eq(StringUtils.isNotBlank(bo.getTeamDescribe()), GameTeam::getTeamDescribe, bo.getTeamDescribe());