From 7cd3dea07f5b7cefad9dea9fd7daf992449aaac8 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 12 三月 2024 18:24:38 +0800
Subject: [PATCH] 修改bug

---
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java |   76 ++++++++++++++++++++++++++++++++-----
 1 files changed, 65 insertions(+), 11 deletions(-)

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 a5cce66..dfb6c24 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
@@ -9,7 +9,9 @@
 import com.dsh.communityWorldCup.entity.*;
 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.SaveUserIntegralChangesVo;
 import com.dsh.communityWorldCup.feignclient.account.model.TStudent;
 import com.dsh.communityWorldCup.feignclient.competition.ParticipantClient;
 import com.dsh.communityWorldCup.feignclient.competition.model.Participant;
@@ -73,6 +75,9 @@
     @Resource
     private GameClient gameClient;
 
+    @Resource
+    private UserIntegralChangesClient userIntegralChangesClient;
+
 
 
 
@@ -127,6 +132,9 @@
 
         String people = startWorldCup.getPeople();
         JSONArray jsonArray = JSON.parseArray(people);
+        if(jsonArray.size() != 6){
+            return ResultUtil.error("参赛人数只能是6人");
+        }
         String timeStr = UUIDUtil.getTimeStr() + UUIDUtil.getNumberRandom(3);
         List<Long> ids = new ArrayList<>();
         for (int i = 0; i < jsonArray.size(); i++) {
@@ -146,9 +154,12 @@
             //添加参赛奖励
             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(worldCupCompetitor.getAppUserId());
+                vo.setIntegral(worldCup.getParticipationIntegral());
+                vo.setType(6);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
             }
 
             worldCupCompetitorService.save(worldCupCompetitor);
@@ -157,6 +168,9 @@
 //            worldCupPaymentParticipant.setAlreadyEntered(1);
 //            worldCupPaymentParticipantService.updateById(worldCupPaymentParticipant);
         }
+        worldCup.setMatchNumber(worldCup.getMatchNumber() + 1);
+        this.updateById(worldCup);
+
         //2、调起开启游戏的接口。
         HashMap<String, String> map = new HashMap<>();
         map.put("sign", "0DB011836143EEE2C2E072967C9F4E4B");
@@ -166,7 +180,7 @@
         map.put("api_url", "http://221.182.45.100:56666/communityWorldCup/base/worldCup/endWorldCupCallback");
         map.put("custom", JSON.toJSONString(ids));
 
-        String s = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/batterGame", map);
+        String s = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/quickStart", map);
         JSONObject jsonObject = JSONObject.parseObject(s);
         Integer code1 = jsonObject.getInteger("code");
         String message = jsonObject.getString("message");
@@ -185,9 +199,17 @@
      */
     @Override
     public Integer getCompletedWorldCupTips(Integer uid) {
-        int count = worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>()
-                .eq("appUserId", uid).eq("tips", 0).isNotNull("endTime"));
-        return count;
+        List<WorldCupCompetitor> list = worldCupCompetitorService.list(new QueryWrapper<WorldCupCompetitor>()
+                .eq("appUserId", uid).eq("tips", 0).isNotNull("endTime")
+                .orderByDesc("endTime").last(" limit 0, 1"));
+        list.forEach(v->{
+            v.setWorldCupId(null);
+            v.setTips(1);
+        });
+        if(list.size() > 0){
+            worldCupCompetitorService.updateBatchById(list);
+        }
+        return list.size();
     }
 
 
@@ -233,7 +255,7 @@
             Collections.sort(worldCupList1, new Comparator<WorldCupListVo>() {
                 @Override
                 public int compare(WorldCupListVo o1, WorldCupListVo o2) {
-                    return o1.getDistance().compareTo(o2.getDistance()) * -1;
+                    return o1.getDistance().compareTo(o2.getDistance());
                 }
             });
         }
@@ -372,11 +394,23 @@
         if(System.currentTimeMillis() > worldCup.getEndTime().getTime()){
             return ResultUtil.error("世界杯赛事已结束,无法完成报名");
         }
+
+        String cupIds = paymentWorldCup.getIds();
+        JSONArray jsonArray = JSON.parseArray(cupIds);
+        List<WorldCupPayment> payments = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("worldCupId", worldCup.getId())
+                .eq("payStatus", 2).eq("state", 1));
+        List<Long> ids = payments.stream().map(WorldCupPayment::getId).collect(Collectors.toList());
+        if(ids.size() > 0){
+            int count = worldCupPaymentParticipantService.count(new QueryWrapper<WorldCupPaymentParticipant>().eq("worldCupId", worldCup.getId())
+                    .eq("worldCupPaymentId", ids));
+            if((count + jsonArray.size()) >= worldCup.getMaxPeople()){
+                return ResultUtil.error("已超出最大报名人数");
+            }
+        }
+
         List<WorldCupPayment> list = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("worldCupId", worldCup.getId()).eq("appUserId", paymentWorldCup.getUid())
                 .eq("payStatus", 2).eq("state", 1));
         List<Long> collect = list.stream().map(WorldCupPayment::getId).collect(Collectors.toList());
-        String ids = paymentWorldCup.getIds();
-        JSONArray jsonArray = JSON.parseArray(ids);
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
         for (int i = 0; i < jsonArray.size(); i++) {
             JSONObject jsonObject = jsonArray.getJSONObject(i);
@@ -385,6 +419,9 @@
             Integer isStudent = jsonObject.getInteger("isStudent");
             if(isStudent == 1){
                 TStudent tStudent = studentClient.queryById(id.intValue());
+                if(worldCup.getGender() != 0 && !tStudent.getSex().equals(worldCup.getGender())){
+                    return ResultUtil.error("此比赛只能是" + (worldCup.getGender() == 1 ? "男" : "女") + "性参加");
+                }
                 if(collect.size() > 0){
                     WorldCupPaymentParticipant one = worldCupPaymentParticipantService.getOne(new QueryWrapper<WorldCupPaymentParticipant>().eq("worldCupId", worldCup.getId())
                             .eq("participantId", id).eq("participantType", isStudent == 0 ? 2 : 1).in("worldCupPaymentId", collect));
@@ -401,6 +438,9 @@
                 }
             }else{
                 Participant participant = participantClient.getParticipant(id);
+                if(worldCup.getGender() != 0 && !participant.getGender().equals(worldCup.getGender())){
+                    return ResultUtil.error("此比赛只能是" + (worldCup.getGender() == 1 ? "男" : "女") + "性参加");
+                }
                 if(collect.size() > 0){
                     WorldCupPaymentParticipant one = worldCupPaymentParticipantService.getOne(new QueryWrapper<WorldCupPaymentParticipant>().eq("worldCupId", worldCup.getId())
                             .eq("participantId", id).eq("participantType", isStudent == 0 ? 2 : 1).in("worldCupPaymentId", collect));
@@ -482,6 +522,7 @@
 
                 appUser.setPlayPaiCoins(appUser.getPlayPaiCoins() - multiply.intValue());
                 appUserClient.updateAppUser(appUser);
+                //
 
                 //添加报名明细
                 String ids = paymentWorldCup.getIds();
@@ -703,6 +744,7 @@
             BigDecimal multiply = worldCupPayment.getUnitPrice().multiply(new BigDecimal(list1.size()));
             //免费
             if(worldCupPayment.getPayType() == 0){
+                worldCupPayment.setWorldCupId(null);
                 worldCupPayment.setRefundOrderNo("");
                 worldCupPayment.setRefundTime(new Date());
                 worldCupPayment.setPayStatus(3);
@@ -727,6 +769,7 @@
                 }
                 if("10000".equals(map.get("code"))){
                     String trade_no = map.get("trade_no");
+                    worldCupPayment.setWorldCupId(null);
                     worldCupPayment.setRefundTime(new Date());
                     worldCupPayment.setRefundOrderNo(trade_no);
                     worldCupPayment.setPayStatus(3);
@@ -739,6 +782,7 @@
                 AppUser appUser = appUserClient.getAppUser(appUserId);
                 appUser.setPlayPaiCoins(appUser.getPlayPaiCoins() + multiply.intValue());
                 appUserClient.updateAppUser(appUser);
+                worldCupPayment.setWorldCupId(null);
                 worldCupPayment.setRefundTime(new Date());
                 worldCupPayment.setRefundOrderNo("");
                 worldCupPayment.setPayStatus(3);
@@ -751,6 +795,7 @@
                     DeductionClassHourList deductionClassHourList = JSON.parseObject(content, DeductionClassHourList.class);
                     coursePackageOrderStudentClient.backspaceClassHour(deductionClassHourList);
                 }
+                worldCupPayment.setWorldCupId(null);
                 worldCupPayment.setRefundTime(new Date());
                 worldCupPayment.setRefundOrderNo("");
                 worldCupPayment.setPayStatus(3);
@@ -793,7 +838,7 @@
         List<Map<String, Object>> mapList = this.baseMapper.worldCupGameStatistics(worldCupGameStatistics);
         for (Map<String, Object> stringObjectMap : mapList) {
             Integer id = Integer.valueOf(stringObjectMap.get("id").toString());
-            int count = worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>().eq("worldCupId", id));
+            int count = worldCupCompetitorService.getMatchTime(id);
             stringObjectMap.put("matchTime", count);
 
             List<WorldCupPayment> list = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("worldCupId", id)
@@ -811,4 +856,13 @@
         map.put("total", count);
         return map;
     }
+
+    /**
+     * 修改所有参数
+     * @param worldCup
+     */
+    @Override
+    public void updateWorldCupAll(WorldCup worldCup) {
+        this.baseMapper.updateWorldCupAll(worldCup);
+    }
 }

--
Gitblit v1.7.1