无关风月
2025-05-08 9486766c806fe1d9e082b2fd02ea1cc558f1b443
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获取门店关系数据
@@ -109,13 +181,20 @@
    @PostMapping("/worldCup/getWorldCupStoreListByStoreId")
    public List<WorldCupStoreVO> getWorldCupStoreListByStoreId(@RequestBody Integer storeId){
        List<WorldCupStoreVO> res = new ArrayList<>();
        List<WorldCupStore> storeId1 = worldCupStoreService.list(new QueryWrapper<WorldCupStore>().eq("storeId", storeId));
        List<WorldCupStore> storeId1 = worldCupStoreService.list(
                new QueryWrapper<WorldCupStore>()
                        .eq("storeId", storeId));
        for (WorldCupStore worldCupStore : storeId1) {
            WorldCupStoreVO worldCupStoreVO = new WorldCupStoreVO();
            BeanUtils.copyProperties(worldCupStore,worldCupStoreVO);
            // 查询世界杯活动名称
            WorldCup byId = worldCupService.getById(worldCupStore.getWorldCupId());
            if (byId==null){
                continue;
            }
            if (byId.getStatus()==3 || byId.getStatus()==4){
                continue;
            }
            worldCupStoreVO.setName(byId.getName());
            res.add(worldCupStoreVO);
        }
@@ -605,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;
    }
@@ -632,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();
    }
@@ -677,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();
    }
@@ -734,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);
    }