3
0
Fork 0

## 直推收益、平级收益处理;

This commit is contained in:
cabbage 2025-06-12 14:29:05 +08:00
parent 564fb2bf12
commit ec0006a40c
3 changed files with 164 additions and 214 deletions

View File

@ -77,8 +77,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 会员结算mapkey会员IDvalue结算扩展
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
// 购买升级等级mapkey:等级值value:等级对象
Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
// 团队升级等级mapkey:等级值value:等级对象
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
// 等级mapkey:等级值value:等级对象
@ -86,9 +84,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 等级列表
List<BdGrade> retaiGradeList = bonusConfigDTO.getRetaiGradeList();
for (BdGrade bdGrade : retaiGradeList) {
if (bdGrade.getBoxNumber() > 0) {
retaiBuyGradeMap.put(bdGrade.getGradeValue(), bdGrade);
}
if (bdGrade.getBoxTotal() > 0) {
retailTeamGradeMap.put(bdGrade.getGradeValue(), bdGrade);
}
@ -102,28 +97,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
// 会员结算map不存在这个会员则为新会员没处理过需要处理
cuMemberRetailRangeExt.setBuyNum(0);
// TODO new 目前一次性补差升级不需要校验是不是当天了
cuMemberRetailRangeExt.setSameDate(EYesNo.NO.getIntValue());
// if (cuMemberRetailRangeExt.getPayTime() != null && DateUtils.compareDateEqual(DateUtils.parseStringToDate(settleDate), cuMemberRetailRangeExt.getPayTime())) {
// cuMemberRetailRangeExt.setSameDate(EYesNo.YES.getIntValue());
// } else {
// cuMemberRetailRangeExt.setSameDate(EYesNo.NO.getIntValue());
// }
for (Integer gradeValue : retaiBuyGradeMap.keySet()) {
BdGrade bdGrade = retaiBuyGradeMap.get(gradeValue);
if (bdGrade.getBoxNumber() > 0 && cuMemberRetailRangeExt.getGradeValue().equals(gradeValue)) {
// TODO new 一次性补差需要下个等级的盒数 - 当前等级盒数
cuMemberRetailRangeExt.setBuyNum(bdGrade.getBoxNumber());
// if (cuMemberRetailRangeExt.getSameDate().equals(EYesNo.YES.getIntValue())) {
// cuMemberRetailRangeExt.setBuyNum(cuMemberRetailRangeExt.getNewBoxNum());
// } else {
// cuMemberRetailRangeExt.setBuyNum(bdGrade.getBoxNumber());
// }
break;
}
}
memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt);
}
}
@ -159,7 +132,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 计算团队业绩盒数计算等级奖衔
cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, boxNum, cuMemberGradeList));
// TODO new 奖金处理
// 奖金处理
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()
@ -171,14 +144,11 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 计算直推级差收益 + 平级收益
cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, currentPeriod, saOrderItems, saOrderExt));
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
// 注册升级计算是否激活
// 注册升级 并且有盒数商品算激活
sourceMemberRangeExt.setEnableStatus(EYesNo.YES.getIntValue());
}
}
}
}
// 查询区域配置
Map<String, CuMemberRetailRangeExt> countyRangeExtMap = new HashMap<>();
@ -396,6 +366,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
/**
* 日结
* 计算新零售团队的奖金极差平级福利福利分红区域
*/
void calculateRetailBonusByDay(String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, BonusRecordDetailVO bonusRecordDetailVO,
@ -444,6 +415,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
// 团队升级等级mapkey:等级值value:等级对象
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
// 等级mapkey:等级值value:等级对象
Map<Integer, BdGrade> gradeMap = new HashMap<>();
// 等级mapkey:等级IDvalue:等级对象
Map<Integer, BdGrade> gradeIdMap = new HashMap<>();
@ -470,21 +442,11 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
cuMemberRetailRangeExt.setBuyNum(0);
// TODO new 目前一次性补差升级不需要校验是不是当天了
cuMemberRetailRangeExt.setSameDate(EYesNo.NO.getIntValue());
// if (cuMemberRetailRangeExt.getPayTime() != null && DateUtils.compareDateEqual(DateUtils.parseStringToDate(settleDate), cuMemberRetailRangeExt.getPayTime())) {
// cuMemberRetailRangeExt.setSameDate(EYesNo.YES.getIntValue());
// } else {
// cuMemberRetailRangeExt.setSameDate(EYesNo.NO.getIntValue());
// }
for (Integer gradeValue : retaiBuyGradeMap.keySet()) {
BdGrade bdGrade = retaiBuyGradeMap.get(gradeValue);
if (bdGrade.getBoxNumber() > 0 && cuMemberRetailRangeExt.getGradeValue().equals(gradeValue)) {
// TODO new 一次性补差需要下个等级的盒数 - 当前等级盒数
cuMemberRetailRangeExt.setBuyNum(bdGrade.getBoxNumber());
// if (cuMemberRetailRangeExt.getSameDate().equals(EYesNo.YES.getIntValue())) {
// cuMemberRetailRangeExt.setBuyNum(cuMemberRetailRangeExt.getNewBoxNum());
// } else {
// cuMemberRetailRangeExt.setBuyNum(bdGrade.getBoxNumber());
// }
break;
}
}
@ -541,8 +503,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 计算团队业绩盒数计算等级奖衔
cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, null, boxNum, cuMemberGradeList));
// TODO new 奖金处理
// 计算奖金 直推级差 + 平级收益
if ((EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType())
@ -1308,20 +1268,20 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
// 推荐人
long pkParent = sourceMemberRangeExt.getPkParent();
// // 商品价格
// BigDecimal beginBuyPrice = saOrderItems.getWaresPrice();
// BigDecimal comBuyPrice = saOrderItems.getWaresPrice();
//
// // 开始计算等级值
// int beginGradeValue = sourceMemberRangeExt.getGradeValue();
// // 直推级差收益
// BigDecimal calBonusIncome = BigDecimal.ZERO;
// 商品价格没有乘商品数量
BigDecimal waresPrice = saOrderItems.getWaresPrice();
// 商品数量
Integer waresQuantity = saOrderItems.getWaresQuantity();
// 商品价格
BigDecimal beginBuyPrice = saOrderItems.getWaresPrice();
BigDecimal comBuyPrice = saOrderItems.getWaresPrice();
// 开始计算等级值
int beginGradeValue = sourceMemberRangeExt.getGradeValue();
// 直推级差收益
BigDecimal calBonusIncome = BigDecimal.ZERO;
// 前一个会员等级
int beforeGradeValue = 0;
// 前一个会员等级的平级收益人数
@ -1348,6 +1308,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
// 当前会员等级值
int calGradeValue = targetMemberRangeExt.getGradeValue();
// 当前会员等级
BdGrade bdGrade = gradeMap.get(calGradeValue);
// 直推级差税前收益
BigDecimal rangeBonusIncome = null;
@ -1380,8 +1342,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// V1 没有平级收益
continue;
}
if (beforeSameAlgebra >= RetailConstants.SAME_ALGEBRA) {
if (beforeSameAlgebra >= bdGrade.getAlgebra()) {
// 平级收益已经满10代不继续处理平级收益
if (EGrade.S_VIP.getValue() == beforeGradeValue) {
// 平级处理等级为最高级V5则结束处理
break;
}
continue;
}
// 平级收益商品价格 * 千分之五 -- 2位小数四舍五入
@ -1448,135 +1414,127 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
memberBonusRangeList.add(oriMemberBonusRange);
}
///////////////////////////////////////////////////////////////
// 如果价格是209代表是第一单激活只有平级收益只有V5有平级收益
if (beginBuyPrice.equals(BigDecimal.valueOf(209))) {
calGradeValue = EGrade.S_VIP.getValue();
if (beginGradeValue < EGrade.S_VIP.getValue()) {
beginGradeValue = EGrade.S_VIP.getValue();
}
}
BdGrade bdGrade = gradeMap.get(calGradeValue);
BigDecimal buyPrice = bdGrade.getBuyPrice();
boolean isRange = Boolean.FALSE;
// 有极差或者有平级
if (ComputeUtil.compareGreaterThan(beginBuyPrice, buyPrice)) {
// 计算极差
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_RANGE_INCOME.getValue());
CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
cuMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(ComputeUtil.computeSubtract(ComputeUtil.computeSubtract(beginBuyPrice, buyPrice), calBonusIncome), saOrderItems.getWaresQuantity()), BigDecimal.ONE));
cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
cuMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
rangeRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) {
cuMemberBonus.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome()));
setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange);
}
memberBonusRangeList.add(cuMemberBonusRange);
beginBuyPrice = buyPrice;
comBuyPrice = buyPrice;
beginGradeValue = calGradeValue;
sourceMemberRangeExt = targetMemberRangeExt;
calBonusIncome = BigDecimal.ZERO;
} else {
isRange = Boolean.TRUE;
pkParent = targetMemberRangeExt.getPkMember();
}
if (saOrderExt.getOrderType().equals(EOrderType.RETAIL_CONSUME.getValue())) {
if (isRange) {
pkParent = targetMemberRangeExt.getPkParent();
}
continue;
}
if (bdGrade.getAlgebra() > 0) {
Long lastPkParent = pkParent;
for (int j = 0; j < bdGrade.getAlgebra(); j++) {
targetMemberRangeExt = memberRangeExtMap.get(lastPkParent);
if (targetMemberRangeExt == null) {
if (memberRangeExtMap.get(pkParent) == null) {
break;
}
pkParent = memberRangeExtMap.get(pkParent).getPkParent();
break;
}
calGradeValue = targetMemberRangeExt.getGradeValue();
BigDecimal sameBuyPrice = gradeMap.get(calGradeValue).getBuyPrice();
// 有平级
// if (calGradeValue < beginGradeValue) {
if (ComputeUtil.compareGreaterThan(sameBuyPrice, comBuyPrice)) {
lastPkParent = targetMemberRangeExt.getPkParent();
pkParent = targetMemberRangeExt.getPkParent();
j--;
continue;
}
if (ComputeUtil.compareGreaterThan(beginBuyPrice, sameBuyPrice)) {
pkParent = lastPkParent;
break;
// // 如果价格是209代表是第一单激活只有平级收益只有V5有平级收益
// if (beginBuyPrice.equals(BigDecimal.valueOf(209))) {
// calGradeValue = EGrade.S_VIP.getValue();
// if (beginGradeValue < EGrade.S_VIP.getValue()) {
// beginGradeValue = EGrade.S_VIP.getValue();
// }
// }
// BdGrade bdGrade = gradeMap.get(calGradeValue);
// BigDecimal buyPrice = bdGrade.getBuyPrice();
// boolean isRange = Boolean.FALSE;
// // 有极差或者有平级
// if (ComputeUtil.compareGreaterThan(beginBuyPrice, buyPrice)) {
// // 计算极差
// CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
// targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
// int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_RANGE_INCOME.getValue());
// CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
// cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
// cuMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(ComputeUtil.computeSubtract(ComputeUtil.computeSubtract(beginBuyPrice, buyPrice), calBonusIncome), saOrderItems.getWaresQuantity()), BigDecimal.ONE));
// cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
// cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
// cuMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
// rangeRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
// BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
// if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) {
// cuMemberBonus.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome()));
// setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange);
// }
// memberBonusRangeList.add(cuMemberBonusRange);
//
// beginBuyPrice = buyPrice;
// comBuyPrice = buyPrice;
// beginGradeValue = calGradeValue;
// sourceMemberRangeExt = targetMemberRangeExt;
// calBonusIncome = BigDecimal.ZERO;
// } else {
// isRange = Boolean.TRUE;
// pkParent = targetMemberRangeExt.getPkMember();
// }
// if (saOrderExt.getOrderType().equals(EOrderType.RETAIL_CONSUME.getValue())) {
// if (isRange) {
// pkParent = targetMemberRangeExt.getPkParent();
// }
// continue;
// }
// if (bdGrade.getAlgebra() > 0) {
// Long lastPkParent = pkParent;
// for (int j = 0; j < bdGrade.getAlgebra(); j++) {
// targetMemberRangeExt = memberRangeExtMap.get(lastPkParent);
// if (targetMemberRangeExt == null) {
// if (memberRangeExtMap.get(pkParent) == null) {
// break;
// }
// pkParent = memberRangeExtMap.get(pkParent).getPkParent();
// break;
// }
// calGradeValue = targetMemberRangeExt.getGradeValue();
// BigDecimal sameBuyPrice = gradeMap.get(calGradeValue).getBuyPrice();
// // 有平级
// if (ComputeUtil.compareGreaterThan(sameBuyPrice, comBuyPrice)) {
// lastPkParent = targetMemberRangeExt.getPkParent();
// pkParent = targetMemberRangeExt.getPkParent();
// j--;
// continue;
}
lastPkParent = targetMemberRangeExt.getPkParent();
if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus() ||
ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory() ||
targetMemberRangeExt.getEnableStatus() == EYesNo.NO.getIntValue() ||
EIncomeStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getIncomeStatus()) {
j--;
continue;
}
BigDecimal bonusIncome = BigDecimal.ZERO;
if (j == 0) {
bonusIncome = bdGrade.getFirstAlgebra();
} else if (j == 1) {
bonusIncome = bdGrade.getSecondAlgebra();
} else if (j == 2) {
bonusIncome = bdGrade.getThirdAlgebra();
}
if (ComputeUtil.compareEqual(beginBuyPrice, sameBuyPrice)) {
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
CuMemberBonusRange oriMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
oriMemberBonusRange.setCalValue(BigDecimal.valueOf(10));
oriMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(bonusIncome, saOrderItems.getWaresQuantity()), BigDecimal.ONE));
oriMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
oriMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
oriMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
oriRetailRangeRemark(saOrderExt, oriMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, oriMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
if (EBonusIncomeStatus.NORMAL.getValue() == oriMemberBonusRange.getIncomeStatus()) {
cuMemberBonus.setRetailSameLevelIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailSameLevelIncome(), oriMemberBonusRange.getPretaxIncome()));
setRetailTotal(bdBonusDeduct, cuMemberBonus, oriMemberBonusRange);
}
memberBonusRangeList.add(oriMemberBonusRange);
calBonusIncome = ComputeUtil.computeAdd(calBonusIncome, bonusIncome);
pkParent = lastPkParent;
} else {
j--;
}
if (j == bdGrade.getAlgebra() - 1) {
beginGradeValue += 1;
comBuyPrice = ComputeUtil.computeSubtract(comBuyPrice, BigDecimal.ONE);
break;
}
}
} else {
if (isRange) {
pkParent = targetMemberRangeExt.getPkParent();
}
}
if (beginGradeValue > EGrade.S_VIP.getValue()) {
break;
}
// }
// if (ComputeUtil.compareGreaterThan(beginBuyPrice, sameBuyPrice)) {
// pkParent = lastPkParent;
// break;
// }
// lastPkParent = targetMemberRangeExt.getPkParent();
// if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus() ||
// ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory() ||
// targetMemberRangeExt.getEnableStatus() == EYesNo.NO.getIntValue() ||
// EIncomeStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getIncomeStatus()) {
// j--;
// continue;
// }
// BigDecimal bonusIncome = BigDecimal.ZERO;
// if (j == 0) {
// bonusIncome = bdGrade.getFirstAlgebra();
// } else if (j == 1) {
// bonusIncome = bdGrade.getSecondAlgebra();
// } else if (j == 2) {
// bonusIncome = bdGrade.getThirdAlgebra();
// }
// if (ComputeUtil.compareEqual(beginBuyPrice, sameBuyPrice)) {
// CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
// targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
// int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
// CuMemberBonusRange oriMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
// oriMemberBonusRange.setCalValue(BigDecimal.valueOf(10));
// oriMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(bonusIncome, saOrderItems.getWaresQuantity()), BigDecimal.ONE));
// oriMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
// oriMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
// oriMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
// oriRetailRangeRemark(saOrderExt, oriMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
// BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, oriMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
// if (EBonusIncomeStatus.NORMAL.getValue() == oriMemberBonusRange.getIncomeStatus()) {
// cuMemberBonus.setRetailSameLevelIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailSameLevelIncome(), oriMemberBonusRange.getPretaxIncome()));
// setRetailTotal(bdBonusDeduct, cuMemberBonus, oriMemberBonusRange);
// }
// memberBonusRangeList.add(oriMemberBonusRange);
// calBonusIncome = ComputeUtil.computeAdd(calBonusIncome, bonusIncome);
// pkParent = lastPkParent;
// } else {
// j--;
// }
// if (j == bdGrade.getAlgebra() - 1) {
// beginGradeValue += 1;
// comBuyPrice = ComputeUtil.computeSubtract(comBuyPrice, BigDecimal.ONE);
// break;
// }
// }
// } else {
// if (isRange) {
// pkParent = targetMemberRangeExt.getPkParent();
// }
// }
// if (beginGradeValue > EGrade.S_VIP.getValue()) {
// break;
// }
}
return memberBonusRangeList;
}

View File

@ -111,28 +111,29 @@
merge into ${rangeTableName} a
using (
<foreach collection="cuMemberRangeExtList" item="item" open=" " close=" " separator="union">
select #{item.pkMember} pk_member,#{item.pkAwards} pk_awards,#{item.pkGrade} pk_grade,
#{item.consumeBoxNum} consume_box_num,#{item.newBoxNum} new_bosx_num,#{item.pkShareAwards} pk_share_awards,
#{item.teamBoxNum} team_box_num,#{item.monthBoxNum} month_box_num,#{item.teamNewBoxNum} team_new_box_num,
#{item.consumePv} consume_pv,#{item.monthConsumePv} month_consume_pv,
#{item.newConsumePv} new_consume_pv,#{item.teamConsumeAmount} team_consume_amount,
#{item.teamMonthAmount} team_month_amount,#{item.teamMonthPv} team_month_pv,
#{item.teamNewPv} team_new_pv,#{item.teamNewAmount} team_new_amount,
#{item.teamConsumePv} team_consume_pv,#{item.newBoxNum} new_box_num,
#{item.recommendNum} recommend_num,#{item.teamNum} team_num,#{item.enableStatus} enable_status
select #{item.pkMember} pk_member, #{item.pkAwards} pk_awards, #{item.pkGrade} pk_grade,
#{item.consumeBoxNum} consume_box_num, #{item.newBoxNum} new_bosx_num, #{item.pkShareAwards} pk_share_awards,
#{item.teamBoxNum} team_box_num, #{item.monthBoxNum} month_box_num, #{item.teamNewBoxNum} team_new_box_num,
#{item.consumePv} consume_pv, #{item.monthConsumePv} month_consume_pv,
#{item.newConsumePv} new_consume_pv, #{item.teamConsumeAmount} team_consume_amount,
#{item.teamMonthAmount} team_month_amount, #{item.teamMonthPv} team_month_pv,
#{item.teamNewPv} team_new_pv, #{item.teamNewAmount} team_new_amount,
#{item.teamConsumePv} team_consume_pv, #{item.newBoxNum} new_box_num,
#{item.recommendNum} recommend_num, #{item.teamNum} team_num,
#{item.enableStatus} enable_status
from dual
</foreach>
) b
on (a.pk_member=b.pk_member)
when matched then
update set a.pk_awards=b.pk_awards,a.pk_grade=b.pk_grade,a.pk_share_awards=b.pk_share_awards,
a.consume_box_num=b.consume_box_num,a.new_box_num=b.new_box_num,a.team_box_num=b.team_box_num,
a.month_box_num=b.month_box_num,a.team_new_box_num=b.team_new_box_num,
a.consume_pv=b.consume_pv,a.month_consume_pv=b.month_consume_pv,a.new_consume_pv=b.new_consume_pv,
a.team_consume_amount=b.team_consume_amount,a.team_consume_pv=b.team_consume_pv,
a.team_month_amount=b.team_month_amount,a.team_month_pv=b.team_month_pv,
a.team_new_amount=b.team_new_amount,a.team_new_pv=b.team_new_pv,
a.recommend_num=b.recommend_num,a.team_num=b.team_num,a.enable_status=b.enable_status
update set a.pk_awards = b.pk_awards, a.pk_grade = b.pk_grade, a.pk_share_awards = b.pk_share_awards,
a.consume_box_num = b.consume_box_num, a.new_box_num = b.new_box_num, a.team_box_num = b.team_box_num,
a.month_box_num = b.month_box_num, a.team_new_box_num = b.team_new_box_num,
a.consume_pv = b.consume_pv, a.month_consume_pv = b.month_consume_pv, a.new_consume_pv = b.new_consume_pv,
a.team_consume_amount = b.team_consume_amount, a.team_consume_pv = b.team_consume_pv,
a.team_month_amount = b.team_month_amount, a.team_month_pv = b.team_month_pv,
a.team_new_amount = b.team_new_amount, a.team_new_pv = b.team_new_pv,
a.recommend_num = b.recommend_num, a.team_num = b.team_num, a.enable_status = b.enable_status
</update>
<!-- 当前网体更新极差秒接表 -->
@ -190,18 +191,18 @@
using (
<foreach collection="cuMemberRangeExtList" item="item" open=" " close=" " separator="union">
select #{item.pkMember} pk_member, #{item.pkGrade} pk_grade, #{item.pkAwards} pk_awards,
#{item.newConsumePv} new_consume_pv, #{item.teamNewAmount} team_new_amount,
#{item.teamNewPv} team_new_pv, #{item.teamNewBoxNum} team_new_box_num,
#{item.newBoxNum} new_box_num, #{item.enableStatus} enable_status
#{item.newBoxNum} new_box_num, #{item.newConsumePv} new_consume_pv,
#{item.teamNewBoxNum} team_new_box_num, #{item.teamNewPv} team_new_pv,
#{item.teamNewAmount} team_new_amount, #{item.enableStatus} enable_status
from dual
</foreach>
) b
on (a.pk_member = b.pk_member)
when matched then
update set a.pk_grade = b.pk_grade, a.pk_awards = b.pk_awards,
a.new_consume_pv = b.new_consume_pv, a.team_new_amount = b.team_new_amount,
a.team_new_pv = b.team_new_pv, a.team_new_box_num = b.team_new_box_num,
a.new_box_num = b.new_box_num, a.enable_status = b.enable_status
a.new_box_num = b.new_box_num, a.new_consume_pv = b.new_consume_pv,
a.team_new_box_num = b.team_new_box_num,a.team_new_pv = b.team_new_pv,
a.team_new_amount = b.team_new_amount,a.enable_status = b.enable_status
</update>
<update id="mergeMemberRetailGradeByMember">

View File

@ -17,15 +17,6 @@ public class RetailConstants {
* 直推平级收益比例每代拿商品价格的千分之五
*/
public static final BigDecimal SAME_RATIO = new BigDecimal("0.005");
/**
* 直推平缓收益代数每级都是10代
*/
public static final Integer SAME_ALGEBRA = 10;
/**
* 区域分红每盒2元
*/
public static final BigDecimal AREA_BOX_BONUS = new BigDecimal("2");
/**
* 盒数产品列表