From 9486766c806fe1d9e082b2fd02ea1cc558f1b443 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 08 五月 2025 09:21:57 +0800
Subject: [PATCH] bug修改

---
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java |  169 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 169 insertions(+), 0 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 2efebb0..ccec4d5 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
@@ -1,6 +1,7 @@
 package com.dsh.communityWorldCup.controller;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.dsh.communityWorldCup.entity.*;
@@ -30,6 +31,7 @@
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -98,7 +100,77 @@
     private GameClient gameClient;
 
 
+    /**
+     * 查询社区世界杯收入--管理后台
+     * @param storeId
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/worldCup/getWorldCupIncome")
+    public List<WorldCupIncomeVO> getWorldCupIncome(@RequestBody WorldCupQuery query){
+        String STime = null;
+        String ETime = null;
+        if (StringUtils.hasLength(query.getTime())) {
+            STime = query.getTime().split(" - ")[0] + " 00:00:00";
+            ETime = query.getTime().split(" - ")[1] + " 23:59:59";
+        }
 
+        QueryWrapper<WorldCupPayment> in = new QueryWrapper<WorldCupPayment>()
+                .eq("payStatus", 2)
+                ;
+        if (STime != null){
+            in.between("payTime", STime, ETime);
+        }
+        if (query.getUserIds() != null){
+            if (!query.getUserIds().isEmpty()){
+                in.in("appUserId", query.getUserIds());
+            }
+        }
+
+        if (query.getAmount() != null){
+            in.le("amount", query.getAmount().toString());
+        }
+        List<WorldCupPayment> list = worldCupPaymentService.list(in);
+        List<WorldCupIncomeVO> res = new ArrayList<>();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        for (WorldCupPayment worldCupPayment : list) {
+            if (worldCupPayment.getPayType() == 0){
+                // 不计算免费的
+                continue;
+            }
+            WorldCupIncomeVO worldCupIncomeVO = new WorldCupIncomeVO();
+            WorldCup byId = worldCupService.getById(worldCupPayment.getWorldCupId());
+            if (byId!=null){
+                worldCupIncomeVO.setProvince(byId.getProvince());
+                worldCupIncomeVO.setCity(byId.getCity());
+                List<WorldCupStore> worldCupId = worldCupStoreService.list(new QueryWrapper<WorldCupStore>()
+                        .eq("worldCupId", byId.getId()));
+                StringBuilder temp = new StringBuilder();
+                for (WorldCupStore worldCupStore : worldCupId) {
+                    Store store = storeClient.queryStoreById(worldCupStore.getStoreId());
+                    if (store!=null){
+                        temp.append(store.getName()).append(",");
+                    }
+                }
+                if (temp.length() > 0){
+                    worldCupIncomeVO.setStoreName(temp.substring(0, temp.length() - 1));
+                }
+            }
+            AppUser appUser = appUserClient.getAppUser(worldCupPayment.getAppUserId());
+            worldCupIncomeVO.setId(worldCupPayment.getId().toString());
+            if (appUser!=null){
+                worldCupIncomeVO.setUserName(appUser.getName());
+                worldCupIncomeVO.setPhone(appUser.getPhone());
+            }
+            if (worldCupPayment.getPayTime()!=null){
+                String format = simpleDateFormat.format(worldCupPayment.getPayTime());
+                worldCupIncomeVO.setPayTime(format);
+            }
+            worldCupIncomeVO.setAmount(worldCupPayment.getAmount().toString());
+            res.add(worldCupIncomeVO);
+        }
+        return res;
+    }
 
     /**
      * 根据门店id获取门店关系数据
@@ -117,6 +189,9 @@
             BeanUtils.copyProperties(worldCupStore,worldCupStoreVO);
             // 查询世界杯活动名称
             WorldCup byId = worldCupService.getById(worldCupStore.getWorldCupId());
+            if (byId==null){
+                continue;
+            }
             if (byId.getStatus()==3 || byId.getStatus()==4){
                 continue;
             }
@@ -609,6 +684,67 @@
     public Map<String, Object> getWorldCupListAll(@RequestBody WorldCupListAll worldCupListAll){
         return worldCupService.getWorldCupListAll(worldCupListAll);
     }
+    /**
+     * 根据门店ids 获取归属学员
+     * @param storeIds
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/worldCup/getStudentIds")
+    public List<Integer> getStudentIds(@RequestBody StoreIds storeIds){
+        List<Integer> res = new ArrayList<>();
+
+        // 获取门店ids 所举办的世界杯ids 查询学员参赛
+        List<Integer> collect = worldCupStoreService.list(new QueryWrapper<WorldCupStore>()
+                        .in("storeId", storeIds.getStoreIds())).stream()
+                .map(WorldCupStore::getWorldCupId).collect(Collectors.toList());
+        List<WorldCupPayment> list = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>()
+                .in("worldCupId", collect)
+                .eq("payStatus", 2));
+        for (WorldCupPayment worldCupPayment : list) {
+            JSONArray jsonArray = JSON.parseArray(worldCupPayment.getEntrant());
+            for (int i = 0; i < jsonArray.size(); i++) {
+                JSONObject jsonObject = jsonArray.getJSONObject(i);
+                Integer isStudent = jsonObject.getInteger("isStudent");
+                if (isStudent!=1){
+                    continue;
+                }
+                Long id = jsonObject.getLong("id");
+                String string = id.toString();
+                res.add(Integer.parseInt(string));
+            }
+        }
+        List<Long> collect1 = worldCupCompetitorService.list(new QueryWrapper<WorldCupCompetitor>()
+                        .in("worldCupId", collect)
+                        .eq("participantType", 1)).stream()
+                .map(WorldCupCompetitor::getParticipantId).collect(Collectors.toList());
+        // 将collect1中的数据全部转化为Integer类型
+        List<Integer> temp = new ArrayList<>();
+        temp = collect1.stream().map(Long::intValue).collect(Collectors.toList());
+        res.addAll(temp);
+        return res;
+    }
+    /**
+     * 根据门店ids 获取归属用户
+     * @param storeIds
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/worldCup/getUserIds")
+    public List<Integer> getUserIds(@RequestBody StoreIds storeIds){
+        List<Integer> res = new ArrayList<>();
+        // 获取门店ids 所举办的世界杯ids 查询用户
+        List<Integer> collect = worldCupStoreService.list(new QueryWrapper<WorldCupStore>()
+                        .in("storeId", storeIds.getStoreIds())).stream()
+                .map(WorldCupStore::getWorldCupId).collect(Collectors.toList());
+        List<WorldCupPayment> list = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>()
+                .in("worldCupId", collect)
+                .eq("payStatus", 2));
+        for (WorldCupPayment worldCupPayment : list) {
+            res.add(worldCupPayment.getAppUserId());
+        }
+        return res;
+    }
 
 
 
@@ -636,6 +772,22 @@
         worldCup.setProvinceCode(provinceCode);
         worldCup.setCity(city.replace("市", ""));
         worldCup.setCityCode(cityCode);
+        String[] split = worldCup.getPayType().split(",");
+        List<String> strings = Arrays.asList(split);
+        if(strings.contains("0")){
+            worldCup.setCash(null);
+            worldCup.setClassHour(null);
+            worldCup.setPaiCoin(null);
+        }
+        if(!strings.contains("1")){
+            worldCup.setCash(null);
+        }
+        if(!strings.contains("2")){
+            worldCup.setPaiCoin(null);
+        }
+        if(!strings.contains("3")){
+            worldCup.setClassHour(null);
+        }
         worldCupService.save(worldCup);
         return worldCup.getId();
     }
@@ -681,6 +833,22 @@
         WorldCup worldCup1 = worldCupService.getById(worldCup2.getId());
         worldCup2.setCreateTime(worldCup1.getCreateTime());
         worldCup2.setMatchNumber(worldCup1.getMatchNumber());
+        String[] split = worldCup2.getPayType().split(",");
+        List<String> strings = Arrays.asList(split);
+        if(strings.contains("0")){
+            worldCup2.setCash(null);
+            worldCup2.setClassHour(null);
+            worldCup2.setPaiCoin(null);
+        }
+        if(!strings.contains("1")){
+            worldCup2.setCash(null);
+        }
+        if(!strings.contains("2")){
+            worldCup2.setPaiCoin(null);
+        }
+        if(!strings.contains("3")){
+            worldCup2.setClassHour(null);
+        }
         worldCupService.updateWorldCupAll(worldCup2);
         return worldCup2.getId();
     }
@@ -738,6 +906,7 @@
     @ResponseBody
     @PostMapping("/base/worldCup/endWorldCupCallback")
     public void endWorldCupCallback(String custom, Integer red_score, Integer blue_score){
+        log.warn("世界杯游戏成绩回调:custom->" + custom + ",red_score->" + red_score + ",blue_score->" + blue_score);
         worldCupCompetitorService.endWorldCupCallback(custom, red_score, blue_score);
     }
 

--
Gitblit v1.7.1