Procházet zdrojové kódy

feat(game): 优化成绩管理功能增加分组查询和性能改进

- 在getBonusData方法中增加rgId参数支持分组查询
- 添加GameEventProjectMapper、GameTeamMapper和GameRankGroupMapper依赖注入
- 重构getBonusData实现,使用聚合SQL优化性能避免N+1查询问题
- 实现分组过滤逻辑,支持当前分组及所有子分组数据查询
- 优化代码格式和注释规范,统一代码风格
- 改进成绩查询和排名计算逻辑,提升大数据量处理效率
zhou před 4 dny
rodič
revize
0a6470ac1b

+ 2 - 2
ruoyi-modules/ruoyi-game-event/src/main/java/org/dromara/system/controller/GameScoreController.java

@@ -171,8 +171,8 @@ public class GameScoreController extends BaseController {
      */
     @SaCheckPermission("system:gameScore:list")
     @GetMapping("/getBonusData")
-    public R<Map<String, Object>> getBonusData(@RequestParam("eventId") Long eventId) {
-        return R.ok(gameScoreService.getBonusData(eventId));
+    public R<Map<String, Object>> getBonusData(@RequestParam("eventId") Long eventId, Long rgId) {
+        return R.ok(gameScoreService.getBonusData(eventId, rgId));
     }
 
     /**

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

@@ -128,7 +128,7 @@ public interface IGameScoreService {
     /**
      * 获取加分数据
      */
-    Map<String, Object> getBonusData(Long eventId);
+    Map<String, Object> getBonusData(Long eventId, Long rgId);
 
     /**
      * 更新加分数据

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 270 - 227
ruoyi-modules/ruoyi-game-event/src/main/java/org/dromara/system/service/impl/GameScoreServiceImpl.java


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

@@ -108,7 +108,6 @@ public class GameTeamServiceImpl implements IGameTeamService {
         LambdaQueryWrapper<GameTeam> lqw = Wrappers.lambdaQuery();
         lqw.orderByAsc(GameTeam::getTeamId);
         lqw.eq(bo.getEventId() != null, GameTeam::getEventId, bo.getEventId());
-
         Optional.ofNullable(bo.getEventName())
                 .filter(StringUtils::isNotBlank)
                 .ifPresent(eventName -> {
@@ -125,7 +124,6 @@ public class GameTeamServiceImpl implements IGameTeamService {
                         lqw.apply("1=0");
                     }
                 });
-
         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,
@@ -143,6 +141,7 @@ public class GameTeamServiceImpl implements IGameTeamService {
         lqw.eq(StringUtils.isNotBlank(bo.getNumberRange()), GameTeam::getNumberRange, bo.getNumberRange());
         lqw.eq(StringUtils.isNotBlank(bo.getTeamDescribe()), GameTeam::getTeamDescribe, bo.getTeamDescribe());
         lqw.eq(StringUtils.isNotBlank(bo.getStatus()), GameTeam::getStatus, bo.getStatus());
+        lqw.eq(GameTeam::getDelFlag, "0");
         return lqw;
     }
 

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů