From ec0006a40c2983315b6e0a1a61ed826da066f71e Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 12 Jun 2025 14:29:05 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E7=9B=B4=E6=8E=A8=E6=94=B6=E7=9B=8A?= =?UTF-8?q?=E3=80=81=E5=B9=B3=E7=BA=A7=E6=94=B6=E7=9B=8A=E5=A4=84=E7=90=86?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BonusSettleRangeHandle.java | 322 ++++++++---------- .../achieve/CuMemberRetailRangeMapper.xml | 47 +-- .../common/core/constant/RetailConstants.java | 9 - 3 files changed, 164 insertions(+), 214 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index 7fe627cc..5510c335 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -77,8 +77,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 会员结算map(key:会员ID,value:结算扩展) Map memberRangeExtMap = new HashMap<>(); - // 购买升级等级map(key:等级值,value:等级对象) - Map retaiBuyGradeMap = new TreeMap<>(); // 团队升级等级map(key:等级值,value:等级对象) Map retailTeamGradeMap = new TreeMap<>(); // 等级map(key:等级值,value:等级对象) @@ -86,9 +84,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 等级列表 List 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 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 cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, BonusRecordDetailVO bonusRecordDetailVO, @@ -444,6 +415,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { Map retaiBuyGradeMap = new TreeMap<>(); // 团队升级等级map(key:等级值,value:等级对象) Map retailTeamGradeMap = new TreeMap<>(); + // 等级map(key:等级值,value:等级对象) Map gradeMap = new HashMap<>(); // 等级map(key:等级ID,value:等级对象) Map 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; } diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml index a3d4a476..b6ae727b 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml @@ -111,28 +111,29 @@ merge into ${rangeTableName} a using ( - 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 ) 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 @@ -190,18 +191,18 @@ using ( 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 ) 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 diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java index b4cba048..bb1acc4f 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java @@ -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"); /** * 盒数产品列表