Pārlūkot izejas kodu

feat(game): 添加排名分组树列表接口并完善团队查询功能

- 修改 GameRankGroupController 的 list 方法支持分页查询
- 新增 treeList 接口用于获取排名分组树列表
- 在 GameTeamServiceImpl 中添加基于排名分组的团队查询条件
- 实现通过祖先关系查询子分组下的团队数据
- 集成 PageQuery 分页参数支持
zhou 4 dienas atpakaļ
vecāks
revīzija
89381b81be

+ 10 - 1
ruoyi-modules/ruoyi-game-event/src/main/java/org/dromara/system/controller/GameRankGroupController.java

@@ -41,7 +41,16 @@ public class GameRankGroupController extends BaseController {
      */
     @SaCheckPermission("system:rankGroup:list")
     @GetMapping("/list")
-    public R<List<GameRankGroupVo>> list(GameRankGroupBo bo) {
+    public TableDataInfo<GameRankGroupVo> list(GameRankGroupBo bo, PageQuery pageQuery) {
+        return gameRankGroupService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 获取排名分组树列表
+     */
+    @SaCheckPermission("system:rankGroup:list")
+    @GetMapping("/treeList")
+    public R<List<GameRankGroupVo>> treeList(GameRankGroupBo bo) {
         List<GameRankGroupVo> list = gameRankGroupService.queryList(bo);
         return R.ok(gameRankGroupService.buildTree(list));
     }

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

@@ -128,6 +128,11 @@ public class GameTeamServiceImpl implements IGameTeamService {
 
         lqw.like(StringUtils.isNotBlank(bo.getTeamName()), GameTeam::getTeamName, bo.getTeamName());
         lqw.like(StringUtils.isNotBlank(bo.getTeamCode()), GameTeam::getTeamCode, bo.getTeamCode());
+        lqw.and(bo.getRgId() != null,
+                wrapper -> wrapper.eq(GameTeam::getRgId, bo.getRgId())
+                        .or()
+                        .apply("rg_id IN (SELECT rg_id FROM game_rank_group WHERE FIND_IN_SET({0}, ancestors))", bo.getRgId())
+        );
         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());