Commit 9b2ec3d341689c83c4c4ec9585713e293a1ff4c1

Authored by YunaiV
1 parent d6e49193

【功能修复】处理统计可能导致的空指针问题

yudao-module-mall/yudao-module-statistics-biz/src/main/java/cn/iocoder/yudao/module/statistics/service/member/MemberStatisticsServiceImpl.java
1 1 package cn.iocoder.yudao.module.statistics.service.member;
2 2  
3 3 import cn.hutool.core.date.LocalDateTimeUtil;
  4 +import cn.hutool.core.util.ObjectUtil;
4 5 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
5 6 import cn.iocoder.yudao.framework.ip.core.Area;
6 7 import cn.iocoder.yudao.framework.ip.core.enums.AreaTypeEnum;
... ... @@ -15,10 +16,10 @@ import cn.iocoder.yudao.module.statistics.service.pay.PayWalletStatisticsService
15 16 import cn.iocoder.yudao.module.statistics.service.pay.bo.RechargeSummaryRespBO;
16 17 import cn.iocoder.yudao.module.statistics.service.trade.TradeOrderStatisticsService;
17 18 import cn.iocoder.yudao.module.statistics.service.trade.TradeStatisticsService;
  19 +import jakarta.annotation.Resource;
18 20 import org.springframework.stereotype.Service;
19 21 import org.springframework.validation.annotation.Validated;
20 22  
21   -import jakarta.annotation.Resource;
22 23 import java.time.Duration;
23 24 import java.time.LocalDateTime;
24 25 import java.util.List;
... ... @@ -69,18 +70,12 @@ public class MemberStatisticsServiceImpl implements MemberStatisticsService {
69 70 bo -> AreaUtils.getParentIdByType(bo.getAreaId(), AreaTypeEnum.PROVINCE),
70 71 bo -> bo,
71 72 (a, b) -> new MemberAreaStatisticsRespBO()
72   - .setOrderCreateUserCount(
73   - (a.getOrderCreateUserCount() != null ? a.getOrderCreateUserCount() : 0) +
74   - (b.getOrderCreateUserCount() != null ? b.getOrderCreateUserCount() : 0)
75   - )
76   - .setOrderPayUserCount(
77   - (a.getOrderPayUserCount() != null ? a.getOrderPayUserCount() : 0) +
78   - (b.getOrderPayUserCount() != null ? b.getOrderPayUserCount() : 0)
79   - )
80   - .setOrderPayPrice(
81   - (a.getOrderPayPrice() != null ? a.getOrderPayPrice() : 0.0) +
82   - (b.getOrderPayPrice() != null ? b.getOrderPayPrice() : 0.0)
83   - )
  73 + .setOrderCreateUserCount(ObjectUtil.defaultIfNull(a.getOrderCreateUserCount(), 0)
  74 + + ObjectUtil.defaultIfNull(b.getOrderCreateUserCount(), 0))
  75 + .setOrderPayUserCount(ObjectUtil.defaultIfNull(a.getOrderPayUserCount(), 0)
  76 + + ObjectUtil.defaultIfNull(b.getOrderPayUserCount(), 0))
  77 + .setOrderPayPrice(ObjectUtil.defaultIfNull(a.getOrderPayPrice(), 0)
  78 + + ObjectUtil.defaultIfNull(b.getOrderPayPrice(), 0)));
84 79 // 拼接数据
85 80 List<Area> areaList = AreaUtils.getByType(AreaTypeEnum.PROVINCE, area -> area);
86 81 areaList.add(new Area().setId(null).setName("未知"));
... ...