From 334fbd5f1a5a4e85c198560bd024211ba4cf99b1 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期一, 11 三月 2024 18:27:27 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0' into 2.0

---
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java |  191 ++++++++++++++++++++++++++++++-----------------
 1 files changed, 123 insertions(+), 68 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 88902cb..109a553 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
@@ -7,15 +7,19 @@
 import com.dsh.communityWorldCup.entity.WorldCupCompetitor;
 import com.dsh.communityWorldCup.feignclient.account.AppUserClient;
 import com.dsh.communityWorldCup.feignclient.account.StudentClient;
+import com.dsh.communityWorldCup.feignclient.account.UserIntegralChangesClient;
 import com.dsh.communityWorldCup.feignclient.account.model.AppUser;
 import com.dsh.communityWorldCup.feignclient.account.model.AppUserIdsByCityName;
+import com.dsh.communityWorldCup.feignclient.account.model.SaveUserIntegralChangesVo;
 import com.dsh.communityWorldCup.feignclient.account.model.TStudent;
 import com.dsh.communityWorldCup.feignclient.competition.ParticipantClient;
 import com.dsh.communityWorldCup.feignclient.competition.model.Participant;
 import com.dsh.communityWorldCup.feignclient.other.StoreClient;
 import com.dsh.communityWorldCup.mapper.WorldCupCompetitorMapper;
+import com.dsh.communityWorldCup.mapper.WorldCupPaymentParticipantMapper;
 import com.dsh.communityWorldCup.model.*;
 import com.dsh.communityWorldCup.service.IWorldCupCompetitorService;
+import com.dsh.communityWorldCup.service.IWorldCupPaymentParticipantService;
 import com.dsh.communityWorldCup.service.IWorldCupService;
 import com.dsh.communityWorldCup.util.ToolUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -47,6 +51,9 @@
     @Autowired
     private IWorldCupService worldCupService;
 
+    @Resource
+    private UserIntegralChangesClient userIntegralChangesClient;
+
 
 
 
@@ -65,7 +72,7 @@
             entrantRankVo.setName(participant.getName());
         }else{
             //学员
-            TStudent tStudent = studentClient.queryById(entrantRank.getId());
+            TStudent tStudent = studentClient.queryById(entrantRank.getId().intValue());
             entrantRankVo.setName(tStudent.getName());
         }
         //全国排名---直接数据库分组查询后排序
@@ -164,7 +171,7 @@
         for (int i = 0; i < lists.size(); i++) {
             Map<String, Object> map = lists.get(i);
             Integer participantType = Integer.valueOf(map.get("participantType").toString());
-            Integer participantId = Integer.valueOf(map.get("participantId").toString());
+            Long participantId = Long.valueOf(map.get("participantId").toString());
             Integer appUserId = Integer.valueOf(map.get("appUserId").toString());
             Integer totalSession = Integer.valueOf(map.get("totalSession").toString());
             Double winRate = Double.valueOf(map.get("winRate").toString());
@@ -177,7 +184,7 @@
                 worldCupRankVo.setWinRate(winRate);
                 //学员
                 if(participantType == 1){
-                    TStudent tStudent = studentClient.queryById(participantId);
+                    TStudent tStudent = studentClient.queryById(participantId.intValue());
                     worldCupRankVo.setAvatar(tStudent.getHeadImg());
                     String name = tStudent.getName();
                     if(name.length() > 2){
@@ -223,7 +230,7 @@
                     worldCupRankVo.setWinRate(winRate);
                     //学员
                     if(participantType == 1){
-                        TStudent tStudent = studentClient.queryById(participantId);
+                        TStudent tStudent = studentClient.queryById(participantId.intValue());
                         worldCupRankVo.setAvatar(tStudent.getHeadImg());
                         String name = tStudent.getName();
                         if(name.length() > 2){
@@ -261,43 +268,54 @@
      * 比赛结束后通知处理逻辑
      * @param custom        开始比赛接口上传的自定义参数
      * @param red_score     红方分数
-     * @param blue          蓝方分数
+     * @param blue_score    蓝方分数
      */
     @Override
-    public void endWorldCupCallback(String custom, Integer red_score, Integer blue) {
+    public void endWorldCupCallback(String custom, Integer red_score, Integer blue_score) {
         List<Long> ids = JSON.parseArray(custom, Long.class);
         List<WorldCupCompetitor> worldCupCompetitors = this.listByIds(ids);
-        WorldCupCompetitor worldCupCompetitor1 = worldCupCompetitors.get(0);
-        WorldCup worldCup = worldCupService.getById(worldCupCompetitor1.getWorldCupId());
-        for (WorldCupCompetitor worldCupCompetitor : worldCupCompetitors) {
-            //蓝方
-            if(worldCupCompetitor.getParticipant() == 1){
-                worldCupCompetitor.setMatchResult(blue.compareTo(red_score));
-                worldCupCompetitor.setOurScore(blue);
-                worldCupCompetitor.setOpponentScore(red_score);
-                worldCupCompetitor.setEndTime(new Date());
-                worldCupCompetitor.setWinIntegral(0);
-                if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && blue.compareTo(red_score) >= 0){
-                    worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral());
-                    AppUser appUser = appUserClient.getAppUser(worldCupCompetitor.getAppUserId());
-                    appUser.setIntegral(appUser.getIntegral() + worldCup.getWinIntegral());
-                    appUserClient.updateAppUser(appUser);
+        try {
+            WorldCupCompetitor worldCupCompetitor1 = worldCupCompetitors.get(0);
+            WorldCup worldCup = worldCupService.getById(worldCupCompetitor1.getWorldCupId());
+            for (WorldCupCompetitor worldCupCompetitor : worldCupCompetitors) {
+                worldCupCompetitor.setWorldCupId(null);
+                //蓝方
+                if(worldCupCompetitor.getParticipant() == 1){
+                    worldCupCompetitor.setMatchResult(blue_score.compareTo(red_score));
+                    worldCupCompetitor.setOurScore(blue_score);
+                    worldCupCompetitor.setOpponentScore(red_score);
+                    worldCupCompetitor.setEndTime(new Date());
+                    worldCupCompetitor.setWinIntegral(0);
+                    if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && blue_score.compareTo(red_score) >= 0){
+                        worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral());
+                        //增加积分明细
+                        SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                        vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                        vo.setIntegral(worldCup.getWinIntegral());
+                        vo.setType(7);
+                        userIntegralChangesClient.saveUserIntegralChanges(vo);
+                    }
+                }
+                //红方
+                if(worldCupCompetitor.getParticipant() == 2){
+                    worldCupCompetitor.setMatchResult(red_score.compareTo(blue_score));
+                    worldCupCompetitor.setOurScore(red_score);
+                    worldCupCompetitor.setOpponentScore(blue_score);
+                    worldCupCompetitor.setEndTime(new Date());
+                    worldCupCompetitor.setWinIntegral(0);
+                    if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && red_score.compareTo(blue_score) >= 0){
+                        worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral());
+                        //增加积分明细
+                        SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                        vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                        vo.setIntegral(worldCup.getWinIntegral());
+                        vo.setType(7);
+                        userIntegralChangesClient.saveUserIntegralChanges(vo);
+                    }
                 }
             }
-            //红方
-            if(worldCupCompetitor.getParticipant() == 2){
-                worldCupCompetitor.setMatchResult(red_score.compareTo(blue));
-                worldCupCompetitor.setOurScore(red_score);
-                worldCupCompetitor.setOpponentScore(blue);
-                worldCupCompetitor.setEndTime(new Date());
-                worldCupCompetitor.setWinIntegral(0);
-                if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && red_score.compareTo(blue) >= 0){
-                    worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral());
-                    AppUser appUser = appUserClient.getAppUser(worldCupCompetitor.getAppUserId());
-                    appUser.setIntegral(appUser.getIntegral() + worldCup.getWinIntegral());
-                    appUserClient.updateAppUser(appUser);
-                }
-            }
+        }catch (Exception e){
+            e.printStackTrace();
         }
 
         this.updateBatchById(worldCupCompetitors);
@@ -320,7 +338,7 @@
         for (int i = 0; i < mapList.size(); i++) {
             Map<String, Object> map = mapList.get(i);
             Integer participantType = Integer.valueOf(map.get("participantType").toString());
-            Integer participantId = Integer.valueOf(map.get("participantId").toString());
+            Long participantId = Long.valueOf(map.get("participantId").toString());
             Integer appUserId = Integer.valueOf(map.get("appUserId").toString());
             Integer totalSession = Integer.valueOf(map.get("totalSession").toString());
             Integer win = Integer.valueOf(map.get("win").toString());
@@ -329,7 +347,7 @@
             AppUser appUser = appUserClient.getAppUser(appUserId);
             map.put("province", appUser.getProvince() + appUser.getCity());
             if(1 == participantType){
-                TStudent tStudent = studentClient.queryById(participantId);
+                TStudent tStudent = studentClient.queryById(participantId.intValue());
                 map.put("name", tStudent.getName());
                 map.put("phone", tStudent.getPhone());
             }else{
@@ -365,7 +383,7 @@
         for (int i = 0; i < mapList.size(); i++) {
             Map<String, Object> map = mapList.get(i);
             Integer participantType = Integer.valueOf(map.get("participantType").toString());
-            Integer participantId = Integer.valueOf(map.get("participantId").toString());
+            Long participantId = Long.valueOf(map.get("participantId").toString());
             Integer appUserId = Integer.valueOf(map.get("appUserId").toString());
             Integer totalSession = Integer.valueOf(map.get("totalSession").toString());
             Integer win = Integer.valueOf(map.get("win").toString());
@@ -376,7 +394,7 @@
             AppUser appUser = appUserClient.getAppUser(appUserId);
             map.put("province", appUser.getProvince() + appUser.getCity());
             if(1 == participantType){
-                TStudent tStudent = studentClient.queryById(participantId);
+                TStudent tStudent = studentClient.queryById(participantId.intValue());
                 if(ToolUtil.isNotEmpty(name) && tStudent.getName().indexOf(name) == -1){
                     continue;
                 }
@@ -388,7 +406,7 @@
                 }
 
                 map.put("name", tStudent.getName());
-                map.put("phone", tStudent.getPhone());
+                map.put("phone", ToolUtil.isEmpty(tStudent.getPhone()) ? appUser.getPhone() : tStudent.getPhone());
             }else{
                 Participant participant = participantClient.getParticipant(participantId);
                 if(ToolUtil.isNotEmpty(name) && participant.getName().indexOf(name) == -1){
@@ -402,7 +420,7 @@
                 }
 
                 map.put("name", participant.getName());
-                map.put("phone", participant.getPhone());
+                map.put("phone", ToolUtil.isNotEmpty(participant.getPhone()) ? participant.getPhone() : appUser.getPhone());
             }
             list.add(map);
         }
@@ -421,19 +439,19 @@
      */
     @Override
     public Map<String, Object> worldCupGameStatisticsListInfo(WorldCupGameStatisticsListInfo worldCupGameStatisticsListInfo) {
-        Long id = worldCupGameStatisticsListInfo.getId();
+        Long participantId = worldCupGameStatisticsListInfo.getParticipantId();
+        Integer participantType = worldCupGameStatisticsListInfo.getParticipantType();
         String name = worldCupGameStatisticsListInfo.getName();
-        WorldCupCompetitor worldCupCompetitor = this.getById(id);
-        List<WorldCupCompetitor> list = this.list(new QueryWrapper<WorldCupCompetitor>().eq("code", worldCupCompetitor.getCode()));
+        List<WorldCupCompetitor> list = this.list(new QueryWrapper<WorldCupCompetitor>()
+                .eq("participantType", participantType).eq("participantId", participantId)
+                .isNotNull("matchResult").orderByDesc("startTime"));
         List<Map<String, Object>> mapList = new ArrayList<>();
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy.HH.dd HH:mm");
         for (WorldCupCompetitor cupCompetitor : list) {
             Map<String, Object> map = new HashMap<>();
             map.put("id", cupCompetitor.getId());
-            Integer participantType = cupCompetitor.getParticipantType();
-            Integer participantId = cupCompetitor.getParticipantId();
             if(1 == participantType){
-                TStudent tStudent = studentClient.queryById(participantId);
+                TStudent tStudent = studentClient.queryById(participantId.intValue());
                 if(ToolUtil.isNotEmpty(name) && tStudent.getName().indexOf(name) == -1){
                     continue;
                 }
@@ -450,7 +468,7 @@
             map.put("score", cupCompetitor.getOurScore().compareTo(cupCompetitor.getOpponentScore()) > 0 ?
                     cupCompetitor.getOurScore() + ":" + cupCompetitor.getOpponentScore() :
                     cupCompetitor.getOpponentScore() + ":" + cupCompetitor.getOurScore());
-            map.put("matchResult", cupCompetitor.getMatchResult() == 1 ? "胜" : "负");
+            map.put("matchResult", cupCompetitor.getMatchResult() == 1 ? "胜" : cupCompetitor.getMatchResult() == 0 ? "平" : "负");
             mapList.add(map);
         }
         Map<String, Object> map = new HashMap<>();
@@ -470,23 +488,42 @@
         Integer blue = changeScore.getBlue();
         Integer red = changeScore.getRed();
         WorldCupCompetitor worldCupCompetitor = this.getById(id);
-        List<WorldCupCompetitor> blueList = this.list(new QueryWrapper<WorldCupCompetitor>().eq("code", worldCupCompetitor.getCode()).eq("participant", 1));
+        List<WorldCupCompetitor> blueList = this.list(new QueryWrapper<WorldCupCompetitor>().eq("code", worldCupCompetitor.getCode())
+                .eq("participant", 1));
         WorldCup worldCup = worldCupService.getById(blueList.get(0).getWorldCupId());
         for (WorldCupCompetitor cupCompetitor : blueList) {
-            //如果之前输了,现在赢了,需要增加积分
-            if(cupCompetitor.getMatchResult() == -1 && blue.compareTo(red) > 0){
-                AppUser appUser = appUserClient.getAppUser(cupCompetitor.getAppUserId());
-                appUser.setIntegral(appUser.getIntegral() + worldCup.getWinIntegral());
-                appUserClient.updateAppUser(appUser);
+            //如果之前输了,现在赢/平了,需要增加积分
+            if(cupCompetitor.getMatchResult() == -1 && (blue.compareTo(red) > 0 || blue.compareTo(red) == 0)){
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(cupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getWinIntegral());
+                vo.setType(7);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
 
                 cupCompetitor.setMatchResult(1);
                 cupCompetitor.setWinIntegral(worldCup.getWinIntegral());
             }
             //如果之前赢了,现在输了,需要扣减积分
             if(cupCompetitor.getMatchResult() == 1 && blue.compareTo(red) < 0){
-                AppUser appUser = appUserClient.getAppUser(cupCompetitor.getAppUserId());
-                appUser.setIntegral(appUser.getIntegral() - worldCup.getWinIntegral());
-                appUserClient.updateAppUser(appUser);
+                //增加积分明细
+                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);
@@ -498,20 +535,38 @@
 
         List<WorldCupCompetitor> redList = this.list(new QueryWrapper<WorldCupCompetitor>().eq("code", worldCupCompetitor.getCode()).eq("participant", 2));
         for (WorldCupCompetitor cupCompetitor : redList) {
-            //如果之前输了,现在赢了,需要增加积分
-            if(cupCompetitor.getMatchResult() == -1 && red.compareTo(blue) > 0){
-                AppUser appUser = appUserClient.getAppUser(cupCompetitor.getAppUserId());
-                appUser.setIntegral(appUser.getIntegral() + worldCup.getWinIntegral());
-                appUserClient.updateAppUser(appUser);
+            //如果之前输了,现在赢/平了,需要增加积分
+            if(cupCompetitor.getMatchResult() == -1 && (red.compareTo(blue) > 0 || red.compareTo(blue) == 0)){
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(cupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getWinIntegral());
+                vo.setType(7);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
 
                 cupCompetitor.setMatchResult(1);
                 cupCompetitor.setWinIntegral(worldCup.getWinIntegral());
             }
             //如果之前赢了,现在输了,需要扣减积分
             if(cupCompetitor.getMatchResult() == 1 && red.compareTo(blue) < 0){
-                AppUser appUser = appUserClient.getAppUser(cupCompetitor.getAppUserId());
-                appUser.setIntegral(appUser.getIntegral() - worldCup.getWinIntegral());
-                appUserClient.updateAppUser(appUser);
+                //增加积分明细
+                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 && red.compareTo(blue) < 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);
@@ -535,12 +590,12 @@
         List<Map<String, Object>> mapList = new ArrayList<>();
         for (Map<String, Object> map : list) {
             Long participantType = Long.valueOf(map.get("participantType").toString());
-            Integer participantId = Integer.valueOf(map.get("participantId").toString());
+            Long participantId = Long.valueOf(map.get("participantId").toString());
             Integer ourScore = Integer.valueOf(map.get("ourScore").toString());
             Integer opponentScore = Integer.valueOf(map.get("opponentScore").toString());
             Integer matchResult = Integer.valueOf(map.get("matchResult").toString());
             if(1 == participantType){
-                TStudent tStudent = studentClient.queryById(participantId);
+                TStudent tStudent = studentClient.queryById(participantId.intValue());
                 if(ToolUtil.isNotEmpty(name) && tStudent.getName().indexOf(name) == -1){
                     continue;
                 }
@@ -555,7 +610,7 @@
             map.put("score", ourScore.compareTo(opponentScore) > 0 ?
                     ourScore + ":" + opponentScore :
                     opponentScore + ":" + ourScore);
-            map.put("matchResult", matchResult == 1 ? "胜" : "负");
+            map.put("matchResult", matchResult == 1 ? "胜" : matchResult == 0 ? "平" :"负");
             mapList.add(map);
         }
         Map<String, Object> map = new HashMap<>();

--
Gitblit v1.7.1