From c560f1a14ae1fc468d90e50e6a32d805295875da Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 01 九月 2025 15:35:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0' into 2.0
---
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java | 1577 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 1,547 insertions(+), 30 deletions(-)
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java
index 20603a8..714ce55 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java
@@ -1,26 +1,49 @@
package com.dsh.guns.modular.system.controller.code;
+import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.dsh.course.feignClient.account.AppUserClient;
-import com.dsh.course.feignClient.account.CityClient;
-import com.dsh.course.feignClient.account.CityManagerClient;
-import com.dsh.course.feignClient.account.FinanceClient;
-import com.dsh.course.feignClient.account.model.CityManager;
-import com.dsh.course.feignClient.course.CancelledClassesClient;
+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.ICityService;
+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.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
+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;
/**
* 数据统计控制器
@@ -32,52 +55,1546 @@
private String PREFIX = "/system/dataStatistics/";
@Autowired
private ICityService cityService;
- @Autowired
+ @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<String, Object> 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<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);
+ 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.getState()!=3){
+ temp.setInsertTime(vipPayment.getPayTime());
+ 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.getPayTime());
+ if (rechargeRecordsVO.getAmount() != null) {
+ temp.setAmount(rechargeRecordsVO.getAmount());
+ }
+ if (rechargeRecordsVO.getState() !=3){
+ 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;
+ }
+ 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<SiteBooking> siteBookings = siteClient.listAll(siteBookingQuery);
+ for (SiteBooking siteBooking : siteBookings) {
+ IncomeVO temp = new IncomeVO();
+ if(siteBooking.getStatus()==0 || siteBooking.getStatus()==5){
+ continue;
+ }
+ if (siteBooking.getPayType() ==3 || siteBooking.getPayType() ==4)continue;
+ temp.setInsertTime(siteBooking.getPayTime());
+ if (siteBooking.getPayMoney() != null) {
+ temp.setAmount(new BigDecimal(siteBooking.getPayMoney().toString()));
+ }
+ incomeVOS.add(temp);
+ }
+ }
+
+ // 积分商品
+ 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);
+ }
+ }
+ // 最终返回的数据
+ Map<String, List<Object>> monthlyData = new HashMap<>();
+ // 创建一个 Map 用于存储每年的累计 amount
+ Map<Integer, BigDecimal> yearToTotalAmountMap = new HashMap<>();
+ // 初始化一个 BigDecimal 用于累加
+ BigDecimal totalAmount1 = BigDecimal.ZERO;
+ // 用于返回图表上的总营收 年度营收 月度 周度 日度
+ List<Object> 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<Integer> sortedYears = new ArrayList<>(yearToTotalAmountMap.keySet());
+ Collections.sort(sortedYears);
+ // 创建一个新的 IncomeVO 列表,包含按年份累计的 amount
+ List<Object> resultIncomeVOS = new ArrayList<>();
+ // 当前年往前推十年
+ List<Integer> integers1 = new ArrayList<>();
+ 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);
+ }
+ monthlyData.put("yearIncome",objects1);
+ BigDecimal yearIn = new BigDecimal("0.00");
+ for (Object o : objects1) {
+ yearIn = yearIn.add(new BigDecimal(o.toString()));
+ }
+ BigDecimal orDefault = yearToTotalAmountMap.getOrDefault(years, BigDecimal.ZERO);
+ objects.add(orDefault);
+ // 创建一个 Map 用于存储今年每个月的累计 amount
+ Map<Integer, BigDecimal> monthToTotalAmountMap = new HashMap<>();
+ Calendar calendar = Calendar.getInstance();
+ int currentYear = calendar.get(Calendar.YEAR);
+ List<BigDecimal> monthlyAmountList = new ArrayList<>(Collections.nCopies(12, BigDecimal.ZERO));
+
+ for (IncomeVO incomeVO1 : incomeVOS) {
+ Calendar calendar1 = Calendar.getInstance();
+ calendar1.setTime(incomeVO1.getInsertTime());
+ int year = calendar1.get(Calendar.YEAR);
+ int month = calendar1.get(Calendar.MONTH) + 1; // 月份从0开始,所以需要加1
+ if (year == currentYear) {
+ BigDecimal totalAmount = monthlyAmountList.get(month - 1);
+ totalAmount = totalAmount.add(incomeVO1.getAmount());
+ monthlyAmountList.set(month - 1, totalAmount);
+ }
+ }
+ monthlyData.put("monthIncome", Collections.singletonList(monthlyAmountList));
+ //yearMount
+ BigDecimal monthI = new BigDecimal("0.00");
+ for (BigDecimal bigDecimal : monthlyAmountList) {
+ monthI = monthI.add(bigDecimal);
+ }
+ objects.add(monthI);
+ // 获取当前月份
+ LocalDate currentDate = LocalDate.now();
+ int currentMonth = currentDate.getMonthValue();
+ // 初始化一个长度为当前月份的天数的列表,并将每一天的金额初始化为零
+ int daysInCurrentMonth = currentDate.lengthOfMonth();
+ List<BigDecimal> weekAmount = new ArrayList<>();
+
+ // 获取最近四周
+ LocalDateTime minNow = LocalDateTime.now().with(LocalTime.MIN);
+ LocalDateTime maxNow = LocalDateTime.now().with(LocalTime.MAX);
+ // 周度数据
+ LocalDateTime week1Start = minNow.minusDays(6);
+ LocalDateTime week1End = maxNow;
+
+ LocalDateTime week2Start = minNow.minusDays(13);
+ LocalDateTime week2End = minNow.minusDays(7);
+
+ LocalDateTime week3Start = minNow.minusDays(20);
+ LocalDateTime week3End = minNow.minusDays(14);
+
+ LocalDateTime week4Start = minNow.minusDays(27);
+ LocalDateTime week4End = minNow.minusDays(21);
+
+ // 计算每个周的amount总和
+ BigDecimal tAmount1 = BigDecimal.ZERO;
+ BigDecimal tAmount2 = BigDecimal.ZERO;
+ BigDecimal tAmount3 = BigDecimal.ZERO;
+ BigDecimal tAmount4 = BigDecimal.ZERO;
+ for (IncomeVO incomeVO1 : incomeVOS) {
+ Date insertTime = incomeVO1.getInsertTime();
+ // 将Date转换为LocalDateTime
+ Instant instant = insertTime.toInstant();
+ ZoneId zoneId = ZoneId.systemDefault();
+ LocalDateTime dateTime = instant.atZone(zoneId).toLocalDateTime();
+ // 判断该数据属于哪个周
+ if (dateTime.isAfter(week1Start) && dateTime.isBefore(week1End)) {
+ BigDecimal amount1 = incomeVO1.getAmount();
+ tAmount1=tAmount1.add(amount1);
+ } else if (dateTime.isAfter(week2Start) && dateTime.isBefore(week2End)) {
+ BigDecimal amount1 = incomeVO1.getAmount();
+ tAmount2=tAmount2.add(amount1);
+ } else if (dateTime.isAfter(week3Start) && dateTime.isBefore(week3End)) {
+ BigDecimal amount1 = incomeVO1.getAmount();
+ tAmount4=tAmount3.add(amount1);
+ } else if (dateTime.isAfter(week4Start) && dateTime.isBefore(week4End)) {
+ BigDecimal amount1 = incomeVO1.getAmount();
+ tAmount4=tAmount4.add(amount1);
+ }
+ }
+ weekAmount.add(tAmount1);
+ weekAmount.add(tAmount2);
+ weekAmount.add(tAmount3);
+ weekAmount.add(tAmount4);
+ monthlyData.put("weekIncome", Collections.singletonList(weekAmount));
+ BigDecimal weekIn = new BigDecimal("0.00");
+ for (BigDecimal bigDecimal : weekAmount) {
+ weekIn = weekIn.add(bigDecimal);
+ }
+ objects.add(weekIn);
+ LocalDateTime currentDateTime = LocalDateTime.now();
+ List<BigDecimal> amountByDay = new ArrayList<>(Collections.nCopies(7, BigDecimal.ZERO));
+ for (IncomeVO incomeVO3 : incomeVOS) {
+ Date insertTime = incomeVO3.getInsertTime();
+ // 将 Date 转换为 LocalDateTime
+ LocalDateTime insertDateTime = LocalDateTime.ofInstant(insertTime.toInstant(), ZoneId.systemDefault());
+ // 计算日期与当前日期的差距
+ long daysDifference = ChronoUnit.DAYS.between(insertDateTime.toLocalDate(), currentDateTime.toLocalDate());
+ // 如果日期在七天内,累加金额
+ if (daysDifference >= 0 && daysDifference < 7) {
+ int index = (int) (6 - daysDifference); // 计算对应的索引位置
+ BigDecimal amount3 = incomeVO3.getAmount();
+ BigDecimal updatedAmount = amountByDay.get(index).add(amount3);
+ amountByDay.set(index, updatedAmount);
+
+ }
+ }
+ monthlyData.put("dayIncome", Collections.singletonList(amountByDay));
+ BigDecimal totalToday = new BigDecimal("0.00");
+ for (BigDecimal bigDecimal : amountByDay) {
+ totalToday = totalToday.add(bigDecimal);
+ }
+ objects.add(totalToday);
+ // 最后put
+ monthlyData.put("yearMount",objects);
+
+ ArrayList<Object> integers = new ArrayList<>();
+ int year = DateUtil.year(new Date());
+ for (int i = 0; i < 10; i++) {
+ integers.add(year-i);
+ }
+ List<Object> collect1 = integers.stream().sorted().collect(Collectors.toList());
+ monthlyData.put("year",collect1);
+ return monthlyData;
+ }
+
+ /**
+ * 运营统计-平台-用户数据
+ *
+ */
+ @RequestMapping(value = "/getUserData")
+ @ResponseBody
+ public Object getUserData() {
+
+
+ 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;
+ }
+ /**
+ * 退费-平台
+ *
+ */
+ @RequestMapping(value = "/getRefundData")
+ @ResponseBody
+ public Object getRefundData(Integer type) {
+ // 赛事活动查询query
+ CompetitionQuery competitionQuery = new CompetitionQuery();
+ List<IncomeVO> incomeVOS = new ArrayList<>();
+ // 获取学员课包退费
+ List<MoneyBack> refund = refundCoursePackageClient.getRefund();
+
+ for (MoneyBack moneyBack : refund) {
+ 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);
+// }
+ }
+ // 获取赛事退费记录
+ List<PaymentCompetition> 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<String, Object> map = new HashMap<>();
+ List<Integer> userPt = appUserClient.getUserPt(Arrays.asList(1));
+ 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));
+ 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));
+ double sum6= thisMonth.stream().mapToDouble(TBackRecord::getMoney).sum();
+ map.put("thisMonth",sum6);
+
+
+
+ for (int i = 0; i < 10; i++) {
+ integers.add(year-i);
+ }
+ List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
+ // 年
+ ArrayList<Double> years = new ArrayList<>();
+ for (Object o : collect) {
+ 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();
+ years.add(sum);
+ }
+ ArrayList<Double> 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<TBackRecord> list = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().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<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> 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));
+ double sum3 = list3.stream().mapToDouble(TBackRecord::getMoney).sum();
+
+ map.put("thisWeek",sum3);
+
+ ArrayList<Double> week = new ArrayList<>();
+ week.add(sum);
+ week.add(sum1);
+ week.add(sum2);
+ week.add(sum3);
+
+ // 日
+ ArrayList<Double> 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<TBackRecord> day = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().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<String, Object> map = new HashMap<>();
+ List<Integer> userPt = appUserClient.getUserYYs(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));
+ 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));
+ double sum6= thisMonth.stream().mapToDouble(TBackRecord::getMoney).sum();
+ map.put("thisMonth",sum6);
+
+
+
+ for (int i = 0; i < 10; i++) {
+ integers.add(year-i);
+ }
+ List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
+ // 年
+ ArrayList<Double> years = new ArrayList<>();
+ for (Object o : collect) {
+ 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();
+ years.add(sum);
+ }
+ ArrayList<Double> 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<TBackRecord> list = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().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<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> 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));
+ double sum3 = list3.stream().mapToDouble(TBackRecord::getMoney).sum();
+
+ map.put("thisWeek",sum3);
+
+ ArrayList<Double> week = new ArrayList<>();
+ week.add(sum);
+ week.add(sum1);
+ week.add(sum2);
+ week.add(sum3);
+
+ // 日
+ ArrayList<Double> 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<TBackRecord> day = backRecordService.list(new LambdaQueryWrapper<TBackRecord>().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<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<>();
+
+ 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,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,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<Object> collectw = integers.stream().sorted().collect(Collectors.toList());
+ // 年
+ ArrayList<Double> years = new ArrayList<>();
+ for (Object o : collectw) {
+ double sum=0.0;
+ String s = o.toString();
+ 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<>();
+ // 月
+ 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<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);
+ }
+
+ // 获取最近四周
+ 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<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> 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);
+
+ ArrayList<Double> week = new ArrayList<>();
+ week.add(sum);
+ week.add(sum1);
+ week.add(sum2);
+ week.add(sum3);
+
+ // 日
+ ArrayList<Double> 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<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){
+ 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<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) {
+ List<TStore> list4 = storeService.list(new QueryWrapper<TStore>().eq("operatorId", id).eq("state", 1));
+ List<Integer> collect1 = list4.stream().map(TStore::getId).collect(Collectors.toList());
+ //课程
+ List<Integer> list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1);
+ //场地
+ List<SiteBooking> list1 = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", collect1).eq("state", 1));
+ List<Integer> collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
+ list.addAll(collect);
+ //赛事
+ List<Integer> list2 = competitionClient.queryAppUserId(collect1);
+ list.addAll(list2);
+ //门票
+
+ HashMap<String, Object> map = appUserClient.stuYys(list);
+ return map;
+ }
+ @RequestMapping(value = "/stuStores")
+ @ResponseBody
+ public Object stuStores(Integer id) {
+ List<Integer> collect1 = Arrays.asList(id);
+ //课程
+ List<Integer> list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1);
+ //场地
+ List<SiteBooking> list1 = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", collect1).eq("state", 1));
+ List<Integer> collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
+ list.addAll(collect);
+ //赛事
+ List<Integer> list2 = competitionClient.queryAppUserId(collect1);
+ list.addAll(list2);
+ //门票
+
+ HashMap<String, Object> map = appUserClient.stuStores(list);
+ return map;
+ }
+
+ // 消耗课时数据-平台
+ @RequestMapping(value = "/coursePt")
+ @ResponseBody
+ public Object coursePt() {
+ 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) {
+ 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) {
+ 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")
+ @ResponseBody
+ public Object actPt(Integer type) {
+ List<Integer> userPt = appUserClient.getUserPt(Arrays.asList(1));
+ 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;
+ }
+ @RequestMapping(value = "/actYys")
+ @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);
+ //门票
+
+
+ competionVO.setIds(list);
+ competionVO.setOperatorId(id);
+ HashMap<String, Object> map = competitionClient.actYys(competionVO);
+
+ List<TStore> lists = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getOperatorId, id));
+ long l1=0;
+ for (TStore tStore : 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<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);
+
+ List<TStore> lists = storeService.list(new LambdaQueryWrapper<TStore>().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();
- List<CityManager> cityManagers = cityManagerClient.listAll();
- HashSet<String> city = new HashSet<>();
- List<CityManager> list = new ArrayList<>();
- for (CityManager cityManager : cityManagers) {
- if (!city.contains(cityManager.getCity())){
- city.add(cityManager.getCity());
- list.add(cityManager);
- }
- }
+ 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";
}
+
+ /**
+ * 运营商
+ * @param
+ * @return
+ */
+ @ResponseBody
+ @RequestMapping("/selectYys")
+ 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);
+ 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"));
+ Object data = map3.get("data");
+ map.put("courseData",data);
+
+
+ // 赛事收入
+ Double aDouble1 = competitionClient.queryFee(queryDataFee);
+ map.put("fee4",aDouble1);
+
+ // 订场
+ 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)){
+ 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<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();
+ map.put("fee5",sum);
+
+
+ List<Integer> collect = list1.stream().map(SiteBooking::getSiteId).collect(Collectors.toList());
+ if(collect.size()==0){
+ collect.add(-1);
+ }
+ List<TSite> list3 = siteService.list(new LambdaQueryWrapper<TSite>().in(TSite::getId, collect));
+ for (SiteBooking siteBooking : list1) {
+ for (TSite tSite : list3) {
+ if(siteBooking.getSiteId().equals(tSite.getId())){
+ siteBooking.setType(tSite.getSiteTypeId());
+ }
+ }
+ }
+
+
+ List<TSiteType> list2 = siteTypeService.list();
+
+ List<Map<String,Object>> mapList = new ArrayList<>();
+
+ for (TSiteType tSiteType : list2) {
+ HashMap<String, Object> 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<String, Object> 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<String, Object> map = new HashMap<>();
+ 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");
+
+ map.put("fee1",fee1);
+ //玩湃比
+ Object fee2 = map1.get("fee2");
+ map.put("fee2",fee2);
+ // 课程收入
+ HashMap<String, Object> 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<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);
+ }
+ 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> lists1 = siteBookingService.list(vipPaymentLambdaQueryWrapper);
+ double sum = lists1.stream().mapToDouble(SiteBooking::getPayMoney).sum();
+ map.put("fee5",sum);
+
+
+ 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, collects));
+ for (SiteBooking siteBooking : list1) {
+ for (TSite tSite : list3) {
+ if(siteBooking.getSiteId().equals(tSite.getId())){
+ siteBooking.setType(tSite.getSiteTypeId());
+ }
+ }
+ }
+
+
+ List<TSiteType> lists2 = siteTypeService.list();
+
+ List<Map<String,Object>> mapList = new ArrayList<>();
+
+ for (TSiteType tSiteType : lists2) {
+ HashMap<String, Object> 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<String, Object> 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<CityManager> cityManagers = cityManagerClient.listAll();
- HashSet<String> city = new HashSet<>();
- List<CityManager> list = new ArrayList<>();
- for (CityManager cityManager : cityManagers) {
- if (!city.contains(cityManager.getCity())){
- city.add(cityManager.getCity());
- list.add(cityManager);
+ 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";
+ }
+
+
+ @Autowired
+ private ITSiteTypeService siteTypeService;
+
+
+ @Autowired
+ private ITSiteService siteService;
+
+ @RequestMapping("/type1")
+ @ResponseBody
+ public Object type1(String time) {
+ HashMap<String, Object> map = new HashMap<>();
+ // 找出平台的用户
+ List<User> list = sysUserService.list(new LambdaQueryWrapper<User>().eq(User::getObjectType, 1));
+ List<Integer> ids = list.stream().map(User::getId).collect(Collectors.toList());
+ List<Integer> userIds = appUserClient.getUserPt(ids);
+ 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);
+ // 课程收入
+ HashMap<String, Object> 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<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.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(new QueryWrapper<SiteBooking>()
+ .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<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());
+ if(collect.size()==0){
+ collect.add(-1);
+ }
+ List<TSite> list3 = siteService.list(new LambdaQueryWrapper<TSite>().in(TSite::getId, collect));
+ for (SiteBooking siteBooking : list1) {
+ for (TSite tSite : list3) {
+ if(siteBooking.getSiteId().equals(tSite.getId())){
+ siteBooking.setType(tSite.getSiteTypeId());
+ }
}
}
- model.addAttribute("list",list);
- model.addAttribute("objectType",objectType);
- return PREFIX + "storeIncome.html";
+
+
+ List<TSiteType> list2 = siteTypeService.list();
+
+ List<Map<String,Object>> mapList = new ArrayList<>();
+
+ for (TSiteType tSiteType : list2) {
+ HashMap<String, Object> 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<String, Object> 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<Integer> objects = new ArrayList<>();
+ objects.add(1);
+ List<Integer> userIds = appUserClient.getUserPt(objects);
+ List<Map<String,Object>> list = coursePackagePaymentClient.queryCourseData(userIds);
+ ArrayList<Object> objects2 = new ArrayList<>();
+ ArrayList<Object> objects3 = new ArrayList<>();
+ for (Map<String, Object> map : list) {
+ Object name = map.get("name");
+ Object value = map.get("value");
+ objects2.add(name);
+ objects3.add(value);
+ }
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("data1",objects2);
+ map.put("data2",objects3);
+ return map;
+ }
+ @RequestMapping("/stuUserData")
+ @ResponseBody
+ public Object stuUserData() {
+ ArrayList<Integer> objects = new ArrayList<>();
+ objects.add(1);
+ HashMap<String, Object> map = appUserClient.queryUserAge1();
+
+ return map;
+ }
+ @RequestMapping("/stuUserDataYys")
+ @ResponseBody
+ public Object stuUserDataYys(Integer id) {
+ List<TStore> list4 = storeService.list(new QueryWrapper<TStore>().eq("operatorId", id).eq("state", 1));
+ List<Integer> collect1 = list4.stream().map(TStore::getId).collect(Collectors.toList());
+ //课程
+ List<Integer> list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1);
+ //场地
+ List<SiteBooking> list1 = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", collect1).eq("state", 1));
+ List<Integer> collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
+ list.addAll(collect);
+ //赛事
+ List<Integer> list2 = competitionClient.queryAppUserId(collect1);
+ list.addAll(list2);
+ //门票
+ HashMap<String, Object> map = appUserClient.queryUserAgeYys(list);
+ return map;
+ }
+ @RequestMapping("/stuUserDataStore")
+ @ResponseBody
+ public Object stuUserDataStore(Integer id) {
+
+ List<Integer> collect1 = Arrays.asList(id);
+ //课程
+ List<Integer> list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1);
+ //场地
+ List<SiteBooking> list1 = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", collect1).eq("state", 1));
+ List<Integer> collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
+ list.addAll(collect);
+ //赛事
+ List<Integer> list2 = competitionClient.queryAppUserId(collect1);
+ list.addAll(list2);
+ //门票
+
+ HashMap<String, Object> map = appUserClient.queryUserAgeStore(list);
+
+ return map;
+ }
+ @RequestMapping("/selectYysJx")
+ @ResponseBody
+ public Object selectYysJx(Integer id) {
+ List<TStore> list4 = storeService.list(new QueryWrapper<TStore>().eq("operatorId", id).eq("state", 1));
+ List<Integer> collect1 = list4.stream().map(TStore::getId).collect(Collectors.toList());
+ //课程
+ List<Integer> list = coursePackagePaymentClient.queryPaymentCoursePackage(collect1);
+ //场地
+ List<SiteBooking> list1 = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", collect1).eq("state", 1));
+ List<Integer> collect = list1.stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
+ list.addAll(collect);
+ //赛事
+ List<Integer> list2 = competitionClient.queryAppUserId(collect1);
+ list.addAll(list2);
+ //门票
+
+ HashMap<String, Object> 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) {
+ Object name = map.get("name");
+ Object value = map.get("value");
+ objects2.add(name);
+ objects3.add(value);
+ }
+ HashMap<String, Object> map = new HashMap<>();
+ map1.put("data1",objects2);
+ map1.put("data2",objects3);
+
+
+ return map1;
+ }
+ @RequestMapping("/selectStoreJx")
+ @ResponseBody
+ public Object selectStoreJx(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> map1 = appUserClient.queryUserAgeStore1(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) {
+ Object name = map.get("name");
+ Object value = map.get("value");
+ objects2.add(name);
+ objects3.add(value);
+ }
+ HashMap<String, Object> map = new HashMap<>();
+ map1.put("data1",objects2);
+ map1.put("data2",objects3);
+
+
+ return map1;
}
}
--
Gitblit v1.7.1