From a540a342416302805adfb1599599bbbbaa191030 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 08 八月 2025 23:42:13 +0800
Subject: [PATCH] 赛事模块

---
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java |  271 +++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 236 insertions(+), 35 deletions(-)

diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java
index aa85df4..9954889 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dsh.communityWorldCup.entity.WorldCup;
@@ -691,8 +692,118 @@
                 .eq("participant", 1).eq("worldCupId", worldCupCompetitor.getWorldCupId()));
         WorldCup worldCup = worldCupService.getById(blueList.get(0).getWorldCupId());
         for (WorldCupCompetitor cupCompetitor : blueList) {
-            //如果之前输了,现在赢/平了,需要增加积分
-            if(cupCompetitor.getMatchResult() == -1 && (blue.compareTo(red) > 0 || blue.compareTo(red) == 0)){
+            //如果之前输了,现在赢了,需要增加积分
+            if(cupCompetitor.getMatchResult() == -1 && (blue.compareTo(red) > 0 )){
+                //先扣除
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(cupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getLoseIntegral() * -1);
+                vo.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
+
+                //增加积分明细
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getWinIntegral());
+                vo1.setType(7);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+                cupCompetitor.setMatchResult(1);
+                cupCompetitor.setWinIntegral(worldCup.getWinIntegral());
+                cupCompetitor.setLoseIntegral(0);
+            }
+            // 输 -> 平
+            if(cupCompetitor.getMatchResult() == -1 && (blue.compareTo(red) == 0 )){
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getLoseIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(cupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getDrawIntegral());
+                vo.setType(7);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
+
+                cupCompetitor.setMatchResult(0);
+                cupCompetitor.setDrawIntegral(worldCup.getDrawIntegral());
+                cupCompetitor.setLoseIntegral(0);
+            }
+            //如果之前赢了,现在输了,需要扣减积分
+            if(cupCompetitor.getMatchResult() == 1 && blue.compareTo(red) < 0){
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getWinIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(cupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getLoseIntegral());
+                vo.setType(7);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
+
+                cupCompetitor.setMatchResult(-1);
+                cupCompetitor.setWinIntegral(0);
+                cupCompetitor.setLoseIntegral(worldCup.getLoseIntegral());
+            }
+            //如果之前赢了,现在平了,需要扣减积分
+            if(cupCompetitor.getMatchResult() == 1 && blue.compareTo(red) == 0){
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getWinIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(cupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getDrawIntegral());
+                vo.setType(7);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
+
+                cupCompetitor.setMatchResult(0);
+                cupCompetitor.setWinIntegral(0);
+                cupCompetitor.setDrawIntegral(worldCup.getDrawIntegral());
+            }
+            //如果之前平了,现在输了,需要扣减积分
+            if(cupCompetitor.getMatchResult() == 0 && blue.compareTo(red) < 0){
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getDrawIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(cupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getLoseIntegral());
+                vo.setType(7);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
+
+                cupCompetitor.setMatchResult(-1);
+                cupCompetitor.setDrawIntegral(0);
+                cupCompetitor.setLoseIntegral(worldCup.getLoseIntegral());
+            }
+            //如果之前平了,现在赢了,需要扣减积分
+            if(cupCompetitor.getMatchResult() == 0 && blue.compareTo(red) >0){
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getDrawIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
                 //增加积分明细
                 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                 vo.setAppUserId(cupCompetitor.getAppUserId());
@@ -701,31 +812,8 @@
                 userIntegralChangesClient.saveUserIntegralChanges(vo);
 
                 cupCompetitor.setMatchResult(1);
+                cupCompetitor.setDrawIntegral(0);
                 cupCompetitor.setWinIntegral(worldCup.getWinIntegral());
-            }
-            //如果之前赢了,现在输了,需要扣减积分
-            if(cupCompetitor.getMatchResult() == 1 && blue.compareTo(red) < 0){
-                //增加积分明细
-                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
-                vo.setAppUserId(cupCompetitor.getAppUserId());
-                vo.setIntegral(worldCup.getWinIntegral() * -1);
-                vo.setType(8);
-                userIntegralChangesClient.saveUserIntegralChanges(vo);
-
-                cupCompetitor.setMatchResult(-1);
-                cupCompetitor.setWinIntegral(0);
-            }
-            //如果之前平了,现在输了,需要扣减积分
-            if(cupCompetitor.getMatchResult() == 0 && blue.compareTo(red) < 0){
-                //增加积分明细
-                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
-                vo.setAppUserId(cupCompetitor.getAppUserId());
-                vo.setIntegral(worldCup.getWinIntegral() * -1);
-                vo.setType(8);
-                userIntegralChangesClient.saveUserIntegralChanges(vo);
-
-                cupCompetitor.setMatchResult(-1);
-                cupCompetitor.setWinIntegral(0);
             }
             cupCompetitor.setOurScore(blue);
             cupCompetitor.setOpponentScore(red);
@@ -736,8 +824,15 @@
         List<WorldCupCompetitor> redList = this.list(new QueryWrapper<WorldCupCompetitor>().eq("code", worldCupCompetitor.getCode())
                 .eq("participant", 2).eq("worldCupId", worldCupCompetitor.getWorldCupId()));
         for (WorldCupCompetitor cupCompetitor : redList) {
-            //如果之前输了,现在赢/平了,需要增加积分
-            if(cupCompetitor.getMatchResult() == -1 && (red.compareTo(blue) > 0 || red.compareTo(blue) == 0)){
+            //如果之前输了,现在赢/了,需要增加积分
+            if(cupCompetitor.getMatchResult() == -1 && (red.compareTo(blue) > 0)){
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getLoseIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
                 //增加积分明细
                 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                 vo.setAppUserId(cupCompetitor.getAppUserId());
@@ -747,30 +842,113 @@
 
                 cupCompetitor.setMatchResult(1);
                 cupCompetitor.setWinIntegral(worldCup.getWinIntegral());
+                cupCompetitor.setLoseIntegral(0);
+            }
+            //如果之前输了,现在平了,需要增加积分
+            if(cupCompetitor.getMatchResult() == -1 && ( red.compareTo(blue) == 0)){
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getLoseIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(cupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getDrawIntegral());
+                vo.setType(7);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
+
+                cupCompetitor.setMatchResult(0);
+                cupCompetitor.setDrawIntegral(worldCup.getDrawIntegral());
+                cupCompetitor.setLoseIntegral(0);
             }
             //如果之前赢了,现在输了,需要扣减积分
             if(cupCompetitor.getMatchResult() == 1 && red.compareTo(blue) < 0){
+
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getWinIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+
                 //增加积分明细
                 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                 vo.setAppUserId(cupCompetitor.getAppUserId());
-                vo.setIntegral(worldCup.getWinIntegral() * -1);
-                vo.setType(8);
+                vo.setIntegral(worldCup.getLoseIntegral() );
+                vo.setType(7);
                 userIntegralChangesClient.saveUserIntegralChanges(vo);
 
                 cupCompetitor.setMatchResult(-1);
                 cupCompetitor.setWinIntegral(0);
+                cupCompetitor.setLoseIntegral(worldCup.getLoseIntegral());
+            }
+            //如果之前赢了,现在平了,需要扣减积分
+            if(cupCompetitor.getMatchResult() == 1 && red.compareTo(blue) ==0){
+
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getWinIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(cupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getDrawIntegral() );
+                vo.setType(7);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
+
+                cupCompetitor.setMatchResult(0);
+                cupCompetitor.setWinIntegral(0);
+                cupCompetitor.setDrawIntegral(worldCup.getDrawIntegral());
             }
             //如果之前平了,现在输了,需要扣减积分
             if(cupCompetitor.getMatchResult() == 0 && red.compareTo(blue) < 0){
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getDrawIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+
                 //增加积分明细
                 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
                 vo.setAppUserId(cupCompetitor.getAppUserId());
-                vo.setIntegral(worldCup.getWinIntegral() * -1);
-                vo.setType(8);
+                vo.setIntegral(worldCup.getLoseIntegral());
+                vo.setType(7);
                 userIntegralChangesClient.saveUserIntegralChanges(vo);
 
                 cupCompetitor.setMatchResult(-1);
-                cupCompetitor.setWinIntegral(0);
+                cupCompetitor.setDrawIntegral(0);
+                cupCompetitor.setLoseIntegral(worldCup.getLoseIntegral());
+            }
+            //如果之前平了,现在赢了,需要扣减积分
+            if(cupCompetitor.getMatchResult() == 0 && red.compareTo(blue) >0){
+                //先扣除
+                SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
+                vo1.setAppUserId(cupCompetitor.getAppUserId());
+                vo1.setIntegral(worldCup.getDrawIntegral() * -1);
+                vo1.setType(8);
+                userIntegralChangesClient.saveUserIntegralChanges(vo1);
+
+
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(cupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getWinIntegral());
+                vo.setType(7);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
+
+                cupCompetitor.setMatchResult(1);
+                cupCompetitor.setDrawIntegral(0);
+                cupCompetitor.setWinIntegral(worldCup.getWinIntegral());
             }
             cupCompetitor.setOurScore(red);
             cupCompetitor.setOpponentScore(blue);
@@ -858,8 +1036,31 @@
     }
 
     @Override
-    public List<WorldCupListVo> getWorldCupListFromRank(Integer uid) {
+    public List<WorldCupListVo> getWorldCupListFromRank(MyWorldCupList myWorldCupList) {
 
-        return this.baseMapper.getWorldCupListFromRank(uid);
+        return this.baseMapper.getWorldCupListFromRank(myWorldCupList);
+    }
+
+    @Override
+    public List<WorldCupCodeListVo> getWorldCupCodeListId(Integer worldCupId) {
+        List<WorldCupCompetitor> worldCupCompetitors = this.baseMapper.selectList(new LambdaQueryWrapper<WorldCupCompetitor>().eq(WorldCupCompetitor::getWorldCupId, worldCupId)
+                .ge(WorldCupCompetitor::getStartTime, new Date()).lt(WorldCupCompetitor::getEndTime, new Date()));
+        List<WorldCupCodeListVo> worldCupCodeListVos = new ArrayList<>();
+
+        // worldCupCompetitors 通过code分组
+        Map<String, List<WorldCupCompetitor>> map = worldCupCompetitors.stream().collect(Collectors.groupingBy(WorldCupCompetitor::getCode));
+
+        for (Map.Entry<String, List<WorldCupCompetitor>> entry : map.entrySet()) {
+            WorldCupCodeListVo worldCupCodeListVo = new WorldCupCodeListVo();
+            String code = entry.getKey();
+            List<WorldCupCompetitor> value = entry.getValue();
+            worldCupCodeListVo.setCode(code);
+            worldCupCodeListVo.setStartTime(value.get(0).getStartTime());
+            worldCupCodeListVo.setWorldCupId(value.get(0).getWorldCupId());
+            List<Long> collect = value.stream().map(WorldCupCompetitor::getId).collect(Collectors.toList());
+            worldCupCodeListVo.setCustoms(collect);
+            worldCupCodeListVos.add(worldCupCodeListVo);
+        }
+        return worldCupCodeListVos;
     }
 }

--
Gitblit v1.7.1