## 撤单处理盒数、业绩等;
This commit is contained in:
parent
9289057d55
commit
5cedaa4f2e
|
@ -57,7 +57,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
private IBonusOrderService iBonusOrderService;
|
private IBonusOrderService iBonusOrderService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实时计算当月奖衔
|
* 实时计算秒结数据(业绩、盒数、等级、奖衔、日奖)
|
||||||
*/
|
*/
|
||||||
List<CuMemberBonusRange> calculateCuMemberRetailRangeBonusBySecond(String settleDate, SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO,
|
List<CuMemberBonusRange> calculateCuMemberRetailRangeBonusBySecond(String settleDate, SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO,
|
||||||
String secondRangeTableName, int beforePeriod, int currentPeriod,
|
String secondRangeTableName, int beforePeriod, int currentPeriod,
|
||||||
|
@ -191,7 +191,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 回退会员等级
|
// 回退会员等级
|
||||||
iCuMemberGradeService.updateCuMemberGrade(secondRangeTableName, saOrderExt.getPkId());
|
iCuMemberGradeService.updateCuMemberGrade(secondRangeTableName, saOrderExt.getPkId());
|
||||||
if (cuMemberGradeList.size() > 0) {
|
if (cuMemberGradeList.size() > 0) {
|
||||||
|
@ -215,32 +214,43 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实时计算当月奖衔
|
* 实时计算撤单数据(业绩、盒数、等级、奖衔、日奖)
|
||||||
*/
|
*/
|
||||||
void calculateCuMemberBackRetailIncome(SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO,
|
void calculateCuMemberBackRetailIncome(SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO,
|
||||||
String secondRangeTableName, int beforePeriod, int currentPeriod) {
|
String secondRangeTableName, int beforePeriod, int currentPeriod) {
|
||||||
// 当天的撤单
|
// 当天的撤单
|
||||||
List<CuMemberRetailRangeExt> memberRetailRangeExtList;
|
List<CuMemberRetailRangeExt> memberRetailRangeExtList;
|
||||||
String rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + beforePeriod;
|
String rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + beforePeriod;
|
||||||
|
|
||||||
if (DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate())) {
|
if (DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate())) {
|
||||||
// 按照血缘,查询该会员所有伞上会员
|
// 当天撤单
|
||||||
|
// 实时网体查询血缘伞上会员,更新秒结表等级、奖衔
|
||||||
iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(secondRangeTableName, saOrderExt.getPkMember());
|
iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(secondRangeTableName, saOrderExt.getPkMember());
|
||||||
// 恢复奖衔
|
// 恢复秒结表奖衔
|
||||||
iCuMemberAwardsService.mergeCuMemberBackAwards(secondRangeTableName, saOrderExt.getPkMember(), currentPeriod);
|
iCuMemberAwardsService.mergeCuMemberBackAwards(secondRangeTableName, saOrderExt.getPkMember(), currentPeriod);
|
||||||
|
// 查询 昨天日结 + 今天秒结 血缘上会员结算数据
|
||||||
memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeParent(rangeTableName, secondRangeTableName, saOrderExt.getPkMember());
|
memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeParent(rangeTableName, secondRangeTableName, saOrderExt.getPkMember());
|
||||||
} else {
|
} else {
|
||||||
|
// 非当天撤单
|
||||||
rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + currentPeriod;
|
rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + currentPeriod;
|
||||||
List<SaOrderExt> retailOrderList = new ArrayList<>();
|
List<SaOrderExt> retailOrderList = new ArrayList<>();
|
||||||
retailOrderList.add(saOrderExt);
|
retailOrderList.add(saOrderExt);
|
||||||
|
// 实时网体查询血缘上会员,更新订单支付日结表等级、奖衔
|
||||||
iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(rangeTableName, saOrderExt.getPkMember());
|
iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(rangeTableName, saOrderExt.getPkMember());
|
||||||
// 恢复奖衔
|
// 恢复日结表奖衔
|
||||||
iCuMemberAwardsService.mergeCuMemberBackAwards(rangeTableName, saOrderExt.getPkMember(), beforePeriod);
|
iCuMemberAwardsService.mergeCuMemberBackAwards(rangeTableName, saOrderExt.getPkMember(), beforePeriod);
|
||||||
|
// 查询 订单下单日结 血缘上会员结算数据
|
||||||
memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList);
|
memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 会员结算map(key:会员ID,value:结算扩展)
|
||||||
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
||||||
|
|
||||||
|
// 团队升级等级map(key:等级值,value:等级对象)
|
||||||
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
|
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
|
||||||
|
// 等级map(key:等级ID,value:等级对象)
|
||||||
Map<Integer, BdGrade> gradeIdMap = new HashMap<>();
|
Map<Integer, BdGrade> gradeIdMap = new HashMap<>();
|
||||||
|
// 等级列表
|
||||||
List<BdGrade> retaiGradeList = bonusConfigDTO.getRetaiGradeList();
|
List<BdGrade> retaiGradeList = bonusConfigDTO.getRetaiGradeList();
|
||||||
// 等级
|
// 等级
|
||||||
for (BdGrade bdGrade : retaiGradeList) {
|
for (BdGrade bdGrade : retaiGradeList) {
|
||||||
|
@ -249,18 +259,20 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
gradeIdMap.put(bdGrade.getPkId(), bdGrade);
|
gradeIdMap.put(bdGrade.getPkId(), bdGrade);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 奖衔map(key:奖衔值,value:奖衔对象)
|
||||||
Map<Integer, BdAwards> retailAwardsMap = new HashMap<>();
|
Map<Integer, BdAwards> retailAwardsMap = new HashMap<>();
|
||||||
List<BdAwards> awardsList = bonusConfigDTO.getAwardsList();
|
List<BdAwards> awardsList = bonusConfigDTO.getAwardsList();
|
||||||
awardsList.forEach(bdAwards -> retailAwardsMap.put(bdAwards.getAwardsValue(), bdAwards));
|
awardsList.forEach(bdAwards -> retailAwardsMap.put(bdAwards.getAwardsValue(), bdAwards));
|
||||||
|
|
||||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
||||||
if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||||
cuMemberRetailRangeExt.setBuyNum(0);
|
cuMemberRetailRangeExt.setBuyNum(0);
|
||||||
// 转换等级购买数量
|
|
||||||
memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt);
|
memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Map<String, CuMemberGrade> cuMemberGradeMap = new HashMap<>();
|
|
||||||
Map<String, CuMemberAwards> cuMemberAwardsMap = new HashMap<>();
|
// 计算自消费奖衔
|
||||||
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||||
// 先算等级 注册、升级计算等级
|
// 先算等级 注册、升级计算等级
|
||||||
int boxNum = 0;
|
int boxNum = 0;
|
||||||
|
@ -272,23 +284,32 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
saOrderExt.setBoxNum(boxNum);
|
||||||
|
|
||||||
|
// 订单业绩
|
||||||
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
||||||
// if (saOrderExt.getOrderType().equals(EOrderType.RETAIL_REGISTER.getValue()) ||
|
if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()
|
||||||
// saOrderExt.getOrderType().equals(EOrderType.RETAIL_UPGRADE.getValue())) {
|
|| EOrderType.RETAIL_CONSUME.getValue() == saOrderExt.getOrderType()
|
||||||
// orderAchieve = BigDecimal.ZERO;
|
) {
|
||||||
// }else{
|
// 复购、重消,盒数、业绩算个人累计数据(盒数、业绩)
|
||||||
//
|
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() - boxNum);
|
||||||
// }
|
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() - boxNum);
|
||||||
// 个人累计消费pv
|
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getConsumePv(), orderAchieve));
|
||||||
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() - boxNum);
|
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
|
||||||
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() - boxNum);
|
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
|
||||||
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getConsumePv(), orderAchieve));
|
}
|
||||||
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
|
|
||||||
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
|
// 会员等级map
|
||||||
// 团队业绩,计算奖衔
|
Map<String, CuMemberGrade> cuMemberGradeMap = new HashMap<>();
|
||||||
|
// 会员奖衔map
|
||||||
|
Map<String, CuMemberAwards> cuMemberAwardsMap = new HashMap<>();
|
||||||
|
// 计算自己等级、奖衔等
|
||||||
calculateBackGrade(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, cuMemberGradeMap, cuMemberAwardsMap, sourceMemberRangeExt);
|
calculateBackGrade(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, cuMemberGradeMap, cuMemberAwardsMap, sourceMemberRangeExt);
|
||||||
|
// 计算团队业绩、盒数,计算等级、奖衔
|
||||||
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = calculateRetailBackRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, boxNum, cuMemberGradeMap, cuMemberAwardsMap);
|
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = calculateRetailBackRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, boxNum, cuMemberGradeMap, cuMemberAwardsMap);
|
||||||
cuMemberRetailRangeExtList.add(sourceMemberRangeExt);
|
cuMemberRetailRangeExtList.add(sourceMemberRangeExt);
|
||||||
|
|
||||||
|
|
||||||
// 查询期间的等级和奖衔
|
// 查询期间的等级和奖衔
|
||||||
List<CuMemberGrade> memberGradeList = iCuMemberGradeService.queryCuMemberGrade(cuMemberRetailRangeExtList, currentPeriod);
|
List<CuMemberGrade> memberGradeList = iCuMemberGradeService.queryCuMemberGrade(cuMemberRetailRangeExtList, currentPeriod);
|
||||||
// 查询最大的手动奖衔
|
// 查询最大的手动奖衔
|
||||||
|
@ -926,7 +947,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 如果等级值 大于 当前会员等级值 并且 等级要求累计盒数 小于等于 团队累计盒数 + 累计消费盒数,则可以进行升级
|
// 如果等级值 大于 当前会员等级值 并且 等级要求累计盒数 小于等于 团队累计盒数 + 累计消费盒数,则可以进行升级
|
||||||
if (bdGrade.getGradeValue() > targetMemberRangeExt.getGradeValue()
|
if (bdGrade.getGradeValue() > targetMemberRangeExt.getGradeValue()
|
||||||
&& bdGrade.getBoxTotal() <= (targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum())) {
|
&& bdGrade.getBoxTotal() <= (targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum())) {
|
||||||
|
|
||||||
// 验证小区,计算小区累计盒数 查询伞下会员
|
// 验证小区,计算小区累计盒数 查询伞下会员
|
||||||
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
|
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
|
||||||
if (secondRangeTableName != null) {
|
if (secondRangeTableName != null) {
|
||||||
|
@ -982,7 +1002,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 先验证累计业绩
|
// 先验证累计业绩
|
||||||
// new 升级奖衔判断为当月累计业绩,累计业绩为团队业绩 + 个人消费业绩
|
// new 升级奖衔判断为当月累计业绩,累计业绩为团队业绩 + 个人消费业绩
|
||||||
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getTotalCheck())) {
|
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getTotalCheck())) {
|
||||||
// 累计业绩足够
|
// 累计业绩足够,即可升奖衔
|
||||||
// BigDecimal consumeBigPv = BigDecimal.ZERO;
|
// BigDecimal consumeBigPv = BigDecimal.ZERO;
|
||||||
// if (ComputeUtil.compareValue(bdAwards.getCommunityCheck())) {
|
// if (ComputeUtil.compareValue(bdAwards.getCommunityCheck())) {
|
||||||
// // 验证小区,计算小区业绩
|
// // 验证小区,计算小区业绩
|
||||||
|
@ -1002,12 +1022,11 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// // new 新制度奖衔不校验小区
|
|
||||||
// BigDecimal smallAreaPv = ComputeUtil.computeSubtract(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), consumeBigPv);
|
// BigDecimal smallAreaPv = ComputeUtil.computeSubtract(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), consumeBigPv);
|
||||||
// if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getCommunityCheck())) {
|
// if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getCommunityCheck())) {
|
||||||
cuMemberAwardsList.add(getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue()));
|
cuMemberAwardsList.add(getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue()));
|
||||||
targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue());
|
|
||||||
targetMemberRangeExt.setPkAwards(bdAwards.getPkId());
|
targetMemberRangeExt.setPkAwards(bdAwards.getPkId());
|
||||||
|
targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue());
|
||||||
targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName());
|
targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName());
|
||||||
continue;
|
continue;
|
||||||
// }
|
// }
|
||||||
|
@ -1075,26 +1094,31 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
public List<CuMemberRetailRangeExt> calculateRetailBackRangeGradeAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt,
|
public List<CuMemberRetailRangeExt> calculateRetailBackRangeGradeAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt,
|
||||||
Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, String secondRangeTableName,
|
Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, String secondRangeTableName,
|
||||||
Integer boxNum, Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap) {
|
Integer boxNum, Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap) {
|
||||||
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
|
||||||
CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(sourceMemberRangeExt.getPkParent());
|
|
||||||
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = new ArrayList<>();
|
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = new ArrayList<>();
|
||||||
|
// 订单会员
|
||||||
|
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||||
|
// 订单会员的推荐人
|
||||||
|
CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(sourceMemberRangeExt.getPkParent());
|
||||||
|
|
||||||
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
||||||
BigDecimal orderAmount = saOrderExt.getOrderAmount();
|
BigDecimal orderAmount = saOrderExt.getOrderAmount();
|
||||||
// 累计业绩
|
|
||||||
targetMemberRangeExt.setTeamConsumeAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumeAmount(), orderAmount));
|
|
||||||
targetMemberRangeExt.setTeamConsumePv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumePv(), orderAchieve));
|
|
||||||
targetMemberRangeExt.setTeamMonthAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthAmount(), orderAmount));
|
|
||||||
targetMemberRangeExt.setTeamMonthPv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), orderAchieve));
|
|
||||||
targetMemberRangeExt.setTeamNewAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamNewAmount(), orderAmount));
|
|
||||||
targetMemberRangeExt.setTeamNewPv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamNewPv(), orderAchieve));
|
|
||||||
while (targetMemberRangeExt != null) {
|
while (targetMemberRangeExt != null) {
|
||||||
// 累计盒数
|
// 激活的账号才能累计业绩和盒数(有注册、升级订单)
|
||||||
if (targetMemberRangeExt.getEnableStatus() == EYesNo.YES.getIntValue()) {
|
if (targetMemberRangeExt.getEnableStatus() == EYesNo.YES.getIntValue()) {
|
||||||
|
// 累计业绩
|
||||||
|
targetMemberRangeExt.setTeamConsumeAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumeAmount(), orderAmount));
|
||||||
|
targetMemberRangeExt.setTeamConsumePv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumePv(), orderAchieve));
|
||||||
|
targetMemberRangeExt.setTeamMonthAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthAmount(), orderAmount));
|
||||||
|
targetMemberRangeExt.setTeamMonthPv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), orderAchieve));
|
||||||
|
targetMemberRangeExt.setTeamNewAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamNewAmount(), orderAmount));
|
||||||
|
targetMemberRangeExt.setTeamNewPv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamNewPv(), orderAchieve));
|
||||||
|
// 累计盒数
|
||||||
targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum() - boxNum);
|
targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum() - boxNum);
|
||||||
targetMemberRangeExt.setMonthBoxNum(targetMemberRangeExt.getMonthBoxNum() - boxNum);
|
targetMemberRangeExt.setMonthBoxNum(targetMemberRangeExt.getMonthBoxNum() - boxNum);
|
||||||
targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum() - boxNum);
|
targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum() - boxNum);
|
||||||
cuMemberRetailRangeExtList.add(targetMemberRangeExt);
|
// 计算等级
|
||||||
calculateBackGrade(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, cuMemberGradeMap, cuMemberAwardsMap, targetMemberRangeExt);
|
calculateBackGrade(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, cuMemberGradeMap, cuMemberAwardsMap, targetMemberRangeExt);
|
||||||
|
cuMemberRetailRangeExtList.add(targetMemberRangeExt);
|
||||||
}
|
}
|
||||||
// 计算等级
|
// 计算等级
|
||||||
targetMemberRangeExt = memberRangeExtMap.get(targetMemberRangeExt.getPkParent());
|
targetMemberRangeExt = memberRangeExtMap.get(targetMemberRangeExt.getPkParent());
|
||||||
|
@ -1102,34 +1126,51 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
return cuMemberRetailRangeExtList;
|
return cuMemberRetailRangeExtList;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calculateBackGrade(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt, Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, String secondRangeTableName, Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap, CuMemberRetailRangeExt targetMemberRangeExt) {
|
private void calculateBackGrade(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName,
|
||||||
|
SaOrderExt saOrderExt, Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap,
|
||||||
|
String secondRangeTableName, Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap,
|
||||||
|
CuMemberRetailRangeExt targetMemberRangeExt) {
|
||||||
|
// 遍历团队等级map(V4,V5)
|
||||||
for (Integer gradeValue : retailTeamGradeMap.keySet()) {
|
for (Integer gradeValue : retailTeamGradeMap.keySet()) {
|
||||||
BdGrade bdGrade = retailTeamGradeMap.get(gradeValue);
|
BdGrade bdGrade = retailTeamGradeMap.get(gradeValue);
|
||||||
|
|
||||||
if (bdGrade.getBoxTotal() <= (targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum())) {
|
if (bdGrade.getBoxTotal() <= (targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum())) {
|
||||||
// 验证小区,计算小区累计盒数 查询伞下会员
|
// 验证小区,计算小区累计盒数 查询伞下会员
|
||||||
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
|
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
|
||||||
if (secondRangeTableName != null) {
|
if (secondRangeTableName != null) {
|
||||||
|
// 秒结表关联昨日结算表,查询订单会员直推数据
|
||||||
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
|
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
|
||||||
} else {
|
} else {
|
||||||
|
// 昨日结算表,查询订单会员直推数据
|
||||||
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
|
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 有注水的,大区无限大,新增全算小区
|
||||||
|
// 大区盒数
|
||||||
int bigBoxNum = targetMemberRangeExt.getConsumeBoxNum();
|
int bigBoxNum = targetMemberRangeExt.getConsumeBoxNum();
|
||||||
if (targetMemberRangeExt.getBigBoxNum() > 0) {
|
if (targetMemberRangeExt.getBigBoxNum() > 0) {
|
||||||
|
// 大区存在注水盒数,直接使用大区注水盒数
|
||||||
bigBoxNum = targetMemberRangeExt.getBigBoxNum();
|
bigBoxNum = targetMemberRangeExt.getBigBoxNum();
|
||||||
} else {
|
} else {
|
||||||
|
// 秒结 cuMemberRangeExtList 为直推会员数据, memberRangeExtMap 为会员伞上数据,这块应该永远不会处理
|
||||||
|
// 日结这块处理直推判断大小区没问题
|
||||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
|
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
|
||||||
if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||||
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
|
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
|
||||||
}
|
}
|
||||||
|
// 伞下团队累计盒数 + 自己消费盒数 - 大区注水 - 小区注水
|
||||||
int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum()
|
int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum()
|
||||||
- cuMemberRetailRangeExt.getBigBoxNum() - cuMemberRetailRangeExt.getSmallBoxNum();
|
- cuMemberRetailRangeExt.getBigBoxNum() - cuMemberRetailRangeExt.getSmallBoxNum();
|
||||||
if (areaBoxNum > bigBoxNum) {
|
if (areaBoxNum > bigBoxNum) {
|
||||||
|
// 实际订单累计盒数 大于 累计消费盒数,实际订单累计盒数为大区
|
||||||
bigBoxNum = areaBoxNum;
|
bigBoxNum = areaBoxNum;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 小区盒数
|
||||||
int smallBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum() - bigBoxNum;
|
int smallBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum() - bigBoxNum;
|
||||||
if (smallBoxNum >= bdGrade.getBoxSmallTotal()) {
|
if (smallBoxNum >= bdGrade.getBoxSmallTotal()) {
|
||||||
|
// 小区盒数 大于等于 升级小区盒数
|
||||||
CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade);
|
CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade);
|
||||||
cuMemberGradeMap.put(cuMemberGrade.getPkMember() + "_" + cuMemberGrade.getNewLevel(), cuMemberGrade);
|
cuMemberGradeMap.put(cuMemberGrade.getPkMember() + "_" + cuMemberGrade.getNewLevel(), cuMemberGrade);
|
||||||
targetMemberRangeExt.setGradeValue(bdGrade.getGradeValue());
|
targetMemberRangeExt.setGradeValue(bdGrade.getGradeValue());
|
||||||
|
@ -1138,39 +1179,42 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 计算奖衔
|
// 计算奖衔(荣誉级别)
|
||||||
while (true) {
|
while (true) {
|
||||||
int awardsValue = targetMemberRangeExt.getAwardsValue() + 5;
|
int awardsValue = targetMemberRangeExt.getAwardsValue() + 5;
|
||||||
if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) {
|
if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) {
|
||||||
|
// 等级达到V5 并且 存在下个奖衔,判断是否能升奖衔
|
||||||
BdAwards bdAwards = retailAwardsMap.get(awardsValue);
|
BdAwards bdAwards = retailAwardsMap.get(awardsValue);
|
||||||
// 先验证累计业绩
|
// 先验证累计业绩
|
||||||
|
// new 升级奖衔判断为当月累计业绩,累计业绩为团队业绩 + 个人消费业绩
|
||||||
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getTotalCheck())) {
|
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getTotalCheck())) {
|
||||||
// 验证小区,计算小区业绩
|
// 累计业绩足够,即可升奖衔
|
||||||
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
|
// // 验证小区,计算小区业绩
|
||||||
if (secondRangeTableName != null) {
|
// List<CuMemberRetailRangeExt> cuMemberRangeExtList;
|
||||||
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
|
// if (secondRangeTableName != null) {
|
||||||
} else {
|
// cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
|
||||||
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
|
// } else {
|
||||||
}
|
// cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
|
||||||
BigDecimal consumeBigPv = BigDecimal.ZERO;
|
// }
|
||||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
|
// BigDecimal consumeBigPv = BigDecimal.ZERO;
|
||||||
if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
|
||||||
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
|
// if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||||
}
|
// cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
|
||||||
BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv());
|
// }
|
||||||
if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) {
|
// BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv());
|
||||||
consumeBigPv = consumePv;
|
// if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) {
|
||||||
}
|
// consumeBigPv = consumePv;
|
||||||
}
|
// }
|
||||||
BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv);
|
// }
|
||||||
if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getCommunityCheck())) {
|
// BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv);
|
||||||
CuMemberAwards cuMemberRetailAwards = getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue());
|
// if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getCommunityCheck())) {
|
||||||
cuMemberAwardsMap.put(cuMemberRetailAwards.getPkMember() + "_" + cuMemberRetailAwards.getNewLevel(), cuMemberRetailAwards);
|
CuMemberAwards cuMemberRetailAwards = getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue());
|
||||||
targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue());
|
cuMemberAwardsMap.put(cuMemberRetailAwards.getPkMember() + "_" + cuMemberRetailAwards.getNewLevel(), cuMemberRetailAwards);
|
||||||
targetMemberRangeExt.setPkAwards(bdAwards.getPkId());
|
targetMemberRangeExt.setPkAwards(bdAwards.getPkId());
|
||||||
targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName());
|
targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue());
|
||||||
continue;
|
targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName());
|
||||||
}
|
continue;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -214,7 +214,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
// 订单下单处理(正向)
|
// 订单下单处理(正向)
|
||||||
// 会员奖金明细
|
// 会员奖金明细
|
||||||
List<CuMemberBonusDetail> cuMemberBonusDetailList = new ArrayList<>();
|
List<CuMemberBonusDetail> cuMemberBonusDetailList = new ArrayList<>();
|
||||||
// 实时计算当月奖衔
|
// 实时计算秒结数据(业绩、盒数、等级、奖衔、日奖)
|
||||||
List<CuMemberBonusRange> cuMemberBonusRangeList = bonusSettleRangeHandle.calculateCuMemberRetailRangeBonusBySecond(settleDate, saOrderExt, bonusConfigDTO,
|
List<CuMemberBonusRange> cuMemberBonusRangeList = bonusSettleRangeHandle.calculateCuMemberRetailRangeBonusBySecond(settleDate, saOrderExt, bonusConfigDTO,
|
||||||
secondRangeTableName, beforePeriod, currentPeriod, cuMemberBonusMap, cuMemberBonusDetailList);
|
secondRangeTableName, beforePeriod, currentPeriod, cuMemberBonusMap, cuMemberBonusDetailList);
|
||||||
saveCuMemberBonus(currentPeriod, settleDate, cuMemberBonusMap);
|
saveCuMemberBonus(currentPeriod, settleDate, cuMemberBonusMap);
|
||||||
|
@ -236,6 +236,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
settleDate = DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS));
|
settleDate = DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS));
|
||||||
currentPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
currentPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||||
}
|
}
|
||||||
|
// 实时计算撤单数据(业绩、盒数、等级、奖衔、日奖)
|
||||||
bonusSettleRangeHandle.calculateCuMemberBackRetailIncome(saOrderExt, bonusConfigDTO,
|
bonusSettleRangeHandle.calculateCuMemberBackRetailIncome(saOrderExt, bonusConfigDTO,
|
||||||
secondRangeTableName, beforePeriod, currentPeriod);
|
secondRangeTableName, beforePeriod, currentPeriod);
|
||||||
// 处理收益
|
// 处理收益
|
||||||
|
|
|
@ -683,7 +683,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
public void mergeBackMemberBonusIncome(Long pkOrder) {
|
public void mergeBackMemberBonusIncome(Long pkOrder) {
|
||||||
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_RANGE_INCOME.getValue());
|
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_RANGE_INCOME.getValue());
|
||||||
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
|
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
|
||||||
// baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_AREA_INCOME.getValue());
|
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_AREA_INCOME.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -206,12 +206,12 @@
|
||||||
merge into ${rangeTableName} a
|
merge into ${rangeTableName} a
|
||||||
using (
|
using (
|
||||||
select pk_id pk_member, pk_parent, pk_settle_grade, pk_awards
|
select pk_id pk_member, pk_parent, pk_settle_grade, pk_awards
|
||||||
from cu_member start with pk_id=#{pkMember}
|
from cu_member start with pk_id = #{pkMember}
|
||||||
connect by prior pk_parent=pk_id
|
connect by prior pk_parent = pk_id
|
||||||
) b
|
) b
|
||||||
on (a.pk_member = b.pk_member)
|
on (a.pk_member = b.pk_member)
|
||||||
when matched then
|
when matched then
|
||||||
update set a.pk_grade = b.pk_settle_grade,a.pk_awards = b.pk_awards
|
update set a.pk_grade = b.pk_settle_grade, a.pk_awards = b.pk_awards
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<update id="mergeMemberRetailRegion">
|
<update id="mergeMemberRetailRegion">
|
||||||
|
|
|
@ -56,21 +56,22 @@
|
||||||
<insert id="batchInsertCuMemberBonusDetail">
|
<insert id="batchInsertCuMemberBonusDetail">
|
||||||
insert ALL
|
insert ALL
|
||||||
<foreach item="item" index="index" collection="cuMemberBonusDetailList" separator=" ">
|
<foreach item="item" index="index" collection="cuMemberBonusDetailList" separator=" ">
|
||||||
into cu_member_bonus_detail(pk_bonus,pk_order,pk_bonus_items,income_status,
|
into cu_member_bonus_detail (
|
||||||
cal_type,cal_achieve,cal_value,pretax_income,
|
pk_bonus, pk_order, pk_bonus_items, income_status,
|
||||||
income_tax,real_income,remark,
|
cal_type, cal_achieve, cal_value, pretax_income,
|
||||||
income_ratio,income_dial_ratio,order_dial_ratio,pk_country,pk_creator)
|
income_tax, real_income, remark,
|
||||||
values
|
income_ratio, income_dial_ratio, order_dial_ratio,
|
||||||
(
|
pk_country, pk_creator)
|
||||||
#{item.pkBonus},nvl(#{item.pkOrder,jdbcType=BIGINT},0),#{item.pkBonusItems},#{item.incomeStatus},
|
values (
|
||||||
#{item.calType},#{item.calAchieve,jdbcType=NUMERIC},#{item.calValue,jdbcType=NUMERIC},#{item.pretaxIncome,jdbcType=NUMERIC},
|
#{item.pkBonus}, nvl(#{item.pkOrder, jdbcType=BIGINT},0), #{item.pkBonusItems}, #{item.incomeStatus},
|
||||||
#{item.incomeTax,jdbcType=NUMERIC},#{item.realIncome,jdbcType=NUMERIC},
|
#{item.calType}, #{item.calAchieve, jdbcType=NUMERIC}, #{item.calValue, jdbcType=NUMERIC}, #{item.pretaxIncome, jdbcType=NUMERIC},
|
||||||
#{item.remark},#{item.incomeRatio,jdbcType=NUMERIC},#{item.incomeDialRatio,jdbcType=NUMERIC},#{item.orderDialRatio,jdbcType=NUMERIC},
|
#{item.incomeTax, jdbcType=NUMERIC}, #{item.realIncome, jdbcType=NUMERIC}, #{item.remark},
|
||||||
#{item.pkCountry},#{item.pkCreator}
|
#{item.incomeRatio, jdbcType=NUMERIC}, #{item.incomeDialRatio, jdbcType=NUMERIC}, #{item.orderDialRatio, jdbcType=NUMERIC},
|
||||||
)
|
#{item.pkCountry},#{item.pkCreator})
|
||||||
</foreach>
|
</foreach>
|
||||||
SELECT 1 FROM dual
|
SELECT 1 FROM dual
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<insert id="insertCuMemberBonusDetail">
|
<insert id="insertCuMemberBonusDetail">
|
||||||
insert into cu_member_bonus_detail(pk_bonus, pk_order, pk_bonus_items, income_status,
|
insert into cu_member_bonus_detail(pk_bonus, pk_order, pk_bonus_items, income_status,
|
||||||
cal_type, cal_achieve, cal_value, pretax_income,
|
cal_type, cal_achieve, cal_value, pretax_income,
|
||||||
|
|
|
@ -74,36 +74,38 @@
|
||||||
and pk_country = #{pkCountry}
|
and pk_country = #{pkCountry}
|
||||||
</if>
|
</if>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<update id="mergeBackRangeBonusIncome">
|
<update id="mergeBackRangeBonusIncome">
|
||||||
merge into cu_member_bonus a
|
merge into cu_member_bonus a
|
||||||
using(
|
using(
|
||||||
select b.* from bd_bonus_items bt
|
select b.* from bd_bonus_items bt
|
||||||
inner join(
|
inner join(
|
||||||
select pk_bonus,pk_bonus_items,sum(pretax_income) pretax_income,
|
select pk_bonus,pk_bonus_items, sum(pretax_income) pretax_income,
|
||||||
sum(income_tax) income_tax,sum(real_income) real_income from
|
sum(income_tax) income_tax, sum(real_income) real_income from
|
||||||
<choose>
|
<choose>
|
||||||
<when test="bonusValue == 27"> cu_member_bonus_detail </when>
|
<when test="bonusValue == 27"> cu_member_bonus_detail </when>
|
||||||
<otherwise> cu_member_bonus_range </otherwise>
|
<otherwise> cu_member_bonus_range </otherwise>
|
||||||
</choose>
|
</choose>
|
||||||
where del_flag=0 and pk_order= #{pkOrder}
|
where del_flag=0 and pk_order= #{pkOrder}
|
||||||
group by pk_bonus,pk_bonus_items) b
|
group by pk_bonus, pk_bonus_items) b
|
||||||
on bt.pk_id=b.pk_bonus_items
|
on bt.pk_id = b.pk_bonus_items
|
||||||
where bt.bonus_value=#{bonusValue}) b
|
where bt.bonus_value = #{bonusValue}) b
|
||||||
on (a.pk_id=b.pk_bonus)
|
on (a.pk_id = b.pk_bonus)
|
||||||
when matched then
|
when matched then
|
||||||
update set a.retail_real_subtotal=a.retail_real_subtotal-b.real_income,
|
update set a.retail_real_subtotal=a.retail_real_subtotal-b.real_income,
|
||||||
a.back_points=a.back_points-b.income_tax,
|
a.back_points=a.back_points-b.income_tax,
|
||||||
a.real_income_total=a.real_income_total-b.real_income
|
a.real_income_total=a.real_income_total-b.real_income
|
||||||
<if test="bonusValue == 25">
|
<if test="bonusValue == 25">
|
||||||
,a.retail_range_income=a.retail_range_income-b.pretax_income
|
,a.retail_range_income = a.retail_range_income - b.pretax_income
|
||||||
</if>
|
</if>
|
||||||
<if test="bonusValue == 26">
|
<if test="bonusValue == 26">
|
||||||
,a.retail_same_level_income=a.retail_same_level_income-b.pretax_income
|
,a.retail_same_level_income = a.retail_same_level_income - b.pretax_income
|
||||||
</if>
|
</if>
|
||||||
<if test="bonusValue == 27">
|
<if test="bonusValue == 27">
|
||||||
,a.retail_area_income=a.retail_area_income-b.pretax_income
|
,a.retail_area_income = a.retail_area_income - b.pretax_income
|
||||||
</if>
|
</if>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<delete id="deleteCuMemberBonus">
|
<delete id="deleteCuMemberBonus">
|
||||||
delete
|
delete
|
||||||
from cu_member_bonus
|
from cu_member_bonus
|
||||||
|
|
|
@ -48,7 +48,6 @@
|
||||||
<result column="SETTLE_COUNTRY" property="settleCountry"/>
|
<result column="SETTLE_COUNTRY" property="settleCountry"/>
|
||||||
<result column="PERIOD" property="period"/>
|
<result column="PERIOD" property="period"/>
|
||||||
<result column="OUT_EXCHANGE_RATE" property="outExchangeRate"/>
|
<result column="OUT_EXCHANGE_RATE" property="outExchangeRate"/>
|
||||||
|
|
||||||
<result column="service_code" property="serviceCode"/>
|
<result column="service_code" property="serviceCode"/>
|
||||||
<result column="pk_vertex" property="pkVertex"/>
|
<result column="pk_vertex" property="pkVertex"/>
|
||||||
<result column="nick_name" property="nickName"/>
|
<result column="nick_name" property="nickName"/>
|
||||||
|
@ -57,18 +56,20 @@
|
||||||
<insert id="batchInsertCuMemberBonusRange">
|
<insert id="batchInsertCuMemberBonusRange">
|
||||||
insert ALL
|
insert ALL
|
||||||
<foreach item="item" index="index" collection="cuMemberBonusRangeList" separator=" ">
|
<foreach item="item" index="index" collection="cuMemberBonusRangeList" separator=" ">
|
||||||
into cu_member_bonus_range(pk_bonus,pk_order,pk_order_items,pk_bonus_items,income_status,
|
into cu_member_bonus_range (
|
||||||
cal_type,cal_achieve,cal_value,pk_range,pk_before_range,pretax_income,
|
pk_bonus, pk_order, pk_order_items, pk_bonus_items,
|
||||||
income_tax,real_income,remark,
|
income_status, cal_type, cal_achieve, cal_value,
|
||||||
income_ratio,income_dial_ratio,order_dial_ratio,pk_country,pk_creator)
|
pk_range, pk_before_range, pretax_income,
|
||||||
values
|
income_tax, real_income, remark,
|
||||||
(
|
income_ratio, income_dial_ratio, order_dial_ratio,
|
||||||
#{item.pkBonus},#{item.pkOrder},#{item.pkOrderItems},#{item.pkBonusItems},#{item.incomeStatus},
|
pk_country, pk_creator)
|
||||||
#{item.calType},#{item.calAchieve},#{item.calValue},#{item.pkRange},#{item.pkBeforeRange},
|
values (
|
||||||
#{item.pretaxIncome},#{item.incomeTax},#{item.realIncome},
|
#{item.pkBonus}, #{item.pkOrder}, #{item.pkOrderItems}, #{item.pkBonusItems},
|
||||||
#{item.remark},#{item.incomeRatio},#{item.incomeDialRatio},#{item.orderDialRatio},
|
#{item.incomeStatus}, #{item.calType}, #{item.calAchieve}, #{item.calValue},
|
||||||
#{item.pkCountry},#{item.pkCreator}
|
#{item.pkRange}, #{item.pkBeforeRange}, #{item.pretaxIncome},
|
||||||
)
|
#{item.incomeTax}, #{item.realIncome}, #{item.remark},
|
||||||
|
#{item.incomeRatio}, #{item.incomeDialRatio}, #{item.orderDialRatio},
|
||||||
|
#{item.pkCountry}, #{item.pkCreator})
|
||||||
</foreach>
|
</foreach>
|
||||||
SELECT 1 FROM dual
|
SELECT 1 FROM dual
|
||||||
</insert>
|
</insert>
|
||||||
|
|
|
@ -167,13 +167,13 @@
|
||||||
and ca.pk_member in
|
and ca.pk_member in
|
||||||
(select pk_id
|
(select pk_id
|
||||||
from cu_member start
|
from cu_member start
|
||||||
with pk_id=#{pkMember}
|
with pk_id = #{pkMember}
|
||||||
connect by prior pk_parent=pk_id)
|
connect by prior pk_parent = pk_id)
|
||||||
group by ca.pk_member) cx
|
group by ca.pk_member) cx
|
||||||
on cw.pk_id = cx.pk_id ) b
|
on cw.pk_id = cx.pk_id ) b
|
||||||
on (a.pk_member=b.pk_member)
|
on (a.pk_member = b.pk_member)
|
||||||
when matched then
|
when matched then
|
||||||
update set a.pk_awards=b.old_level
|
update set a.pk_awards = b.old_level
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<!-- 删除自动升级的奖衔升级记录 -->
|
<!-- 删除自动升级的奖衔升级记录 -->
|
||||||
|
|
Loading…
Reference in New Issue