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(key:会员ID,value:结算扩展)
|
||||||
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
||||||
|
|
||||||
// 购买升级等级map(key:等级值,value:等级对象)
|
|
||||||
Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
|
|
||||||
// 团队升级等级map(key:等级值,value:等级对象)
|
// 团队升级等级map(key:等级值,value:等级对象)
|
||||||
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
|
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
|
||||||
// 等级map(key:等级值,value:等级对象)
|
// 等级map(key:等级值,value:等级对象)
|
||||||
|
@ -86,9 +84,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 等级列表
|
// 等级列表
|
||||||
List<BdGrade> retaiGradeList = bonusConfigDTO.getRetaiGradeList();
|
List<BdGrade> retaiGradeList = bonusConfigDTO.getRetaiGradeList();
|
||||||
for (BdGrade bdGrade : retaiGradeList) {
|
for (BdGrade bdGrade : retaiGradeList) {
|
||||||
if (bdGrade.getBoxNumber() > 0) {
|
|
||||||
retaiBuyGradeMap.put(bdGrade.getGradeValue(), bdGrade);
|
|
||||||
}
|
|
||||||
if (bdGrade.getBoxTotal() > 0) {
|
if (bdGrade.getBoxTotal() > 0) {
|
||||||
retailTeamGradeMap.put(bdGrade.getGradeValue(), bdGrade);
|
retailTeamGradeMap.put(bdGrade.getGradeValue(), bdGrade);
|
||||||
}
|
}
|
||||||
|
@ -102,28 +97,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
|
|
||||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
||||||
if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
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);
|
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));
|
cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, boxNum, cuMemberGradeList));
|
||||||
|
|
||||||
// TODO new 奖金处理
|
// 奖金处理
|
||||||
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
|
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
|
||||||
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|
||||||
|| EOrderType.RETAIL_UPGRADE.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));
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// 查询区域配置
|
// 查询区域配置
|
||||||
Map<String, CuMemberRetailRangeExt> countyRangeExtMap = new HashMap<>();
|
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,
|
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<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
|
||||||
// 团队升级等级map(key:等级值,value:等级对象)
|
// 团队升级等级map(key:等级值,value:等级对象)
|
||||||
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
|
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
|
||||||
|
// 等级map(key:等级值,value:等级对象)
|
||||||
Map<Integer, BdGrade> gradeMap = new HashMap<>();
|
Map<Integer, BdGrade> gradeMap = new HashMap<>();
|
||||||
// 等级map(key:等级ID,value:等级对象)
|
// 等级map(key:等级ID,value:等级对象)
|
||||||
Map<Integer, BdGrade> gradeIdMap = new HashMap<>();
|
Map<Integer, BdGrade> gradeIdMap = new HashMap<>();
|
||||||
|
@ -470,21 +442,11 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
cuMemberRetailRangeExt.setBuyNum(0);
|
cuMemberRetailRangeExt.setBuyNum(0);
|
||||||
// TODO new 目前一次性补差升级,不需要校验是不是当天了
|
// TODO new 目前一次性补差升级,不需要校验是不是当天了
|
||||||
cuMemberRetailRangeExt.setSameDate(EYesNo.NO.getIntValue());
|
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()) {
|
for (Integer gradeValue : retaiBuyGradeMap.keySet()) {
|
||||||
BdGrade bdGrade = retaiBuyGradeMap.get(gradeValue);
|
BdGrade bdGrade = retaiBuyGradeMap.get(gradeValue);
|
||||||
if (bdGrade.getBoxNumber() > 0 && cuMemberRetailRangeExt.getGradeValue().equals(gradeValue)) {
|
if (bdGrade.getBoxNumber() > 0 && cuMemberRetailRangeExt.getGradeValue().equals(gradeValue)) {
|
||||||
// TODO new 一次性补差,需要下个等级的盒数 - 当前等级盒数???
|
// TODO new 一次性补差,需要下个等级的盒数 - 当前等级盒数???
|
||||||
cuMemberRetailRangeExt.setBuyNum(bdGrade.getBoxNumber());
|
cuMemberRetailRangeExt.setBuyNum(bdGrade.getBoxNumber());
|
||||||
// if (cuMemberRetailRangeExt.getSameDate().equals(EYesNo.YES.getIntValue())) {
|
|
||||||
// cuMemberRetailRangeExt.setBuyNum(cuMemberRetailRangeExt.getNewBoxNum());
|
|
||||||
// } else {
|
|
||||||
// cuMemberRetailRangeExt.setBuyNum(bdGrade.getBoxNumber());
|
|
||||||
// }
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -541,8 +503,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 计算团队业绩、盒数,计算等级、奖衔
|
// 计算团队业绩、盒数,计算等级、奖衔
|
||||||
cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, null, boxNum, cuMemberGradeList));
|
cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, null, boxNum, cuMemberGradeList));
|
||||||
|
|
||||||
|
|
||||||
// TODO new 奖金处理
|
|
||||||
// 计算奖金 直推级差 + 平级收益
|
// 计算奖金 直推级差 + 平级收益
|
||||||
if ((EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|
if ((EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|
||||||
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType())
|
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType())
|
||||||
|
@ -1308,20 +1268,20 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||||
// 推荐人
|
// 推荐人
|
||||||
long pkParent = sourceMemberRangeExt.getPkParent();
|
long pkParent = sourceMemberRangeExt.getPkParent();
|
||||||
|
|
||||||
|
// // 商品价格
|
||||||
|
// BigDecimal beginBuyPrice = saOrderItems.getWaresPrice();
|
||||||
|
// BigDecimal comBuyPrice = saOrderItems.getWaresPrice();
|
||||||
|
//
|
||||||
|
// // 开始计算等级值
|
||||||
|
// int beginGradeValue = sourceMemberRangeExt.getGradeValue();
|
||||||
|
// // 直推级差收益
|
||||||
|
// BigDecimal calBonusIncome = BigDecimal.ZERO;
|
||||||
|
|
||||||
// 商品价格(没有乘商品数量)
|
// 商品价格(没有乘商品数量)
|
||||||
BigDecimal waresPrice = saOrderItems.getWaresPrice();
|
BigDecimal waresPrice = saOrderItems.getWaresPrice();
|
||||||
// 商品数量
|
// 商品数量
|
||||||
Integer waresQuantity = saOrderItems.getWaresQuantity();
|
Integer waresQuantity = saOrderItems.getWaresQuantity();
|
||||||
|
|
||||||
// 商品价格
|
|
||||||
BigDecimal beginBuyPrice = saOrderItems.getWaresPrice();
|
|
||||||
BigDecimal comBuyPrice = saOrderItems.getWaresPrice();
|
|
||||||
|
|
||||||
// 开始计算等级值
|
|
||||||
int beginGradeValue = sourceMemberRangeExt.getGradeValue();
|
|
||||||
// 直推级差收益
|
|
||||||
BigDecimal calBonusIncome = BigDecimal.ZERO;
|
|
||||||
|
|
||||||
// 前一个会员等级
|
// 前一个会员等级
|
||||||
int beforeGradeValue = 0;
|
int beforeGradeValue = 0;
|
||||||
// 前一个会员等级的平级收益人数
|
// 前一个会员等级的平级收益人数
|
||||||
|
@ -1348,6 +1308,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
// 当前会员等级值
|
// 当前会员等级值
|
||||||
int calGradeValue = targetMemberRangeExt.getGradeValue();
|
int calGradeValue = targetMemberRangeExt.getGradeValue();
|
||||||
|
// 当前会员等级
|
||||||
|
BdGrade bdGrade = gradeMap.get(calGradeValue);
|
||||||
|
|
||||||
// 直推级差税前收益
|
// 直推级差税前收益
|
||||||
BigDecimal rangeBonusIncome = null;
|
BigDecimal rangeBonusIncome = null;
|
||||||
|
@ -1380,8 +1342,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// V1 没有平级收益
|
// V1 没有平级收益
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (beforeSameAlgebra >= RetailConstants.SAME_ALGEBRA) {
|
if (beforeSameAlgebra >= bdGrade.getAlgebra()) {
|
||||||
// 平级收益已经满10代,不继续处理平级收益
|
// 平级收益已经满10代,不继续处理平级收益
|
||||||
|
if (EGrade.S_VIP.getValue() == beforeGradeValue) {
|
||||||
|
// 平级处理等级为最高级V5,则结束处理
|
||||||
|
break;
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// 平级收益(商品价格 * 千分之五) -- 2位小数,四舍五入
|
// 平级收益(商品价格 * 千分之五) -- 2位小数,四舍五入
|
||||||
|
@ -1448,135 +1414,127 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
memberBonusRangeList.add(oriMemberBonusRange);
|
memberBonusRangeList.add(oriMemberBonusRange);
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////
|
// // 如果价格是209,代表是第一单激活,只有平级收益,只有V5有平级收益
|
||||||
|
// if (beginBuyPrice.equals(BigDecimal.valueOf(209))) {
|
||||||
|
// calGradeValue = EGrade.S_VIP.getValue();
|
||||||
// 如果价格是209,代表是第一单激活,只有平级收益,只有V5有平级收益
|
// if (beginGradeValue < EGrade.S_VIP.getValue()) {
|
||||||
if (beginBuyPrice.equals(BigDecimal.valueOf(209))) {
|
// beginGradeValue = EGrade.S_VIP.getValue();
|
||||||
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;
|
||||||
BdGrade bdGrade = gradeMap.get(calGradeValue);
|
// // 有极差或者有平级
|
||||||
BigDecimal buyPrice = bdGrade.getBuyPrice();
|
// if (ComputeUtil.compareGreaterThan(beginBuyPrice, buyPrice)) {
|
||||||
boolean isRange = Boolean.FALSE;
|
// // 计算极差
|
||||||
// 有极差或者有平级
|
// CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
|
||||||
if (ComputeUtil.compareGreaterThan(beginBuyPrice, buyPrice)) {
|
// 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);
|
||||||
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
|
// cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
|
||||||
targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
|
// cuMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(ComputeUtil.computeSubtract(ComputeUtil.computeSubtract(beginBuyPrice, buyPrice), calBonusIncome), saOrderItems.getWaresQuantity()), BigDecimal.ONE));
|
||||||
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_RANGE_INCOME.getValue());
|
// cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
|
||||||
CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
|
// cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
|
||||||
cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
|
// cuMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
|
||||||
cuMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(ComputeUtil.computeSubtract(ComputeUtil.computeSubtract(beginBuyPrice, buyPrice), calBonusIncome), saOrderItems.getWaresQuantity()), BigDecimal.ONE));
|
// rangeRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
|
||||||
cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
|
// BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
|
||||||
cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
|
// if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) {
|
||||||
cuMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
|
// cuMemberBonus.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome()));
|
||||||
rangeRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
|
// setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange);
|
||||||
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
|
// }
|
||||||
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) {
|
// memberBonusRangeList.add(cuMemberBonusRange);
|
||||||
cuMemberBonus.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome()));
|
//
|
||||||
setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange);
|
// beginBuyPrice = buyPrice;
|
||||||
}
|
// comBuyPrice = buyPrice;
|
||||||
memberBonusRangeList.add(cuMemberBonusRange);
|
// beginGradeValue = calGradeValue;
|
||||||
|
// sourceMemberRangeExt = targetMemberRangeExt;
|
||||||
beginBuyPrice = buyPrice;
|
// calBonusIncome = BigDecimal.ZERO;
|
||||||
comBuyPrice = buyPrice;
|
// } else {
|
||||||
beginGradeValue = calGradeValue;
|
// isRange = Boolean.TRUE;
|
||||||
sourceMemberRangeExt = targetMemberRangeExt;
|
// pkParent = targetMemberRangeExt.getPkMember();
|
||||||
calBonusIncome = BigDecimal.ZERO;
|
// }
|
||||||
} else {
|
// if (saOrderExt.getOrderType().equals(EOrderType.RETAIL_CONSUME.getValue())) {
|
||||||
isRange = Boolean.TRUE;
|
// if (isRange) {
|
||||||
pkParent = targetMemberRangeExt.getPkMember();
|
// pkParent = targetMemberRangeExt.getPkParent();
|
||||||
}
|
// }
|
||||||
if (saOrderExt.getOrderType().equals(EOrderType.RETAIL_CONSUME.getValue())) {
|
// continue;
|
||||||
if (isRange) {
|
// }
|
||||||
pkParent = targetMemberRangeExt.getPkParent();
|
// if (bdGrade.getAlgebra() > 0) {
|
||||||
}
|
// Long lastPkParent = pkParent;
|
||||||
continue;
|
// for (int j = 0; j < bdGrade.getAlgebra(); j++) {
|
||||||
}
|
// targetMemberRangeExt = memberRangeExtMap.get(lastPkParent);
|
||||||
if (bdGrade.getAlgebra() > 0) {
|
// if (targetMemberRangeExt == null) {
|
||||||
Long lastPkParent = pkParent;
|
// if (memberRangeExtMap.get(pkParent) == null) {
|
||||||
for (int j = 0; j < bdGrade.getAlgebra(); j++) {
|
// break;
|
||||||
targetMemberRangeExt = memberRangeExtMap.get(lastPkParent);
|
// }
|
||||||
if (targetMemberRangeExt == null) {
|
// pkParent = memberRangeExtMap.get(pkParent).getPkParent();
|
||||||
if (memberRangeExtMap.get(pkParent) == null) {
|
// break;
|
||||||
break;
|
// }
|
||||||
}
|
// calGradeValue = targetMemberRangeExt.getGradeValue();
|
||||||
pkParent = memberRangeExtMap.get(pkParent).getPkParent();
|
// BigDecimal sameBuyPrice = gradeMap.get(calGradeValue).getBuyPrice();
|
||||||
break;
|
// // 有平级
|
||||||
}
|
// if (ComputeUtil.compareGreaterThan(sameBuyPrice, comBuyPrice)) {
|
||||||
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;
|
|
||||||
// lastPkParent = targetMemberRangeExt.getPkParent();
|
// lastPkParent = targetMemberRangeExt.getPkParent();
|
||||||
|
// pkParent = targetMemberRangeExt.getPkParent();
|
||||||
// j--;
|
// j--;
|
||||||
// continue;
|
// continue;
|
||||||
}
|
// }
|
||||||
lastPkParent = targetMemberRangeExt.getPkParent();
|
// if (ComputeUtil.compareGreaterThan(beginBuyPrice, sameBuyPrice)) {
|
||||||
if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus() ||
|
// pkParent = lastPkParent;
|
||||||
ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory() ||
|
// break;
|
||||||
targetMemberRangeExt.getEnableStatus() == EYesNo.NO.getIntValue() ||
|
// }
|
||||||
EIncomeStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getIncomeStatus()) {
|
// lastPkParent = targetMemberRangeExt.getPkParent();
|
||||||
j--;
|
// if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus() ||
|
||||||
continue;
|
// ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory() ||
|
||||||
}
|
// targetMemberRangeExt.getEnableStatus() == EYesNo.NO.getIntValue() ||
|
||||||
BigDecimal bonusIncome = BigDecimal.ZERO;
|
// EIncomeStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getIncomeStatus()) {
|
||||||
if (j == 0) {
|
// j--;
|
||||||
bonusIncome = bdGrade.getFirstAlgebra();
|
// continue;
|
||||||
} else if (j == 1) {
|
// }
|
||||||
bonusIncome = bdGrade.getSecondAlgebra();
|
// BigDecimal bonusIncome = BigDecimal.ZERO;
|
||||||
} else if (j == 2) {
|
// if (j == 0) {
|
||||||
bonusIncome = bdGrade.getThirdAlgebra();
|
// bonusIncome = bdGrade.getFirstAlgebra();
|
||||||
}
|
// } else if (j == 1) {
|
||||||
if (ComputeUtil.compareEqual(beginBuyPrice, sameBuyPrice)) {
|
// bonusIncome = bdGrade.getSecondAlgebra();
|
||||||
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
|
// } else if (j == 2) {
|
||||||
targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
|
// bonusIncome = bdGrade.getThirdAlgebra();
|
||||||
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
|
// }
|
||||||
CuMemberBonusRange oriMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
|
// if (ComputeUtil.compareEqual(beginBuyPrice, sameBuyPrice)) {
|
||||||
oriMemberBonusRange.setCalValue(BigDecimal.valueOf(10));
|
// CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
|
||||||
oriMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(bonusIncome, saOrderItems.getWaresQuantity()), BigDecimal.ONE));
|
// targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
|
||||||
oriMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
|
// int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
|
||||||
oriMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
|
// CuMemberBonusRange oriMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
|
||||||
oriMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
|
// oriMemberBonusRange.setCalValue(BigDecimal.valueOf(10));
|
||||||
oriRetailRangeRemark(saOrderExt, oriMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
|
// oriMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(bonusIncome, saOrderItems.getWaresQuantity()), BigDecimal.ONE));
|
||||||
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, oriMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
|
// oriMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
|
||||||
if (EBonusIncomeStatus.NORMAL.getValue() == oriMemberBonusRange.getIncomeStatus()) {
|
// oriMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
|
||||||
cuMemberBonus.setRetailSameLevelIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailSameLevelIncome(), oriMemberBonusRange.getPretaxIncome()));
|
// oriMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
|
||||||
setRetailTotal(bdBonusDeduct, cuMemberBonus, oriMemberBonusRange);
|
// oriRetailRangeRemark(saOrderExt, oriMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
|
||||||
}
|
// BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, oriMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
|
||||||
memberBonusRangeList.add(oriMemberBonusRange);
|
// if (EBonusIncomeStatus.NORMAL.getValue() == oriMemberBonusRange.getIncomeStatus()) {
|
||||||
calBonusIncome = ComputeUtil.computeAdd(calBonusIncome, bonusIncome);
|
// cuMemberBonus.setRetailSameLevelIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailSameLevelIncome(), oriMemberBonusRange.getPretaxIncome()));
|
||||||
pkParent = lastPkParent;
|
// setRetailTotal(bdBonusDeduct, cuMemberBonus, oriMemberBonusRange);
|
||||||
} else {
|
// }
|
||||||
j--;
|
// memberBonusRangeList.add(oriMemberBonusRange);
|
||||||
}
|
// calBonusIncome = ComputeUtil.computeAdd(calBonusIncome, bonusIncome);
|
||||||
if (j == bdGrade.getAlgebra() - 1) {
|
// pkParent = lastPkParent;
|
||||||
beginGradeValue += 1;
|
// } else {
|
||||||
comBuyPrice = ComputeUtil.computeSubtract(comBuyPrice, BigDecimal.ONE);
|
// j--;
|
||||||
break;
|
// }
|
||||||
}
|
// if (j == bdGrade.getAlgebra() - 1) {
|
||||||
}
|
// beginGradeValue += 1;
|
||||||
} else {
|
// comBuyPrice = ComputeUtil.computeSubtract(comBuyPrice, BigDecimal.ONE);
|
||||||
if (isRange) {
|
// break;
|
||||||
pkParent = targetMemberRangeExt.getPkParent();
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// } else {
|
||||||
if (beginGradeValue > EGrade.S_VIP.getValue()) {
|
// if (isRange) {
|
||||||
break;
|
// pkParent = targetMemberRangeExt.getPkParent();
|
||||||
}
|
// }
|
||||||
|
// }
|
||||||
|
// if (beginGradeValue > EGrade.S_VIP.getValue()) {
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
return memberBonusRangeList;
|
return memberBonusRangeList;
|
||||||
}
|
}
|
||||||
|
|
|
@ -119,7 +119,8 @@
|
||||||
#{item.teamMonthAmount} team_month_amount, #{item.teamMonthPv} team_month_pv,
|
#{item.teamMonthAmount} team_month_amount, #{item.teamMonthPv} team_month_pv,
|
||||||
#{item.teamNewPv} team_new_pv, #{item.teamNewAmount} team_new_amount,
|
#{item.teamNewPv} team_new_pv, #{item.teamNewAmount} team_new_amount,
|
||||||
#{item.teamConsumePv} team_consume_pv, #{item.newBoxNum} new_box_num,
|
#{item.teamConsumePv} team_consume_pv, #{item.newBoxNum} new_box_num,
|
||||||
#{item.recommendNum} recommend_num,#{item.teamNum} team_num,#{item.enableStatus} enable_status
|
#{item.recommendNum} recommend_num, #{item.teamNum} team_num,
|
||||||
|
#{item.enableStatus} enable_status
|
||||||
from dual
|
from dual
|
||||||
</foreach>
|
</foreach>
|
||||||
) b
|
) b
|
||||||
|
@ -190,18 +191,18 @@
|
||||||
using (
|
using (
|
||||||
<foreach collection="cuMemberRangeExtList" item="item" open=" " close=" " separator="union">
|
<foreach collection="cuMemberRangeExtList" item="item" open=" " close=" " separator="union">
|
||||||
select #{item.pkMember} pk_member, #{item.pkGrade} pk_grade, #{item.pkAwards} pk_awards,
|
select #{item.pkMember} pk_member, #{item.pkGrade} pk_grade, #{item.pkAwards} pk_awards,
|
||||||
#{item.newConsumePv} new_consume_pv, #{item.teamNewAmount} team_new_amount,
|
#{item.newBoxNum} new_box_num, #{item.newConsumePv} new_consume_pv,
|
||||||
#{item.teamNewPv} team_new_pv, #{item.teamNewBoxNum} team_new_box_num,
|
#{item.teamNewBoxNum} team_new_box_num, #{item.teamNewPv} team_new_pv,
|
||||||
#{item.newBoxNum} new_box_num, #{item.enableStatus} enable_status
|
#{item.teamNewAmount} team_new_amount, #{item.enableStatus} enable_status
|
||||||
from dual
|
from dual
|
||||||
</foreach>
|
</foreach>
|
||||||
) 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_grade, a.pk_awards = b.pk_awards,
|
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.new_box_num = b.new_box_num, a.new_consume_pv = b.new_consume_pv,
|
||||||
a.team_new_pv = b.team_new_pv, a.team_new_box_num = b.team_new_box_num,
|
a.team_new_box_num = b.team_new_box_num,a.team_new_pv = b.team_new_pv,
|
||||||
a.new_box_num = b.new_box_num, a.enable_status = b.enable_status
|
a.team_new_amount = b.team_new_amount,a.enable_status = b.enable_status
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<update id="mergeMemberRetailGradeByMember">
|
<update id="mergeMemberRetailGradeByMember">
|
||||||
|
|
|
@ -17,15 +17,6 @@ public class RetailConstants {
|
||||||
* 直推平级收益比例(每代拿商品价格的千分之五)
|
* 直推平级收益比例(每代拿商品价格的千分之五)
|
||||||
*/
|
*/
|
||||||
public static final BigDecimal SAME_RATIO = new BigDecimal("0.005");
|
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