From bf256fd67a54231e26a41945293efbf3c23fe533 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 13 八月 2025 18:58:22 +0800
Subject: [PATCH] 赛事模块

---
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java |  386 +++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 331 insertions(+), 55 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..b22c1d7 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;
@@ -30,6 +31,7 @@
 import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author zhibing.pu
@@ -168,10 +170,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 +190,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 +208,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 +222,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 +253,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 +339,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 +373,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 +408,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 +479,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++) {
@@ -622,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());
@@ -632,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);
@@ -667,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());
@@ -678,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);
@@ -787,4 +1034,33 @@
     public int getMatchTime(Integer worldCupId) {
         return this.baseMapper.getMatchTime(worldCupId);
     }
+
+    @Override
+    public List<WorldCupListVo> getWorldCupListFromRank(MyWorldCupList myWorldCupList) {
+
+        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)
+                .le(WorldCupCompetitor::getStartTime, new Date()).ge(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