From 5d08a4bb6972c963278ec5faa7b48e442990c3dc Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Fri, 24 Oct 2025 10:55:36 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E7=BB=93=E7=AE=97=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E8=A1=A5=E5=81=BF=E5=A4=84=E7=90=86=E6=97=A5=E7=BB=93=E6=98=8E?= =?UTF-8?q?=E7=BB=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ICuMemberRetailRangeService.java | 2 +- .../impl/CuMemberRetailRangeServiceImpl.java | 8 +++--- .../service/impl/BonusSettleRangeHandle.java | 25 ++++++++++++++++++- .../service/impl/BonusSettleServiceImpl.java | 14 ++++++----- 4 files changed, 38 insertions(+), 11 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java index 5d0f7e43..323bfa3f 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java @@ -25,7 +25,7 @@ public interface ICuMemberRetailRangeService extends IService stageList = new ArrayList<>(); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java index c5187eb5..a35a1bb2 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java @@ -3,7 +3,6 @@ package com.hzs.bonus.bonus.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService; import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService; import com.hzs.bonus.base.service.ICuMemberService; @@ -29,7 +28,6 @@ import org.springframework.transaction.annotation.Transactional; import java.time.temporal.ChronoUnit; import java.util.*; -import java.util.stream.Collectors; /** * 奖金结算服务类 @@ -64,7 +62,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService { @Autowired private ICuMemberService iCuMemberService; - /** * 保存会员奖金 * @@ -84,12 +81,14 @@ public class BonusSettleServiceImpl implements IBonusSettleService { @Override @Transactional(rollbackFor = Exception.class) public void calculateCuMemberBonus(String settleDate) { + Integer period = null; + Integer yesterdayPeriod = null; try { // 结算期间 - Integer period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId(); + period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId(); String yesterday = DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, settleDate); // 结算期间前一天期间 - Integer yesterdayPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday).getPkId(); + yesterdayPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday).getPkId(); // 获取所有国家的奖金项 key = 国家 + 奖金项的值 BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData(); @@ -107,6 +106,9 @@ public class BonusSettleServiceImpl implements IBonusSettleService { // 保存当日计算的奖金 insertCuMemberBonus(settleDate, period, cuMemberBonusMap, recordDetailVO); } catch (Exception e) { + // 因为日结明细用的是直接清表,所以如果执行失败,先拿昨天的去填充,防止前台没数据 + bonusSettleRangeHandle.compensationRetailDetail(period, yesterdayPeriod, settleDate); + log.error("奖金结算异常", e); throw new RuntimeException(e); } @@ -181,7 +183,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService { Integer updateType = null; String symbol = orderExt.getCancelBool() ? "-" : "+"; if (orderExt.getOrderType().equals(EOrderType.RETAIL_REGISTER.getValue()) - || orderExt.getOrderType().equals(EOrderType.RETAIL_UPGRADE.getValue()) + || orderExt.getOrderType().equals(EOrderType.RETAIL_UPGRADE.getValue()) ) { updateType = 1; } else if (orderExt.getOrderType().equals(EOrderType.RETAIL_REPURCHASE.getValue())) {