1
luofl
2025-04-03 399a115e33dfb070bb74540bad0ca66f799d53a7
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java
@@ -3,6 +3,7 @@
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;
@@ -14,8 +15,12 @@
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;
@@ -50,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;
    /**
     * 跳转到平台统计数据页面
     */
@@ -95,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";
    }
@@ -124,6 +125,8 @@
        IncomeQuery incomeQuery = new IncomeQuery();
        // 场地预约记录查询query
        SiteBookingQuery siteBookingQuery = new SiteBookingQuery();
        // 智慧球场查询query
        GameDataQuery gameDataQuery = new GameDataQuery();
        // 筛选运营商的是时候使用
        List<Integer> storeIds = new ArrayList<>();
        // 根据运营商ID 查询运营商下的所有门店
@@ -150,13 +153,14 @@
                       query.setInsertType(roleType);
            competitionQuery.setInsertType(roleType);
                 incomeQuery.setInsertType(roleType);
        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) {
@@ -167,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);
@@ -191,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) {
@@ -200,8 +207,9 @@
            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()));
            }
@@ -214,9 +222,10 @@
            List<SiteBooking> siteBookings = siteClient.listAll(siteBookingQuery);
            for (SiteBooking siteBooking : siteBookings) {
                IncomeVO temp = new IncomeVO();
                if(siteBooking.getStatus()!=3){
                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()));
@@ -229,9 +238,43 @@
        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);
            }
        }
@@ -444,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);
@@ -714,21 +757,27 @@
    @RequestMapping(value = "/backStore")
    @ResponseBody
    public Object backStore(Integer id) {
        if(UserExt.getUser().getObjectType()==3){
            id = UserExt.getUser().getObjectId();
        }
        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);
@@ -737,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<>();
@@ -756,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);
        }
@@ -778,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);
@@ -802,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){
@@ -837,13 +886,38 @@
    @RequestMapping(value = "/stuYys")
    @ResponseBody
    public Object stuYys(Integer id) {
        HashMap<String, Object> map = appUserClient.stuYys(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) {
        HashMap<String, Object> map = appUserClient.stuStores(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;
    }
@@ -859,7 +933,7 @@
    @RequestMapping(value = "/courseYys")
    @ResponseBody
    public Object courseYys(Integer id) {
        List<Integer> userPt = appUserClient.getUserPt(Arrays.asList(id));
        List<Integer> userPt = appUserClient.getUserYYs(id);
        HashMap<String, Object> map = coursePackagePaymentClient.coursePt(userPt);
        return map;
    }
@@ -875,16 +949,38 @@
    @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) {
        if(UserExt.getUser().getObjectType()==3){
            id = UserExt.getUser().getObjectId();
        }
        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")
@@ -918,15 +1014,27 @@
    @ResponseBody
    public Object actYys(Integer id) {
        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<Integer> userPt = appUserClient.getUserYYs(id);
        competionVO.setIds(userPt);
        competionVO.setIds(list);
        competionVO.setOperatorId(id);
        HashMap<String, Object> map = competitionClient.actYys(competionVO);
        List<TStore> list = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getOperatorId, id));
        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();
@@ -948,18 +1056,23 @@
    @RequestMapping(value = "/actStore")
    @ResponseBody
    public Object actStore(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 = competitionClient.actPt(list);
        Integer objectType = UserExt.getUser().getObjectType();
        if(objectType==3){
            id = UserExt.getUser().getObjectId();
        }
        List<Integer> userPt = appUserClient.getUserStore(id);
        HashMap<String, Object> map = competitionClient.actPt(userPt);
        List<TStore> list = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getOperatorId, 0));
        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();
@@ -1006,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"));
@@ -1030,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)){
@@ -1039,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);
@@ -1113,15 +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());
        Integer objectType = UserExt.getUser().getObjectType();
        if(objectType==3){
            id = UserExt.getUser().getObjectId();
        }
        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");
@@ -1142,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())){
@@ -1179,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();
                }
            }
@@ -1221,8 +1330,17 @@
    @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";
@@ -1248,7 +1366,6 @@
        // 会员费
        HashMap<String, Object> map1 = appUserClient.queryFee(queryDataFee);
        Object fee1 = map1.get("fee1");
        map.put("fee1",fee1);
        //玩湃比
        Object fee2 = map1.get("fee2");
@@ -1258,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);
@@ -1277,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());
@@ -1368,36 +1495,59 @@
    @RequestMapping("/stuUserDataYys")
    @ResponseBody
    public Object stuUserDataYys(Integer id) {
        ArrayList<Integer> objects = new ArrayList<>();
        objects.add(1);
        HashMap<String, Object> map = appUserClient.queryUserAgeYys(operatorService.getById(id).getId());
        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) {
        if(UserExt.getUser().getObjectType()==3){
            id = UserExt.getUser().getObjectId();
        }
        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) {
@@ -1416,18 +1566,21 @@
    @RequestMapping("/selectStoreJx")
    @ResponseBody
    public Object selectStoreJx(Integer id) {
        Integer objectType = UserExt.getUser().getObjectType();
        if(objectType==3){
            id = UserExt.getUser().getObjectId();
        }
        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) {