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 package cn.iocoder.yudao.module.statistics.service.member; 1 package cn.iocoder.yudao.module.statistics.service.member;
2 2
3 import cn.hutool.core.date.LocalDateTimeUtil; 3 import cn.hutool.core.date.LocalDateTimeUtil;
  4 +import cn.hutool.core.util.ObjectUtil;
4 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 5 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
5 import cn.iocoder.yudao.framework.ip.core.Area; 6 import cn.iocoder.yudao.framework.ip.core.Area;
6 import cn.iocoder.yudao.framework.ip.core.enums.AreaTypeEnum; 7 import cn.iocoder.yudao.framework.ip.core.enums.AreaTypeEnum;
@@ -15,10 +16,10 @@ import cn.iocoder.yudao.module.statistics.service.pay.PayWalletStatisticsService @@ -15,10 +16,10 @@ import cn.iocoder.yudao.module.statistics.service.pay.PayWalletStatisticsService
15 import cn.iocoder.yudao.module.statistics.service.pay.bo.RechargeSummaryRespBO; 16 import cn.iocoder.yudao.module.statistics.service.pay.bo.RechargeSummaryRespBO;
16 import cn.iocoder.yudao.module.statistics.service.trade.TradeOrderStatisticsService; 17 import cn.iocoder.yudao.module.statistics.service.trade.TradeOrderStatisticsService;
17 import cn.iocoder.yudao.module.statistics.service.trade.TradeStatisticsService; 18 import cn.iocoder.yudao.module.statistics.service.trade.TradeStatisticsService;
  19 +import jakarta.annotation.Resource;
18 import org.springframework.stereotype.Service; 20 import org.springframework.stereotype.Service;
19 import org.springframework.validation.annotation.Validated; 21 import org.springframework.validation.annotation.Validated;
20 22
21 -import jakarta.annotation.Resource;  
22 import java.time.Duration; 23 import java.time.Duration;
23 import java.time.LocalDateTime; 24 import java.time.LocalDateTime;
24 import java.util.List; 25 import java.util.List;
@@ -69,18 +70,12 @@ public class MemberStatisticsServiceImpl implements MemberStatisticsService { @@ -69,18 +70,12 @@ public class MemberStatisticsServiceImpl implements MemberStatisticsService {
69 bo -> AreaUtils.getParentIdByType(bo.getAreaId(), AreaTypeEnum.PROVINCE), 70 bo -> AreaUtils.getParentIdByType(bo.getAreaId(), AreaTypeEnum.PROVINCE),
70 bo -> bo, 71 bo -> bo,
71 (a, b) -> new MemberAreaStatisticsRespBO() 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 List<Area> areaList = AreaUtils.getByType(AreaTypeEnum.PROVINCE, area -> area); 80 List<Area> areaList = AreaUtils.getByType(AreaTypeEnum.PROVINCE, area -> area);
86 areaList.add(new Area().setId(null).setName("未知")); 81 areaList.add(new Area().setId(null).setName("未知"));