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