## 奖金结算添加明细表补偿处理;
This commit is contained in:
parent
fb9a90a81e
commit
93960988a7
|
|
@ -10,9 +10,9 @@ public interface IBonusSettleService {
|
|||
/**
|
||||
* 计算会员奖金
|
||||
*
|
||||
* @param date 结算日期
|
||||
* @param date 结算日期
|
||||
*/
|
||||
void calculateCuMemberBonus(String date);
|
||||
void calculateCuMemberBonus(String date, Integer period, String yesterday, Integer yesterdayPeriod);
|
||||
|
||||
/**
|
||||
* 根据订单计算新零售奖金
|
||||
|
|
@ -21,6 +21,7 @@ public interface IBonusSettleService {
|
|||
|
||||
/**
|
||||
* 计算秒结表数据
|
||||
*
|
||||
* @param orderExt
|
||||
*/
|
||||
void calculateCuMemberRetailRangeBySaOrder(SaOrderExt orderExt);
|
||||
|
|
|
|||
|
|
@ -80,16 +80,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void calculateCuMemberBonus(String settleDate) {
|
||||
Integer period = null;
|
||||
Integer yesterdayPeriod = null;
|
||||
public void calculateCuMemberBonus(String settleDate, Integer period, String yesterday, Integer yesterdayPeriod) {
|
||||
try {
|
||||
// 结算期间
|
||||
period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||
String yesterday = DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, settleDate);
|
||||
// 结算期间前一天期间
|
||||
yesterdayPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday).getPkId();
|
||||
|
||||
// 获取所有国家的奖金项 key = 国家 + 奖金项的值
|
||||
BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
// 会员奖金map(key:会员ID,
|
||||
|
|
@ -106,9 +98,6 @@ 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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,6 +54,8 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
|
||||
@Autowired
|
||||
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
|
||||
@Autowired
|
||||
private BonusSettleRangeHandle bonusSettleRangeHandle;
|
||||
|
||||
@Resource
|
||||
private CuMemberBonusDetailMapper cuMemberBonusDetailMapper;
|
||||
|
|
@ -535,8 +537,22 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
// 自动初始化表
|
||||
cuMemberTreeService.createCuMemberTree(settleDate);
|
||||
log.info("初始化表完成");
|
||||
// 奖金结算
|
||||
bonusSettleService.calculateCuMemberBonus(settleDate);
|
||||
|
||||
// 结算期间
|
||||
Integer period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||
// 前一天
|
||||
String yesterday = DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, settleDate);
|
||||
// 前一天结算期间
|
||||
Integer yesterdayPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday).getPkId();
|
||||
|
||||
try {
|
||||
// 奖金结算
|
||||
bonusSettleService.calculateCuMemberBonus(settleDate, period, yesterday, yesterdayPeriod);
|
||||
} catch (Exception e) {
|
||||
// 因为日结明细用的是直接清表,所以如果执行失败,拿昨天的去填充,防止前台没数据
|
||||
bonusSettleRangeHandle.compensationRetailDetail(period, yesterdayPeriod, settleDate);
|
||||
}
|
||||
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue