123333
This commit is contained in:
@@ -1,27 +1,37 @@
|
||||
package com.ruoyi.cai.manager;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.ruoyi.cai.cache.RechargeTotalCache;
|
||||
import com.ruoyi.cai.cache.WithdrawTotalCache;
|
||||
import com.ruoyi.cai.cache.bean.RechargeTotalCacheBean;
|
||||
import com.ruoyi.cai.cache.bean.WithdrawTotalCacheBean;
|
||||
import com.ruoyi.cai.domain.DayIncomeStatistics;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.dto.admin.vo.home.HomeAmountLine;
|
||||
import com.ruoyi.cai.dto.admin.vo.home.HomeStaticIndexVo;
|
||||
import com.ruoyi.cai.dto.admin.vo.rank.RankNodeAdminVo;
|
||||
import com.ruoyi.cai.enums.rank.RankTimeTypeEnum;
|
||||
import com.ruoyi.cai.mapper.DayIncomeStatisticsMapper;
|
||||
import com.ruoyi.cai.rank.RankAdminManager;
|
||||
import com.ruoyi.cai.rank.RankManager;
|
||||
import com.ruoyi.cai.rank.RankNode;
|
||||
import com.ruoyi.cai.rank.bean.RankAdminNode;
|
||||
import com.ruoyi.cai.service.AnchorService;
|
||||
import com.ruoyi.cai.service.UserService;
|
||||
import com.ruoyi.cai.util.CaiDateUtil;
|
||||
import com.ruoyi.cai.util.CaiNumUtil;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.framework.OnlineUserTodayCache;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.Period;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -143,4 +153,99 @@ public class AdminHomeManager {
|
||||
vo.setTodayWithdrawAmountDiffLast(CaiNumUtil.diffRate(todayWithdraw.getAmount(),lastTodayWithdraw.getAmount()));
|
||||
return vo;
|
||||
}
|
||||
|
||||
@Resource
|
||||
private DayIncomeStatisticsMapper dayIncomeStatisticsMapper;
|
||||
|
||||
public HomeAmountLine amountLine(LocalDate begin, LocalDate end) {
|
||||
if(begin == null || end == null){
|
||||
return new HomeAmountLine();
|
||||
}
|
||||
if(begin.isAfter(end)){
|
||||
return new HomeAmountLine();
|
||||
}
|
||||
Period period = Period.between(begin, end);
|
||||
if(period.getYears() > 2){
|
||||
throw new ServiceException("一次性只能查询2年内的数据");
|
||||
}
|
||||
HomeAmountLine amountLine = new HomeAmountLine();
|
||||
if(period.getMonths() == 0){ // 按天统计
|
||||
List<DayIncomeStatistics> statisticsList = dayIncomeStatisticsMapper.selectList(Wrappers.lambdaQuery(DayIncomeStatistics.class)
|
||||
.between(DayIncomeStatistics::getDate, begin, end));
|
||||
Map<LocalDate, DayIncomeStatistics> statisticsMap = statisticsList.stream().collect(Collectors.toMap(DayIncomeStatistics::getDate, Function.identity()));
|
||||
while (begin.isBefore(end)){
|
||||
DayIncomeStatistics statistics = statisticsMap.get(begin);
|
||||
String beginStr = CaiDateUtil.formatDate(begin);
|
||||
BigDecimal expInMoney = BigDecimal.ZERO;
|
||||
Integer orderCount = 0;
|
||||
BigDecimal outMoney = BigDecimal.ZERO;
|
||||
Integer cashCount = 0;
|
||||
Long modifyCoinAdd = 0L;
|
||||
Long modifyCoinSub = 0L;
|
||||
Long modifyIncomeAdd = 0L;
|
||||
Long modifyIncomeSub = 0L;
|
||||
if(statistics != null){
|
||||
expInMoney = statistics.getExpInMoney();
|
||||
orderCount = statistics.getOrderCount();
|
||||
outMoney = statistics.getOutMoney();
|
||||
cashCount = statistics.getCashCount();
|
||||
modifyCoinAdd = statistics.getModifyCoinAdd();
|
||||
modifyCoinSub = statistics.getModifyCoinSub();
|
||||
modifyIncomeAdd = statistics.getModifyIncomeAdd();
|
||||
modifyIncomeSub = statistics.getModifyIncomeSub();
|
||||
}
|
||||
amountLine.addX(beginStr);
|
||||
amountLine.addExpInMoneyData(expInMoney);
|
||||
amountLine.addOrderCountData(orderCount);
|
||||
amountLine.addOutMoneyData(outMoney);
|
||||
amountLine.addCashCountData(cashCount);
|
||||
amountLine.addModifyCoinAddData(modifyCoinAdd);
|
||||
amountLine.addModifyCoinSubData(modifyCoinSub);
|
||||
amountLine.addModifyIncomeAddData(modifyIncomeAdd);
|
||||
amountLine.addModifyIncomeSubData(modifyIncomeSub);
|
||||
begin = begin.plusDays(1);
|
||||
}
|
||||
}
|
||||
else { // 按月统计
|
||||
List<DayIncomeStatistics> statisticsList = dayIncomeStatisticsMapper.statisticsByMonth(begin,end);
|
||||
Map<String, DayIncomeStatistics> statisticsMap = statisticsList.stream().collect(Collectors.toMap(DayIncomeStatistics::getDateStr, Function.identity()));
|
||||
String endMonth = end.format(DateTimeFormatter.ofPattern("yyyy-MM"));
|
||||
while (true) {
|
||||
String beginMonth = begin.format(DateTimeFormatter.ofPattern("yyyy-MM"));
|
||||
DayIncomeStatistics statistics = statisticsMap.get(beginMonth);
|
||||
BigDecimal expInMoney = BigDecimal.ZERO;
|
||||
Integer orderCount = 0;
|
||||
BigDecimal outMoney = BigDecimal.ZERO;
|
||||
Integer cashCount = 0;
|
||||
Long modifyCoinAdd = 0L;
|
||||
Long modifyCoinSub = 0L;
|
||||
Long modifyIncomeAdd = 0L;
|
||||
Long modifyIncomeSub = 0L;
|
||||
if(statistics != null){
|
||||
expInMoney = statistics.getExpInMoney();
|
||||
orderCount = statistics.getOrderCount();
|
||||
outMoney = statistics.getOutMoney();
|
||||
cashCount = statistics.getCashCount();
|
||||
modifyCoinAdd = statistics.getModifyCoinAdd();
|
||||
modifyCoinSub = statistics.getModifyCoinSub();
|
||||
modifyIncomeAdd = statistics.getModifyIncomeAdd();
|
||||
modifyIncomeSub = statistics.getModifyIncomeSub();
|
||||
}
|
||||
amountLine.addX(beginMonth);
|
||||
amountLine.addExpInMoneyData(expInMoney);
|
||||
amountLine.addOrderCountData(orderCount);
|
||||
amountLine.addOutMoneyData(outMoney);
|
||||
amountLine.addCashCountData(cashCount);
|
||||
amountLine.addModifyCoinAddData(modifyCoinAdd);
|
||||
amountLine.addModifyCoinSubData(modifyCoinSub);
|
||||
amountLine.addModifyIncomeAddData(modifyIncomeAdd);
|
||||
amountLine.addModifyIncomeSubData(modifyIncomeSub);
|
||||
if(beginMonth.equals(endMonth)){
|
||||
break;
|
||||
}
|
||||
begin = begin.plusMonths(1);
|
||||
}
|
||||
}
|
||||
return amountLine;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user