package com.dsh.guns.modular.system.controller.code; 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; import com.dsh.guns.core.util.ToolUtil; import com.dsh.guns.modular.system.model.*; import com.dsh.guns.modular.system.service.*; import groovyjarjarpicocli.CommandLine; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.time.*; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.time.temporal.TemporalAdjusters; import java.util.*; import java.util.stream.Collectors; /** * 数据统计控制器 * */ @Controller @RequestMapping("/data") public class DataStatisticsController extends BaseController { private String PREFIX = "/system/dataStatistics/"; @Autowired private ICityService cityService; @Resource private CityManagerClient cityManagerClient; @Autowired private IUserService sysUserService; @Resource private AppUserClient appUserClient; @Resource private CourseClient courseClient; @Autowired private IStoreService storeService; @Resource private VipPaymentClient vipPaymentClient; @Resource private FinanceClient financeClient; @Resource private CoursePackagePaymentClient coursePackagePaymentClient; @Resource private CompetitionClient competitionClient; @Autowired private ISiteBookingService siteBookingService; @Resource private StoreClient storeClient; @Resource private SiteClient siteClient; @Resource private PointMercharsClient pointMercharsClient; @Resource private RefundCoursePackageClient refundCoursePackageClient; @Resource private CourseStuddentClient courseStuddentClient; @Resource private CoursePackageClient coursePackageClient; @Autowired private TOperatorService operatorService; @Resource private BallClient ballClient; /** * 跳转到平台统计数据页面 */ @RequestMapping("/platform") public String index(Model model) { Object o = type1(null); model.addAttribute("data",o); // 教学统计 HashMap map = appUserClient.queryUserAge(); model.addAttribute("stuData",map); return PREFIX + "platformIncome.html"; } /** * 营收数据-平台 * */ @RequestMapping(value = "/getIncomeData") @ResponseBody public Object getIncomeData(Integer operatorId,Integer storeId) { // 报名课程查询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 storeIds = new ArrayList<>(); // 根据运营商ID 查询运营商下的所有门店 if (storeId==null){ if (operatorId!=null){ List stores = storeService.list(new QueryWrapper().eq("operatorId", operatorId)); // 拿到该运营商下的门店id集合 storeIds = stores.stream().map(TStore::getId).collect(Collectors.toList()); query.setStoresIds(storeIds); siteBookingQuery.setStoreIds(storeIds); competitionQuery.setOperatorId(operatorId); } }else { List 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); rechargeRecordsQuery.setObjectId(UserExt.getUser().getObjectId()); List incomeVOS = new ArrayList<>(); // 会员支付记录 List vipPayments = vipPaymentClient.registrationList(incomeQuery); for (VipPayment vipPayment : vipPayments) { IncomeVO temp = new IncomeVO(); if (vipPayment.getState()!=3){ temp.setInsertTime(vipPayment.getPayTime()); incomeVOS.add(temp); } if (vipPayment.getAmount() != null) { temp.setAmount(new BigDecimal(vipPayment.getAmount().toString())); } } // 充值记录 List rechargeRecordsVOS = financeClient.rechargeList(rechargeRecordsQuery); for (RechargeRecordsVO rechargeRecordsVO : rechargeRecordsVOS) { IncomeVO temp = new IncomeVO(); temp.setInsertTime(rechargeRecordsVO.getPayTime()); if (rechargeRecordsVO.getAmount() != null) { temp.setAmount(rechargeRecordsVO.getAmount()); } if (rechargeRecordsVO.getState() !=3){ incomeVOS.add(temp); } } // 报名课程记录 List 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 competitions = competitionClient.listAllPayment(competitionQuery); for (PaymentCompetition competition : competitions) { if (competition.getPayStatus() != 2) { continue; } if (competition.getPayType()==3 || competition.getPayType()==4){ continue; } if (competition.getState()==3)continue; IncomeVO temp = new IncomeVO(); temp.setInsertTime(competition.getPayTime()); if (competition.getAmount() != null) { temp.setAmount(new BigDecimal(competition.getAmount().toString())); } incomeVOS.add(temp); } // 预约场地 // 说明当前运营商下没有门店 if (operatorId!=null && storeIds.size()==0){ }else{ List 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); } } // 积分商品 List 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 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 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 data = ballClient.getData(gameDataQuery); for (TGameRecord datum : data) { IncomeVO temp = new IncomeVO(); temp.setAmount(datum.getMoney()); temp.setInsertTime(datum.getTime()); incomeVOS.add(temp); } } // 最终返回的数据 Map> monthlyData = new HashMap<>(); // 创建一个 Map 用于存储每年的累计 amount Map yearToTotalAmountMap = new HashMap<>(); // 初始化一个 BigDecimal 用于累加 BigDecimal totalAmount1 = BigDecimal.ZERO; // 用于返回图表上的总营收 年度营收 月度 周度 日度 List objects = new ArrayList<>(); // 遍历 incomeVOS for (IncomeVO incomeVO1 : incomeVOS) { // 总营收 BigDecimal total = incomeVO1.getAmount(); // 累加到总金额 totalAmount1 = totalAmount1.add(total); Date insertTime = incomeVO1.getInsertTime(); BigDecimal amount1 = incomeVO1.getAmount(); Calendar calendar = Calendar.getInstance(); calendar.setTime(insertTime); int year = calendar.get(Calendar.YEAR); // 获取年份 // 更新年份对应的累计 amount if (yearToTotalAmountMap.containsKey(year)) { BigDecimal totalAmount = yearToTotalAmountMap.get(year); yearToTotalAmountMap.put(year, totalAmount.add(amount1)); } else { yearToTotalAmountMap.put(year, amount1); } } objects.add(totalAmount1); // 创建一个新的列表,按年份升序排列 List sortedYears = new ArrayList<>(yearToTotalAmountMap.keySet()); Collections.sort(sortedYears); // 创建一个新的 IncomeVO 列表,包含按年份累计的 amount List resultIncomeVOS = new ArrayList<>(); // 当前年往前推十年 List integers1 = new ArrayList<>(); int years = DateUtil.year(new Date()); for (int i = 0; i < 10; i++) { integers1.add(years-i); } List collect = integers1.stream().sorted().collect(Collectors.toList()); List objects1 = new ArrayList<>(); for (Object o : collect) { BigDecimal orDefault = yearToTotalAmountMap.getOrDefault(Integer.valueOf(o.toString()), BigDecimal.ZERO); objects1.add(orDefault); } 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 monthToTotalAmountMap = new HashMap<>(); Calendar calendar = Calendar.getInstance(); int currentYear = calendar.get(Calendar.YEAR); List 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 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 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 integers = new ArrayList<>(); int year = DateUtil.year(new Date()); for (int i = 0; i < 10; i++) { integers.add(year-i); } List collect1 = integers.stream().sorted().collect(Collectors.toList()); monthlyData.put("year",collect1); return monthlyData; } /** * 运营统计-平台-用户数据 * */ @RequestMapping(value = "/getUserData") @ResponseBody public Object getUserData() { return null; } @RequestMapping(value = "/getYears") @ResponseBody public Object getYears() { ArrayList integers = new ArrayList<>(); int year = DateUtil.year(new Date()); for (int i = 0; i < 10; i++) { integers.add(year-i); } List collect = integers.stream().sorted().collect(Collectors.toList()); return collect; } /** * 退费-平台 * */ @RequestMapping(value = "/getRefundData") @ResponseBody public Object getRefundData(Integer type) { // 赛事活动查询query CompetitionQuery competitionQuery = new CompetitionQuery(); List incomeVOS = new ArrayList<>(); // 获取学员课包退费 List refund = refundCoursePackageClient.getRefund(); for (MoneyBack moneyBack : refund) { List 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); // } } // 获取赛事退费记录 List competitions = competitionClient.listAllPayment(competitionQuery); for (PaymentCompetition competition : competitions) { if (competition.getPayStatus() != 3) { 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); } return null; } @Autowired private TBackRecordService backRecordService; @RequestMapping(value = "/backPt") @ResponseBody public Object backPt(Integer type) { HashMap map = new HashMap<>(); List userPt = appUserClient.getUserPt(Arrays.asList(1)); if(userPt.size()==0){ userPt.add(-1); } ArrayList integers = new ArrayList<>(); int year = DateUtil.year(new Date()); List thisYear = backRecordService.list(new LambdaQueryWrapper().like(TBackRecord::getTime, year).in(TBackRecord::getUserId,userPt)); double sum5 = thisYear.stream().mapToDouble(TBackRecord::getMoney).sum(); map.put("thisYear",sum5); List thisMonth = backRecordService.list(new LambdaQueryWrapper().like(TBackRecord::getTime, new SimpleDateFormat("yyyy-MM").format(new Date())).in(TBackRecord::getUserId,userPt)); double sum6= thisMonth.stream().mapToDouble(TBackRecord::getMoney).sum(); map.put("thisMonth",sum6); for (int i = 0; i < 10; i++) { integers.add(year-i); } List collect = integers.stream().sorted().collect(Collectors.toList()); // 年 ArrayList years = new ArrayList<>(); for (Object o : collect) { double sum=0.0; String s = o.toString(); List list = backRecordService.list(new LambdaQueryWrapper().like(TBackRecord::getTime, s).in(TBackRecord::getUserId,userPt)); sum = list.stream().mapToDouble(TBackRecord::getMoney).sum(); years.add(sum); } ArrayList months = new ArrayList<>(); // 月 for (int i = 1; i <= 12; i++) { double sum=0.0; String m=i+""; if(i<10){ m="0"+i; } String s = year + "-" + m; List list = backRecordService.list(new LambdaQueryWrapper().like(TBackRecord::getTime, s).in(TBackRecord::getUserId,userPt)); sum = list.stream().mapToDouble(TBackRecord::getMoney).sum(); months.add(sum); } // 获取最近四周 LocalDateTime minNow = LocalDateTime.now().with(LocalTime.MIN); LocalDateTime maxNow = LocalDateTime.now().with(LocalTime.MAX); // 周度数据 String s1 = minNow.minusDays(6).toString(); String s2 = maxNow.toString(); String s3 = minNow.minusDays(13).toString(); String s4 = maxNow.minusDays(6).toString(); String s5 = minNow.minusDays(20).toString(); String s6 = maxNow.minusDays(13).toString(); String s7 = minNow.minusDays(27).toString(); String s8 = maxNow.minusDays(20).toString(); List list = backRecordService.list(new LambdaQueryWrapper().between(TBackRecord::getTime, s7,s8).in(TBackRecord::getUserId,userPt)); double sum = list.stream().mapToDouble(TBackRecord::getMoney).sum(); List list1 = backRecordService.list(new LambdaQueryWrapper().between(TBackRecord::getTime, s5,s6).in(TBackRecord::getUserId,userPt)); double sum1 = list1.stream().mapToDouble(TBackRecord::getMoney).sum(); List list2 = backRecordService.list(new LambdaQueryWrapper().between(TBackRecord::getTime, s3,s4).in(TBackRecord::getUserId,userPt)); double sum2 = list2.stream().mapToDouble(TBackRecord::getMoney).sum(); List list3 = backRecordService.list(new LambdaQueryWrapper().between(TBackRecord::getTime, s1,s2).in(TBackRecord::getUserId,userPt)); double sum3 = list3.stream().mapToDouble(TBackRecord::getMoney).sum(); map.put("thisWeek",sum3); ArrayList week = new ArrayList<>(); week.add(sum); week.add(sum1); week.add(sum2); week.add(sum3); // 日 ArrayList days = new ArrayList<>(); Double thisDay=0.0; for (int i = 6; i >= 0; i--) { String s = minNow.minusDays(i).toString(); String s9 = maxNow.minusDays(i).toString(); List day = backRecordService.list(new LambdaQueryWrapper().between(TBackRecord::getTime, s,s9).in(TBackRecord::getUserId,userPt)); double sum4 = day.stream().mapToDouble(TBackRecord::getMoney).sum(); days.add(sum4); if(i==0){ thisDay=sum4; } } map.put("thisDay",thisDay); map.put("yearData",years); map.put("monthData",months); map.put("weekData",week); map.put("dayData",days); return map; } @RequestMapping(value = "/backYys") @ResponseBody public Object backYys(Integer id) { HashMap map = new HashMap<>(); List userPt = appUserClient.getUserYYs(id); if(userPt.size()==0){ userPt.add(-1); } ArrayList integers = new ArrayList<>(); int year = DateUtil.year(new Date()); List thisYear = backRecordService.list(new LambdaQueryWrapper().like(TBackRecord::getTime, year).in(TBackRecord::getUserId,userPt)); double sum5 = thisYear.stream().mapToDouble(TBackRecord::getMoney).sum(); map.put("thisYear",sum5); List thisMonth = backRecordService.list(new LambdaQueryWrapper().like(TBackRecord::getTime, new SimpleDateFormat("yyyy-MM").format(new Date())).in(TBackRecord::getUserId,userPt)); double sum6= thisMonth.stream().mapToDouble(TBackRecord::getMoney).sum(); map.put("thisMonth",sum6); for (int i = 0; i < 10; i++) { integers.add(year-i); } List collect = integers.stream().sorted().collect(Collectors.toList()); // 年 ArrayList years = new ArrayList<>(); for (Object o : collect) { double sum=0.0; String s = o.toString(); List list = backRecordService.list(new LambdaQueryWrapper().like(TBackRecord::getTime, s).in(TBackRecord::getUserId,userPt)); sum = list.stream().mapToDouble(TBackRecord::getMoney).sum(); years.add(sum); } ArrayList months = new ArrayList<>(); // 月 for (int i = 1; i <= 12; i++) { double sum=0.0; String m=i+""; if(i<10){ m="0"+i; } String s = year + "-" + m; List list = backRecordService.list(new LambdaQueryWrapper().like(TBackRecord::getTime, s).in(TBackRecord::getUserId,userPt)); sum = list.stream().mapToDouble(TBackRecord::getMoney).sum(); months.add(sum); } // 获取最近四周 LocalDateTime minNow = LocalDateTime.now().with(LocalTime.MIN); LocalDateTime maxNow = LocalDateTime.now().with(LocalTime.MAX); // 周度数据 String s1 = minNow.minusDays(6).toString(); String s2 = maxNow.toString(); String s3 = minNow.minusDays(13).toString(); String s4 = maxNow.minusDays(6).toString(); String s5 = minNow.minusDays(20).toString(); String s6 = maxNow.minusDays(13).toString(); String s7 = minNow.minusDays(27).toString(); String s8 = maxNow.minusDays(20).toString(); List list = backRecordService.list(new LambdaQueryWrapper().between(TBackRecord::getTime, s7,s8).in(TBackRecord::getUserId,userPt)); double sum = list.stream().mapToDouble(TBackRecord::getMoney).sum(); List list1 = backRecordService.list(new LambdaQueryWrapper().between(TBackRecord::getTime, s5,s6).in(TBackRecord::getUserId,userPt)); double sum1 = list1.stream().mapToDouble(TBackRecord::getMoney).sum(); List list2 = backRecordService.list(new LambdaQueryWrapper().between(TBackRecord::getTime, s3,s4).in(TBackRecord::getUserId,userPt)); double sum2 = list2.stream().mapToDouble(TBackRecord::getMoney).sum(); List list3 = backRecordService.list(new LambdaQueryWrapper().between(TBackRecord::getTime, s1,s2).in(TBackRecord::getUserId,userPt)); double sum3 = list3.stream().mapToDouble(TBackRecord::getMoney).sum(); map.put("thisWeek",sum3); ArrayList week = new ArrayList<>(); week.add(sum); week.add(sum1); week.add(sum2); week.add(sum3); // 日 ArrayList days = new ArrayList<>(); Double thisDay=0.0; for (int i = 6; i >= 0; i--) { String s = minNow.minusDays(i).toString(); String s9 = maxNow.minusDays(i).toString(); List day = backRecordService.list(new LambdaQueryWrapper().between(TBackRecord::getTime, s,s9).in(TBackRecord::getUserId,userPt)); double sum4 = day.stream().mapToDouble(TBackRecord::getMoney).sum(); days.add(sum4); if(i==0){ thisDay=sum4; } } map.put("thisDay",thisDay); map.put("yearData",years); map.put("monthData",months); map.put("weekData",week); map.put("dayData",days); return map; } @RequestMapping(value = "/backStore") @ResponseBody public Object backStore(Integer id) { List collect1 = Arrays.asList(id); //课程 List list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1); //场地 List list1 = siteBookingService.list(new QueryWrapper().in("storeId", collect1).eq("state", 1)); List collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList()); list.addAll(collect); //赛事 List list2 = competitionClient.queryAppUserId(collect1); list.addAll(list2); //门票 HashMap map = new HashMap<>(); ArrayList integers = new ArrayList<>(); int year = DateUtil.year(new Date()); List thisYear = backRecordService.list(new LambdaQueryWrapper().like(TBackRecord::getTime, year).in(TBackRecord::getUserId,list)); double sum5 = thisYear.stream().mapToDouble(TBackRecord::getMoney).sum(); map.put("thisYear",sum5); List thisMonth = backRecordService.list(new LambdaQueryWrapper().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); for (int i = 0; i < 10; i++) { integers.add(year-i); } List collectw = integers.stream().sorted().collect(Collectors.toList()); // 年 ArrayList years = new ArrayList<>(); for (Object o : collectw) { double sum=0.0; String s = o.toString(); List lists = backRecordService.list(new LambdaQueryWrapper().like(TBackRecord::getTime, s).in(TBackRecord::getUserId,list)); sum = lists.stream().mapToDouble(TBackRecord::getMoney).sum(); years.add(sum); } ArrayList months = new ArrayList<>(); // 月 for (int i = 1; i <= 12; i++) { double sum=0.0; String m=i+""; if(i<10){ m="0"+i; } String s = year + "-" + m; List lists = backRecordService.list(new LambdaQueryWrapper().like(TBackRecord::getTime, s).in(TBackRecord::getUserId,list)); sum = lists.stream().mapToDouble(TBackRecord::getMoney).sum(); months.add(sum); } // 获取最近四周 LocalDateTime minNow = LocalDateTime.now().with(LocalTime.MIN); LocalDateTime maxNow = LocalDateTime.now().with(LocalTime.MAX); // 周度数据 String s1 = minNow.minusDays(6).toString(); String s2 = maxNow.toString(); String s3 = minNow.minusDays(13).toString(); String s4 = maxNow.minusDays(6).toString(); String s5 = minNow.minusDays(20).toString(); String s6 = maxNow.minusDays(13).toString(); String s7 = minNow.minusDays(27).toString(); String s8 = maxNow.minusDays(20).toString(); List lists = backRecordService.list(new LambdaQueryWrapper().between(TBackRecord::getTime, s7,s8).in(TBackRecord::getUserId,list)); double sum = lists.stream().mapToDouble(TBackRecord::getMoney).sum(); List lists1 = backRecordService.list(new LambdaQueryWrapper().between(TBackRecord::getTime, s5,s6).in(TBackRecord::getUserId,list)); double sum1 = lists1.stream().mapToDouble(TBackRecord::getMoney).sum(); List lists2 = backRecordService.list(new LambdaQueryWrapper().between(TBackRecord::getTime, s3,s4).in(TBackRecord::getUserId,list)); double sum2 = lists2.stream().mapToDouble(TBackRecord::getMoney).sum(); List list3 = backRecordService.list(new LambdaQueryWrapper().between(TBackRecord::getTime, s1,s2).in(TBackRecord::getUserId,list)); double sum3 = list3.stream().mapToDouble(TBackRecord::getMoney).sum(); map.put("thisWeek",sum3); ArrayList week = new ArrayList<>(); week.add(sum); week.add(sum1); week.add(sum2); week.add(sum3); // 日 ArrayList days = new ArrayList<>(); Double thisDay=0.0; for (int i = 6; i >= 0; i--) { String s = minNow.minusDays(i).toString(); String s9 = maxNow.minusDays(i).toString(); List day = backRecordService.list(new LambdaQueryWrapper().between(TBackRecord::getTime, s,s9).in(TBackRecord::getUserId,list)); double sum4 = day.stream().mapToDouble(TBackRecord::getMoney).sum(); days.add(sum4); if(i==0){ thisDay=sum4; } } map.put("thisDay",thisDay); map.put("yearData",years); map.put("monthData",months); map.put("weekData",week); map.put("dayData",days); return map; } @RequestMapping(value = "/userAndVipPt") @ResponseBody public Object userAndVipPt(Integer type) { type=1; HashMap map = appUserClient.userAndVipPt(type); return map; } @RequestMapping(value = "/stuPt") @ResponseBody public Object stuPt() { HashMap map = appUserClient.stuPt(); return map; } @RequestMapping(value = "/stuYys") @ResponseBody public Object stuYys(Integer id) { List list4 = storeService.list(new QueryWrapper().eq("operatorId", id).eq("state", 1)); List collect1 = list4.stream().map(TStore::getId).collect(Collectors.toList()); //课程 List list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1); //场地 List list1 = siteBookingService.list(new QueryWrapper().in("storeId", collect1).eq("state", 1)); List collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList()); list.addAll(collect); //赛事 List list2 = competitionClient.queryAppUserId(collect1); list.addAll(list2); //门票 HashMap map = appUserClient.stuYys(list); return map; } @RequestMapping(value = "/stuStores") @ResponseBody public Object stuStores(Integer id) { List collect1 = Arrays.asList(id); //课程 List list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1); //场地 List list1 = siteBookingService.list(new QueryWrapper().in("storeId", collect1).eq("state", 1)); List collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList()); list.addAll(collect); //赛事 List list2 = competitionClient.queryAppUserId(collect1); list.addAll(list2); //门票 HashMap map = appUserClient.stuStores(list); return map; } // 消耗课时数据-平台 @RequestMapping(value = "/coursePt") @ResponseBody public Object coursePt() { List userPt = appUserClient.getUserPt(Arrays.asList(1)); HashMap map = coursePackagePaymentClient.coursePt(userPt); return map; } // 消耗课时数据-运营商 @RequestMapping(value = "/courseYys") @ResponseBody public Object courseYys(Integer id) { List userPt = appUserClient.getUserYYs(id); HashMap map = coursePackagePaymentClient.coursePt(userPt); return map; } // 消耗课时数据-运营商 @RequestMapping(value = "/courseStore") @ResponseBody public Object courseStore(Integer id) { List userPt = appUserClient.getUserPt(Arrays.asList(id)); HashMap map = coursePackagePaymentClient.coursePt(userPt); return map; } @RequestMapping(value = "/userAndVipYys") @ResponseBody public Object userAndVipYys(Integer id) { List list4 = storeService.list(new QueryWrapper().eq("operatorId", id).eq("state", 1)); List collect1 = list4.stream().map(TStore::getId).collect(Collectors.toList()); //课程 List list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1); //场地 List list1 = siteBookingService.list(new QueryWrapper().in("storeId", collect1).eq("state", 1)); List collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList()); list.addAll(collect); //赛事 List list2 = competitionClient.queryAppUserId(collect1); list.addAll(list2); //门票 HashMap map = appUserClient.userAndVipYys(list); return map; } @RequestMapping(value = "/userAndVipStore") @ResponseBody public Object userAndVipStore(Integer id) { List collect1 = Arrays.asList(id); //课程 List list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1); //场地 List list1 = siteBookingService.list(new QueryWrapper().in("storeId", collect1).eq("state", 1)); List collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList()); list.addAll(collect); //赛事 List list2 = competitionClient.queryAppUserId(collect1); list.addAll(list2); //门票 HashMap map = appUserClient.userAndVipStore(list); return map; } @RequestMapping(value = "/actPt") @ResponseBody public Object actPt(Integer type) { List userPt = appUserClient.getUserPt(Arrays.asList(1)); HashMap map = competitionClient.actPt(userPt); List list = storeService.list(new LambdaQueryWrapper().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; } @RequestMapping(value = "/actYys") @ResponseBody public Object actYys(Integer id) { CompetionVO competionVO = new CompetionVO(); List list4 = storeService.list(new QueryWrapper().eq("operatorId", id).eq("state", 1)); List collect1 = list4.stream().map(TStore::getId).collect(Collectors.toList()); //课程 List list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1); //场地 List list1 = siteBookingService.list(new QueryWrapper().in("storeId", collect1).eq("state", 1)); List collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList()); list.addAll(collect); //赛事 List list2 = competitionClient.queryAppUserId(collect1); list.addAll(list2); //门票 competionVO.setIds(list); competionVO.setOperatorId(id); HashMap map = competitionClient.actYys(competionVO); List lists = storeService.list(new LambdaQueryWrapper().eq(TStore::getOperatorId, id)); long l1=0; for (TStore tStore : lists) { 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) { List collect1 = Arrays.asList(id); //课程 List list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1); //场地 List list1 = siteBookingService.list(new QueryWrapper().in("storeId", collect1).eq("state", 1)); List collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList()); list.addAll(collect); //赛事 List list2 = competitionClient.queryAppUserId(collect1); list.addAll(list2); //门票 HashMap map = competitionClient.actPt(list); List lists = storeService.list(new LambdaQueryWrapper().eq(TStore::getOperatorId, 0)); long l1=0; for (TStore tStore : lists) { 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; } /** * 跳转到运营商统计数据页面 */ @RequestMapping("/operator") public String operator(Model model) { Integer objectType = UserExt.getUser().getObjectType(); Integer objectId = UserExt.getUser().getObjectId(); List list = operatorService.list(new LambdaQueryWrapper().ne(TOperator::getState, 3).ne(TOperator::getId,0)); model.addAttribute("list",list); model.addAttribute("objectType",objectType); model.addAttribute("objectId",objectId); return PREFIX + "operatorIncome.html"; } /** * 运营商 * @param * @return */ @ResponseBody @RequestMapping("/selectYys") public Object selectYys(Integer id,String time) { HashMap map = new HashMap<>(); // 找出平台的用户 // List list = sysUserService.list(new LambdaQueryWrapper().eq(User::getObjectType, 2)); // List ids = list.stream().map(User::getId).collect(Collectors.toList()); // List userIds = appUserClient.getUserYYs(id); List list4 = storeService.list(new QueryWrapper().eq("operatorId", id).eq("state", 1)); List collect1 = list4.stream().map(TStore::getId).collect(Collectors.toList()); QueryDataFee queryDataFee = new QueryDataFee(time, collect1); // 课程收入 HashMap map3 = courseClient.queryFee(queryDataFee); map.put("fee3",map3.get("fee")); Object data = map3.get("data"); map.put("courseData",data); // 赛事收入 Double aDouble1 = competitionClient.queryFee(queryDataFee); map.put("fee4",aDouble1); // 订场 List ids = new ArrayList<>(); if(collect1.size()==0){ ids.add(-1); }else{ List list = siteService.list(new QueryWrapper().in("storeId", collect1).eq("state", 1)); ids = list.stream().map(TSite::getId).collect(Collectors.toList()); if(collect1.size()==0){ ids.add(-1); } } LambdaQueryWrapper 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); } vipPaymentLambdaQueryWrapper.in(SiteBooking::getSiteId,ids); vipPaymentLambdaQueryWrapper.ne(SiteBooking::getStatus,0); ArrayList objects = new ArrayList<>(); objects.add(1); objects.add(2); vipPaymentLambdaQueryWrapper.in(SiteBooking::getPayType,objects); List list1 = siteBookingService.list(vipPaymentLambdaQueryWrapper); double sum = list1.stream().mapToDouble(SiteBooking::getPayMoney).sum(); map.put("fee5",sum); List collect = list1.stream().map(SiteBooking::getSiteId).collect(Collectors.toList()); if(collect.size()==0){ collect.add(-1); } List list3 = siteService.list(new LambdaQueryWrapper().in(TSite::getId, collect)); for (SiteBooking siteBooking : list1) { for (TSite tSite : list3) { if(siteBooking.getSiteId().equals(tSite.getId())){ siteBooking.setType(tSite.getSiteTypeId()); } } } List list2 = siteTypeService.list(); List> mapList = new ArrayList<>(); for (TSiteType tSiteType : list2) { HashMap map2 = new HashMap<>(); map2.put("name",tSiteType.getName()); double a =0; for (SiteBooking siteBooking : list1) { if(tSiteType.getId().equals(siteBooking.getType())){ a += siteBooking.getPayMoney(); } } map2.put("value",a); mapList.add(map2); } map.put("siteData",mapList); // 商品 门票 HashMap map2 = pointMercharsClient.queryFee(queryDataFee); Object all = map2.get("all"); Object day = map2.get("day"); Object month = map2.get("month"); Object quarter = map2.get("quarter"); Object year = map2.get("year"); map.put("fee7",all); map.put("dayone",day); map.put("monthone",month); map.put("quarterone",quarter); map.put("yearone",year); return map; } /** * 运营商 * @param * @return */ @ResponseBody @RequestMapping("/selectStore") public Object selectStore(Integer id,String time) { HashMap map = new HashMap<>(); List collect1 = Arrays.asList(id); //课程 List list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1); //场地 List list1 = siteBookingService.list(new QueryWrapper().in("storeId", collect1).eq("state", 1)); List collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList()); list.addAll(collect); //赛事 List list2 = competitionClient.queryAppUserId(collect1); list.addAll(list2); //门票 QueryDataFee queryDataFee = new QueryDataFee(time, list); // 会员费 HashMap map1 = appUserClient.queryFee(queryDataFee); Object fee1 = map1.get("fee1"); map.put("fee1",fee1); //玩湃比 Object fee2 = map1.get("fee2"); map.put("fee2",fee2); // 课程收入 HashMap map3 = courseClient.queryFee(queryDataFee); map.put("fee3",map3.get("fee")); Object data = map3.get("data"); map.put("courseData",data); // 赛事收入 Double aDouble1 = competitionClient.queryFee(queryDataFee); map.put("fee4",aDouble1); // 订场 LambdaQueryWrapper 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); } vipPaymentLambdaQueryWrapper.in(SiteBooking::getAppUserId,list); vipPaymentLambdaQueryWrapper.ne(SiteBooking::getStatus,0); ArrayList objects = new ArrayList<>(); objects.add(1); objects.add(2); vipPaymentLambdaQueryWrapper.in(SiteBooking::getPayType,objects); List lists1 = siteBookingService.list(vipPaymentLambdaQueryWrapper); double sum = lists1.stream().mapToDouble(SiteBooking::getPayMoney).sum(); map.put("fee5",sum); List collects = list1.stream().map(SiteBooking::getSiteId).collect(Collectors.toList()); if(collects.size()==0){ collect.add(-1); } List list3 = siteService.list(new LambdaQueryWrapper().in(TSite::getId, collects)); for (SiteBooking siteBooking : list1) { for (TSite tSite : list3) { if(siteBooking.getSiteId().equals(tSite.getId())){ siteBooking.setType(tSite.getSiteTypeId()); } } } List lists2 = siteTypeService.list(); List> mapList = new ArrayList<>(); for (TSiteType tSiteType : lists2) { HashMap map2 = new HashMap<>(); map2.put("name",tSiteType.getName()); double a =0; for (SiteBooking siteBooking : list1) { if(null != siteBooking.getType() && tSiteType.getId().equals(siteBooking.getType()) && null != siteBooking.getPayMoney()){ a += siteBooking.getPayMoney(); } } map2.put("value",a); mapList.add(map2); } map.put("siteData",mapList); // 商品 门票 HashMap map2 = pointMercharsClient.queryFee(queryDataFee); Object all = map2.get("all"); Object day = map2.get("day"); Object month = map2.get("month"); Object quarter = map2.get("quarter"); Object year = map2.get("year"); map.put("fee7",all); map.put("dayone",day); map.put("monthone",month); map.put("quarterone",quarter); map.put("yearone",year); return map; } /** * 跳转到门店统计数据页面 */ @RequestMapping("/store") public String store(Model model) { Integer objectType = UserExt.getUser().getObjectType(); List tStores = new ArrayList<>(); if(objectType == 1){ tStores = storeService.list(new LambdaQueryWrapper().eq(TStore::getState, 1)); } if (objectType == 2){ tStores = storeService.list(new LambdaQueryWrapper().eq(TStore::getState, 1).eq(TStore::getOperatorId,UserExt.getUser().getObjectId())); } if (objectType == 3){ tStores = storeService.list(new LambdaQueryWrapper().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"; } @Autowired private ITSiteTypeService siteTypeService; @Autowired private ITSiteService siteService; @RequestMapping("/type1") @ResponseBody public Object type1(String time) { HashMap map = new HashMap<>(); // 找出平台的用户 List list = sysUserService.list(new LambdaQueryWrapper().eq(User::getObjectType, 1)); List ids = list.stream().map(User::getId).collect(Collectors.toList()); List userIds = appUserClient.getUserPt(ids); QueryDataFee queryDataFee = new QueryDataFee(time, userIds); // 会员费 HashMap map1 = appUserClient.queryFee(queryDataFee); Object fee1 = map1.get("fee1"); map.put("fee1",fee1); //玩湃比 Object fee2 = map1.get("fee2"); map.put("fee2",fee2); // 课程收入 HashMap map3 = courseClient.queryFee(queryDataFee); 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); } LambdaQueryWrapper 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.ne(SiteBooking::getStatus,0); vipPaymentLambdaQueryWrapper.ne(SiteBooking::getStatus,5); ArrayList objects = new ArrayList<>(); objects.add(1); objects.add(2); vipPaymentLambdaQueryWrapper.in(SiteBooking::getPayType,objects); List list1 = siteBookingService.list(new QueryWrapper() .ne("status",0) .ne("status",5) .ne("payType",3) .ne("payType",4)); double sum = list1.stream().mapToDouble(SiteBooking::getPayMoney).sum(); // 智慧球场查询query GameDataQuery gameDataQuery = new GameDataQuery(); gameDataQuery.setObjectId(0); // 平台智慧球场 List 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 collect = list1.stream().map(SiteBooking::getSiteId).collect(Collectors.toList()); if(collect.size()==0){ collect.add(-1); } List list3 = siteService.list(new LambdaQueryWrapper().in(TSite::getId, collect)); for (SiteBooking siteBooking : list1) { for (TSite tSite : list3) { if(siteBooking.getSiteId().equals(tSite.getId())){ siteBooking.setType(tSite.getSiteTypeId()); } } } List list2 = siteTypeService.list(); List> mapList = new ArrayList<>(); for (TSiteType tSiteType : list2) { HashMap map2 = new HashMap<>(); map2.put("name",tSiteType.getName()); double a =0; for (SiteBooking siteBooking : list1) { if(tSiteType.getId().equals(siteBooking.getType())){ a += siteBooking.getPayMoney(); } } map2.put("value",a); mapList.add(map2); } map.put("siteData",mapList); // 商品 门票 HashMap map2 = pointMercharsClient.queryFee(queryDataFee); Object all = map2.get("all"); Object day = map2.get("day"); Object month = map2.get("month"); Object quarter = map2.get("quarter"); Object year = map2.get("year"); map.put("fee7",all); map.put("dayone",day); map.put("monthone",month); map.put("quarterone",quarter); map.put("yearone",year); return map; } @RequestMapping("/stuCourseData") @ResponseBody public Object stuCourseData() { ArrayList objects = new ArrayList<>(); objects.add(1); List userIds = appUserClient.getUserPt(objects); List> list = coursePackagePaymentClient.queryCourseData(userIds); ArrayList objects2 = new ArrayList<>(); ArrayList objects3 = new ArrayList<>(); for (Map map : list) { Object name = map.get("name"); Object value = map.get("value"); objects2.add(name); objects3.add(value); } HashMap map = new HashMap<>(); map.put("data1",objects2); map.put("data2",objects3); return map; } @RequestMapping("/stuUserData") @ResponseBody public Object stuUserData() { ArrayList objects = new ArrayList<>(); objects.add(1); HashMap map = appUserClient.queryUserAge1(); return map; } @RequestMapping("/stuUserDataYys") @ResponseBody public Object stuUserDataYys(Integer id) { List list4 = storeService.list(new QueryWrapper().eq("operatorId", id).eq("state", 1)); List collect1 = list4.stream().map(TStore::getId).collect(Collectors.toList()); //课程 List list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1); //场地 List list1 = siteBookingService.list(new QueryWrapper().in("storeId", collect1).eq("state", 1)); List collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList()); list.addAll(collect); //赛事 List list2 = competitionClient.queryAppUserId(collect1); list.addAll(list2); //门票 HashMap map = appUserClient.queryUserAgeYys(list); return map; } @RequestMapping("/stuUserDataStore") @ResponseBody public Object stuUserDataStore(Integer id) { List collect1 = Arrays.asList(id); //课程 List list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1); //场地 List list1 = siteBookingService.list(new QueryWrapper().in("storeId", collect1).eq("state", 1)); List collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList()); list.addAll(collect); //赛事 List list2 = competitionClient.queryAppUserId(collect1); list.addAll(list2); //门票 HashMap map = appUserClient.queryUserAgeStore(list); return map; } @RequestMapping("/selectYysJx") @ResponseBody public Object selectYysJx(Integer id) { List list4 = storeService.list(new QueryWrapper().eq("operatorId", id).eq("state", 1)); List collect1 = list4.stream().map(TStore::getId).collect(Collectors.toList()); //课程 List list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1); //场地 List list1 = siteBookingService.list(new QueryWrapper().in("storeId", collect1).eq("state", 1)); List collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList()); list.addAll(collect); //赛事 List list2 = competitionClient.queryAppUserId(collect1); list.addAll(list2); //门票 HashMap map1 = appUserClient.queryUserAgeYys1(list); List> mapList = coursePackagePaymentClient.queryCourseData(list); ArrayList objects2 = new ArrayList<>(); ArrayList objects3 = new ArrayList<>(); for (Map map : mapList) { Object name = map.get("name"); Object value = map.get("value"); objects2.add(name); objects3.add(value); } HashMap map = new HashMap<>(); map1.put("data1",objects2); map1.put("data2",objects3); return map1; } @RequestMapping("/selectStoreJx") @ResponseBody public Object selectStoreJx(Integer id) { List collect1 = Arrays.asList(id); //课程 List list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1); //场地 List list1 = siteBookingService.list(new QueryWrapper().in("storeId", collect1).eq("state", 1)); List collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList()); list.addAll(collect); //赛事 List list2 = competitionClient.queryAppUserId(collect1); list.addAll(list2); //门票 HashMap map1 = appUserClient.queryUserAgeStore1(list); List> mapList = coursePackagePaymentClient.queryCourseData(list); ArrayList objects2 = new ArrayList<>(); ArrayList objects3 = new ArrayList<>(); for (Map map : mapList) { Object name = map.get("name"); Object value = map.get("value"); objects2.add(name); objects3.add(value); } HashMap map = new HashMap<>(); map1.put("data1",objects2); map1.put("data2",objects3); return map1; } }