diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java index ca5080e0..a42b0b15 100644 --- a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java +++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java @@ -140,6 +140,7 @@ public interface ErrorCodeConstants { ErrorCode STORE_GOODS_INVENTORY_RECORD_NOT_EXISTS = new ErrorCode(1_004_020_001, "商品出入库记录不存在"); ErrorCode STORE_REFUND_NOT_EXISTS = new ErrorCode(1_004_021_001, "超市订单退款审核不存在"); + ErrorCode STORE_REFUND_NOT_STATISTICS_EXISTS = new ErrorCode(1_004_022_001, "太空舱营业不存在"); } 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 81019170..e7ee6bb7 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 @@ -21,7 +21,7 @@ import java.util.*; 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.module.member.enums.ErrorCodeConstants.STATISTICS_SPACE_CAPSULE_ORDER_NOT_EXISTS; +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.STORE_REFUND_NOT_STATISTICS_EXISTS; /** * 太空舱订单营业额统计 Service 实现类 @@ -67,7 +67,7 @@ public class StatisticsSpaceCapsuleOrderServiceImpl implements StatisticsSpaceCa private void validateStatisticsSpaceCapsuleOrderExists(Long id) { if (statisticsSpaceCapsuleOrderMapper.selectById(id) == null) { - throw exception(STATISTICS_SPACE_CAPSULE_ORDER_NOT_EXISTS); + throw exception(STORE_REFUND_NOT_STATISTICS_EXISTS); } } @@ -98,7 +98,7 @@ public class StatisticsSpaceCapsuleOrderServiceImpl implements StatisticsSpaceCa if("0".equals(type)){ return compDay(carteenId,time); }else if("2".equals(type)){ - return compMonth(carteenId); + return compMonth(carteenId,time); } return null; } @@ -145,8 +145,8 @@ public class StatisticsSpaceCapsuleOrderServiceImpl implements StatisticsSpaceCa * @param carteenId * @return */ - public OrderSpaceCapsuleStatisticsVo compMonth(Long carteenId){ - DateTime end = DateUtil.date(); + public OrderSpaceCapsuleStatisticsVo compMonth(Long carteenId,Date end1){ + DateTime end = DateUtil.endOfMonth(end1); DateTime start = DateUtil.beginOfMonth(end); OrderSpaceCapsuleStatisticsVo orvo = orderSpaceCapsuleMapper.compDay(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getCode(), start, end, carteenId); if(orvo==null){ @@ -181,14 +181,38 @@ public class StatisticsSpaceCapsuleOrderServiceImpl implements StatisticsSpaceCa private void comp(Long carteenId, OrderSpaceCapsuleStatisticsVo orvo, DateTime start2, DateTime end2) { OrderSpaceCapsuleStatisticsVo vo1 = orderSpaceCapsuleMapper.compDay(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getCode(), start2, end2, carteenId); - if(vo1!=null){ - orvo.setCompMoney(vo1.getTotalMoney()); - orvo.setCompOrder(vo1.getTotalOrder()); - orvo.setCompCustomer(vo1.getTotalCustomer()); - orvo.setCompMinute(vo1.getTotalMinute()); - orvo.setCompAvgOrderMoney(vo1.getAvgOrderMoney()); - orvo.setCompPackageSum(vo1.getTotalPackageSum()); - orvo.setCompRefundMoneyy(vo1.getRefundMoney()); + + if (vo1 != null) { + orvo.setCompMoney(Optional.ofNullable(orvo.getTotalMoney()).orElse(BigDecimal.ZERO) + .subtract(Optional.ofNullable(vo1.getTotalMoney()).orElse(BigDecimal.ZERO))); + + orvo.setCompOrder(Optional.ofNullable(orvo.getTotalOrder()).orElse(0) + - Optional.ofNullable(vo1.getTotalOrder()).orElse(0)); + + orvo.setCompCustomer(Optional.ofNullable(orvo.getTotalCustomer()).orElse(0) + - Optional.ofNullable(vo1.getTotalCustomer()).orElse(0)); + + orvo.setCompMinute(Optional.ofNullable(orvo.getTotalMinute()).orElse(BigDecimal.ZERO) + .subtract(Optional.ofNullable(vo1.getTotalMinute()).orElse(BigDecimal.ZERO))); + + orvo.setCompAvgOrderMoney(Optional.ofNullable(orvo.getAvgOrderMoney()).orElse(BigDecimal.ZERO) + .subtract(Optional.ofNullable(vo1.getAvgOrderMoney()).orElse(BigDecimal.ZERO))); + + orvo.setCompPackageSum(Optional.ofNullable(orvo.getTotalPackageSum()).orElse(0) + - Optional.ofNullable(vo1.getTotalPackageSum()).orElse(0)); + + orvo.setCompRefundMoneyy(Optional.ofNullable(orvo.getRefundMoney()).orElse(BigDecimal.ZERO) + .subtract(Optional.ofNullable(vo1.getRefundMoney()).orElse(BigDecimal.ZERO))); + } else { + // 设置默认值为 Total 值,避免 null 值带来的 NPE + orvo.setCompMoney(Optional.ofNullable(orvo.getTotalMoney()).orElse(BigDecimal.ZERO)); + orvo.setCompOrder(Optional.ofNullable(orvo.getTotalOrder()).orElse(0)); + orvo.setCompCustomer(Optional.ofNullable(orvo.getTotalCustomer()).orElse(0)); + orvo.setCompMinute(Optional.ofNullable(orvo.getTotalMinute()).orElse(BigDecimal.ZERO)); + orvo.setCompAvgOrderMoney(Optional.ofNullable(orvo.getAvgOrderMoney()).orElse(BigDecimal.ZERO)); + orvo.setCompPackageSum(Optional.ofNullable(orvo.getTotalPackageSum()).orElse(0)); + orvo.setCompRefundMoneyy(Optional.ofNullable(orvo.getRefundMoney()).orElse(BigDecimal.ZERO)); } } + } \ No newline at end of file