From eb6b6dbb35a9f029e0b7d269773685c19fd40976 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 11 七月 2024 10:47:51 +0800
Subject: [PATCH] 玩湃微信商户认证代码

---
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java |  919 +++++++++++++++++++++++++++++++++------------------------
 1 files changed, 531 insertions(+), 388 deletions(-)

diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java
index ee240cb..714ce55 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java
@@ -2,18 +2,25 @@
 
 import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.course.entity.CoursePackageOrderStudent;
 import com.dsh.course.feignClient.account.*;
 import com.dsh.course.feignClient.account.model.*;
 import com.dsh.course.feignClient.activity.PointMercharsClient;
 import com.dsh.course.feignClient.competition.CompetitionClient;
+import com.dsh.course.feignClient.competition.model.CompetionVO;
 import com.dsh.course.feignClient.competition.model.Competition;
 import com.dsh.course.feignClient.competition.model.CompetitionQuery;
 import com.dsh.course.feignClient.competition.model.PaymentCompetition;
 import com.dsh.course.feignClient.course.*;
 import com.dsh.course.feignClient.course.model.TCoursePackage;
 import com.dsh.course.feignClient.course.model.TCoursePackagePayment;
+import com.dsh.course.feignClient.other.BallClient;
 import com.dsh.course.feignClient.other.SiteClient;
 import com.dsh.course.feignClient.other.StoreClient;
+import com.dsh.course.feignClient.other.model.GameDataQuery;
+import com.dsh.course.feignClient.other.model.Site;
+import com.dsh.course.feignClient.other.model.TGameRecord;
 import com.dsh.course.model.MoneyBack;
 import com.dsh.guns.config.UserExt;
 import com.dsh.guns.core.base.controller.BaseController;
@@ -48,44 +55,46 @@
     private String PREFIX = "/system/dataStatistics/";
     @Autowired
     private ICityService cityService;
-    @Autowired
+    @Resource
     private CityManagerClient cityManagerClient;
 
     @Autowired
     private IUserService sysUserService;
-    @Autowired
+    @Resource
     private AppUserClient appUserClient;
 
-    @Autowired
+    @Resource
     private CourseClient courseClient;
 
     @Autowired
     private IStoreService storeService;
-    @Autowired
+    @Resource
     private VipPaymentClient vipPaymentClient;
-    @Autowired
+    @Resource
     private FinanceClient financeClient;
-    @Autowired
+    @Resource
     private CoursePackagePaymentClient coursePackagePaymentClient;
-    @Autowired
+    @Resource
     private CompetitionClient competitionClient;
 
     @Autowired
     private ISiteBookingService siteBookingService;
-    @Autowired
+    @Resource
     private StoreClient storeClient;
-    @Autowired
+    @Resource
     private SiteClient siteClient;
-    @Autowired
+    @Resource
     private PointMercharsClient pointMercharsClient;
-    @Autowired
+    @Resource
     private RefundCoursePackageClient refundCoursePackageClient;
     @Resource
     private CourseStuddentClient courseStuddentClient;
-    @Autowired
+    @Resource
     private CoursePackageClient coursePackageClient;
     @Autowired
     private TOperatorService operatorService;
+    @Resource
+    private BallClient ballClient;
     /**
      * 跳转到平台统计数据页面
      */
@@ -93,15 +102,9 @@
     public String index(Model model) {
         Object o = type1(null);
         model.addAttribute("data",o);
-
-
-
         // 教学统计
         HashMap<String, Object> map = appUserClient.queryUserAge();
         model.addAttribute("stuData",map);
-
-
-
         return PREFIX + "platformIncome.html";
     }
 
@@ -112,30 +115,52 @@
     @RequestMapping(value = "/getIncomeData")
     @ResponseBody
     public Object getIncomeData(Integer operatorId,Integer storeId) {
-        // 充值记录查询query
-        RechargeRecordsQuery rechargeRecordsQuery = new RechargeRecordsQuery();
         // 报名课程查询query
         RegisterOrderQuery query = new RegisterOrderQuery();
+        // 充值记录查询query
+        RechargeRecordsQuery rechargeRecordsQuery = new RechargeRecordsQuery();
         // 赛事活动查询query
         CompetitionQuery competitionQuery = new CompetitionQuery();
         // 会员支付查询query
         IncomeQuery incomeQuery = new IncomeQuery();
         // 场地预约记录查询query
         SiteBookingQuery siteBookingQuery = new SiteBookingQuery();
+        // 智慧球场查询query
+        GameDataQuery gameDataQuery = new GameDataQuery();
+        // 筛选运营商的是时候使用
+        List<Integer> storeIds = new ArrayList<>();
+        // 根据运营商ID 查询运营商下的所有门店
+        if (storeId==null){
+            if (operatorId!=null){
+                List<TStore> stores = storeService.list(new QueryWrapper<TStore>().eq("operatorId", operatorId));
+                // 拿到该运营商下的门店id集合
+                storeIds = stores.stream().map(TStore::getId).collect(Collectors.toList());
+                query.setStoresIds(storeIds);
+                siteBookingQuery.setStoreIds(storeIds);
+                competitionQuery.setOperatorId(operatorId);
+            }
+        }else {
+            List<Integer> list = new ArrayList<>();
+            list.add(storeId);
+            query.setStoresIds(list);
+            siteBookingQuery.setStoreIds(list);
+            competitionQuery.setStoreId(storeId);
+        }
+
+
         Integer roleType = UserExt.getUser().getObjectType();
         rechargeRecordsQuery.setInsertType(roleType);
                        query.setInsertType(roleType);
             competitionQuery.setInsertType(roleType);
                  incomeQuery.setInsertType(roleType);
-                 incomeQuery.setInsertType(roleType);
-        IncomeVO incomeVO = new IncomeVO();
+        rechargeRecordsQuery.setObjectId(UserExt.getUser().getObjectId());
         List<IncomeVO> incomeVOS = new ArrayList<>();
         // 会员支付记录
         List<VipPayment> vipPayments = vipPaymentClient.registrationList(incomeQuery);
         for (VipPayment vipPayment : vipPayments) {
             IncomeVO temp = new IncomeVO();
-            if (vipPayment.getPayStatus()==1){
-                temp.setInsertTime(vipPayment.getInsertTime());
+            if (vipPayment.getState()!=3){
+                temp.setInsertTime(vipPayment.getPayTime());
                 incomeVOS.add(temp);
             }
             if (vipPayment.getAmount() != null) {
@@ -146,14 +171,13 @@
         List<RechargeRecordsVO> rechargeRecordsVOS = financeClient.rechargeList(rechargeRecordsQuery);
         for (RechargeRecordsVO rechargeRecordsVO : rechargeRecordsVOS) {
             IncomeVO temp = new IncomeVO();
-            temp.setInsertTime(rechargeRecordsVO.getInsertTime());
+            temp.setInsertTime(rechargeRecordsVO.getPayTime());
             if (rechargeRecordsVO.getAmount() != null) {
                 temp.setAmount(rechargeRecordsVO.getAmount());
             }
-            if (rechargeRecordsVO.getPayStatus() ==1){
+            if (rechargeRecordsVO.getState() !=3){
                 incomeVOS.add(temp);
             }
-
         }
         // 报名课程记录
         List<RegisterOrderVO> registerOrderVOS = coursePackagePaymentClient.listAllRegister(query);
@@ -170,6 +194,10 @@
                 incomeVOS.add(temp);
             }
         }
+        // query权限设置 获取运营商下的门店集合
+        if (roleType==2){
+            competitionQuery.setOperatorId(UserExt.getUser().getObjectId());
+        }
         // 报名活动
         List<PaymentCompetition> competitions = competitionClient.listAllPayment(competitionQuery);
         for (PaymentCompetition competition : competitions) {
@@ -179,33 +207,74 @@
             if (competition.getPayType()==3 || competition.getPayType()==4){
                 continue;
             }
+            if (competition.getState()==3)continue;
             IncomeVO temp = new IncomeVO();
-            temp.setInsertTime(competition.getInsertTime());
+            temp.setInsertTime(competition.getPayTime());
             if (competition.getAmount() != null) {
                 temp.setAmount(new BigDecimal(competition.getAmount().toString()));
             }
             incomeVOS.add(temp);
         }
         // 预约场地
-        List<SiteBooking> siteBookings = siteClient.listAll(siteBookingQuery);
-        for (SiteBooking siteBooking : siteBookings) {
-            IncomeVO temp = new IncomeVO();
-            if(siteBooking.getStatus()!=3){
-                continue;
+        // 说明当前运营商下没有门店
+        if (operatorId!=null && storeIds.size()==0){
+        }else{
+            List<SiteBooking> siteBookings = siteClient.listAll(siteBookingQuery);
+            for (SiteBooking siteBooking : siteBookings) {
+                IncomeVO temp = new IncomeVO();
+                if(siteBooking.getStatus()==0 || siteBooking.getStatus()==5){
+                    continue;
+                }
+                if (siteBooking.getPayType() ==3 || siteBooking.getPayType() ==4)continue;
+                temp.setInsertTime(siteBooking.getPayTime());
+                if (siteBooking.getPayMoney() != null) {
+                    temp.setAmount(new BigDecimal(siteBooking.getPayMoney().toString()));
+                }
+                incomeVOS.add(temp);
             }
-            temp.setInsertTime(siteBooking.getPayTime());
-            if (siteBooking.getPayMoney() != null) {
-                temp.setAmount(new BigDecimal(siteBooking.getPayMoney().toString()));
-            }
-            incomeVOS.add(temp);
         }
+
         // 积分商品
         List<PointMerchandiseIncomeVo> amount = pointMercharsClient.getAmount();
         for (PointMerchandiseIncomeVo pointMerchandiseIncomeVo : amount) {
             IncomeVO temp = new IncomeVO();
+            if (pointMerchandiseIncomeVo==null) continue;
             temp.setInsertTime(pointMerchandiseIncomeVo.getInsertTime());
             if (pointMerchandiseIncomeVo.getCash()!=null){
                 temp.setAmount(pointMerchandiseIncomeVo.getCash());
+                incomeVOS.add(temp);
+            }
+        }
+        // 平台智慧球场
+        if (storeId==null&&operatorId==null){
+            gameDataQuery.setObjectId(0);
+            List<TGameRecord> data = ballClient.getData(gameDataQuery);
+            for (TGameRecord datum : data) {
+                IncomeVO temp = new IncomeVO();
+                temp.setAmount(datum.getMoney());
+                temp.setInsertTime(datum.getTime());
+                incomeVOS.add(temp);
+            }
+        }
+        // 运营商
+        if (operatorId!=null && storeId==null){
+            gameDataQuery.setObjectId(operatorId);
+            List<TGameRecord> data = ballClient.getData(gameDataQuery);
+            for (TGameRecord datum : data) {
+                IncomeVO temp = new IncomeVO();
+                temp.setAmount(datum.getMoney());
+                temp.setInsertTime(datum.getTime());
+                incomeVOS.add(temp);
+            }
+        }
+        // 门店
+        if (storeId!=null){
+            gameDataQuery.setStoreId(storeId);
+            List<TGameRecord> data = ballClient.getData(gameDataQuery);
+            for (TGameRecord datum : data) {
+                IncomeVO temp = new IncomeVO();
+                temp.setAmount(datum.getMoney());
+                temp.setInsertTime(datum.getTime());
                 incomeVOS.add(temp);
             }
         }
@@ -248,235 +317,138 @@
         int years = DateUtil.year(new Date());
         for (int i = 0; i < 10; i++) {
             integers1.add(years-i);
-        }
+         }
         List<Object> collect = integers1.stream().sorted().collect(Collectors.toList());
         List<Object> objects1 = new ArrayList<>();
         for (Object o : collect) {
             BigDecimal orDefault = yearToTotalAmountMap.getOrDefault(Integer.valueOf(o.toString()), BigDecimal.ZERO);
             objects1.add(orDefault);
         }
-//        for (int year = integers1.get(0); year >= integers1.get(integers1.size()-1); year++) {
-//            BigDecimal totalAmount = yearToTotalAmountMap.getOrDefault(year, BigDecimal.ZERO);
-//            // 创建一个新的 IncomeVO 对象,并设置年份和累计金额
-//            IncomeVO resultIncomeVO = new IncomeVO();
-//            resultIncomeVO.setAmount(totalAmount);
-//            resultIncomeVOS.add(resultIncomeVO);
-//        }
         monthlyData.put("yearIncome",objects1);
+        BigDecimal yearIn = new BigDecimal("0.00");
+        for (Object o : objects1) {
+            yearIn = yearIn.add(new BigDecimal(o.toString()));
+        }
+        BigDecimal orDefault = yearToTotalAmountMap.getOrDefault(years, BigDecimal.ZERO);
+        objects.add(orDefault);
+        // 创建一个 Map 用于存储今年每个月的累计 amount
+        Map<Integer, BigDecimal> monthToTotalAmountMap = new HashMap<>();
+        Calendar calendar = Calendar.getInstance();
+        int currentYear = calendar.get(Calendar.YEAR);
+        List<BigDecimal> monthlyAmountList = new ArrayList<>(Collections.nCopies(12, BigDecimal.ZERO));
+
+        for (IncomeVO incomeVO1 : incomeVOS) {
+            Calendar calendar1 = Calendar.getInstance();
+            calendar1.setTime(incomeVO1.getInsertTime());
+            int year = calendar1.get(Calendar.YEAR);
+            int month = calendar1.get(Calendar.MONTH) + 1; // 月份从0开始,所以需要加1
+            if (year == currentYear) {
+                BigDecimal totalAmount = monthlyAmountList.get(month - 1);
+                totalAmount = totalAmount.add(incomeVO1.getAmount());
+                monthlyAmountList.set(month - 1, totalAmount);
+            }
+        }
+        monthlyData.put("monthIncome", Collections.singletonList(monthlyAmountList));
+        //yearMount
+        BigDecimal monthI = new BigDecimal("0.00");
+        for (BigDecimal bigDecimal : monthlyAmountList) {
+            monthI = monthI.add(bigDecimal);
+        }
+        objects.add(monthI);
+        // 获取当前月份
+        LocalDate currentDate = LocalDate.now();
+        int currentMonth = currentDate.getMonthValue();
+        // 初始化一个长度为当前月份的天数的列表,并将每一天的金额初始化为零
+        int daysInCurrentMonth = currentDate.lengthOfMonth();
+        List<BigDecimal> weekAmount = new ArrayList<>();
+
+        // 获取最近四周
+        LocalDateTime minNow = LocalDateTime.now().with(LocalTime.MIN);
+        LocalDateTime maxNow = LocalDateTime.now().with(LocalTime.MAX);
+        // 周度数据
+        LocalDateTime week1Start = minNow.minusDays(6);
+        LocalDateTime week1End   = maxNow;
+
+        LocalDateTime week2Start = minNow.minusDays(13);
+        LocalDateTime week2End = minNow.minusDays(7);
+
+        LocalDateTime week3Start = minNow.minusDays(20);
+        LocalDateTime week3End = minNow.minusDays(14);
+
+        LocalDateTime week4Start = minNow.minusDays(27);
+        LocalDateTime week4End = minNow.minusDays(21);
+
+        // 计算每个周的amount总和
+        BigDecimal tAmount1 = BigDecimal.ZERO;
+        BigDecimal tAmount2 = BigDecimal.ZERO;
+        BigDecimal tAmount3 = BigDecimal.ZERO;
+        BigDecimal tAmount4 = BigDecimal.ZERO;
+        for (IncomeVO incomeVO1 : incomeVOS) {
+            Date insertTime = incomeVO1.getInsertTime();
+            // 将Date转换为LocalDateTime
+            Instant instant = insertTime.toInstant();
+            ZoneId zoneId = ZoneId.systemDefault();
+            LocalDateTime dateTime = instant.atZone(zoneId).toLocalDateTime();
+            // 判断该数据属于哪个周
+            if (dateTime.isAfter(week1Start) && dateTime.isBefore(week1End)) {
+                BigDecimal amount1 = incomeVO1.getAmount();
+                tAmount1=tAmount1.add(amount1);
+            } else if (dateTime.isAfter(week2Start) && dateTime.isBefore(week2End)) {
+                BigDecimal amount1 = incomeVO1.getAmount();
+                tAmount2=tAmount2.add(amount1);
+            } else if (dateTime.isAfter(week3Start) && dateTime.isBefore(week3End)) {
+                BigDecimal amount1 = incomeVO1.getAmount();
+                tAmount4=tAmount3.add(amount1);
+            } else if (dateTime.isAfter(week4Start) && dateTime.isBefore(week4End)) {
+                BigDecimal amount1 = incomeVO1.getAmount();
+                tAmount4=tAmount4.add(amount1);
+            }
+        }
+        weekAmount.add(tAmount1);
+        weekAmount.add(tAmount2);
+        weekAmount.add(tAmount3);
+        weekAmount.add(tAmount4);
+        monthlyData.put("weekIncome", Collections.singletonList(weekAmount));
+        BigDecimal weekIn = new BigDecimal("0.00");
+        for (BigDecimal bigDecimal : weekAmount) {
+            weekIn = weekIn.add(bigDecimal);
+        }
+        objects.add(weekIn);
+        LocalDateTime currentDateTime = LocalDateTime.now();
+        List<BigDecimal> amountByDay = new ArrayList<>(Collections.nCopies(7, BigDecimal.ZERO));
+        for (IncomeVO incomeVO3 : incomeVOS) {
+            Date insertTime = incomeVO3.getInsertTime();
+            // 将 Date 转换为 LocalDateTime
+            LocalDateTime insertDateTime = LocalDateTime.ofInstant(insertTime.toInstant(), ZoneId.systemDefault());
+            // 计算日期与当前日期的差距
+            long daysDifference = ChronoUnit.DAYS.between(insertDateTime.toLocalDate(), currentDateTime.toLocalDate());
+            // 如果日期在七天内,累加金额
+            if (daysDifference >= 0 && daysDifference < 7) {
+                int index = (int) (6 - daysDifference); // 计算对应的索引位置
+                BigDecimal amount3 = incomeVO3.getAmount();
+                BigDecimal updatedAmount = amountByDay.get(index).add(amount3);
+                amountByDay.set(index, updatedAmount);
+
+            }
+        }
+        monthlyData.put("dayIncome", Collections.singletonList(amountByDay));
+        BigDecimal totalToday = new BigDecimal("0.00");
+        for (BigDecimal bigDecimal : amountByDay) {
+            totalToday = totalToday.add(bigDecimal);
+        }
+        objects.add(totalToday);
+        // 最后put
+        monthlyData.put("yearMount",objects);
+
+        ArrayList<Object> integers = new ArrayList<>();
+        int year = DateUtil.year(new Date());
+        for (int i = 0; i < 10; i++) {
+            integers.add(year-i);
+        }
+        List<Object> collect1 = integers.stream().sorted().collect(Collectors.toList());
+        monthlyData.put("year",collect1);
         return monthlyData;
-
-
-
-
-
-
-
-
-//
-//        // 创建一个 Map 用于存储今年每个月的累计 amount
-//        Map<Integer, BigDecimal> monthToTotalAmountMap = new HashMap<>();
-//        Calendar calendar = Calendar.getInstance();
-//        int currentYear = calendar.get(Calendar.YEAR);
-//        List<BigDecimal> monthlyAmountList = new ArrayList<>(Collections.nCopies(12, BigDecimal.ZERO));
-//
-//        for (IncomeVO incomeVO1 : incomeVOS) {
-//            Calendar calendar1 = Calendar.getInstance();
-//            calendar1.setTime(incomeVO1.getInsertTime());
-//            int year = calendar1.get(Calendar.YEAR);
-//            int month = calendar1.get(Calendar.MONTH) + 1; // 月份从0开始,所以需要加1
-//            if (year == currentYear) {
-//                BigDecimal totalAmount = monthlyAmountList.get(month - 1);
-//                totalAmount = totalAmount.add(incomeVO1.getAmount());
-//                monthlyAmountList.set(month - 1, totalAmount);
-//            }
-//        }
-//        monthlyData.put("monthIncome", Collections.singletonList(monthlyAmountList));
-//
-//        // 获取当前月份
-//        LocalDate currentDate = LocalDate.now();
-//        int currentMonth = currentDate.getMonthValue();
-//        // 初始化一个长度为当前月份的天数的列表,并将每一天的金额初始化为零
-//        int daysInCurrentMonth = currentDate.lengthOfMonth();
-//        List<BigDecimal> weekAmount = new ArrayList<>();
-//
-//        // 获取最近四周
-//        LocalDateTime minNow = LocalDateTime.now().with(LocalTime.MIN);
-//        LocalDateTime maxNow = LocalDateTime.now().with(LocalTime.MAX);
-//        // 周度数据
-//        LocalDateTime week1Start = minNow.minusDays(6);
-//        LocalDateTime week1End = maxNow;
-//
-//        LocalDateTime week2Start = minNow.minusDays(13);
-//        LocalDateTime week2End = minNow.minusDays(7);
-//
-//        LocalDateTime week3Start = minNow.minusDays(20);
-//        LocalDateTime week3End = minNow.minusDays(14);
-//
-//        LocalDateTime week4Start = minNow.minusDays(27);
-//        LocalDateTime week4End = minNow.minusDays(21);
-//        // 用于存放四个周的数据
-//        List<Object> objects1 = new ArrayList<>();
-//        // 计算每个周的amount总和
-//        BigDecimal tAmount1 = BigDecimal.ZERO;
-//        BigDecimal tAmount2 = BigDecimal.ZERO;
-//        BigDecimal tAmount3 = BigDecimal.ZERO;
-//        BigDecimal tAmount4 = BigDecimal.ZERO;
-//        for (IncomeVO incomeVO1 : incomeVOS) {
-//            Date insertTime = incomeVO1.getInsertTime();
-//            // 将Date转换为LocalDateTime
-//            Instant instant = insertTime.toInstant();
-//            ZoneId zoneId = ZoneId.systemDefault();
-//            LocalDateTime dateTime = instant.atZone(zoneId).toLocalDateTime();
-//            // 判断该数据属于哪个周
-//            if (dateTime.isAfter(week1Start) && dateTime.isBefore(week1End)) {
-//                BigDecimal amount1 = incomeVO1.getAmount();
-//                tAmount1=tAmount1.add(amount1);
-//            } else if (dateTime.isAfter(week2Start) && dateTime.isBefore(week2End)) {
-//                BigDecimal amount1 = incomeVO1.getAmount();
-//                tAmount2=tAmount2.add(amount1);
-//            } else if (dateTime.isAfter(week3Start) && dateTime.isBefore(week3End)) {
-//                BigDecimal amount1 = incomeVO1.getAmount();
-//                tAmount4=tAmount3.add(amount1);
-//            } else if (dateTime.isAfter(week4Start) && dateTime.isBefore(week4End)) {
-//                BigDecimal amount1 = incomeVO1.getAmount();
-//                tAmount4=tAmount4.add(amount1);
-//            }
-//        }
-//        weekAmount.add(tAmount1);
-//        weekAmount.add(tAmount2);
-//        weekAmount.add(tAmount3);
-//        weekAmount.add(tAmount4);
-//        monthlyData.put("weekIncome", Collections.singletonList(weekAmount));
-//
-//        LocalDateTime currentDateTime = LocalDateTime.now();
-//        List<BigDecimal> amountByDay = new ArrayList<>(Collections.nCopies(7, BigDecimal.ZERO));
-//        for (IncomeVO incomeVO3 : incomeVOS) {
-//            Date insertTime = incomeVO3.getInsertTime();
-//            // 将 Date 转换为 LocalDateTime
-//            LocalDateTime insertDateTime = LocalDateTime.ofInstant(insertTime.toInstant(), ZoneId.systemDefault());
-//            // 计算日期与当前日期的差距
-//            long daysDifference = ChronoUnit.DAYS.between(insertDateTime.toLocalDate(), currentDateTime.toLocalDate());
-//            // 如果日期在七天内,累加金额
-//            if (daysDifference >= 0 && daysDifference < 7) {
-//                int index = (int) (6 - daysDifference); // 计算对应的索引位置
-//                BigDecimal amount3 = incomeVO3.getAmount();
-//                BigDecimal updatedAmount = amountByDay.get(index).add(amount3);
-//                amountByDay.set(index, updatedAmount);
-//
-//            }
-//        }
-//
-//        monthlyData.put("dayIncome", Collections.singletonList(amountByDay));
-//        // 获取当前日期和时间
-//        LocalDateTime now = LocalDateTime.now();
-//        // 今年的起始日期和结束日期
-//        LocalDateTime startOfYear = now.with(TemporalAdjusters.firstDayOfYear()).with(LocalTime.MIN);
-//        LocalDateTime endOfYear = now.with(TemporalAdjusters.lastDayOfYear()).with(LocalTime.MAX);
-//        // 本月的起始日期和结束日期
-//        LocalDateTime startOfMonth = now.with(TemporalAdjusters.firstDayOfMonth()).with(LocalTime.MIN);
-//        LocalDateTime endOfMonth = now.with(TemporalAdjusters.lastDayOfMonth()).with(LocalTime.MAX);
-//        // 本周的起始日期和结束日期
-//        LocalDateTime startOfWeek = now.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)).with(LocalTime.MIN);
-//        LocalDateTime endOfWeek = now.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY)).with(LocalTime.MAX);
-//        // 今天的起始日期和结束日期
-//        LocalDateTime startOfDay = now.with(LocalTime.MIN);
-//        LocalDateTime endOfDay = now.with(LocalTime.MAX);
-//        // 创建日期格式化器
-//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-//        // 筛选符合条件的IncomeVO对象
-//        List<IncomeVO> thisYearIncome = incomeVOS.stream()
-//                .filter(income -> {
-//                    Date insertTime = income.getInsertTime();
-//                    try {
-//                        LocalDateTime insertDateTime = LocalDateTime.ofInstant(insertTime.toInstant(), ZoneId.systemDefault());
-//                        return insertDateTime.isAfter(startOfYear) && insertDateTime.isBefore(endOfYear);
-//                    } catch (Exception e) {
-//                        e.printStackTrace();
-//                        return false;
-//                    }
-//                })
-//                .collect(Collectors.toList());
-//        // 使用 map 方法将 IncomeVO 转换为 BigDecimal,提取出 amount 字段
-//        List<BigDecimal> amounts = thisYearIncome.stream()
-//                .map(IncomeVO::getAmount)
-//                .collect(Collectors.toList());
-//        //本年总收入
-//        BigDecimal totalAmount = amounts.stream()
-//                .reduce(BigDecimal.ZERO, BigDecimal::add);
-//        // 用于展示总营收 本年度营收 本月营收 本周营收 本日营收
-//        objects.add(totalAmount);
-//        List<IncomeVO> thisMonthIncome = incomeVOS.stream()
-//                .filter(income -> {
-//                    Date insertTime = income.getInsertTime();
-//                    try {
-//                        LocalDateTime insertDateTime = LocalDateTime.ofInstant(insertTime.toInstant(), ZoneId.systemDefault());
-//                        return insertDateTime.isAfter(startOfMonth) && insertDateTime.isBefore(endOfMonth);
-//                    } catch (Exception e) {
-//                        e.printStackTrace();
-//                        return false;
-//                    }
-//                })
-//                .collect(Collectors.toList());
-//        List<BigDecimal> amountMonth = thisMonthIncome.stream()
-//                .map(IncomeVO::getAmount)
-//                .collect(Collectors.toList());
-//        // 使用 本月总收入
-//        BigDecimal totalMonth = amountMonth.stream()
-//                .reduce(BigDecimal.ZERO, BigDecimal::add);
-//
-//        objects.add(totalMonth);
-//        List<IncomeVO> thisWeekIncome = incomeVOS.stream()
-//                .filter(income -> {
-//                    Date insertTime = income.getInsertTime();
-//                    try {
-//                        LocalDateTime insertDateTime = LocalDateTime.ofInstant(insertTime.toInstant(), ZoneId.systemDefault());
-//                        return insertDateTime.isAfter(startOfWeek) && insertDateTime.isBefore(endOfWeek);
-//                    } catch (Exception e) {
-//                        e.printStackTrace();
-//                        return false;
-//                    }
-//                })
-//                .collect(Collectors.toList());
-//        List<BigDecimal> amountWeek = thisWeekIncome.stream()
-//                .map(IncomeVO::getAmount)
-//                .collect(Collectors.toList());
-//        // 使用 本月总收入
-//        BigDecimal totalWeek = amountWeek.stream()
-//                .reduce(BigDecimal.ZERO, BigDecimal::add);
-//        objects.add(totalWeek);
-//        List<IncomeVO> todayIncome = incomeVOS.stream()
-//                .filter(income -> {
-//                    Date insertTime = income.getInsertTime();
-//                    try {
-//                        LocalDateTime insertDateTime = LocalDateTime.ofInstant(insertTime.toInstant(), ZoneId.systemDefault());
-//                        return insertDateTime.isAfter(startOfDay) && insertDateTime.isBefore(endOfDay);
-//                    } catch (Exception e) {
-//                        e.printStackTrace();
-//                        return false;
-//                    }
-//                })
-//                .collect(Collectors.toList());
-//        List<BigDecimal> amountToday = todayIncome.stream()
-//                .map(IncomeVO::getAmount)
-//                .collect(Collectors.toList());
-//        // 使用 本月总收入
-//        BigDecimal totalToday = amountToday.stream()
-//                .reduce(BigDecimal.ZERO, BigDecimal::add);
-//        objects.add(totalToday);
-//        // 最后put
-//        monthlyData.put("yearMount",objects);
-//
-//        ArrayList<Object> integers = new ArrayList<>();
-//        int year = DateUtil.year(new Date());
-//        for (int i = 0; i < 10; i++) {
-//            integers.add(year-i);
-//        }
-//        List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
-//        monthlyData.put("year",collect);
-//        return monthlyData;
     }
-
-
 
     /**
      * 运营统计-平台-用户数据
@@ -515,39 +487,39 @@
         List<MoneyBack> refund = refundCoursePackageClient.getRefund();
 
         for (MoneyBack moneyBack : refund) {
-            List<TCoursePackagePayment> coursePackagePayments =  courseStuddentClient.queryByIds(moneyBack.getIds());
+            List<CoursePackageOrderStudent> coursePackagePayments =  courseStuddentClient.queryByIds(moneyBack.getIds());
             BigDecimal totalAmount = BigDecimal.ZERO;
-            for (TCoursePackagePayment payment : coursePackagePayments){
-                //课包名称
-                TCoursePackage tCoursePackage = coursePackageClient.queryById(payment.getCoursePackageId());
-                payment.setName(tCoursePackage.getName());
-                payment.setId(Long.valueOf(tCoursePackage.getId()));
-                BigDecimal cashPayment = payment.getCashPayment();
-                if (cashPayment==null){
-                    cashPayment = BigDecimal.ZERO;
-                }
-                Integer totalClassHours = payment.getTotalClassHours();
-                BigDecimal result =  new BigDecimal(0);
-                if (totalClassHours!=0) {
-                    result = cashPayment.divide(BigDecimal.valueOf(totalClassHours), 2, RoundingMode.HALF_UP);
-                }
-                //单价
-                payment.setOnePrice(result);
-                int has = payment.getTotalClassHours() - payment.getLaveClassHours();
-                //剩余课时
-                payment.setHasHours(has);
-                BigDecimal onePrice = payment.getOnePrice();
-                Integer laveClassHours = payment.getLaveClassHours();
-                BigDecimal result1 = onePrice.multiply(BigDecimal.valueOf(laveClassHours));
-                //总价
-                payment.setRestPrice(result1);
-                System.out.println("======="+result1);
-                totalAmount = totalAmount.add(result1);
-                IncomeVO temp = new IncomeVO();
-                temp.setInsertTime(payment.getInsertTime());
-                temp.setAmount(result1);
-                incomeVOS.add(temp);
-            }
+//            for (TCoursePackagePayment payment : coursePackagePayments){
+//                //课包名称
+//                TCoursePackage tCoursePackage = coursePackageClient.queryById(payment.getCoursePackageId());
+//                payment.setName(tCoursePackage.getName());
+//                payment.setId(Long.valueOf(tCoursePackage.getId()));
+//                BigDecimal cashPayment = payment.getCashPayment();
+//                if (cashPayment==null){
+//                    cashPayment = BigDecimal.ZERO;
+//                }
+//                Integer totalClassHours = payment.getTotalClassHours();
+//                BigDecimal result =  new BigDecimal(0);
+//                if (totalClassHours!=0) {
+//                    result = cashPayment.divide(BigDecimal.valueOf(totalClassHours), 2, RoundingMode.HALF_UP);
+//                }
+//                //单价
+//                payment.setOnePrice(result);
+//                int has = payment.getTotalClassHours() - payment.getLaveClassHours();
+//                //剩余课时
+//                payment.setHasHours(has);
+//                BigDecimal onePrice = payment.getOnePrice();
+//                Integer laveClassHours = payment.getLaveClassHours();
+//                BigDecimal result1 = onePrice.multiply(BigDecimal.valueOf(laveClassHours));
+//                //总价
+//                payment.setRestPrice(result1);
+//                System.out.println("======="+result1);
+//                totalAmount = totalAmount.add(result1);
+//                IncomeVO temp = new IncomeVO();
+//                temp.setInsertTime(payment.getInsertTime());
+//                temp.setAmount(result1);
+//                incomeVOS.add(temp);
+//            }
         }
         // 获取赛事退费记录
         List<PaymentCompetition> competitions = competitionClient.listAllPayment(competitionQuery);
@@ -785,18 +757,27 @@
     @RequestMapping(value = "/backStore")
     @ResponseBody
     public Object backStore(Integer id) {
+        List<Integer> collect1 = Arrays.asList(id);
+        //课程
+        List<Integer> list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1);
+        //场地
+        List<SiteBooking> list1 = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", collect1).eq("state", 1));
+        List<Integer> collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
+        list.addAll(collect);
+        //赛事
+        List<Integer> list2 = competitionClient.queryAppUserId(collect1);
+        list.addAll(list2);
+        //门票
+
         HashMap<String, Object> map = new HashMap<>();
-        List<Integer> userPt = appUserClient.getUserStore(id);
-        if(userPt.size()==0){
-            userPt.add(-1);
-        }
+
         ArrayList<Object> integers = new ArrayList<>();
         int year = DateUtil.year(new Date());
-        List<TBackRecord> thisYear = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().like(TBackRecord::getTime, year).in(TBackRecord::getUserId,userPt));
+        List<TBackRecord> thisYear = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().like(TBackRecord::getTime, year).in(TBackRecord::getUserId,list));
         double sum5 = thisYear.stream().mapToDouble(TBackRecord::getMoney).sum();
         map.put("thisYear",sum5);
 
-        List<TBackRecord> thisMonth = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().like(TBackRecord::getTime, new SimpleDateFormat("yyyy-MM").format(new Date())).in(TBackRecord::getUserId,userPt));
+        List<TBackRecord> thisMonth = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().like(TBackRecord::getTime, new SimpleDateFormat("yyyy-MM").format(new Date())).in(TBackRecord::getUserId,list));
         double sum6= thisMonth.stream().mapToDouble(TBackRecord::getMoney).sum();
         map.put("thisMonth",sum6);
 
@@ -805,14 +786,14 @@
         for (int i = 0; i < 10; i++) {
             integers.add(year-i);
         }
-        List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
+        List<Object> collectw = integers.stream().sorted().collect(Collectors.toList());
         // 年
         ArrayList<Double> years = new ArrayList<>();
-        for (Object o : collect) {
+        for (Object o : collectw) {
             double sum=0.0;
             String s = o.toString();
-            List<TBackRecord> list = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().like(TBackRecord::getTime, s).in(TBackRecord::getUserId,userPt));
-            sum = list.stream().mapToDouble(TBackRecord::getMoney).sum();
+            List<TBackRecord> lists = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().like(TBackRecord::getTime, s).in(TBackRecord::getUserId,list));
+            sum = lists.stream().mapToDouble(TBackRecord::getMoney).sum();
             years.add(sum);
         }
         ArrayList<Double> months = new ArrayList<>();
@@ -824,8 +805,8 @@
                 m="0"+i;
             }
             String s = year + "-" + m;
-            List<TBackRecord> list = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().like(TBackRecord::getTime, s).in(TBackRecord::getUserId,userPt));
-            sum = list.stream().mapToDouble(TBackRecord::getMoney).sum();
+            List<TBackRecord> lists = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().like(TBackRecord::getTime, s).in(TBackRecord::getUserId,list));
+            sum = lists.stream().mapToDouble(TBackRecord::getMoney).sum();
             months.add(sum);
         }
 
@@ -846,14 +827,14 @@
         String s7 = minNow.minusDays(27).toString();
         String s8 = maxNow.minusDays(20).toString();
 
-        List<TBackRecord> list = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().between(TBackRecord::getTime, s7,s8).in(TBackRecord::getUserId,userPt));
-        double sum = list.stream().mapToDouble(TBackRecord::getMoney).sum();
+        List<TBackRecord> lists = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().between(TBackRecord::getTime, s7,s8).in(TBackRecord::getUserId,list));
+        double sum = lists.stream().mapToDouble(TBackRecord::getMoney).sum();
 
-        List<TBackRecord> list1 = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().between(TBackRecord::getTime, s5,s6).in(TBackRecord::getUserId,userPt));
-        double sum1 = list1.stream().mapToDouble(TBackRecord::getMoney).sum();
-        List<TBackRecord> list2 = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().between(TBackRecord::getTime, s3,s4).in(TBackRecord::getUserId,userPt));
-        double sum2 = list2.stream().mapToDouble(TBackRecord::getMoney).sum();
-        List<TBackRecord> list3 = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().between(TBackRecord::getTime, s1,s2).in(TBackRecord::getUserId,userPt));
+        List<TBackRecord> lists1 = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().between(TBackRecord::getTime, s5,s6).in(TBackRecord::getUserId,list));
+        double sum1 = lists1.stream().mapToDouble(TBackRecord::getMoney).sum();
+        List<TBackRecord> lists2 = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().between(TBackRecord::getTime, s3,s4).in(TBackRecord::getUserId,list));
+        double sum2 = lists2.stream().mapToDouble(TBackRecord::getMoney).sum();
+        List<TBackRecord> list3 = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().between(TBackRecord::getTime, s1,s2).in(TBackRecord::getUserId,list));
         double sum3 = list3.stream().mapToDouble(TBackRecord::getMoney).sum();
 
         map.put("thisWeek",sum3);
@@ -870,7 +851,7 @@
         for (int i = 6; i >= 0; i--) {
             String s = minNow.minusDays(i).toString();
             String s9 = maxNow.minusDays(i).toString();
-            List<TBackRecord> day = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().between(TBackRecord::getTime, s,s9).in(TBackRecord::getUserId,userPt));
+            List<TBackRecord> day = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().between(TBackRecord::getTime, s,s9).in(TBackRecord::getUserId,list));
             double sum4 = day.stream().mapToDouble(TBackRecord::getMoney).sum();
             days.add(sum4);
             if(i==0){
@@ -902,7 +883,45 @@
         HashMap<String, Object> map = appUserClient.stuPt();
         return map;
     }
+    @RequestMapping(value = "/stuYys")
+    @ResponseBody
+    public Object stuYys(Integer id) {
+        List<TStore> list4 = storeService.list(new QueryWrapper<TStore>().eq("operatorId", id).eq("state", 1));
+        List<Integer> collect1 = list4.stream().map(TStore::getId).collect(Collectors.toList());
+        //课程
+        List<Integer> list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1);
+        //场地
+        List<SiteBooking> list1 = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", collect1).eq("state", 1));
+        List<Integer> collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
+        list.addAll(collect);
+        //赛事
+        List<Integer> list2 = competitionClient.queryAppUserId(collect1);
+        list.addAll(list2);
+        //门票
 
+        HashMap<String, Object> map = appUserClient.stuYys(list);
+        return map;
+    }
+    @RequestMapping(value = "/stuStores")
+    @ResponseBody
+    public Object stuStores(Integer id) {
+        List<Integer> collect1 = Arrays.asList(id);
+        //课程
+        List<Integer> list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1);
+        //场地
+        List<SiteBooking> list1 = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", collect1).eq("state", 1));
+        List<Integer> collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
+        list.addAll(collect);
+        //赛事
+        List<Integer> list2 = competitionClient.queryAppUserId(collect1);
+        list.addAll(list2);
+        //门票
+
+        HashMap<String, Object> map = appUserClient.stuStores(list);
+        return map;
+    }
+
+    // 消耗课时数据-平台
     @RequestMapping(value = "/coursePt")
     @ResponseBody
     public Object coursePt() {
@@ -910,17 +929,58 @@
         HashMap<String, Object> map = coursePackagePaymentClient.coursePt(userPt);
         return map;
     }
+    // 消耗课时数据-运营商
+    @RequestMapping(value = "/courseYys")
+    @ResponseBody
+    public Object courseYys(Integer id) {
+        List<Integer> userPt = appUserClient.getUserYYs(id);
+        HashMap<String, Object> map = coursePackagePaymentClient.coursePt(userPt);
+        return map;
+    }
+    // 消耗课时数据-运营商
+    @RequestMapping(value = "/courseStore")
+    @ResponseBody
+    public Object courseStore(Integer id) {
+        List<Integer> userPt = appUserClient.getUserPt(Arrays.asList(id));
+        HashMap<String, Object> map = coursePackagePaymentClient.coursePt(userPt);
+        return map;
+    }
 
     @RequestMapping(value = "/userAndVipYys")
     @ResponseBody
     public Object userAndVipYys(Integer id) {
-        HashMap<String, Object> map = appUserClient.userAndVipYys(id);
+        List<TStore> list4 = storeService.list(new QueryWrapper<TStore>().eq("operatorId", id).eq("state", 1));
+        List<Integer> collect1 = list4.stream().map(TStore::getId).collect(Collectors.toList());
+        //课程
+        List<Integer> list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1);
+        //场地
+        List<SiteBooking> list1 = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", collect1).eq("state", 1));
+        List<Integer> collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
+        list.addAll(collect);
+        //赛事
+        List<Integer> list2 = competitionClient.queryAppUserId(collect1);
+        list.addAll(list2);
+        //门票
+
+        HashMap<String, Object> map = appUserClient.userAndVipYys(list);
         return map;
     }
     @RequestMapping(value = "/userAndVipStore")
     @ResponseBody
     public Object userAndVipStore(Integer id) {
-        HashMap<String, Object> map = appUserClient.userAndVipStore(id);
+        List<Integer> collect1 = Arrays.asList(id);
+        //课程
+        List<Integer> list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1);
+        //场地
+        List<SiteBooking> list1 = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", collect1).eq("state", 1));
+        List<Integer> collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
+        list.addAll(collect);
+        //赛事
+        List<Integer> list2 = competitionClient.queryAppUserId(collect1);
+        list.addAll(list2);
+        //门票
+
+        HashMap<String, Object> map = appUserClient.userAndVipStore(list);
         return map;
     }
     @RequestMapping(value = "/actPt")
@@ -953,12 +1013,28 @@
     @RequestMapping(value = "/actYys")
     @ResponseBody
     public Object actYys(Integer id) {
-        List<Integer> userPt = appUserClient.getUserYYs(id);
-        HashMap<String, Object> map = competitionClient.actPt(userPt);
+        CompetionVO competionVO = new CompetionVO();
+        List<TStore> list4 = storeService.list(new QueryWrapper<TStore>().eq("operatorId", id).eq("state", 1));
+        List<Integer> collect1 = list4.stream().map(TStore::getId).collect(Collectors.toList());
+        //课程
+        List<Integer> list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1);
+        //场地
+        List<SiteBooking> list1 = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", collect1).eq("state", 1));
+        List<Integer> collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
+        list.addAll(collect);
+        //赛事
+        List<Integer> list2 = competitionClient.queryAppUserId(collect1);
+        list.addAll(list2);
+        //门票
 
-        List<TStore> list = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getOperatorId, 0));
+
+        competionVO.setIds(list);
+        competionVO.setOperatorId(id);
+        HashMap<String, Object> map = competitionClient.actYys(competionVO);
+
+        List<TStore> lists = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getOperatorId, id));
         long l1=0;
-        for (TStore tStore : list) {
+        for (TStore tStore : lists) {
             long l = DateUtil.betweenDay(tStore.getCreateTime(), new Date(), true);
             String startTime = tStore.getStartTime();
             String endTime = tStore.getEndTime();
@@ -970,7 +1046,7 @@
             if(integer==0 && integer1==0){
                 a=24;
             }else {
-                a= integer1-integer;
+                a= integer-integer1;
             }
             l1 += l * a;
         }
@@ -980,12 +1056,23 @@
     @RequestMapping(value = "/actStore")
     @ResponseBody
     public Object actStore(Integer id) {
-        List<Integer> userPt = appUserClient.getUserStore(id);
-        HashMap<String, Object> map = competitionClient.actPt(userPt);
+        List<Integer> collect1 = Arrays.asList(id);
+        //课程
+        List<Integer> list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1);
+        //场地
+        List<SiteBooking> list1 = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", collect1).eq("state", 1));
+        List<Integer> collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
+        list.addAll(collect);
+        //赛事
+        List<Integer> list2 = competitionClient.queryAppUserId(collect1);
+        list.addAll(list2);
+        //门票
 
-        List<TStore> list = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getOperatorId, 0));
+        HashMap<String, Object> map = competitionClient.actPt(list);
+
+        List<TStore> lists = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getOperatorId, 0));
         long l1=0;
-        for (TStore tStore : list) {
+        for (TStore tStore : lists) {
             long l = DateUtil.betweenDay(tStore.getCreateTime(), new Date(), true);
             String startTime = tStore.getStartTime();
             String endTime = tStore.getEndTime();
@@ -1013,9 +1100,12 @@
     @RequestMapping("/operator")
     public String operator(Model model) {
         Integer objectType = UserExt.getUser().getObjectType();
-        List<TOperator> list = operatorService.list(new LambdaQueryWrapper<TOperator>().ne(TOperator::getState, 3));
+        Integer objectId = UserExt.getUser().getObjectId();
+
+        List<TOperator> list = operatorService.list(new LambdaQueryWrapper<TOperator>().ne(TOperator::getState, 3).ne(TOperator::getId,0));
         model.addAttribute("list",list);
         model.addAttribute("objectType",objectType);
+        model.addAttribute("objectId",objectId);
         return PREFIX + "operatorIncome.html";
     }
 
@@ -1029,18 +1119,12 @@
     public Object selectYys(Integer id,String time) {
         HashMap<String, Object> map = new HashMap<>();
         // 找出平台的用户
-        List<User> list = sysUserService.list(new LambdaQueryWrapper<User>().eq(User::getObjectType, 2));
-        List<Integer> ids = list.stream().map(User::getId).collect(Collectors.toList());
-        List<Integer> userIds = appUserClient.getUserYYs(id);
-        QueryDataFee queryDataFee = new QueryDataFee(time, userIds);
-        // 会员费
-        HashMap<String, Object> map1 = appUserClient.queryFee(queryDataFee);
-        Object fee1 = map1.get("fee1");
-
-        map.put("fee1",fee1);
-        //玩湃比
-        Object fee2 = map1.get("fee2");
-        map.put("fee2",fee2);
+//        List<User> list = sysUserService.list(new LambdaQueryWrapper<User>().eq(User::getObjectType, 2));
+//        List<Integer> ids = list.stream().map(User::getId).collect(Collectors.toList());
+//        List<Integer> userIds = appUserClient.getUserYYs(id);
+        List<TStore> list4 = storeService.list(new QueryWrapper<TStore>().eq("operatorId", id).eq("state", 1));
+        List<Integer> collect1 = list4.stream().map(TStore::getId).collect(Collectors.toList());
+        QueryDataFee queryDataFee = new QueryDataFee(time, collect1);
         // 课程收入
         HashMap<String, Object> map3 = courseClient.queryFee(queryDataFee);
         map.put("fee3",map3.get("fee"));
@@ -1053,8 +1137,15 @@
         map.put("fee4",aDouble1);
 
         // 订场
-        if(ids.size()==0){
+        List<Integer> ids = new ArrayList<>();
+        if(collect1.size()==0){
             ids.add(-1);
+        }else{
+            List<TSite> list = siteService.list(new QueryWrapper<TSite>().in("storeId", collect1).eq("state", 1));
+            ids = list.stream().map(TSite::getId).collect(Collectors.toList());
+            if(collect1.size()==0){
+                ids.add(-1);
+            }
         }
         LambdaQueryWrapper<SiteBooking> vipPaymentLambdaQueryWrapper = new LambdaQueryWrapper<>();
         if(ToolUtil.isNotEmpty(time)){
@@ -1062,10 +1153,7 @@
             String etime = time.split(" - ")[1]+" 23:59:59";
             vipPaymentLambdaQueryWrapper.between(SiteBooking::getInsertTime,stime,etime);
         }
-        if(userIds.size()==0){
-            userIds.add(-1);
-        }
-        vipPaymentLambdaQueryWrapper.in(SiteBooking::getAppUserId,userIds);
+        vipPaymentLambdaQueryWrapper.in(SiteBooking::getSiteId,ids);
         vipPaymentLambdaQueryWrapper.ne(SiteBooking::getStatus,0);
         ArrayList<Integer> objects = new ArrayList<>();
         objects.add(1);
@@ -1136,11 +1224,19 @@
     @RequestMapping("/selectStore")
     public Object selectStore(Integer id,String time) {
         HashMap<String, Object> map = new HashMap<>();
-        // 找出平台的用户
-        List<User> list = sysUserService.list(new LambdaQueryWrapper<User>().eq(User::getObjectType, 2));
-        List<Integer> ids = list.stream().map(User::getId).collect(Collectors.toList());
-        List<Integer> userIds = appUserClient.getUserStore(id);
-        QueryDataFee queryDataFee = new QueryDataFee(time, userIds);
+        List<Integer> collect1 = Arrays.asList(id);
+        //课程
+        List<Integer> list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1);
+        //场地
+        List<SiteBooking> list1 = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", collect1).eq("state", 1));
+        List<Integer> collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
+        list.addAll(collect);
+        //赛事
+        List<Integer> list2 = competitionClient.queryAppUserId(collect1);
+        list.addAll(list2);
+        //门票
+
+        QueryDataFee queryDataFee = new QueryDataFee(time, list);
         // 会员费
         HashMap<String, Object> map1 = appUserClient.queryFee(queryDataFee);
         Object fee1 = map1.get("fee1");
@@ -1161,34 +1257,28 @@
         map.put("fee4",aDouble1);
 
         // 订场
-        if(ids.size()==0){
-            ids.add(-1);
-        }
         LambdaQueryWrapper<SiteBooking> vipPaymentLambdaQueryWrapper = new LambdaQueryWrapper<>();
         if(ToolUtil.isNotEmpty(time)){
             String stime = time.split(" - ")[0]+" 00:00:00";
             String etime = time.split(" - ")[1]+" 23:59:59";
             vipPaymentLambdaQueryWrapper.between(SiteBooking::getInsertTime,stime,etime);
         }
-        if(userIds.size()==0){
-            userIds.add(-1);
-        }
-        vipPaymentLambdaQueryWrapper.in(SiteBooking::getAppUserId,userIds);
+        vipPaymentLambdaQueryWrapper.in(SiteBooking::getAppUserId,list);
         vipPaymentLambdaQueryWrapper.ne(SiteBooking::getStatus,0);
         ArrayList<Integer> objects = new ArrayList<>();
         objects.add(1);
         objects.add(2);
         vipPaymentLambdaQueryWrapper.in(SiteBooking::getPayType,objects);
-        List<SiteBooking> list1 = siteBookingService.list(vipPaymentLambdaQueryWrapper);
-        double sum = list1.stream().mapToDouble(SiteBooking::getPayMoney).sum();
+        List<SiteBooking> lists1 = siteBookingService.list(vipPaymentLambdaQueryWrapper);
+        double sum = lists1.stream().mapToDouble(SiteBooking::getPayMoney).sum();
         map.put("fee5",sum);
 
 
-        List<Integer> collect = list1.stream().map(SiteBooking::getSiteId).collect(Collectors.toList());
-        if(collect.size()==0){
+        List<Integer> collects = list1.stream().map(SiteBooking::getSiteId).collect(Collectors.toList());
+        if(collects.size()==0){
             collect.add(-1);
         }
-        List<TSite> list3 = siteService.list(new LambdaQueryWrapper<TSite>().in(TSite::getId, collect));
+        List<TSite> list3 = siteService.list(new LambdaQueryWrapper<TSite>().in(TSite::getId, collects));
         for (SiteBooking siteBooking : list1) {
             for (TSite tSite : list3) {
                 if(siteBooking.getSiteId().equals(tSite.getId())){
@@ -1198,16 +1288,16 @@
         }
 
 
-        List<TSiteType> list2 = siteTypeService.list();
+        List<TSiteType> lists2 = siteTypeService.list();
 
         List<Map<String,Object>> mapList = new ArrayList<>();
 
-        for (TSiteType tSiteType : list2) {
+        for (TSiteType tSiteType : lists2) {
             HashMap<String, Object> map2 = new HashMap<>();
             map2.put("name",tSiteType.getName());
             double a =0;
             for (SiteBooking siteBooking : list1) {
-                if(tSiteType.getId().equals(siteBooking.getType())){
+                if(null != siteBooking.getType() && tSiteType.getId().equals(siteBooking.getType()) && null != siteBooking.getPayMoney()){
                     a += siteBooking.getPayMoney();
                 }
             }
@@ -1240,9 +1330,19 @@
     @RequestMapping("/store")
     public String store(Model model) {
         Integer objectType = UserExt.getUser().getObjectType();
-        List<TStore> list = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getState, 1));
-        model.addAttribute("list",list);
+        List<TStore> tStores = new ArrayList<>();
+        if(objectType == 1){
+            tStores = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getState, 1));
+        }
+        if (objectType == 2){
+            tStores = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getState, 1).eq(TStore::getOperatorId,UserExt.getUser().getObjectId()));
+        }
+        if (objectType == 3){
+            tStores = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getState, 1).eq(TStore::getId,UserExt.getUser().getObjectId()));
+        }
+        model.addAttribute("list",tStores);
         model.addAttribute("objectType",objectType);
+        model.addAttribute("objectId",UserExt.getUser().getObjectId());
         return PREFIX + "storeIncome.html";
     }
 
@@ -1266,7 +1366,6 @@
         // 会员费
         HashMap<String, Object> map1 = appUserClient.queryFee(queryDataFee);
         Object fee1 = map1.get("fee1");
-
         map.put("fee1",fee1);
         //玩湃比
         Object fee2 = map1.get("fee2");
@@ -1276,12 +1375,9 @@
         map.put("fee3",map3.get("fee"));
         Object data = map3.get("data");
         map.put("courseData",data);
-
-
         // 赛事收入
         Double aDouble1 = competitionClient.queryFee(queryDataFee);
         map.put("fee4",aDouble1);
-
         // 订场
         if(ids.size()==0){
             ids.add(-1);
@@ -1295,15 +1391,28 @@
         if(userIds.size()==0){
             userIds.add(-1);
         }
-        vipPaymentLambdaQueryWrapper.in(SiteBooking::getAppUserId,userIds);
         vipPaymentLambdaQueryWrapper.ne(SiteBooking::getStatus,0);
+        vipPaymentLambdaQueryWrapper.ne(SiteBooking::getStatus,5);
         ArrayList<Integer> objects = new ArrayList<>();
         objects.add(1);
         objects.add(2);
         vipPaymentLambdaQueryWrapper.in(SiteBooking::getPayType,objects);
-        List<SiteBooking> list1 = siteBookingService.list(vipPaymentLambdaQueryWrapper);
+        List<SiteBooking> list1 = siteBookingService.list(new QueryWrapper<SiteBooking>()
+                .ne("status",0)
+                .ne("status",5)
+                .ne("payType",3)
+                .ne("payType",4));
         double sum = list1.stream().mapToDouble(SiteBooking::getPayMoney).sum();
-        map.put("fee5",sum);
+        // 智慧球场查询query
+        GameDataQuery gameDataQuery = new GameDataQuery();
+        gameDataQuery.setObjectId(0);
+        // 平台智慧球场
+        List<TGameRecord> data1 = ballClient.getData(gameDataQuery);
+        double sum1 = data1.stream()
+                .map(TGameRecord::getMoney) // 获取每个 TGameRecord 对象的 money 字段
+                .mapToDouble(BigDecimal::doubleValue) // 将 BigDecimal 转换为 double
+                .sum();
+        map.put("fee5",sum+sum1);
 
 
         List<Integer> collect = list1.stream().map(SiteBooking::getSiteId).collect(Collectors.toList());
@@ -1386,32 +1495,59 @@
     @RequestMapping("/stuUserDataYys")
     @ResponseBody
     public Object stuUserDataYys(Integer id) {
-        ArrayList<Integer> objects = new ArrayList<>();
-        objects.add(1);
-        HashMap<String, Object> map = appUserClient.queryUserAgeYys(id);
-
+        List<TStore> list4 = storeService.list(new QueryWrapper<TStore>().eq("operatorId", id).eq("state", 1));
+        List<Integer> collect1 = list4.stream().map(TStore::getId).collect(Collectors.toList());
+        //课程
+        List<Integer> list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1);
+        //场地
+        List<SiteBooking> list1 = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", collect1).eq("state", 1));
+        List<Integer> collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
+        list.addAll(collect);
+        //赛事
+        List<Integer> list2 = competitionClient.queryAppUserId(collect1);
+        list.addAll(list2);
+        //门票
+        HashMap<String, Object> map = appUserClient.queryUserAgeYys(list);
         return map;
     }
     @RequestMapping("/stuUserDataStore")
     @ResponseBody
     public Object stuUserDataStore(Integer id) {
-        ArrayList<Integer> objects = new ArrayList<>();
-        objects.add(1);
-        HashMap<String, Object> map = appUserClient.queryUserAgeStore(id);
+
+        List<Integer> collect1 = Arrays.asList(id);
+        //课程
+        List<Integer> list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1);
+        //场地
+        List<SiteBooking> list1 = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", collect1).eq("state", 1));
+        List<Integer> collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
+        list.addAll(collect);
+        //赛事
+        List<Integer> list2 = competitionClient.queryAppUserId(collect1);
+        list.addAll(list2);
+        //门票
+
+        HashMap<String, Object> map = appUserClient.queryUserAgeStore(list);
 
         return map;
     }
     @RequestMapping("/selectYysJx")
     @ResponseBody
     public Object selectYysJx(Integer id) {
-        ArrayList<Integer> objects = new ArrayList<>();
-        objects.add(1);
-        HashMap<String, Object> map1 = appUserClient.queryUserAgeYys1(id);
-        // 找出运营商的用户
-        List<Integer> userYYs = appUserClient.getUserYYs(id);
+        List<TStore> list4 = storeService.list(new QueryWrapper<TStore>().eq("operatorId", id).eq("state", 1));
+        List<Integer> collect1 = list4.stream().map(TStore::getId).collect(Collectors.toList());
+        //课程
+        List<Integer> list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1);
+        //场地
+        List<SiteBooking> list1 = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", collect1).eq("state", 1));
+        List<Integer> collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
+        list.addAll(collect);
+        //赛事
+        List<Integer> list2 = competitionClient.queryAppUserId(collect1);
+        list.addAll(list2);
+        //门票
 
-
-        List<Map<String, Object>> mapList = coursePackagePaymentClient.queryCourseData(userYYs);
+        HashMap<String, Object> map1 = appUserClient.queryUserAgeYys1(list);
+        List<Map<String, Object>> mapList = coursePackagePaymentClient.queryCourseData(list);
         ArrayList<Object> objects2 = new ArrayList<>();
         ArrayList<Object> objects3 = new ArrayList<>();
         for (Map<String, Object> map : mapList) {
@@ -1430,14 +1566,21 @@
     @RequestMapping("/selectStoreJx")
     @ResponseBody
     public Object selectStoreJx(Integer id) {
-        ArrayList<Integer> objects = new ArrayList<>();
-        objects.add(1);
-        HashMap<String, Object> map1 = appUserClient.queryUserAgeStore1(id);
-        // 找出运营商的用户
-        List<Integer> userYYs = appUserClient.getUserYYs(id);
+        List<Integer> collect1 = Arrays.asList(id);
+        //课程
+        List<Integer> list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1);
+        //场地
+        List<SiteBooking> list1 = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", collect1).eq("state", 1));
+        List<Integer> collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
+        list.addAll(collect);
+        //赛事
+        List<Integer> list2 = competitionClient.queryAppUserId(collect1);
+        list.addAll(list2);
+        //门票
 
+        HashMap<String, Object> map1 = appUserClient.queryUserAgeStore1(list);
 
-        List<Map<String, Object>> mapList = coursePackagePaymentClient.queryCourseData(userYYs);
+        List<Map<String, Object>> mapList = coursePackagePaymentClient.queryCourseData(list);
         ArrayList<Object> objects2 = new ArrayList<>();
         ArrayList<Object> objects3 = new ArrayList<>();
         for (Map<String, Object> map : mapList) {

--
Gitblit v1.7.1