From 2b6370e31f46eb49dfea453def3be734745e936c Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期一, 11 三月 2024 17:50:59 +0800
Subject: [PATCH] 修改bug

---
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java                   |    5 --
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java         |   85 +++++++++++++++++++++++++++++-------------
 cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java                            |    7 +++
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentParticipantServiceImpl.java |    3 +
 cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml                                          |   20 +++++-----
 5 files changed, 77 insertions(+), 43 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
index 881caf8..a01d251 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
@@ -104,6 +104,11 @@
                         detail.setConsumeName("社区世界杯获胜");
                         detail.setDetailsType(2);
                         break;
+                    case 8:
+                        detail.setConsumeAmount("" + (userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
+                        detail.setConsumeName("社区世界杯调整比分");
+                        detail.setDetailsType(1);
+                        break;
                     default:
                         break;
                 }
@@ -139,7 +144,7 @@
         tauMapper.updateById(appUser);
         userIntegralChanges.setNewIntegral(appUser.getIntegral());
         userIntegralChanges.setInsertTime(new Date());
-        userIntegralChanges.setCategory(1);
+        userIntegralChanges.setCategory(vo.getIntegral() > 0 ? 1 : 2);
         userIntegralChanges.setRemark(vo.getRemark());
         this.save(userIntegralChanges);
     }
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 d37c79f..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
@@ -288,12 +288,9 @@
                     worldCupCompetitor.setWinIntegral(0);
                     if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && blue_score.compareTo(red_score) >= 0){
                         worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral());
-                        AppUser appUser = appUserClient.getAppUser(worldCupCompetitor.getAppUserId());
-                        appUser.setIntegral(appUser.getIntegral() + worldCup.getWinIntegral());
-                        appUserClient.updateAppUser(appUser);
                         //增加积分明细
                         SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
-                        vo.setAppUserId(appUser.getId());
+                        vo.setAppUserId(worldCupCompetitor.getAppUserId());
                         vo.setIntegral(worldCup.getWinIntegral());
                         vo.setType(7);
                         userIntegralChangesClient.saveUserIntegralChanges(vo);
@@ -308,12 +305,9 @@
                     worldCupCompetitor.setWinIntegral(0);
                     if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && red_score.compareTo(blue_score) >= 0){
                         worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral());
-                        AppUser appUser = appUserClient.getAppUser(worldCupCompetitor.getAppUserId());
-                        appUser.setIntegral(appUser.getIntegral() + worldCup.getWinIntegral());
-                        appUserClient.updateAppUser(appUser);
                         //增加积分明细
                         SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
-                        vo.setAppUserId(appUser.getId());
+                        vo.setAppUserId(worldCupCompetitor.getAppUserId());
                         vo.setIntegral(worldCup.getWinIntegral());
                         vo.setType(7);
                         userIntegralChangesClient.saveUserIntegralChanges(vo);
@@ -474,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<>();
@@ -494,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);
@@ -522,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);
@@ -579,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<>();
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentParticipantServiceImpl.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentParticipantServiceImpl.java
index 8538ff5..2e4f746 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentParticipantServiceImpl.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentParticipantServiceImpl.java
@@ -32,6 +32,7 @@
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.math.MathContext;
 import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -380,7 +381,7 @@
             userGameRecordList.put("win", win);
             Integer lose = totalSession - win;
             userGameRecordList.put("lose", lose);
-            userGameRecordList.put("winRate", totalSession == 0 ? 0 : win / totalSession * 100);
+            userGameRecordList.put("winRate", totalSession == 0 ? 0 : new BigDecimal(win).divide(new BigDecimal(totalSession), new MathContext(4, RoundingMode.HALF_EVEN)).multiply(new BigDecimal(100)).doubleValue());
             userGameRecordList.put("participantType", participantType);
             userGameRecordList.put("participantId", participantId);
             AppUser appUser = appUserClient.getAppUser(appUserId);
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java
index 15be0c6..cd2e3db 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java
@@ -151,12 +151,9 @@
             //添加参赛奖励
             if(null != worldCup.getParticipationIntegral() && 0 < worldCup.getParticipationIntegral()){
                 worldCupCompetitor.setParticipationIntegral(worldCup.getParticipationIntegral());
-                AppUser appUser = appUserClient.getAppUser(worldCupCompetitor.getAppUserId());
-                appUser.setIntegral(appUser.getIntegral() + worldCup.getParticipationIntegral());
-                appUserClient.updateAppUser(appUser);
                 //增加积分明细
                 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
-                vo.setAppUserId(appUser.getId());
+                vo.setAppUserId(worldCupCompetitor.getAppUserId());
                 vo.setIntegral(worldCup.getParticipationIntegral());
                 vo.setType(6);
                 userIntegralChangesClient.saveUserIntegralChanges(vo);
diff --git a/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml b/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml
index 08488b7..f8ecc06 100644
--- a/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml
+++ b/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml
@@ -64,7 +64,7 @@
                 appUserId,
                 count(*) as num
                 from t_world_cup_competitor
-                where 1 = 1
+                where matchResult is not null
                 <if test="null != item.year">
                     and DATE_FORMAT(startTime, '%Y') = #{item.year}
                 </if>
@@ -83,7 +83,7 @@
                 appUserId,
                 count(*) as num
                 from t_world_cup_competitor
-                where matchResult = 1
+                where matchResult != -1
                 <if test="null != item.year">
                     and DATE_FORMAT(startTime, '%Y') = #{item.year}
                 </if>
@@ -122,7 +122,7 @@
                     appUserId,
                     count(*) as num
                     from t_world_cup_competitor
-                    where 1 = 1
+                    where matchResult is not null
                     <if test="null != appUserIds and appUserIds.size() > 0">
                         and appUserId in
                         <foreach collection="appUserIds" item="iten" index="index" open="(" separator="," close=")">
@@ -138,7 +138,7 @@
                     appUserId,
                     count(*) as num
                     from t_world_cup_competitor
-                    where matchResult = 1
+                    where matchResult != -1
                     <if test="null != appUserIds and appUserIds.size() > 0">
                         and appUserId in
                         <foreach collection="appUserIds" item="iten" index="index" open="(" separator="," close=")">
@@ -159,7 +159,7 @@
             participantId,
             appUserId
             from t_world_cup_competitor
-            where 1 = 1
+            where matchResult is not null
             <if test="null != appUserIds and appUserIds.size() > 0">
                 and appUserId in
                 <foreach collection="appUserIds" item="iten" index="index" open="(" separator="," close=")">
@@ -195,7 +195,7 @@
                 appUserId,
                 count(*) as num
                 from t_world_cup_competitor
-                where 1 = 1
+                where matchResult is not null
                 <if test="null != worldCupId">
                     and worldCupId = #{worldCupId}
                 </if>
@@ -208,7 +208,7 @@
                 appUserId,
                 count(*) as num
                 from t_world_cup_competitor
-                where matchResult = 1
+                where matchResult != -1
                 <if test="null != worldCupId">
                     and worldCupId = #{worldCupId}
                 </if>
@@ -229,7 +229,7 @@
         b.`name`
         from t_world_cup_competitor a
         left join t_world_cup b on (a.worldCupId = b.id)
-        where 1 = 1
+        where matchResult is not null
         <if test="null != name and '' != name">
             and b.name like CONCAT('%', #{name}, '%')
         </if>
@@ -253,7 +253,7 @@
             appUserId,
             count(*) as num
             from t_world_cup_competitor
-            where 1 = 1
+            where matchResult is not null
             <if test="null != participantType">
                 and participantType = #{participantType}
             </if>
@@ -269,7 +269,7 @@
             appUserId,
             count(*) as num
             from t_world_cup_competitor
-            where matchResult = 1
+            where matchResult != -1
             <if test="null != participantType">
                 and participantType = #{participantType}
             </if>

--
Gitblit v1.7.1