diff --git a/ruoyi-mall/src/main/java/com/cyl/job/StatisticsJob.java b/ruoyi-mall/src/main/java/com/cyl/job/StatisticsJob.java index 0c0da32..06f6cde 100644 --- a/ruoyi-mall/src/main/java/com/cyl/job/StatisticsJob.java +++ b/ruoyi-mall/src/main/java/com/cyl/job/StatisticsJob.java @@ -26,7 +26,7 @@ public class StatisticsJob { @Async @Scheduled(cron = "00 00 3 * * ?") - public void cancelOrder(){ + public void cancelOrder() { log.info("【统计昨日系统数据任务开始】"); LocalDateTime startTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN).plusDays(-1); LocalDateTime endTime = LocalDateTime.of(LocalDate.now(), LocalTime.MAX).plusDays(-1); diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/aws/controller/SystemStatisticsController.java b/ruoyi-mall/src/main/java/com/cyl/manager/aws/controller/SystemStatisticsController.java index aeab89f..72f0bb5 100644 --- a/ruoyi-mall/src/main/java/com/cyl/manager/aws/controller/SystemStatisticsController.java +++ b/ruoyi-mall/src/main/java/com/cyl/manager/aws/controller/SystemStatisticsController.java @@ -46,8 +46,7 @@ public class SystemStatisticsController extends BaseController { @PreAuthorize("@ss.hasPermi('aws:systemStatistics:list')") @PostMapping("/list") public ResponseEntity> list(@RequestBody SystemStatisticsQuery query, Pageable page) { - List list = service.selectList(query, page); - return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + return ResponseEntity.ok(service.selectList(query, page)); } @ApiOperation("导出系统数据统计列表") @@ -55,9 +54,10 @@ public class SystemStatisticsController extends BaseController { @Log(title = "系统数据统计", businessType = BusinessType.EXPORT) @GetMapping("/export") public ResponseEntity export(SystemStatisticsQuery query) { - List list = service.selectList(query, null); - ExcelUtil util = new ExcelUtil<>(SystemStatisticsVO.class); - return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "系统数据统计数据")); +// List list = service.selectList(query, null); +// ExcelUtil util = new ExcelUtil<>(SystemStatisticsVO.class); +// return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "系统数据统计数据")); + return null; } @ApiOperation("获取系统数据统计详细信息") diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/aws/pojo/query/SystemStatisticsQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/aws/pojo/query/SystemStatisticsQuery.java index 13d9548..357d8ac 100644 --- a/ruoyi-mall/src/main/java/com/cyl/manager/aws/pojo/query/SystemStatisticsQuery.java +++ b/ruoyi-mall/src/main/java/com/cyl/manager/aws/pojo/query/SystemStatisticsQuery.java @@ -2,6 +2,8 @@ package com.cyl.manager.aws.pojo.query; import java.math.BigDecimal; import java.time.LocalDateTime; + +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -14,8 +16,13 @@ import io.swagger.annotations.ApiModelProperty; @ApiModel(description="系统数据统计 查询 对象") @Data public class SystemStatisticsQuery { - @ApiModelProperty("统计日期 精确匹配") - private LocalDateTime date; + @ApiModelProperty("统计开始日期") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime beginTime; + + @ApiModelProperty("统计结束日期") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; @ApiModelProperty("登录用户数 精确匹配") private Integer loginMemberCount; diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/aws/service/SystemStatisticsService.java b/ruoyi-mall/src/main/java/com/cyl/manager/aws/service/SystemStatisticsService.java index 5442c62..92f6155 100644 --- a/ruoyi-mall/src/main/java/com/cyl/manager/aws/service/SystemStatisticsService.java +++ b/ruoyi-mall/src/main/java/com/cyl/manager/aws/service/SystemStatisticsService.java @@ -1,8 +1,11 @@ package com.cyl.manager.aws.service; import java.math.BigDecimal; +import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.LocalTime; import java.util.Arrays; +import java.util.LinkedHashMap; import java.util.List; import java.time.LocalDateTime; import java.util.Map; @@ -19,8 +22,10 @@ import com.cyl.manager.ums.domain.MemberCart; import com.cyl.manager.ums.mapper.MemberCartMapper; import com.cyl.manager.ums.mapper.MemberLogininforMapper; import com.cyl.manager.ums.mapper.MemberMapper; +import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -70,56 +75,24 @@ public class SystemStatisticsService { * @param page 分页条件 * @return 系统数据统计 */ - public List selectList(SystemStatisticsQuery query, Pageable page) { + public PageImpl selectList(SystemStatisticsQuery query, Pageable page) { if (page != null) { PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); } - QueryWrapper qw = new QueryWrapper<>(); - LocalDateTime date = query.getDate(); - if (date != null) { - qw.eq("date", date); + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + if (query.getBeginTime() != null && query.getEndTime() != null){ + qw.ge(SystemStatistics::getDate, query.getBeginTime()); + qw.lt(SystemStatistics::getDate, query.getEndTime()); } - Integer loginMemberCount = query.getLoginMemberCount(); - if (loginMemberCount != null) { - qw.eq("login_member_count", loginMemberCount); + qw.orderByDesc(SystemStatistics::getDate); + List statList = systemStatisticsMapper.selectList(qw); + long total = ((Page)statList).getTotal(); + if ((query.getBeginTime() == null && query.getEndTime() == null) || (query.getEndTime() != null && query.getEndTime().isAfter(LocalDateTime.now()))){ + SystemStatistics stat = this.stat(LocalDateTime.of(LocalDate.now(), LocalTime.MIN), LocalDateTime.of(LocalDate.now(), LocalTime.MAX)); + statList.add(0, stat); + return new PageImpl<>(statList, page, total); } - Integer registerMemberCount = query.getRegisterMemberCount(); - if (registerMemberCount != null) { - qw.eq("register_member_count", registerMemberCount); - } - Integer addCartMemberCount = query.getAddCartMemberCount(); - if (addCartMemberCount != null) { - qw.eq("add_cart_member_count", addCartMemberCount); - } - Integer createOrderMemberCount = query.getCreateOrderMemberCount(); - if (createOrderMemberCount != null) { - qw.eq("create_order_member_count", createOrderMemberCount); - } - Integer dealMemberCount = query.getDealMemberCount(); - if (dealMemberCount != null) { - qw.eq("deal_member_count", dealMemberCount); - } - Integer orderCount = query.getOrderCount(); - if (orderCount != null) { - qw.eq("order_count", orderCount); - } - Integer dealCount = query.getDealCount(); - if (dealCount != null) { - qw.eq("deal_count", dealCount); - } - BigDecimal dealAmount = query.getDealAmount(); - if (dealAmount != null) { - qw.eq("deal_amount", dealAmount); - } - Integer aftersaleCount = query.getAftersaleCount(); - if (aftersaleCount != null) { - qw.eq("aftersale_count", aftersaleCount); - } - BigDecimal aftersaleAmount = query.getAftersaleAmount(); - if (aftersaleAmount != null) { - qw.eq("aftersale_amount", aftersaleAmount); - } - return systemStatisticsMapper.selectList(qw); + return new PageImpl<>(statList, page, total); } /** @@ -160,12 +133,13 @@ public class SystemStatisticsService { //统计售后 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.between(Aftersale::getCreateTime, startTime, endTime); + wrapper.orderByDesc(Aftersale::getCreateTime); List aftersaleList = aftersaleMapper.selectList(wrapper); if (CollectionUtil.isEmpty(aftersaleList)) { systemStatistics.setAftersaleCount(0); systemStatistics.setAftersaleAmount(BigDecimal.ZERO); } else { - Map map = aftersaleList.stream().collect(Collectors.toMap(Aftersale::getOrderId, Aftersale::getReturnAmount)); + Map map = aftersaleList.stream().collect(Collectors.toMap(Aftersale::getOrderId, Aftersale::getReturnAmount, (v1, v2) -> v1, LinkedHashMap::new)); systemStatistics.setAftersaleCount(map.values().size()); systemStatistics.setAftersaleAmount(map.values().stream().reduce(BigDecimal::add).get()); }