数据统计列表查询

pull/1/head
czc 2 years ago
parent 9648cfd8ee
commit 91fe6b9c3f

@ -46,8 +46,7 @@ public class SystemStatisticsController extends BaseController {
@PreAuthorize("@ss.hasPermi('aws:systemStatistics:list')") @PreAuthorize("@ss.hasPermi('aws:systemStatistics:list')")
@PostMapping("/list") @PostMapping("/list")
public ResponseEntity<Page<SystemStatistics>> list(@RequestBody SystemStatisticsQuery query, Pageable page) { public ResponseEntity<Page<SystemStatistics>> list(@RequestBody SystemStatisticsQuery query, Pageable page) {
List<SystemStatistics> list = service.selectList(query, page); return ResponseEntity.ok(service.selectList(query, page));
return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal()));
} }
@ApiOperation("导出系统数据统计列表") @ApiOperation("导出系统数据统计列表")
@ -55,9 +54,10 @@ public class SystemStatisticsController extends BaseController {
@Log(title = "系统数据统计", businessType = BusinessType.EXPORT) @Log(title = "系统数据统计", businessType = BusinessType.EXPORT)
@GetMapping("/export") @GetMapping("/export")
public ResponseEntity<String> export(SystemStatisticsQuery query) { public ResponseEntity<String> export(SystemStatisticsQuery query) {
List<SystemStatistics> list = service.selectList(query, null); // List<SystemStatistics> list = service.selectList(query, null);
ExcelUtil<SystemStatisticsVO> util = new ExcelUtil<>(SystemStatisticsVO.class); // ExcelUtil<SystemStatisticsVO> util = new ExcelUtil<>(SystemStatisticsVO.class);
return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "系统数据统计数据")); // return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "系统数据统计数据"));
return null;
} }
@ApiOperation("获取系统数据统计详细信息") @ApiOperation("获取系统数据统计详细信息")

@ -2,6 +2,8 @@ package com.cyl.manager.aws.pojo.query;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@ -14,8 +16,13 @@ import io.swagger.annotations.ApiModelProperty;
@ApiModel(description="系统数据统计 查询 对象") @ApiModel(description="系统数据统计 查询 对象")
@Data @Data
public class SystemStatisticsQuery { public class SystemStatisticsQuery {
@ApiModelProperty("统计日期 精确匹配") @ApiModelProperty("统计开始日期")
private LocalDateTime date; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime beginTime;
@ApiModelProperty("统计结束日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime;
@ApiModelProperty("登录用户数 精确匹配") @ApiModelProperty("登录用户数 精确匹配")
private Integer loginMemberCount; private Integer loginMemberCount;

@ -1,8 +1,11 @@
package com.cyl.manager.aws.service; package com.cyl.manager.aws.service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Arrays; import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Map; 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.MemberCartMapper;
import com.cyl.manager.ums.mapper.MemberLogininforMapper; import com.cyl.manager.ums.mapper.MemberLogininforMapper;
import com.cyl.manager.ums.mapper.MemberMapper; import com.cyl.manager.ums.mapper.MemberMapper;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -70,56 +75,24 @@ public class SystemStatisticsService {
* @param page * @param page
* @return * @return
*/ */
public List<SystemStatistics> selectList(SystemStatisticsQuery query, Pageable page) { public PageImpl<SystemStatistics> selectList(SystemStatisticsQuery query, Pageable page) {
if (page != null) { if (page != null) {
PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize());
} }
QueryWrapper<SystemStatistics> qw = new QueryWrapper<>(); LambdaQueryWrapper<SystemStatistics> qw = new LambdaQueryWrapper<>();
LocalDateTime date = query.getDate(); if (query.getBeginTime() != null && query.getEndTime() != null){
if (date != null) { qw.ge(SystemStatistics::getDate, query.getBeginTime());
qw.eq("date", date); qw.lt(SystemStatistics::getDate, query.getEndTime());
} }
Integer loginMemberCount = query.getLoginMemberCount(); qw.orderByDesc(SystemStatistics::getDate);
if (loginMemberCount != null) { List<SystemStatistics> statList = systemStatisticsMapper.selectList(qw);
qw.eq("login_member_count", loginMemberCount); 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(); return new PageImpl<>(statList, page, total);
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);
} }
/** /**
@ -160,12 +133,13 @@ public class SystemStatisticsService {
//统计售后 //统计售后
LambdaQueryWrapper<Aftersale> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<Aftersale> wrapper = new LambdaQueryWrapper<>();
wrapper.between(Aftersale::getCreateTime, startTime, endTime); wrapper.between(Aftersale::getCreateTime, startTime, endTime);
wrapper.orderByDesc(Aftersale::getCreateTime);
List<Aftersale> aftersaleList = aftersaleMapper.selectList(wrapper); List<Aftersale> aftersaleList = aftersaleMapper.selectList(wrapper);
if (CollectionUtil.isEmpty(aftersaleList)) { if (CollectionUtil.isEmpty(aftersaleList)) {
systemStatistics.setAftersaleCount(0); systemStatistics.setAftersaleCount(0);
systemStatistics.setAftersaleAmount(BigDecimal.ZERO); systemStatistics.setAftersaleAmount(BigDecimal.ZERO);
} else { } else {
Map<Long, BigDecimal> map = aftersaleList.stream().collect(Collectors.toMap(Aftersale::getOrderId, Aftersale::getReturnAmount)); Map<Long, BigDecimal> map = aftersaleList.stream().collect(Collectors.toMap(Aftersale::getOrderId, Aftersale::getReturnAmount, (v1, v2) -> v1, LinkedHashMap::new));
systemStatistics.setAftersaleCount(map.values().size()); systemStatistics.setAftersaleCount(map.values().size());
systemStatistics.setAftersaleAmount(map.values().stream().reduce(BigDecimal::add).get()); systemStatistics.setAftersaleAmount(map.values().stream().reduce(BigDecimal::add).get());
} }

Loading…
Cancel
Save