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

This commit is contained in:
YunaiV 2024-08-21 21:54:12 +08:00
parent d6e491937c
commit 9b2ec3d341

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.statistics.service.member; package cn.iocoder.yudao.module.statistics.service.member;
import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
import cn.iocoder.yudao.framework.ip.core.Area; import cn.iocoder.yudao.framework.ip.core.Area;
import cn.iocoder.yudao.framework.ip.core.enums.AreaTypeEnum; import cn.iocoder.yudao.framework.ip.core.enums.AreaTypeEnum;
@ -15,10 +16,10 @@ import cn.iocoder.yudao.module.statistics.service.pay.PayWalletStatisticsService
import cn.iocoder.yudao.module.statistics.service.pay.bo.RechargeSummaryRespBO; import cn.iocoder.yudao.module.statistics.service.pay.bo.RechargeSummaryRespBO;
import cn.iocoder.yudao.module.statistics.service.trade.TradeOrderStatisticsService; import cn.iocoder.yudao.module.statistics.service.trade.TradeOrderStatisticsService;
import cn.iocoder.yudao.module.statistics.service.trade.TradeStatisticsService; import cn.iocoder.yudao.module.statistics.service.trade.TradeStatisticsService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import jakarta.annotation.Resource;
import java.time.Duration; import java.time.Duration;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@ -69,18 +70,12 @@ public class MemberStatisticsServiceImpl implements MemberStatisticsService {
bo -> AreaUtils.getParentIdByType(bo.getAreaId(), AreaTypeEnum.PROVINCE), bo -> AreaUtils.getParentIdByType(bo.getAreaId(), AreaTypeEnum.PROVINCE),
bo -> bo, bo -> bo,
(a, b) -> new MemberAreaStatisticsRespBO() (a, b) -> new MemberAreaStatisticsRespBO()
.setOrderCreateUserCount( .setOrderCreateUserCount(ObjectUtil.defaultIfNull(a.getOrderCreateUserCount(), 0)
(a.getOrderCreateUserCount() != null ? a.getOrderCreateUserCount() : 0) + + ObjectUtil.defaultIfNull(b.getOrderCreateUserCount(), 0))
(b.getOrderCreateUserCount() != null ? b.getOrderCreateUserCount() : 0) .setOrderPayUserCount(ObjectUtil.defaultIfNull(a.getOrderPayUserCount(), 0)
) + ObjectUtil.defaultIfNull(b.getOrderPayUserCount(), 0))
.setOrderPayUserCount( .setOrderPayPrice(ObjectUtil.defaultIfNull(a.getOrderPayPrice(), 0)
(a.getOrderPayUserCount() != null ? a.getOrderPayUserCount() : 0) + + ObjectUtil.defaultIfNull(b.getOrderPayPrice(), 0)));
(b.getOrderPayUserCount() != null ? b.getOrderPayUserCount() : 0)
)
.setOrderPayPrice(
(a.getOrderPayPrice() != null ? a.getOrderPayPrice() : 0.0) +
(b.getOrderPayPrice() != null ? b.getOrderPayPrice() : 0.0)
)
// 拼接数据 // 拼接数据
List<Area> areaList = AreaUtils.getByType(AreaTypeEnum.PROVINCE, area -> area); List<Area> areaList = AreaUtils.getByType(AreaTypeEnum.PROVINCE, area -> area);
areaList.add(new Area().setId(null).setName("未知")); areaList.add(new Area().setId(null).setName("未知"));