123333
This commit is contained in:
@@ -1,9 +1,11 @@
|
|||||||
package com.ruoyi.web.controller.cai.admin;
|
package com.ruoyi.web.controller.cai.admin;
|
||||||
|
|
||||||
|
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.home.HomeStaticIndexVo;
|
||||||
import com.ruoyi.cai.dto.admin.vo.rank.RankNodeAdminVo;
|
import com.ruoyi.cai.dto.admin.vo.rank.RankNodeAdminVo;
|
||||||
import com.ruoyi.cai.enums.rank.RankTimeTypeEnum;
|
import com.ruoyi.cai.enums.rank.RankTimeTypeEnum;
|
||||||
import com.ruoyi.cai.manager.AdminHomeManager;
|
import com.ruoyi.cai.manager.AdminHomeManager;
|
||||||
|
import com.ruoyi.common.constant.DateConstant;
|
||||||
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.domain.R;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -12,6 +14,8 @@ import org.springframework.web.bind.annotation.GetMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Validated
|
@Validated
|
||||||
@@ -34,4 +38,12 @@ public class HomeController {
|
|||||||
List<RankNodeAdminVo> rank = adminHomeManager.rank(rankType, RankTimeTypeEnum.getByCode(rankTime));
|
List<RankNodeAdminVo> rank = adminHomeManager.rank(rankType, RankTimeTypeEnum.getByCode(rankTime));
|
||||||
return R.ok(rank);
|
return R.ok(rank);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/static/amountLine")
|
||||||
|
public R<HomeAmountLine> staticAmountLine(String beginDate, String endDate){
|
||||||
|
LocalDate begin = LocalDate.parse(beginDate, DateTimeFormatter.ofPattern(DateConstant.PATTERN_DATE));
|
||||||
|
LocalDate end = LocalDate.parse(endDate, DateTimeFormatter.ofPattern(DateConstant.PATTERN_DATE));
|
||||||
|
HomeAmountLine amountLine = adminHomeManager.amountLine(begin, end);
|
||||||
|
return R.ok(amountLine);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
package com.ruoyi.web.controller.system;
|
package com.ruoyi.web.controller.system;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaIgnore;
|
import cn.dev33.satoken.annotation.SaIgnore;
|
||||||
import com.ruoyi.common.config.RuoYiConfig;
|
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
@@ -16,17 +14,12 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
@RestController
|
@RestController
|
||||||
public class SysIndexController {
|
public class SysIndexController {
|
||||||
|
|
||||||
/**
|
|
||||||
* 系统基础配置
|
|
||||||
*/
|
|
||||||
private final RuoYiConfig ruoyiConfig;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 访问首页,提示语
|
* 访问首页,提示语
|
||||||
*/
|
*/
|
||||||
@SaIgnore
|
@SaIgnore
|
||||||
@GetMapping("/")
|
@GetMapping("/")
|
||||||
public String index() {
|
public String index() {
|
||||||
return StringUtils.format("欢迎使用{}后台管理框架,当前版本:v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion());
|
return "ok";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.ruoyi.cai.domain;
|
package com.ruoyi.cai.domain;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
@@ -36,26 +37,29 @@ public class DayIncomeStatistics implements Serializable {
|
|||||||
@DateTimeFormat(pattern = DateConstant.PATTERN_DATE)
|
@DateTimeFormat(pattern = DateConstant.PATTERN_DATE)
|
||||||
@JsonFormat(pattern = DateConstant.PATTERN_DATE)
|
@JsonFormat(pattern = DateConstant.PATTERN_DATE)
|
||||||
private LocalDate date;
|
private LocalDate date;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String dateStr;
|
||||||
/**
|
/**
|
||||||
* 充值金额
|
* 充值金额
|
||||||
*/
|
*/
|
||||||
private BigDecimal expInMoney;
|
private BigDecimal expInMoney;
|
||||||
|
/**
|
||||||
|
* 充值订单
|
||||||
|
*/
|
||||||
|
private Integer orderCount;
|
||||||
/**
|
/**
|
||||||
* 提现金额
|
* 提现金额
|
||||||
*/
|
*/
|
||||||
private BigDecimal outMoney;
|
private BigDecimal outMoney;
|
||||||
/**
|
|
||||||
* vip金额
|
|
||||||
*/
|
|
||||||
private BigDecimal vipInMoney;
|
|
||||||
/**
|
/**
|
||||||
* 提现数量
|
* 提现数量
|
||||||
*/
|
*/
|
||||||
private Integer cashCount;
|
private Integer cashCount;
|
||||||
/**
|
/**
|
||||||
* 充值订单
|
* vip金额
|
||||||
*/
|
*/
|
||||||
private Integer orderCount;
|
private BigDecimal vipInMoney;
|
||||||
/**
|
/**
|
||||||
* vip订单
|
* vip订单
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
package com.ruoyi.cai.dto.admin.vo.home;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class HomeAmountLine {
|
||||||
|
private List<String> x = new ArrayList<>();
|
||||||
|
@Schema(description = "充值金额")
|
||||||
|
private List<Number> expInMoneyData = new ArrayList<>();
|
||||||
|
@Schema(description = "充值订单数")
|
||||||
|
private List<Number> orderCountData = new ArrayList<>();
|
||||||
|
|
||||||
|
@Schema(description = "提现金额")
|
||||||
|
private List<Number> outMoneyData = new ArrayList<>();
|
||||||
|
|
||||||
|
@Schema(description = "提现数量")
|
||||||
|
private List<Number> cashCountData = new ArrayList<>();
|
||||||
|
|
||||||
|
@Schema(description = "手工减少余额数")
|
||||||
|
private List<Number> modifyCoinSubData = new ArrayList<>();
|
||||||
|
|
||||||
|
@Schema(description = "手工新增余额数")
|
||||||
|
private List<Number> modifyCoinAddData = new ArrayList<>();
|
||||||
|
|
||||||
|
@Schema(description = "手工减少收益数")
|
||||||
|
private List<Number> modifyIncomeSubData = new ArrayList<>();
|
||||||
|
|
||||||
|
@Schema(description = "手工新增余额数")
|
||||||
|
private List<Number> modifyIncomeAddData = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
|
public void addX(String date){
|
||||||
|
x.add(date);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addExpInMoneyData(Number expInMoney){
|
||||||
|
expInMoneyData.add(expInMoney);
|
||||||
|
}
|
||||||
|
public void addOrderCountData(Number orderCount){
|
||||||
|
orderCountData.add(orderCount);
|
||||||
|
}
|
||||||
|
public void addOutMoneyData(Number outMoney){
|
||||||
|
outMoneyData.add(outMoney);
|
||||||
|
}
|
||||||
|
public void addCashCountData(Number cashCount){
|
||||||
|
cashCountData.add(cashCount);
|
||||||
|
}
|
||||||
|
public void addModifyCoinSubData(Number modifyCoinSub){
|
||||||
|
modifyCoinSubData.add(modifyCoinSub);
|
||||||
|
}
|
||||||
|
public void addModifyCoinAddData(Number modifyCoinAdd){
|
||||||
|
modifyCoinAddData.add(modifyCoinAdd);
|
||||||
|
}
|
||||||
|
public void addModifyIncomeSubData(Number modifyIncomeSub){
|
||||||
|
modifyIncomeSubData.add(modifyIncomeSub);
|
||||||
|
}
|
||||||
|
public void addModifyIncomeAddData(Number modifyIncomeAdd){
|
||||||
|
modifyIncomeAddData.add(modifyIncomeAdd);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,21 +1,28 @@
|
|||||||
package com.ruoyi.cai.dto.admin.vo.home;
|
package com.ruoyi.cai.dto.admin.vo.home;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class HomeStaticIndexVo {
|
public class HomeStaticIndexVo {
|
||||||
|
@Schema(description = "今日登陆人数")
|
||||||
private Long todayLoginNum;
|
private Long todayLoginNum;
|
||||||
|
@Schema(description = "登陆与昨日相比")
|
||||||
private BigDecimal todayLoginDiffLast;
|
private BigDecimal todayLoginDiffLast;
|
||||||
|
@Schema(description = "主播人数")
|
||||||
private Long anchorNum;
|
private Long anchorNum;
|
||||||
|
@Schema(description = "今日充值金额")
|
||||||
private BigDecimal todayRechargeAmountNum;
|
private BigDecimal todayRechargeAmountNum;
|
||||||
|
@Schema(description = "今日充值订单数")
|
||||||
private Long todayRechargeNum;
|
private Long todayRechargeNum;
|
||||||
|
@Schema(description = "今日充值与昨日相比")
|
||||||
private BigDecimal todayRechargeAmountDiffLast;
|
private BigDecimal todayRechargeAmountDiffLast;
|
||||||
|
@Schema(description = "今日提现金额")
|
||||||
private BigDecimal todayWithdrawAmount;
|
private BigDecimal todayWithdrawAmount;
|
||||||
|
@Schema(description = "今日提现订单数")
|
||||||
private Long todayWithdrawNum;
|
private Long todayWithdrawNum;
|
||||||
|
@Schema(description = "今日充值与昨日相比")
|
||||||
private BigDecimal todayWithdrawAmountDiffLast;
|
private BigDecimal todayWithdrawAmountDiffLast;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,27 +1,37 @@
|
|||||||
package com.ruoyi.cai.manager;
|
package com.ruoyi.cai.manager;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.ruoyi.cai.cache.RechargeTotalCache;
|
import com.ruoyi.cai.cache.RechargeTotalCache;
|
||||||
import com.ruoyi.cai.cache.WithdrawTotalCache;
|
import com.ruoyi.cai.cache.WithdrawTotalCache;
|
||||||
import com.ruoyi.cai.cache.bean.RechargeTotalCacheBean;
|
import com.ruoyi.cai.cache.bean.RechargeTotalCacheBean;
|
||||||
import com.ruoyi.cai.cache.bean.WithdrawTotalCacheBean;
|
import com.ruoyi.cai.cache.bean.WithdrawTotalCacheBean;
|
||||||
|
import com.ruoyi.cai.domain.DayIncomeStatistics;
|
||||||
import com.ruoyi.cai.domain.User;
|
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.home.HomeStaticIndexVo;
|
||||||
import com.ruoyi.cai.dto.admin.vo.rank.RankNodeAdminVo;
|
import com.ruoyi.cai.dto.admin.vo.rank.RankNodeAdminVo;
|
||||||
import com.ruoyi.cai.enums.rank.RankTimeTypeEnum;
|
import com.ruoyi.cai.enums.rank.RankTimeTypeEnum;
|
||||||
|
import com.ruoyi.cai.mapper.DayIncomeStatisticsMapper;
|
||||||
import com.ruoyi.cai.rank.RankAdminManager;
|
import com.ruoyi.cai.rank.RankAdminManager;
|
||||||
import com.ruoyi.cai.rank.RankManager;
|
import com.ruoyi.cai.rank.RankManager;
|
||||||
import com.ruoyi.cai.rank.RankNode;
|
import com.ruoyi.cai.rank.RankNode;
|
||||||
import com.ruoyi.cai.rank.bean.RankAdminNode;
|
import com.ruoyi.cai.rank.bean.RankAdminNode;
|
||||||
import com.ruoyi.cai.service.AnchorService;
|
import com.ruoyi.cai.service.AnchorService;
|
||||||
import com.ruoyi.cai.service.UserService;
|
import com.ruoyi.cai.service.UserService;
|
||||||
|
import com.ruoyi.cai.util.CaiDateUtil;
|
||||||
import com.ruoyi.cai.util.CaiNumUtil;
|
import com.ruoyi.cai.util.CaiNumUtil;
|
||||||
|
import com.ruoyi.common.exception.ServiceException;
|
||||||
import com.ruoyi.framework.OnlineUserTodayCache;
|
import com.ruoyi.framework.OnlineUserTodayCache;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.time.Period;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -143,4 +153,99 @@ public class AdminHomeManager {
|
|||||||
vo.setTodayWithdrawAmountDiffLast(CaiNumUtil.diffRate(todayWithdraw.getAmount(),lastTodayWithdraw.getAmount()));
|
vo.setTodayWithdrawAmountDiffLast(CaiNumUtil.diffRate(todayWithdraw.getAmount(),lastTodayWithdraw.getAmount()));
|
||||||
return vo;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,10 @@ package com.ruoyi.cai.mapper;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.ruoyi.cai.domain.DayIncomeStatistics;
|
import com.ruoyi.cai.domain.DayIncomeStatistics;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 每日账单统计Mapper接口
|
* 每日账单统计Mapper接口
|
||||||
@@ -11,4 +15,5 @@ import com.ruoyi.cai.domain.DayIncomeStatistics;
|
|||||||
*/
|
*/
|
||||||
public interface DayIncomeStatisticsMapper extends BaseMapper<DayIncomeStatistics> {
|
public interface DayIncomeStatisticsMapper extends BaseMapper<DayIncomeStatistics> {
|
||||||
|
|
||||||
|
List<DayIncomeStatistics> statisticsByMonth(@Param("begin") LocalDate begin, @Param("end") LocalDate end);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,10 @@ public class CaiDateUtil {
|
|||||||
return ChronoUnit.SECONDS.between(after, before);
|
return ChronoUnit.SECONDS.between(after, before);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static long diffDays(LocalDateTime before, LocalDateTime after){
|
||||||
|
return ChronoUnit.DAYS.between(after, before);
|
||||||
|
}
|
||||||
|
|
||||||
public static String betweenShowString(LocalDateTime minTime,LocalDateTime maxTime){
|
public static String betweenShowString(LocalDateTime minTime,LocalDateTime maxTime){
|
||||||
Duration duration = Duration.between(minTime, maxTime);
|
Duration duration = Duration.between(minTime, maxTime);
|
||||||
long seconds = duration.getSeconds();
|
long seconds = duration.getSeconds();
|
||||||
@@ -102,4 +106,8 @@ public class CaiDateUtil {
|
|||||||
public static String getCurrentTimeStr() {
|
public static String getCurrentTimeStr() {
|
||||||
return localDateTimeToString(LocalDateTime.now());
|
return localDateTimeToString(LocalDateTime.now());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String formatDate(LocalDate begin) {
|
||||||
|
return begin.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="createTime" column="create_time"/>
|
<result property="createTime" column="create_time"/>
|
||||||
<result property="updateTime" column="update_time"/>
|
<result property="updateTime" column="update_time"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
<select id="statisticsByMonth" resultType="com.ruoyi.cai.domain.DayIncomeStatistics">
|
||||||
|
select
|
||||||
|
DATE_FORMAT(t.date,'%Y-%m') as date_str,
|
||||||
|
SUM(t.exp_in_money) as exp_in_money,SUM(t.order_count) as order_count,
|
||||||
|
SUM(t.out_money) as out_money,SUM(t.cash_count) as cash_count,
|
||||||
|
SUM(t.modify_coin_add) as modify_coin_add,SUM(t.modify_coin_sub) as modify_coin_sub,
|
||||||
|
SUM(t.modify_income_add) as modify_income_add,SUM(t.modify_income_sub) as modify_income_sub
|
||||||
|
from cai_day_income_statistics t
|
||||||
|
where t.date between #{begin} and #{end}
|
||||||
|
group by DATE_FORMAT(t.date,'%Y-%m')
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user