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

---
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupService.java         |    7 +++++++
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java |   31 +++++++++++++++++++++++++++++--
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java    |    5 ++++-
 cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupMapper.xml                                  |    9 +++++++++
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupMapper.java            |    7 +++++++
 5 files changed, 56 insertions(+), 3 deletions(-)

diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java
index e0b910f..223f489 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java
@@ -648,7 +648,10 @@
         worldCup.setProvinceCode(provinceCode);
         worldCup.setCity(city.replace("市", ""));
         worldCup.setCityCode(cityCode);
-        worldCupService.updateById(worldCup);
+        WorldCup worldCup1 = worldCupService.getById(worldCup.getId());
+        worldCup.setCreateTime(worldCup1.getCreateTime());
+        worldCup.setMatchNumber(worldCup1.getMatchNumber());
+        worldCupService.updateWorldCupAll(worldCup);
         return worldCup.getId();
     }
 
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupMapper.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupMapper.java
index 663c605..d4e4be6 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupMapper.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupMapper.java
@@ -60,4 +60,11 @@
 
 
     int worldCupGameStatisticsCount(@Param("item") WorldCupGameStatistics worldCupGameStatistics);
+
+
+    /**
+     * 修改所有参数
+     * @param worldCup
+     */
+    void updateWorldCupAll(@Param("item") WorldCup worldCup);
 }
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupService.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupService.java
index d690f64..518eb82 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupService.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupService.java
@@ -107,4 +107,11 @@
      * @return
      */
     Map<String, Object> worldCupGameStatistics(WorldCupGameStatistics worldCupGameStatistics);
+
+
+    /**
+     * 修改所有参数
+     * @param worldCup
+     */
+    void updateWorldCupAll(WorldCup worldCup);
 }
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 cd2e3db..9c71445 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
@@ -388,11 +388,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.getMatchNumber()){
+                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);
@@ -401,6 +413,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));
@@ -417,6 +432,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));
@@ -827,4 +845,13 @@
         map.put("total", count);
         return map;
     }
+
+    /**
+     * 修改所有参数
+     * @param worldCup
+     */
+    @Override
+    public void updateWorldCupAll(WorldCup worldCup) {
+        this.baseMapper.updateWorldCupAll(worldCup);
+    }
 }
diff --git a/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupMapper.xml b/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupMapper.xml
index b8ffd67..ce40991 100644
--- a/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupMapper.xml
+++ b/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupMapper.xml
@@ -148,4 +148,13 @@
             and a.`name` like CONCAT('%', #{item.name}, '%')
         </if>
     </select>
+
+
+
+    <update id="updateWorldCupAll">
+        update t_world_cup set name = #{item.name}, startTime = #{item.startTime}, endTime = #{item.endTime}, registrationClosingTime = #{item.registrationClosingTime}, startAge = #{item.startAge}, endAge = #{item.endAge},
+        gender = #{item.gender}, payType = #{item.payType}, cash = #{item.cash}, paiCoin = #{item.paiCoin}, classHour = #{item.classHour}, maxPeople = #{item.maxPeople}, basePeople = #{item.basePeople}, participationIntegral = #{item.participationIntegral},
+        winIntegral = #{item.winIntegral}, province = #{item.province}, provinceCode = #{item.provinceCode}, city = #{item.city}, cityCode = #{item.cityCode}, address = #{item.address}, lon = #{item.lon}, lat = #{item.lat}, coverImg = #{item.coverImg}, homeBackdropImg = #{item.homeBackdropImg},
+        infoImg = #{item.infoImg}, intro = #{item.intro}, content = #{item.content}, status = #{item.status}, createTime = #{item.createTime}, matchNumber = #{item.matchNumber} where id = #{item.id}
+    </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.7.1