forked from angelo/java-retail-app
## 直推收益、平级收益处理;
This commit is contained in:
parent
564fb2bf12
commit
ec0006a40c
|
@ -77,8 +77,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 会员结算map(key:会员ID,value:结算扩展)
|
||||
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
||||
|
||||
// 购买升级等级map(key:等级值,value:等级对象)
|
||||
Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
|
||||
// 团队升级等级map(key:等级值,value:等级对象)
|
||||
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
|
||||
// 等级map(key:等级值,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,11 +144,8 @@ 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());
|
||||
}
|
||||
// 注册、升级 并且有盒数商品,算激活
|
||||
sourceMemberRangeExt.setEnableStatus(EYesNo.YES.getIntValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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<>();
|
||||
// 团队升级等级map(key:等级值,value:等级对象)
|
||||
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
|
||||
// 等级map(key:等级值,value:等级对象)
|
||||
Map<Integer, BdGrade> gradeMap = new HashMap<>();
|
||||
// 等级map(key:等级ID,value:等级对象)
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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");
|
||||
|
||||
/**
|
||||
* 盒数产品列表
|
||||
|
|
Loading…
Reference in New Issue