From ceacc612529f38c632d85d91bb5309baa5ebb82a Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期一, 11 三月 2024 16:04:54 +0800
Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/PlayPai into 2.0

---
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java |   87 +++++++++++++++++++++++++++++++++----------
 1 files changed, 67 insertions(+), 20 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 228103e..15be0c6 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;
+
 
 
 
@@ -131,7 +136,7 @@
         List<Long> ids = new ArrayList<>();
         for (int i = 0; i < jsonArray.size(); i++) {
             JSONObject jsonObject = jsonArray.getJSONObject(i);
-            Integer id = jsonObject.getInteger("id");
+            Long id = jsonObject.getLong("id");
             Integer participantType = jsonObject.getInteger("participantType");
             String type = jsonObject.getString("type");
             WorldCupCompetitor worldCupCompetitor = new WorldCupCompetitor();
@@ -149,13 +154,19 @@
                 AppUser appUser = appUserClient.getAppUser(worldCupCompetitor.getAppUserId());
                 appUser.setIntegral(appUser.getIntegral() + worldCup.getParticipationIntegral());
                 appUserClient.updateAppUser(appUser);
+                //增加积分明细
+                SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+                vo.setAppUserId(appUser.getId());
+                vo.setIntegral(worldCup.getParticipationIntegral());
+                vo.setType(6);
+                userIntegralChangesClient.saveUserIntegralChanges(vo);
             }
 
             worldCupCompetitorService.save(worldCupCompetitor);
             ids.add(worldCupCompetitor.getId());
             //已参赛
 //            worldCupPaymentParticipant.setAlreadyEntered(1);
-            worldCupPaymentParticipantService.updateById(worldCupPaymentParticipant);
+//            worldCupPaymentParticipantService.updateById(worldCupPaymentParticipant);
         }
         //2、调起开启游戏的接口。
         HashMap<String, String> map = new HashMap<>();
@@ -166,7 +177,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 +196,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();
     }
 
 
@@ -265,6 +284,14 @@
             int count = worldCupPaymentParticipantService.count(new QueryWrapper<WorldCupPaymentParticipant>().in("worldCupPaymentId", collect));
             heat += count;
         }
+        String infoImg = worldCupInfo.getInfoImg();
+        JSONArray jsonArray1 = JSON.parseArray(infoImg);
+        String imgs = "";
+        for (int i = 0; i < jsonArray1.size(); i++) {
+            String url = jsonArray1.getJSONObject(i).getString("url");
+            imgs += url + ",";
+        }
+        worldCupInfo.setInfoImg(imgs.substring(0,imgs.length() - 1));
         worldCupInfo.setHeat(heat);
         ArrayList<Map<String, Object>> objects = new ArrayList<>();
         for (WorldCupStore worldCupStore : worldCupStores) {
@@ -306,8 +333,14 @@
     @Override
     public CheckPaymentMethodVo checkPaymentMethod(CheckPaymentMethod checkPaymentMethod) {
         WorldCup worldCup = this.getById(checkPaymentMethod.getId());
-        JSONArray jsonArray = JSON.parseArray(checkPaymentMethod.getIds());
+        String[] split = worldCup.getPayType().split(",");
         CheckPaymentMethodVo checkPaymentMethodVo = new CheckPaymentMethodVo();
+        if(split.length == 1 && "0".equals(split[0])){
+            checkPaymentMethodVo.setPaiCoin(0);
+            checkPaymentMethodVo.setClassHour(0);
+            return checkPaymentMethodVo;
+        }
+        JSONArray jsonArray = JSON.parseArray(checkPaymentMethod.getIds());
         AppUser appUser = appUserClient.getAppUser(checkPaymentMethod.getUid());
         BigDecimal multiply = new BigDecimal(jsonArray.size()).multiply(new BigDecimal(worldCup.getPaiCoin()));
         if(appUser.getPlayPaiCoins() < multiply.intValue()){
@@ -352,27 +385,33 @@
         if(null == worldCup){
             return ResultUtil.error("报名数据异常");
         }
-        WorldCupPayment one = worldCupPaymentService.getOne(new QueryWrapper<WorldCupPayment>().eq("worldCupId", worldCup.getId())
-                .eq("appUserId", paymentWorldCup.getUid()).eq("payStatus", 2).eq("state", 1));
-        if(null != one){
-            return ResultUtil.error("不能重复报名");
-        }
         if(null != worldCup.getRegistrationClosingTime() && System.currentTimeMillis() > worldCup.getRegistrationClosingTime().getTime()){
             return ResultUtil.error("报名时间已结束,无法完成报名");
         }
         if(System.currentTimeMillis() > worldCup.getEndTime().getTime()){
             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);
-            Integer id = jsonObject.getInteger("id");
+            Long id = jsonObject.getLong("id");
             //是否是学员(0=否,1=是)
             Integer isStudent = jsonObject.getInteger("isStudent");
             if(isStudent == 1){
-                TStudent tStudent = studentClient.queryById(id);
+                TStudent tStudent = studentClient.queryById(id.intValue());
+                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));
+                    if(null != one){
+                        return ResultUtil.error("【" + tStudent.getName() + "】已报过名了");
+                    }
+                }
+
                 if(worldCup.getStartAge() > (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(tStudent.getBirthday())))){
                     return ResultUtil.error("【" + tStudent.getName() + "】年龄不符合要求");
                 }
@@ -381,6 +420,14 @@
                 }
             }else{
                 Participant participant = participantClient.getParticipant(id);
+                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));
+                    if(null != one){
+                        return ResultUtil.error("【" + participant.getName() + "】已报过名了");
+                    }
+                }
+
                 if(worldCup.getStartAge() > (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(participant.getBirthday())))){
                     return ResultUtil.error("【" + participant.getName() + "】年龄不符合要求");
                 }
@@ -460,7 +507,7 @@
                 JSONArray jsonArray = JSON.parseArray(ids);
                 for (int i = 0; i < jsonArray.size(); i++) {
                     JSONObject jsonObject = jsonArray.getJSONObject(i);
-                    Integer id = jsonObject.getInteger("id");
+                    Long id = jsonObject.getLong("id");
                     //是否是学员(0=否,1=是)
                     Integer isStudent = jsonObject.getInteger("isStudent");
 
@@ -484,13 +531,13 @@
                 List<DeductionClassHour> list = new ArrayList<>();
                 for (int i = 0; i < jsonArray.size(); i++) {
                     JSONObject jsonObject = jsonArray.getJSONObject(i);
-                    Integer id = jsonObject.getInteger("id");
+                    Long id = jsonObject.getLong("id");
                     //是否是学员(0=否,1=是)
                     Integer isStudent = jsonObject.getInteger("isStudent");
                     if(0 == isStudent){
                         return ResultUtil.error("非学员无法使用课时报名");
                     }
-                    List<CoursePackageOrderStudent> coursePackageOrderStudent = coursePackageOrderStudentClient.getCoursePackageOrderStudent(id);
+                    List<CoursePackageOrderStudent> coursePackageOrderStudent = coursePackageOrderStudentClient.getCoursePackageOrderStudent(id.intValue());
                     int sum = coursePackageOrderStudent.stream().mapToInt(CoursePackageOrderStudent::getLaveClassHours).sum();
                     if(sum < worldCup.getClassHour()){
                         return ResultUtil.error("报名失败,课时不足,请续课!");
@@ -547,7 +594,7 @@
                 //添加报名明细
                 for (int i = 0; i < jsonArray.size(); i++) {
                     JSONObject jsonObject = jsonArray.getJSONObject(i);
-                    Integer id = jsonObject.getInteger("id");
+                    Long id = jsonObject.getLong("id");
                     //是否是学员(0=否,1=是)
                     Integer isStudent = jsonObject.getInteger("isStudent");
 
@@ -576,7 +623,7 @@
             JSONArray jsonArray = JSON.parseArray(ids);
             for (int i = 0; i < jsonArray.size(); i++) {
                 JSONObject jsonObject = jsonArray.getJSONObject(i);
-                Integer id = jsonObject.getInteger("id");
+                Long id = jsonObject.getLong("id");
                 //是否是学员(0=否,1=是)
                 Integer isStudent = jsonObject.getInteger("isStudent");
 
@@ -614,7 +661,7 @@
         JSONArray jsonArray = JSON.parseArray(ids);
         for (int i = 0; i < jsonArray.size(); i++) {
             JSONObject jsonObject = jsonArray.getJSONObject(i);
-            Integer id = jsonObject.getInteger("id");
+            Long id = jsonObject.getLong("id");
             //是否是学员(0=否,1=是)
             Integer isStudent = jsonObject.getInteger("isStudent");
 

--
Gitblit v1.7.1