Commit 9b2ec3d341689c83c4c4ec9585713e293a1ff4c1
1 parent
d6e49193
【功能修复】处理统计可能导致的空指针问题
Showing
1 changed file
with
8 additions
and
13 deletions
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("未知")); | ... | ... |