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

---
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java |  119 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 97 insertions(+), 22 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 4ac941c..aa85df4 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
@@ -30,6 +30,7 @@
 import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author zhibing.pu
@@ -168,10 +169,19 @@
             AppUser appUser = appUserClient.getAppUser(worldCupRank.getAppUserId());
             appUserIds = appUserClient.getAppUserIds(appUser.getCityCode());
         }
+        String sTime = null;
+        String eTime = null;
+        if(ToolUtil.isNotEmpty(worldCupRank.getTime())){
+            sTime = worldCupRank.getTime().split(" - ")[0] + " 00:00:00";
+            eTime = worldCupRank.getTime().split(" - ")[1] + " 23:59:59";
+        }
+
         //总场次
-        List<Map<String, Object>> lists = this.baseMapper.getWorldCupRank(worldCupRank, appUserIds);
+        List<Map<String, Object>> lists = this.baseMapper.getWorldCupRank(worldCupRank, appUserIds, sTime, eTime);
+
         //未负的数据
-        List<Map<String, Object>> lists1 = this.baseMapper.getWorldCupRank1(worldCupRank, appUserIds);
+        List<Map<String, Object>> lists1 = this.baseMapper.getWorldCupRank1(worldCupRank, appUserIds, sTime, eTime);
+        
         List<Map<String, Object>> mapList = new ArrayList<>();
         for (int i = 0; i < lists.size(); i++) {
             Map<String, Object> map = lists.get(i);
@@ -179,6 +189,9 @@
             Long participantId = Long.valueOf(map.get("participantId").toString());
             Integer appUserId = Integer.valueOf(map.get("appUserId").toString());
             Integer num = Integer.valueOf(null == map.get("num") ? "0" : map.get("num").toString());
+            Integer winIntegral = Integer.valueOf(null == map.get("winIntegral") ? "0" : map.get("winIntegral").toString());
+            Integer drawIntegral = Integer.valueOf(null == map.get("drawIntegral") ? "0" : map.get("drawIntegral").toString());
+            Integer loseIntegral = Integer.valueOf(null == map.get("loseIntegral") ? "0" : map.get("loseIntegral").toString());
             //学员
             if(participantType == 1){
                 TStudent tStudent = studentClient.queryById(participantId.intValue());
@@ -194,6 +207,7 @@
                 }
             }
             map.put("totalSession", num);
+            map.put("totalIntegral", winIntegral+drawIntegral+loseIntegral);
             map.put("winRate", "0");
             for (Map<String, Object> objectMap : lists1) {
                 Integer participantType1 = Integer.valueOf(objectMap.get("participantType").toString());
@@ -207,22 +221,30 @@
             }
             mapList.add(map);
         }
-        if(worldCupRank.getSort() == 1){
-            mapList.sort(new Comparator<Map<String, Object>>() {
-                @Override
-                public int compare(Map<String, Object> o1, Map<String, Object> o2) {
-                    return Double.valueOf(o1.get("totalSession").toString()).compareTo(Double.valueOf(o2.get("totalSession").toString())) * -1;
-                }
-            });
-        }
-        if(worldCupRank.getSort() == 2){
-            mapList.sort(new Comparator<Map<String, Object>>() {
-                @Override
-                public int compare(Map<String, Object> o1, Map<String, Object> o2) {
-                    return Double.valueOf(o1.get("winRate").toString()).compareTo(Double.valueOf(o2.get("winRate").toString())) * -1;
-                }
-            });
-        }
+
+
+
+
+
+
+//        if(worldCupRank.getSort() == 1){
+//            mapList.sort(new Comparator<Map<String, Object>>() {
+//                @Override
+//                public int compare(Map<String, Object> o1, Map<String, Object> o2) {
+//                    return Double.valueOf(o1.get("totalSession").toString()).compareTo(Double.valueOf(o2.get("totalSession").toString())) * -1;
+//                }
+//            });
+//        }
+//        if(worldCupRank.getSort() == 2){
+//            mapList.sort(new Comparator<Map<String, Object>>() {
+//                @Override
+//                public int compare(Map<String, Object> o1, Map<String, Object> o2) {
+//                    return Double.valueOf(o1.get("winRate").toString()).compareTo(Double.valueOf(o2.get("winRate").toString())) * -1;
+//                }
+//            });
+//        }
+
+
         List<WorldCupRankVo> list = new ArrayList<>();
         for (int i = 0; i < mapList.size(); i++) {
             Map<String, Object> map = mapList.get(i);
@@ -230,12 +252,14 @@
             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 totalIntegral = Integer.valueOf(map.get("totalIntegral").toString());
             Double winRate = Double.valueOf(map.get("winRate").toString());
             //自己排名在20内的标识
             boolean b = false;
             if(i <= 19){
                 WorldCupRankVo worldCupRankVo = new WorldCupRankVo();
                 worldCupRankVo.setRank(i + 1);
+                worldCupRankVo.setIntegral(totalIntegral);
                 worldCupRankVo.setTotalSession(totalSession);
                 worldCupRankVo.setWinRate(winRate);
                 //学员
@@ -314,6 +338,8 @@
                 }
             }
         }
+        // 排序
+        list= list.stream().sorted(Comparator.comparing(WorldCupRankVo::getIntegral).reversed().thenComparing(WorldCupRankVo::getTotalSession).reversed().thenComparing(WorldCupRankVo::getWinRate).reversed()).collect(Collectors.toList());
         return list;
     }
 
@@ -346,13 +372,31 @@
                     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.setDrawIntegral(0);
+                    worldCupCompetitor.setLoseIntegral(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);
+                    }else if(null != worldCup.getDrawIntegral() && 0 < worldCup.getDrawIntegral() && blue_score.compareTo(red_score) == 0){
+                        worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral());
+                        //增加积分明细
+                        SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                        vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                        vo.setIntegral(worldCup.getDrawIntegral());
+                        vo.setType(9);
+                        userIntegralChangesClient.saveUserIntegralChanges(vo);
+                    }else if(null != worldCup.getLoseIntegral() && 0 < worldCup.getLoseIntegral() && blue_score.compareTo(red_score) < 0){
+                        worldCupCompetitor.setDrawIntegral(worldCup.getLoseIntegral());
+                        //增加积分明细
+                        SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                        vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                        vo.setIntegral(worldCup.getLoseIntegral());
+                        vo.setType(10);
                         userIntegralChangesClient.saveUserIntegralChanges(vo);
                     }
                 }
@@ -363,13 +407,31 @@
                     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.setDrawIntegral(0);
+                    worldCupCompetitor.setLoseIntegral(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);
+                    }else if(null != worldCup.getDrawIntegral() && 0 < worldCup.getDrawIntegral() && blue_score.compareTo(red_score) == 0){
+                        worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral());
+                        //增加积分明细
+                        SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                        vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                        vo.setIntegral(worldCup.getDrawIntegral());
+                        vo.setType(9);
+                        userIntegralChangesClient.saveUserIntegralChanges(vo);
+                    }else if(null != worldCup.getLoseIntegral() && 0 < worldCup.getLoseIntegral() && blue_score.compareTo(red_score) < 0){
+                        worldCupCompetitor.setDrawIntegral(worldCup.getLoseIntegral());
+                        //增加积分明细
+                        SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                        vo.setAppUserId(worldCupCompetitor.getAppUserId());
+                        vo.setIntegral(worldCup.getLoseIntegral());
+                        vo.setType(10);
                         userIntegralChangesClient.saveUserIntegralChanges(vo);
                     }
                 }
@@ -416,8 +478,15 @@
         appUserIdsByCityName.setProvince(worldCupRecords.getProvince());
         appUserIdsByCityName.setCity(worldCupRecords.getCity());
         List<Integer> appUserIds = appUserClient.getAppUserIdsByCityName(appUserIdsByCityName);
-        List<Map<String, Object>> mapList = this.baseMapper.worldCupRecordsList(worldCupRecords, appUserIds);
-        List<Map<String, Object>> mapList1 = this.baseMapper.worldCupRecordsList1(worldCupRecords, appUserIds);
+        String time = worldCupRecords.getTime();
+        String sTime = null;
+        String eTime = null;
+        if(ToolUtil.isNotEmpty(time)){
+            sTime = time.split(" - ")[0] + " 00:00:00";
+            eTime = time.split(" - ")[1] + " 23:59:59";
+        }
+        List<Map<String, Object>> mapList = this.baseMapper.worldCupRecordsList(worldCupRecords, appUserIds,sTime,eTime);
+        List<Map<String, Object>> mapList1 = this.baseMapper.worldCupRecordsList1(worldCupRecords, appUserIds,sTime,eTime);
         List<Map<String, Object>> list = new ArrayList<>();
         int row_num = 0;
         for (int i = 0; i < mapList.size(); i++) {
@@ -787,4 +856,10 @@
     public int getMatchTime(Integer worldCupId) {
         return this.baseMapper.getMatchTime(worldCupId);
     }
+
+    @Override
+    public List<WorldCupListVo> getWorldCupListFromRank(Integer uid) {
+
+        return this.baseMapper.getWorldCupListFromRank(uid);
+    }
 }

--
Gitblit v1.7.1