From 0d5a00bc9dc632346e0111ca82650a4d0c688363 Mon Sep 17 00:00:00 2001 From: qjq <1766193529@qq.com> Date: Wed, 6 Nov 2024 15:37:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tatisticsSpaceCapsuleOrderServiceImpl.java | 76 ++++--------------- .../OrderSpaceCapsuleMapper.xml | 3 +- 2 files changed, 17 insertions(+), 62 deletions(-) diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/statisticsspacecapsuleorder/StatisticsSpaceCapsuleOrderServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/statisticsspacecapsuleorder/StatisticsSpaceCapsuleOrderServiceImpl.java index e0b075ee..0d7040ff 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/statisticsspacecapsuleorder/StatisticsSpaceCapsuleOrderServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/statisticsspacecapsuleorder/StatisticsSpaceCapsuleOrderServiceImpl.java @@ -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 statistics(Date startTime,Date endTime){ - List orderSpaceCapsuleDOS = orderSpaceCapsuleMapper.selectList(new LambdaQueryWrapperX() - .eq(OrderSpaceCapsuleDO::getStatus, SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getCode()) - .between(OrderSpaceCapsuleDO::getCreateTime, startTime, endTime) - ); + List carteenList = carteenApi.getCarteenList(); List list=new ArrayList<>(); - if(ObjUtil.isNotEmpty(orderSpaceCapsuleDOS)){ - Map> collect = orderSpaceCapsuleDOS.stream().collect(Collectors.groupingBy(OrderSpaceCapsuleDO::getCarteenId)); - for (Map.Entry> entry : collect.entrySet()) { - Long carteenId = entry.getKey(); - List 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 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 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); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/orderspacecapsule/OrderSpaceCapsuleMapper.xml b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/orderspacecapsule/OrderSpaceCapsuleMapper.xml index 016fa6e4..73edf66f 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/orderspacecapsule/OrderSpaceCapsuleMapper.xml +++ b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/orderspacecapsule/OrderSpaceCapsuleMapper.xml @@ -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