优化代码
This commit is contained in:
@ -1,14 +1,11 @@
|
|||||||
package cn.iocoder.yudao.module.member.service.statisticsspacecapsuleorder;
|
package cn.iocoder.yudao.module.member.service.statisticsspacecapsuleorder;
|
||||||
|
|
||||||
import cn.hutool.core.date.*;
|
import cn.hutool.core.date.*;
|
||||||
import cn.hutool.core.util.ObjUtil;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.OrderSpaceCapsuleStatisticsComVo;
|
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.OrderSpaceCapsuleStatisticsComVo;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.OrderSpaceCapsuleStatisticsVo;
|
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.OrderSpaceCapsuleStatisticsVo;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderPageReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderPageReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderSaveReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.orderspacecapsule.OrderSpaceCapsuleDO;
|
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderDO;
|
||||||
import cn.iocoder.yudao.module.member.dal.mysql.orderspacecapsule.OrderSpaceCapsuleMapper;
|
import cn.iocoder.yudao.module.member.dal.mysql.orderspacecapsule.OrderSpaceCapsuleMapper;
|
||||||
import cn.iocoder.yudao.module.member.dal.mysql.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderMapper;
|
import cn.iocoder.yudao.module.member.dal.mysql.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderMapper;
|
||||||
@ -16,15 +13,11 @@ import cn.iocoder.yudao.module.member.enums.SpaceCapsuleOrderEnum;
|
|||||||
import cn.iocoder.yudao.module.member.service.orderspacecapsule.OrderSpaceCapsuleServiceImpl;
|
import cn.iocoder.yudao.module.member.service.orderspacecapsule.OrderSpaceCapsuleServiceImpl;
|
||||||
import cn.iocoder.yudao.module.system.api.carteen.CarteenApi;
|
import cn.iocoder.yudao.module.system.api.carteen.CarteenApi;
|
||||||
import cn.iocoder.yudao.module.system.api.carteen.dto.CarteenRespDto;
|
import cn.iocoder.yudao.module.system.api.carteen.dto.CarteenRespDto;
|
||||||
import org.checkerframework.checker.units.qual.C;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.temporal.ChronoUnit;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
@ -88,55 +81,23 @@ public class StatisticsSpaceCapsuleOrderServiceImpl implements StatisticsSpaceCa
|
|||||||
return statisticsSpaceCapsuleOrderMapper.selectPage(pageReqVO);
|
return statisticsSpaceCapsuleOrderMapper.selectPage(pageReqVO);
|
||||||
}
|
}
|
||||||
public List<StatisticsSpaceCapsuleOrderDO> statistics(Date startTime,Date endTime){
|
public List<StatisticsSpaceCapsuleOrderDO> statistics(Date startTime,Date endTime){
|
||||||
List<OrderSpaceCapsuleDO> orderSpaceCapsuleDOS = orderSpaceCapsuleMapper.selectList(new LambdaQueryWrapperX<OrderSpaceCapsuleDO>()
|
List<CarteenRespDto> carteenList = carteenApi.getCarteenList();
|
||||||
.eq(OrderSpaceCapsuleDO::getStatus, SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getCode())
|
|
||||||
.between(OrderSpaceCapsuleDO::getCreateTime, startTime, endTime)
|
|
||||||
);
|
|
||||||
List<StatisticsSpaceCapsuleOrderDO> list=new ArrayList<>();
|
List<StatisticsSpaceCapsuleOrderDO> list=new ArrayList<>();
|
||||||
if(ObjUtil.isNotEmpty(orderSpaceCapsuleDOS)){
|
for (CarteenRespDto dto : carteenList) {
|
||||||
Map<Long, List<OrderSpaceCapsuleDO>> collect = orderSpaceCapsuleDOS.stream().collect(Collectors.groupingBy(OrderSpaceCapsuleDO::getCarteenId));
|
Long id = dto.getId();
|
||||||
for (Map.Entry<Long, List<OrderSpaceCapsuleDO>> entry : collect.entrySet()) {
|
OrderSpaceCapsuleStatisticsVo vo = orderSpaceCapsuleMapper.compDay(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getCode(), startTime, endTime, id);
|
||||||
Long carteenId = entry.getKey();
|
vo.setRemark(DateUtil.format(startTime,DatePattern.NORM_DATE_PATTERN));
|
||||||
List<OrderSpaceCapsuleDO> value = entry.getValue();
|
StatisticsSpaceCapsuleOrderDO bean = BeanUtils.toBean(vo, StatisticsSpaceCapsuleOrderDO.class);
|
||||||
StatisticsSpaceCapsuleOrderDO orderDO=new StatisticsSpaceCapsuleOrderDO();
|
list.add(bean);
|
||||||
BigDecimal totalMoney = value.stream()
|
|
||||||
.map(OrderSpaceCapsuleDO::getMoney)
|
|
||||||
.filter(Objects::nonNull)
|
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
||||||
orderDO.setTotalMoney(totalMoney);
|
|
||||||
orderDO.setTotalOrder(value.size());
|
|
||||||
BigDecimal minute = value.stream()
|
|
||||||
.map(f -> new BigDecimal(f.getComboMinutes() * f.getComboNum()))
|
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
||||||
orderDO.setTotalMinute(minute);
|
|
||||||
orderDO.setCarteenId(carteenId);
|
|
||||||
BigDecimal refundMoney = value.stream()
|
|
||||||
.map(OrderSpaceCapsuleDO::getRefundMoney)
|
|
||||||
.filter(Objects::nonNull)
|
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
||||||
orderDO.setRefundMoney(refundMoney);
|
|
||||||
int i = value.stream()
|
|
||||||
.map(f -> new BigDecimal(f.getComboNum()))
|
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add).intValue();
|
|
||||||
orderDO.setTotalPackageSum(i);
|
|
||||||
CarteenRespDto carteenById = carteenApi.getCarteenById(orderDO.getCarteenId());
|
|
||||||
orderDO.setCarteenName(carteenById.getStoresName());
|
|
||||||
int size = (int) value.stream().map(OrderSpaceCapsuleDO::getUserId)
|
|
||||||
.filter(Objects::nonNull)
|
|
||||||
.distinct().count();
|
|
||||||
orderDO.setCreateTime(LocalDateTimeUtil.offset(LocalDateTime.now(),-1, ChronoUnit.DAYS));
|
|
||||||
orderDO.setTotalCustomer(size);
|
|
||||||
list.add(orderDO);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public OrderSpaceCapsuleStatisticsVo compDayMon(Long carteenId, String type, Date time) {
|
public OrderSpaceCapsuleStatisticsVo compDayMon(Long carteenId, String type, Date time) {
|
||||||
if("day".equals(type)){
|
if("0".equals(type)){
|
||||||
return compDay(carteenId,time);
|
return compDay(carteenId,time);
|
||||||
}else if("month".equals(type)){
|
}else if("2".equals(type)){
|
||||||
return compMonth(carteenId);
|
return compMonth(carteenId);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@ -149,16 +110,15 @@ public class StatisticsSpaceCapsuleOrderServiceImpl implements StatisticsSpaceCa
|
|||||||
*/
|
*/
|
||||||
public OrderSpaceCapsuleStatisticsVo compDay(Long carteenId,Date end){
|
public OrderSpaceCapsuleStatisticsVo compDay(Long carteenId,Date end){
|
||||||
DateTime start = DateUtil.beginOfDay(end);
|
DateTime start = DateUtil.beginOfDay(end);
|
||||||
//获取今天的信息
|
|
||||||
OrderSpaceCapsuleStatisticsVo orvo = orderSpaceCapsuleMapper.compDay(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getCode(), start, end, carteenId);
|
OrderSpaceCapsuleStatisticsVo orvo = orderSpaceCapsuleMapper.compDay(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getCode(), start, end, carteenId);
|
||||||
//获取昨日的信息
|
|
||||||
DateTime dateTime = DateUtil.offsetDay(start, -1);
|
DateTime dateTime = DateUtil.offsetDay(start, -1);
|
||||||
DateTime start2 = DateUtil.beginOfDay(dateTime);
|
DateTime start2 = DateUtil.beginOfDay(dateTime);
|
||||||
DateTime end2 = DateUtil.endOfDay(dateTime);
|
DateTime end2 = DateUtil.endOfDay(dateTime);
|
||||||
BigDecimal compMoney = orderSpaceCapsuleService.getTotalMoney(carteenId, start2, end2);
|
BigDecimal compMoney = orderSpaceCapsuleService.getTotalMoney(carteenId, start2, end2);
|
||||||
orvo.setCompMoney(compMoney);
|
orvo.setCompMoney(compMoney);
|
||||||
DateTime dateTime1 = DateUtil.beginOfMonth(end2);
|
DateTime dateTime1 = DateUtil.beginOfMonth(end2);
|
||||||
DateRange range = DateUtil.range(dateTime1, end2, DateField.DAY_OF_MONTH);
|
DateTime dateTime2 = DateUtil.endOfMonth(dateTime1);
|
||||||
|
DateRange range = DateUtil.range(dateTime1, dateTime2, DateField.DAY_OF_MONTH);
|
||||||
List<OrderSpaceCapsuleStatisticsComVo> list=new ArrayList<>();
|
List<OrderSpaceCapsuleStatisticsComVo> list=new ArrayList<>();
|
||||||
for (DateTime time : range) {
|
for (DateTime time : range) {
|
||||||
DateTime var1 = DateUtil.beginOfDay(time);
|
DateTime var1 = DateUtil.beginOfDay(time);
|
||||||
@ -166,20 +126,17 @@ public class StatisticsSpaceCapsuleOrderServiceImpl implements StatisticsSpaceCa
|
|||||||
OrderSpaceCapsuleStatisticsComVo vo = orderSpaceCapsuleMapper.compMoney(var1, var2);
|
OrderSpaceCapsuleStatisticsComVo vo = orderSpaceCapsuleMapper.compMoney(var1, var2);
|
||||||
if(vo==null){
|
if(vo==null){
|
||||||
OrderSpaceCapsuleStatisticsComVo vo1=new OrderSpaceCapsuleStatisticsComVo();
|
OrderSpaceCapsuleStatisticsComVo vo1=new OrderSpaceCapsuleStatisticsComVo();
|
||||||
|
|
||||||
vo1.setTotalMoney(new BigDecimal(0));
|
vo1.setTotalMoney(new BigDecimal(0));
|
||||||
vo=vo1;
|
vo=vo1;
|
||||||
}
|
}
|
||||||
|
if(DateUtil.isSameDay(end, var2)){
|
||||||
|
vo.setDate(orvo.getTotalMoney()+"");
|
||||||
|
}
|
||||||
vo.setDate(DateUtil.format(var2,"d"));
|
vo.setDate(DateUtil.format(var2,"d"));
|
||||||
list.add(vo) ;
|
list.add(vo) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
orvo.setLists(list);
|
orvo.setLists(list);
|
||||||
List<OrderSpaceCapsuleStatisticsComVo> lists = orvo.getLists();
|
|
||||||
OrderSpaceCapsuleStatisticsComVo vo=new OrderSpaceCapsuleStatisticsComVo();
|
|
||||||
vo.setTotalMoney(orvo.getTotalMoney());
|
|
||||||
vo.setDate(DateUtil.format(DateUtil.date(),"d"));
|
|
||||||
lists.add(vo);
|
|
||||||
orvo.setLists(lists);
|
|
||||||
return orvo;
|
return orvo;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -190,15 +147,12 @@ public class StatisticsSpaceCapsuleOrderServiceImpl implements StatisticsSpaceCa
|
|||||||
public OrderSpaceCapsuleStatisticsVo compMonth(Long carteenId){
|
public OrderSpaceCapsuleStatisticsVo compMonth(Long carteenId){
|
||||||
DateTime end = DateUtil.date();
|
DateTime end = DateUtil.date();
|
||||||
DateTime start = DateUtil.beginOfMonth(end);
|
DateTime start = DateUtil.beginOfMonth(end);
|
||||||
//这个月
|
|
||||||
OrderSpaceCapsuleStatisticsVo orvo = orderSpaceCapsuleMapper.compDay(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getCode(), start, end, carteenId);
|
OrderSpaceCapsuleStatisticsVo orvo = orderSpaceCapsuleMapper.compDay(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getCode(), start, end, carteenId);
|
||||||
//获取上个月的信息
|
|
||||||
DateTime dateTime = DateUtil.offsetMonth(start, -1);
|
DateTime dateTime = DateUtil.offsetMonth(start, -1);
|
||||||
DateTime start2 = DateUtil.beginOfMonth(dateTime);
|
DateTime start2 = DateUtil.beginOfMonth(dateTime);
|
||||||
DateTime end2 = DateUtil.endOfMonth(dateTime);
|
DateTime end2 = DateUtil.endOfMonth(dateTime);
|
||||||
BigDecimal compMoney = orderSpaceCapsuleService.getTotalMoney(carteenId, start2, end2);
|
BigDecimal compMoney = orderSpaceCapsuleService.getTotalMoney(carteenId, start2, end2);
|
||||||
orvo.setCompMoney(compMoney);
|
orvo.setCompMoney(compMoney);
|
||||||
//一年开始和结束
|
|
||||||
DateTime var1 = DateUtil.beginOfYear(start2);
|
DateTime var1 = DateUtil.beginOfYear(start2);
|
||||||
DateTime var2 = DateUtil.endOfYear(start2);
|
DateTime var2 = DateUtil.endOfYear(start2);
|
||||||
DateRange range = DateUtil.range(var1, var2, DateField.MONTH);
|
DateRange range = DateUtil.range(var1, var2, DateField.MONTH);
|
||||||
|
@ -19,7 +19,8 @@
|
|||||||
SUM(refund_money) AS refundMoney,
|
SUM(refund_money) AS refundMoney,
|
||||||
SUM(combo_num) AS totalPackageSum,
|
SUM(combo_num) AS totalPackageSum,
|
||||||
carteen_id AS carteenId,
|
carteen_id AS carteenId,
|
||||||
carteen_name AS carteenName
|
carteen_name AS carteenName,
|
||||||
|
COUNT(DISTINCT user_id) AS totalCustomer
|
||||||
FROM
|
FROM
|
||||||
t_order_space_capsule
|
t_order_space_capsule
|
||||||
WHERE
|
WHERE
|
||||||
|
Reference in New Issue
Block a user