nickchange
2023-11-25 cad9305c4cbffe978370f4c39bfde63b248619c7
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java
@@ -2,10 +2,12 @@
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.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;
@@ -112,106 +114,134 @@
    @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();
        // 筛选运营商的是时候使用
        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());
                        incomeVOS.add(temp);
                    }
                    if (vipPayment.getAmount() != null) {
                        temp.setAmount(new BigDecimal(vipPayment.getAmount().toString()));
                    }
                }
                // 充值记录
                List<RechargeRecordsVO> rechargeRecordsVOS = financeClient.rechargeList(rechargeRecordsQuery);
        List<RechargeRecords> rechargeRecords = financeClient.rechargeList1(rechargeRecordsQuery);
                for (RechargeRecordsVO rechargeRecordsVO : rechargeRecordsVOS) {
                    IncomeVO temp = new IncomeVO();
                    temp.setInsertTime(rechargeRecordsVO.getInsertTime());
                    if (rechargeRecordsVO.getAmount() != null) {
                        temp.setAmount(rechargeRecordsVO.getAmount());
                    }
                    if (rechargeRecordsVO.getPayStatus() ==1){
                        incomeVOS.add(temp);
                    }
        // 会员支付记录
        List<VipPayment> vipPayments = vipPaymentClient.registrationList(incomeQuery);
        for (VipPayment vipPayment : vipPayments) {
            IncomeVO temp = new IncomeVO();
            if (vipPayment.getPayStatus()==1){
                temp.setInsertTime(vipPayment.getInsertTime());
                incomeVOS.add(temp);
            }
            if (vipPayment.getAmount() != null) {
                temp.setAmount(new BigDecimal(vipPayment.getAmount().toString()));
            }
        }
        // 充值记录
        List<RechargeRecordsVO> rechargeRecordsVOS = financeClient.rechargeList(rechargeRecordsQuery);
        for (RechargeRecordsVO rechargeRecordsVO : rechargeRecordsVOS) {
            IncomeVO temp = new IncomeVO();
            temp.setInsertTime(rechargeRecordsVO.getInsertTime());
            if (rechargeRecordsVO.getAmount() != null) {
                temp.setAmount(rechargeRecordsVO.getAmount());
            }
            if (rechargeRecordsVO.getPayStatus() ==1){
                incomeVOS.add(temp);
            }
        }
        // 报名课程记录
        List<RegisterOrderVO> registerOrderVOS = coursePackagePaymentClient.listAllRegister(query);
        for (RegisterOrderVO registerOrderVO : registerOrderVOS) {
            if (registerOrderVO.getMoney() == null) {
                continue;
            }
            IncomeVO temp = new IncomeVO();
            temp.setInsertTime(registerOrderVO.getInsertTime());
            if (registerOrderVO.getMoney() != null) {
                temp.setAmount(registerOrderVO.getMoney());
            }
            if (registerOrderVO.getPayStatus()==2){
                incomeVOS.add(temp);
            }
        }
        // query权限设置 获取运营商下的门店集合
        if (roleType==2){
            competitionQuery.setOperatorId(UserExt.getUser().getObjectId());
        }
        // 报名活动
        List<PaymentCompetition> competitions = competitionClient.listAllPayment(competitionQuery);
        for (PaymentCompetition competition : competitions) {
            if (competition.getPayStatus() != 2) {
                continue;
            }
            if (competition.getPayType()==3 || competition.getPayType()==4){
                continue;
            }
            IncomeVO temp = new IncomeVO();
            temp.setInsertTime(competition.getInsertTime());
            if (competition.getAmount() != null) {
                temp.setAmount(new BigDecimal(competition.getAmount().toString()));
            }
            incomeVOS.add(temp);
        }
        // 预约场地
        // 说明当前运营商下没有门店
        if (operatorId!=null && storeIds.size()==0){
        }else{
            List<SiteBooking> siteBookings = siteClient.listAll(siteBookingQuery);
            for (SiteBooking siteBooking : siteBookings) {
                IncomeVO temp = new IncomeVO();
                if(siteBooking.getStatus()!=3){
                    continue;
                }
                // 报名课程记录
                List<RegisterOrderVO> registerOrderVOS = coursePackagePaymentClient.listAllRegister(query);
                for (RegisterOrderVO registerOrderVO : registerOrderVOS) {
                    if (registerOrderVO.getMoney() == null) {
                        continue;
                    }
                    IncomeVO temp = new IncomeVO();
                    temp.setInsertTime(registerOrderVO.getInsertTime());
                    if (registerOrderVO.getMoney() != null) {
                        temp.setAmount(registerOrderVO.getMoney());
                    }
                    if (registerOrderVO.getPayStatus()==2){
                        incomeVOS.add(temp);
                    }
                temp.setInsertTime(siteBooking.getPayTime());
                if (siteBooking.getPayMoney() != null) {
                    temp.setAmount(new BigDecimal(siteBooking.getPayMoney().toString()));
                }
                    // 报名活动
                    List<PaymentCompetition> competitions = competitionClient.listAllPayment(competitionQuery);
                    for (PaymentCompetition competition : competitions) {
                        if (competition.getPayStatus() != 2) {
                            continue;
                        }
                        if (competition.getPayType()==3 || competition.getPayType()==4){
                            continue;
                        }
                        IncomeVO temp = new IncomeVO();
                        temp.setInsertTime(competition.getInsertTime());
                        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;
                    }
                    temp.setInsertTime(siteBooking.getPayTime());
                    if (siteBooking.getPayMoney() != null) {
                        temp.setAmount(new BigDecimal(siteBooking.getPayMoney().toString()));
                    }
                    incomeVOS.add(temp);
                }
                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);
            }
        }
        // 最终返回的数据
        Map<String, List<Object>> monthlyData = new HashMap<>();
        // 创建一个 Map 用于存储每年的累计 amount
@@ -251,16 +281,20 @@
        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()));
        }
        monthlyData.put("yearIncome",resultIncomeVOS);
        BigDecimal orDefault = yearToTotalAmountMap.getOrDefault(years, BigDecimal.ZERO);
        objects.add(orDefault);
        // 创建一个 Map 用于存储今年每个月的累计 amount
        Map<Integer, BigDecimal> monthToTotalAmountMap = new HashMap<>();
        Calendar calendar = Calendar.getInstance();
@@ -279,7 +313,12 @@
            }
        }
        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();
@@ -292,7 +331,7 @@
        LocalDateTime maxNow = LocalDateTime.now().with(LocalTime.MAX);
        // 周度数据
        LocalDateTime week1Start = minNow.minusDays(6);
        LocalDateTime week1End = maxNow;
        LocalDateTime week1End   = maxNow;
        LocalDateTime week2Start = minNow.minusDays(13);
        LocalDateTime week2End = minNow.minusDays(7);
@@ -302,8 +341,7 @@
        LocalDateTime week4Start = minNow.minusDays(27);
        LocalDateTime week4End = minNow.minusDays(21);
        // 用于存放四个周的数据
        List<Object> objects1 = new ArrayList<>();
        // 计算每个周的amount总和
        BigDecimal tAmount1 = BigDecimal.ZERO;
        BigDecimal tAmount2 = BigDecimal.ZERO;
@@ -335,7 +373,11 @@
        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) {
@@ -353,103 +395,11 @@
            }
        }
        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);
        BigDecimal totalToday = new BigDecimal("0.00");
        for (BigDecimal bigDecimal : amountByDay) {
            totalToday = totalToday.add(bigDecimal);
        }
        objects.add(totalToday);
        // 最后put
        monthlyData.put("yearMount",objects);
@@ -459,8 +409,8 @@
        for (int i = 0; i < 10; i++) {
            integers.add(year-i);
        }
        List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
        monthlyData.put("year",collect);
        List<Object> collect1 = integers.stream().sorted().collect(Collectors.toList());
        monthlyData.put("year",collect1);
        return monthlyData;
    }
@@ -474,6 +424,18 @@
        return null;
    }
    @RequestMapping(value = "/getYears")
    @ResponseBody
    public Object getYears() {
        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());
        return collect;
    }
    /**
     * 退费-平台
@@ -759,6 +721,9 @@
    @RequestMapping(value = "/backStore")
    @ResponseBody
    public Object backStore(Integer id) {
        if(UserExt.getUser().getObjectType()==3){
            id = UserExt.getUser().getObjectId();
        }
        HashMap<String, Object> map = new HashMap<>();
        List<Integer> userPt = appUserClient.getUserStore(id);
        if(userPt.size()==0){
@@ -865,7 +830,68 @@
    @RequestMapping(value = "/userAndVipPt")
    @ResponseBody
    public Object userAndVipPt(Integer type) {
        type=1;
        HashMap<String, Object> map = appUserClient.userAndVipPt(type);
        return map;
    }
    @RequestMapping(value = "/stuPt")
    @ResponseBody
    public Object stuPt() {
        HashMap<String, Object> map = appUserClient.stuPt();
        return map;
    }
    @RequestMapping(value = "/stuYys")
    @ResponseBody
    public Object stuYys(Integer id) {
        HashMap<String, Object> map = appUserClient.stuYys(id);
        return map;
    }
    @RequestMapping(value = "/stuStores")
    @ResponseBody
    public Object stuStores(Integer id) {
        HashMap<String, Object> map = appUserClient.stuStores(id);
        return map;
    }
    // 消耗课时数据-平台
    @RequestMapping(value = "/coursePt")
    @ResponseBody
    public Object coursePt() {
        List<Integer> userPt = appUserClient.getUserPt(Arrays.asList(1));
        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);
        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);
        return map;
    }
    @RequestMapping(value = "/actPt")
@@ -875,10 +901,88 @@
        HashMap<String, Object> map = competitionClient.actPt(userPt);
        List<TStore> list = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getOperatorId, 0));
        long l1=0;
        for (TStore tStore : list) {
            long l = DateUtil.betweenDay(tStore.getCreateTime(), new Date(), true);
            tStore.getStartTime();
            String startTime = tStore.getStartTime();
            String endTime = tStore.getEndTime();
            String s = startTime.split(":")[0];
            String s1 = endTime.split(":")[1];
            Integer integer = Integer.valueOf(s);
            Integer integer1 = Integer.valueOf(s1);
            Integer a =0;
            if(integer==0 && integer1==0){
                a=24;
            }else {
                a= integer1-integer;
            }
            l1 += l * a;
        }
        map.put("allHour",l1);
        return map;
    }
    @RequestMapping(value = "/actYys")
    @ResponseBody
    public Object actYys(Integer id) {
        CompetionVO competionVO = new CompetionVO();
        List<Integer> userPt = appUserClient.getUserYYs(id);
        competionVO.setIds(userPt);
        competionVO.setOperatorId(id);
        HashMap<String, Object> map = competitionClient.actYys(competionVO);
        List<TStore> list = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getOperatorId, id));
        long l1=0;
        for (TStore tStore : list) {
            long l = DateUtil.betweenDay(tStore.getCreateTime(), new Date(), true);
            String startTime = tStore.getStartTime();
            String endTime = tStore.getEndTime();
            String s = startTime.split(":")[0];
            String s1 = endTime.split(":")[1];
            Integer integer = Integer.valueOf(s);
            Integer integer1 = Integer.valueOf(s1);
            Integer a =0;
            if(integer==0 && integer1==0){
                a=24;
            }else {
                a= integer-integer1;
            }
            l1 += l * a;
        }
        map.put("allHour",l1);
        return map;
    }
    @RequestMapping(value = "/actStore")
    @ResponseBody
    public Object actStore(Integer id) {
        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));
        long l1=0;
        for (TStore tStore : list) {
            long l = DateUtil.betweenDay(tStore.getCreateTime(), new Date(), true);
            String startTime = tStore.getStartTime();
            String endTime = tStore.getEndTime();
            String s = startTime.split(":")[0];
            String s1 = endTime.split(":")[1];
            Integer integer = Integer.valueOf(s);
            Integer integer1 = Integer.valueOf(s1);
            Integer a =0;
            if(integer==0 && integer1==0){
                a=24;
            }else {
                a= integer1-integer;
            }
            l1 += l * a;
        }
        map.put("allHour",l1);
        return map;
    }
@@ -890,9 +994,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";
    }
@@ -1016,6 +1123,10 @@
        // 找出平台的用户
        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);
        // 会员费
@@ -1117,9 +1228,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 == 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";
    }
@@ -1264,14 +1383,18 @@
    @ResponseBody
    public Object stuUserDataYys(Integer id) {
        ArrayList<Integer> objects = new ArrayList<>();
        objects.add(1);
        HashMap<String, Object> map = appUserClient.queryUserAgeYys(id);
        HashMap<String, Object> map = appUserClient.queryUserAgeYys(operatorService.getById(id).getId());
        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);
@@ -1307,6 +1430,10 @@
    @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);