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())) {