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.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.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;
|
@Autowired
|
private CityManagerClient cityManagerClient;
|
|
@Autowired
|
private IUserService sysUserService;
|
@Autowired
|
private AppUserClient appUserClient;
|
|
@Autowired
|
private CourseClient courseClient;
|
|
@Autowired
|
private IStoreService storeService;
|
@Autowired
|
private VipPaymentClient vipPaymentClient;
|
@Autowired
|
private FinanceClient financeClient;
|
@Autowired
|
private CoursePackagePaymentClient coursePackagePaymentClient;
|
@Autowired
|
private CompetitionClient competitionClient;
|
|
@Autowired
|
private ISiteBookingService siteBookingService;
|
@Autowired
|
private StoreClient storeClient;
|
@Autowired
|
private SiteClient siteClient;
|
@Autowired
|
private PointMercharsClient pointMercharsClient;
|
@Autowired
|
private RefundCoursePackageClient refundCoursePackageClient;
|
@Resource
|
private CourseStuddentClient courseStuddentClient;
|
@Autowired
|
private CoursePackageClient coursePackageClient;
|
@Autowired
|
private TOperatorService operatorService;
|
@Autowired
|
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<TCoursePackagePayment> 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) {
|
if(UserExt.getUser().getObjectType()==3){
|
id = UserExt.getUser().getObjectId();
|
}
|
HashMap<String, Object> map = new HashMap<>();
|
List<Integer> userPt = appUserClient.getUserStore(id);
|
if(userPt.size()==0){
|
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 = "/userAndVipPt")
|
@ResponseBody
|
public Object userAndVipPt(Integer type) {
|
type=1;
|
HashMap<String, Object> map = appUserClient.userAndVipPt(type);
|
return map;
|
}
|
|
@RequestMapping(value = "/stuPt")
|
@ResponseBody
|
public Object stuPt() {
|
HashMap<String, Object> map = appUserClient.stuPt();
|
return map;
|
}
|
@RequestMapping(value = "/stuYys")
|
@ResponseBody
|
public Object stuYys(Integer id) {
|
HashMap<String, Object> map = appUserClient.stuYys(id);
|
return map;
|
}
|
@RequestMapping(value = "/stuStores")
|
@ResponseBody
|
public Object stuStores(Integer id) {
|
HashMap<String, Object> map = appUserClient.stuStores(id);
|
return map;
|
}
|
|
// 消耗课时数据-平台
|
@RequestMapping(value = "/coursePt")
|
@ResponseBody
|
public Object coursePt() {
|
List<Integer> userPt = appUserClient.getUserPt(Arrays.asList(1));
|
HashMap<String, Object> map = coursePackagePaymentClient.coursePt(userPt);
|
return map;
|
}
|
// 消耗课时数据-运营商
|
@RequestMapping(value = "/courseYys")
|
@ResponseBody
|
public Object courseYys(Integer id) {
|
List<Integer> userPt = appUserClient.getUserYYs(id);
|
HashMap<String, Object> map = coursePackagePaymentClient.coursePt(userPt);
|
return map;
|
}
|
// 消耗课时数据-运营商
|
@RequestMapping(value = "/courseStore")
|
@ResponseBody
|
public Object courseStore(Integer id) {
|
List<Integer> userPt = appUserClient.getUserPt(Arrays.asList(id));
|
HashMap<String, Object> map = coursePackagePaymentClient.coursePt(userPt);
|
return map;
|
}
|
|
@RequestMapping(value = "/userAndVipYys")
|
@ResponseBody
|
public Object userAndVipYys(Integer id) {
|
HashMap<String, Object> map = appUserClient.userAndVipYys(id);
|
return map;
|
}
|
@RequestMapping(value = "/userAndVipStore")
|
@ResponseBody
|
public Object userAndVipStore(Integer id) {
|
if(UserExt.getUser().getObjectType()==3){
|
id = UserExt.getUser().getObjectId();
|
}
|
HashMap<String, Object> map = appUserClient.userAndVipStore(id);
|
return map;
|
}
|
@RequestMapping(value = "/actPt")
|
@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<Integer> userPt = appUserClient.getUserYYs(id);
|
competionVO.setIds(userPt);
|
competionVO.setOperatorId(id);
|
HashMap<String, Object> map = competitionClient.actYys(competionVO);
|
|
List<TStore> list = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getOperatorId, id));
|
long l1=0;
|
for (TStore tStore : list) {
|
long l = DateUtil.betweenDay(tStore.getCreateTime(), new Date(), true);
|
String startTime = tStore.getStartTime();
|
String endTime = tStore.getEndTime();
|
String s = startTime.split(":")[0];
|
String s1 = endTime.split(":")[1];
|
Integer integer = Integer.valueOf(s);
|
Integer integer1 = Integer.valueOf(s1);
|
Integer a =0;
|
if(integer==0 && integer1==0){
|
a=24;
|
}else {
|
a= integer-integer1;
|
}
|
l1 += l * a;
|
}
|
map.put("allHour",l1);
|
return map;
|
}
|
@RequestMapping(value = "/actStore")
|
@ResponseBody
|
public Object actStore(Integer id) {
|
|
|
Integer objectType = UserExt.getUser().getObjectType();
|
if(objectType==3){
|
id = UserExt.getUser().getObjectId();
|
}
|
List<Integer> userPt = appUserClient.getUserStore(id);
|
HashMap<String, Object> map = competitionClient.actPt(userPt);
|
|
List<TStore> list = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getOperatorId, 0));
|
long l1=0;
|
for (TStore tStore : list) {
|
long l = DateUtil.betweenDay(tStore.getCreateTime(), new Date(), true);
|
String startTime = tStore.getStartTime();
|
String endTime = tStore.getEndTime();
|
String s = startTime.split(":")[0];
|
String s1 = endTime.split(":")[1];
|
Integer integer = Integer.valueOf(s);
|
Integer integer1 = Integer.valueOf(s1);
|
Integer a =0;
|
if(integer==0 && integer1==0){
|
a=24;
|
}else {
|
a= integer1-integer;
|
}
|
l1 += l * a;
|
}
|
map.put("allHour",l1);
|
return map;
|
}
|
|
|
|
/**
|
* 跳转到运营商统计数据页面
|
*/
|
@RequestMapping("/operator")
|
public String operator(Model model) {
|
Integer objectType = UserExt.getUser().getObjectType();
|
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);
|
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.in(SiteBooking::getAppUserId,userIds);
|
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<User> list = sysUserService.list(new LambdaQueryWrapper<User>().eq(User::getObjectType, 2));
|
List<Integer> ids = list.stream().map(User::getId).collect(Collectors.toList());
|
Integer objectType = UserExt.getUser().getObjectType();
|
if(objectType==3){
|
id = UserExt.getUser().getObjectId();
|
}
|
List<Integer> userIds = appUserClient.getUserStore(id);
|
QueryDataFee queryDataFee = new QueryDataFee(time, userIds);
|
// 会员费
|
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.in(SiteBooking::getAppUserId,userIds);
|
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;
|
}
|
|
|
/**
|
* 跳转到门店统计数据页面
|
*/
|
@RequestMapping("/store")
|
public String store(Model model) {
|
Integer objectType = UserExt.getUser().getObjectType();
|
List<TStore> tStores = new ArrayList<>();
|
|
if (objectType == 2){
|
tStores = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getState, 1).eq(TStore::getOperatorId,UserExt.getUser().getObjectId()));
|
}
|
if (objectType == 3){
|
tStores = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getState, 1).eq(TStore::getId,UserExt.getUser().getObjectId()));
|
}
|
model.addAttribute("list",tStores);
|
model.addAttribute("objectType",objectType);
|
model.addAttribute("objectId",UserExt.getUser().getObjectId());
|
return PREFIX + "storeIncome.html";
|
}
|
|
|
@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());
|
}
|
}
|
}
|
|
|
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) {
|
ArrayList<Integer> objects = new ArrayList<>();
|
|
objects.add(1);
|
HashMap<String, Object> map = appUserClient.queryUserAgeYys(operatorService.getById(id).getId());
|
|
return map;
|
}
|
@RequestMapping("/stuUserDataStore")
|
@ResponseBody
|
public Object stuUserDataStore(Integer id) {
|
if(UserExt.getUser().getObjectType()==3){
|
id = UserExt.getUser().getObjectId();
|
}
|
ArrayList<Integer> objects = new ArrayList<>();
|
objects.add(1);
|
HashMap<String, Object> map = appUserClient.queryUserAgeStore(id);
|
|
return map;
|
}
|
@RequestMapping("/selectYysJx")
|
@ResponseBody
|
public Object selectYysJx(Integer id) {
|
ArrayList<Integer> objects = new ArrayList<>();
|
objects.add(1);
|
HashMap<String, Object> map1 = appUserClient.queryUserAgeYys1(id);
|
// 找出运营商的用户
|
List<Integer> userYYs = appUserClient.getUserYYs(id);
|
|
|
List<Map<String, Object>> mapList = coursePackagePaymentClient.queryCourseData(userYYs);
|
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) {
|
Integer objectType = UserExt.getUser().getObjectType();
|
if(objectType==3){
|
id = UserExt.getUser().getObjectId();
|
}
|
ArrayList<Integer> objects = new ArrayList<>();
|
objects.add(1);
|
HashMap<String, Object> map1 = appUserClient.queryUserAgeStore1(id);
|
// 找出运营商的用户
|
List<Integer> userYYs = appUserClient.getUserYYs(id);
|
|
|
List<Map<String, Object>> mapList = coursePackagePaymentClient.queryCourseData(userYYs);
|
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;
|
}
|
}
|