forked from angelo/java-retail-app
## 注册、升级、复购、重消订单业绩、盒数都算自己小区;
This commit is contained in:
parent
572b0caf54
commit
66973a5675
|
@ -8,7 +8,7 @@ import com.hzs.bonus.detail.service.ICuMemberAwardsService;
|
||||||
import com.hzs.bonus.detail.service.ICuMemberGradeService;
|
import com.hzs.bonus.detail.service.ICuMemberGradeService;
|
||||||
import com.hzs.bonus.order.service.IBonusOrderService;
|
import com.hzs.bonus.order.service.IBonusOrderService;
|
||||||
import com.hzs.common.core.constant.MagicNumberConstants;
|
import com.hzs.common.core.constant.MagicNumberConstants;
|
||||||
import com.hzs.common.core.constant.RetailProductConstants;
|
import com.hzs.common.core.constant.RetailConstants;
|
||||||
import com.hzs.common.core.constant.TableNameConstants;
|
import com.hzs.common.core.constant.TableNameConstants;
|
||||||
import com.hzs.common.core.constant.msg.BonusMsgConstants;
|
import com.hzs.common.core.constant.msg.BonusMsgConstants;
|
||||||
import com.hzs.common.core.enums.*;
|
import com.hzs.common.core.enums.*;
|
||||||
|
@ -133,27 +133,21 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 订单指定产品盒数
|
// 订单指定产品盒数
|
||||||
int boxNum = 0;
|
int boxNum = 0;
|
||||||
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
|
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
|
||||||
for (String waresCode : RetailProductConstants.ALL_BOX_WARES_LIST) {
|
if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
|
||||||
if (saOrderItems.getWaresCode().equals(waresCode)) {
|
|
||||||
boxNum += saOrderItems.getWaresQuantity();
|
boxNum += saOrderItems.getWaresQuantity();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
saOrderExt.setBoxNum(boxNum);
|
saOrderExt.setBoxNum(boxNum);
|
||||||
|
|
||||||
// 订单业绩
|
// 订单业绩
|
||||||
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
||||||
if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()
|
// 注册、升级、复购、重消,盒数、业绩算个人累计数据(盒数、业绩)
|
||||||
|| EOrderType.RETAIL_CONSUME.getValue() == saOrderExt.getOrderType()
|
|
||||||
) {
|
|
||||||
// 复购、重消,盒数、业绩算个人累计数据(盒数、业绩)
|
|
||||||
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() + boxNum);
|
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() + boxNum);
|
||||||
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() + boxNum);
|
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() + boxNum);
|
||||||
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
|
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
|
||||||
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getConsumePv(), orderAchieve));
|
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getConsumePv(), orderAchieve));
|
||||||
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
|
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
|
||||||
}
|
|
||||||
|
|
||||||
// 会员等级升级记录
|
// 会员等级升级记录
|
||||||
List<CuMemberGrade> cuMemberGradeList = new ArrayList<>();
|
List<CuMemberGrade> cuMemberGradeList = new ArrayList<>();
|
||||||
|
@ -166,25 +160,30 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
|
|
||||||
// TODO new 奖金处理
|
// TODO new 奖金处理
|
||||||
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
|
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
|
||||||
// 计算奖金 计算平级收益
|
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|
||||||
|
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()
|
||||||
|
) {
|
||||||
|
// 注册、升级订单,计算奖金: 直推级差收益 + 平级收益
|
||||||
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
|
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
|
||||||
for (String waresCode : RetailProductConstants.ALL_BOX_WARES_LIST) {
|
if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
|
||||||
if (saOrderItems.getWaresCode().equals(waresCode)) {
|
// 指定盒数商品
|
||||||
// 计算级差收益,平级收益
|
// 计算直推级差收益 + 平级收益
|
||||||
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() ||
|
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|
||||||
EOrderType.RETAIL_REPURCHASE.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<>();
|
||||||
List<CuMemberRetailRangeExt> countyRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailSecondRangeByCounty(rangeTableName, secondRangeTableName, saOrderExt.getRecCounty());
|
List<CuMemberRetailRangeExt> countyRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailSecondRangeByCounty(rangeTableName, secondRangeTableName, saOrderExt.getRecCounty());
|
||||||
countyRangeExtList.forEach(cuMemberRetailRangeExt ->
|
countyRangeExtList.forEach(cuMemberRetailRangeExt ->
|
||||||
countyRangeExtMap.put(cuMemberRetailRangeExt.getSystemType() + "_" + cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt));
|
countyRangeExtMap.put(cuMemberRetailRangeExt.getSystemType() + "_" + cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt));
|
||||||
|
|
||||||
// 计算区域奖
|
// 计算区域奖
|
||||||
CuMemberBonusDetail cuMemberBonusDetail = calculateRetailAreaBonus(countyRangeExtMap, bonusConfigDTO, currentPeriod, memberRangeExtMap, cuMemberBonusMap, saOrderExt);
|
CuMemberBonusDetail cuMemberBonusDetail = calculateRetailAreaBonus(countyRangeExtMap, bonusConfigDTO, currentPeriod, memberRangeExtMap, cuMemberBonusMap, saOrderExt);
|
||||||
if (cuMemberBonusDetail != null) {
|
if (cuMemberBonusDetail != null) {
|
||||||
|
@ -277,27 +276,21 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 先算等级 注册、升级计算等级
|
// 先算等级 注册、升级计算等级
|
||||||
int boxNum = 0;
|
int boxNum = 0;
|
||||||
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
|
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
|
||||||
for (String waresCode : RetailProductConstants.ALL_BOX_WARES_LIST) {
|
if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
|
||||||
if (saOrderItems.getWaresCode().equals(waresCode)) {
|
|
||||||
boxNum += saOrderItems.getWaresQuantity();
|
boxNum += saOrderItems.getWaresQuantity();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
saOrderExt.setBoxNum(boxNum);
|
saOrderExt.setBoxNum(boxNum);
|
||||||
|
|
||||||
// 订单业绩
|
// 订单业绩
|
||||||
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
||||||
if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()
|
|
||||||
|| EOrderType.RETAIL_CONSUME.getValue() == saOrderExt.getOrderType()
|
|
||||||
) {
|
|
||||||
// 复购、重消,盒数、业绩算个人累计数据(盒数、业绩)
|
// 复购、重消,盒数、业绩算个人累计数据(盒数、业绩)
|
||||||
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() - boxNum);
|
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() - boxNum);
|
||||||
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() - boxNum);
|
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() - boxNum);
|
||||||
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getConsumePv(), orderAchieve));
|
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getConsumePv(), orderAchieve));
|
||||||
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
|
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
|
||||||
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
|
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
|
||||||
}
|
|
||||||
|
|
||||||
// 会员等级map
|
// 会员等级map
|
||||||
Map<String, CuMemberGrade> cuMemberGradeMap = new HashMap<>();
|
Map<String, CuMemberGrade> cuMemberGradeMap = new HashMap<>();
|
||||||
|
@ -527,28 +520,21 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 计算自消费奖衔
|
// 计算自消费奖衔
|
||||||
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||||
// 订单指定产品盒数(计算等级使用)
|
// 订单指定产品盒数(计算等级使用)
|
||||||
int boxNum = saOrderExt.getBoxNum();
|
int boxNum = 0;
|
||||||
// int boxNum = 0;
|
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
|
||||||
// for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
|
if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
|
||||||
// for (String waresCode : RetailProductConstants.ALL_BOX_WARES_LIST) {
|
boxNum += saOrderItems.getWaresQuantity();
|
||||||
// if (saOrderItems.getWaresCode() != null && saOrderItems.getWaresCode().equals(waresCode)) {
|
break;
|
||||||
// boxNum += saOrderItems.getWaresQuantity();
|
}
|
||||||
// break;
|
}
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// 个人累计消费pv
|
// 个人累计消费pv
|
||||||
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
||||||
if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()
|
|
||||||
|| EOrderType.RETAIL_CONSUME.getValue() == saOrderExt.getOrderType()
|
|
||||||
) {
|
|
||||||
// 复购、重消,盒数、业绩算个人累计数据(盒数、业绩)
|
// 复购、重消,盒数、业绩算个人累计数据(盒数、业绩)
|
||||||
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() + boxNum);
|
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() + boxNum);
|
||||||
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() + boxNum);
|
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() + boxNum);
|
||||||
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getConsumePv(), orderAchieve));
|
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getConsumePv(), orderAchieve));
|
||||||
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
|
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
|
||||||
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
|
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
|
||||||
}
|
|
||||||
// 计算自己等级、奖衔等
|
// 计算自己等级、奖衔等
|
||||||
calculateGradeAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, null, cuMemberGradeList, cuMemberAwardsList, sourceMemberRangeExt);
|
calculateGradeAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, null, cuMemberGradeList, cuMemberAwardsList, sourceMemberRangeExt);
|
||||||
// 计算团队业绩、盒数,计算等级、奖衔
|
// 计算团队业绩、盒数,计算等级、奖衔
|
||||||
|
@ -1310,35 +1296,83 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算极差收益,根据极差收益计算平级收益
|
* 计算直推级差收益,根据直推级差收益计算平级收益
|
||||||
*/
|
*/
|
||||||
List<CuMemberBonusRange> calculateRetailRangeBonus(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, Map<Long, CuMemberBonus> cuMemberBonusMap,
|
List<CuMemberBonusRange> calculateRetailRangeBonus(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, Map<Long, CuMemberBonus> cuMemberBonusMap,
|
||||||
Map<Integer, BdGrade> gradeMap, BonusConfigDTO bonusConfigDTO, Integer period,
|
Map<Integer, BdGrade> gradeMap, BonusConfigDTO bonusConfigDTO, Integer period,
|
||||||
SaOrderWaresExt saOrderItems, SaOrderExt saOrderExt) {
|
SaOrderWaresExt saOrderItems, SaOrderExt saOrderExt) {
|
||||||
|
// 直推级差返回数据
|
||||||
List<CuMemberBonusRange> memberBonusRangeList = new ArrayList<>();
|
List<CuMemberBonusRange> memberBonusRangeList = new ArrayList<>();
|
||||||
// 用等级计算,按照一级级算
|
// 用等级计算,按照一级级算
|
||||||
|
|
||||||
|
// 订单下单人自己
|
||||||
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 beginBuyPrice = saOrderItems.getWaresPrice();
|
||||||
BigDecimal comBuyPrice = saOrderItems.getWaresPrice();
|
BigDecimal comBuyPrice = saOrderItems.getWaresPrice();
|
||||||
|
|
||||||
|
// 开始计算等级值
|
||||||
int beginGradeValue = sourceMemberRangeExt.getGradeValue();
|
int beginGradeValue = sourceMemberRangeExt.getGradeValue();
|
||||||
|
// 直推级差收益
|
||||||
BigDecimal calBonusIncome = BigDecimal.ZERO;
|
BigDecimal calBonusIncome = BigDecimal.ZERO;
|
||||||
// 计算极差
|
|
||||||
|
// 临时等级
|
||||||
|
int tmpGradeValue = 0;
|
||||||
|
// 计算直推级差
|
||||||
while (true) {
|
while (true) {
|
||||||
|
// 推荐人
|
||||||
CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(pkParent);
|
CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(pkParent);
|
||||||
if (targetMemberRangeExt == null) {
|
if (targetMemberRangeExt == null) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
// 推荐人的推荐人
|
||||||
pkParent = targetMemberRangeExt.getPkParent();
|
pkParent = targetMemberRangeExt.getPkParent();
|
||||||
if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus() ||
|
|
||||||
ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory() ||
|
// TODO new 新处理奖金
|
||||||
targetMemberRangeExt.getEnableStatus() == EYesNo.NO.getIntValue() ||
|
|
||||||
targetMemberRangeExt.getGradeValue() == EGrade.START_UP.getValue() ||
|
if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus()
|
||||||
EIncomeStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getIncomeStatus()) {
|
|| ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory()
|
||||||
|
|| targetMemberRangeExt.getEnableStatus() == EYesNo.NO.getIntValue()
|
||||||
|
|| targetMemberRangeExt.getGradeValue() == EGrade.START_UP.getValue()
|
||||||
|
|| EIncomeStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getIncomeStatus()) {
|
||||||
|
// 停算收益、非正常会员、未激活、等级为顾客、停止收益,直接跳过
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// 推荐V1 有额外100
|
// 当前会员等级值
|
||||||
int calGradeValue = targetMemberRangeExt.getGradeValue();
|
int calGradeValue = targetMemberRangeExt.getGradeValue();
|
||||||
|
|
||||||
|
// 税前收益
|
||||||
|
BigDecimal pretaxIncome;
|
||||||
|
if (tmpGradeValue == 0) {
|
||||||
|
// 临时等级为0
|
||||||
|
tmpGradeValue = calGradeValue;
|
||||||
|
|
||||||
|
if (EGrade.HAI_FAN.getValue() == calGradeValue) {
|
||||||
|
// VIP,拿1份40
|
||||||
|
pretaxIncome = RetailConstants.LEVEL_RANGE_BONUS;
|
||||||
|
} else if (EGrade.YOU_KE.getValue() == calGradeValue) {
|
||||||
|
// SVIP,拿2份40
|
||||||
|
pretaxIncome = RetailConstants.LEVEL_RANGE_BONUS.multiply(new BigDecimal("2"));
|
||||||
|
} else if (EGrade.MAKER.getValue() == calGradeValue) {
|
||||||
|
// 卓越,拿3份40
|
||||||
|
pretaxIncome = RetailConstants.LEVEL_RANGE_BONUS.multiply(new BigDecimal("3"));
|
||||||
|
} else if (EGrade.VIP.getValue() == calGradeValue) {
|
||||||
|
// 首席,拿4份40
|
||||||
|
pretaxIncome = RetailConstants.LEVEL_RANGE_BONUS.multiply(new BigDecimal("4"));
|
||||||
|
} else if (EGrade.S_VIP.getValue() == calGradeValue) {
|
||||||
|
// 合伙人,拿5份40
|
||||||
|
pretaxIncome = RetailConstants.LEVEL_RANGE_BONUS.multiply(new BigDecimal("5"));
|
||||||
|
}
|
||||||
|
} else if (calGradeValue == tmpGradeValue) {
|
||||||
|
// 当前会员等级
|
||||||
|
|
||||||
|
} else if (calGradeValue > tmpGradeValue) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 如果价格是209,代表是第一单激活,只有平级收益,只有V5有平级收益
|
// 如果价格是209,代表是第一单激活,只有平级收益,只有V5有平级收益
|
||||||
if (beginBuyPrice.equals(BigDecimal.valueOf(209))) {
|
if (beginBuyPrice.equals(BigDecimal.valueOf(209))) {
|
||||||
calGradeValue = EGrade.S_VIP.getValue();
|
calGradeValue = EGrade.S_VIP.getValue();
|
||||||
|
@ -1514,7 +1548,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
|
|
||||||
BigDecimal boxNumBig = new BigDecimal(saOrder.getBoxNum());
|
BigDecimal boxNumBig = new BigDecimal(saOrder.getBoxNum());
|
||||||
// 处理区域收益(每盒2元)
|
// 处理区域收益(每盒2元)
|
||||||
BigDecimal benefitIncome = RetailProductConstants.AREA_BOX_BONUS.multiply(boxNumBig);
|
BigDecimal benefitIncome = RetailConstants.AREA_BOX_BONUS.multiply(boxNumBig);
|
||||||
CuMemberBonusDetail cuMemberBonusDetail = packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, null, BigDecimal.ZERO, benefitIncome,
|
CuMemberBonusDetail cuMemberBonusDetail = packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, null, BigDecimal.ZERO, benefitIncome,
|
||||||
cuMemberRetailRangeExt, EBonusItems.RETAIL_AREA_INCOME.getValue(), BonusMsgConstants.RETAIL_AREA_INCOME);
|
cuMemberRetailRangeExt, EBonusItems.RETAIL_AREA_INCOME.getValue(), BonusMsgConstants.RETAIL_AREA_INCOME);
|
||||||
cuMemberBonusDetail.setCalAchieve(boxNumBig);
|
cuMemberBonusDetail.setCalAchieve(boxNumBig);
|
||||||
|
|
|
@ -18,7 +18,6 @@ import com.hzs.common.domain.sale.ext.BdWaresDetailExt;
|
||||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||||
import com.hzs.common.domain.sale.ext.SaOrderWaresLimitExt;
|
import com.hzs.common.domain.sale.ext.SaOrderWaresLimitExt;
|
||||||
import com.hzs.common.domain.sale.order.*;
|
import com.hzs.common.domain.sale.order.*;
|
||||||
import com.hzs.common.domain.sale.product.BdProduct;
|
|
||||||
import com.hzs.common.domain.sale.wares.BdWaresRange;
|
import com.hzs.common.domain.sale.wares.BdWaresRange;
|
||||||
import com.hzs.common.domain.system.base.BdStorehouse;
|
import com.hzs.common.domain.system.base.BdStorehouse;
|
||||||
import com.hzs.common.domain.system.config.BdGrade;
|
import com.hzs.common.domain.system.config.BdGrade;
|
||||||
|
@ -82,8 +81,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
||||||
private ISaOrderTempService iSaOrderTempService;
|
private ISaOrderTempService iSaOrderTempService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISaOrderWaresLimitService iSaOrderWaresLimitService;
|
private ISaOrderWaresLimitService iSaOrderWaresLimitService;
|
||||||
@Autowired
|
|
||||||
private IBdProductService iBdProductService;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RedisService redisService;
|
private RedisService redisService;
|
||||||
|
@ -820,7 +817,9 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
||||||
// 指定商品拆分 并且 非赠品
|
// 指定商品拆分 并且 非赠品
|
||||||
if (boxProductList.contains(saOrderItems.getWareCode())
|
if (boxProductList.contains(saOrderItems.getWareCode())
|
||||||
&& EYesNo.NO.getIntValue() == saOrderItems.getIsGift()) {
|
&& EYesNo.NO.getIntValue() == saOrderItems.getIsGift()) {
|
||||||
orderWaresMap.merge(saOrderItems.getPkWares() + "-" + saOrderItems.getPrice(), saOrderItems.getWaresQuantity(), Integer::sum);
|
// key: 商品ID-商品价格(产品价格*产品数量)
|
||||||
|
String key = saOrderItems.getPkWares() + "-" + (saOrderItems.getPrice().multiply(new BigDecimal(saOrderItems.getQuantity())));
|
||||||
|
orderWaresMap.merge(key, saOrderItems.getWaresQuantity(), Integer::sum);
|
||||||
|
|
||||||
waresLimitMap.merge(saOrderItems.getPkWares(), saOrderItems.getWaresQuantity(), Integer::sum);
|
waresLimitMap.merge(saOrderItems.getPkWares(), saOrderItems.getWaresQuantity(), Integer::sum);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,16 @@ import java.util.List;
|
||||||
/**
|
/**
|
||||||
* 新零售商品常量类
|
* 新零售商品常量类
|
||||||
*/
|
*/
|
||||||
public class RetailProductConstants {
|
public class RetailConstants {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 直推级差等级收益(每个等级为40元)
|
||||||
|
*/
|
||||||
|
public static final BigDecimal LEVEL_RANGE_BONUS = new BigDecimal("40");
|
||||||
|
/**
|
||||||
|
* 直推平级收益比例(每代拿商品价格的千分之五)
|
||||||
|
*/
|
||||||
|
public static final BigDecimal LEVEL_RATIO = new BigDecimal("0.005");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 区域分红,每盒2元
|
* 区域分红,每盒2元
|
|
@ -5,17 +5,13 @@ import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 会员收益状态 会员表,会员网体表,奖金汇总表
|
* 会员收益状态 会员表,会员网体表,奖金汇总表
|
||||||
* @Author: sui q
|
|
||||||
* @Time: 2022/11/4 11:03
|
|
||||||
* @Classname: EIncomeStatus
|
|
||||||
* @PackageName: com.hzs.common.core.enums
|
|
||||||
*/
|
*/
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Getter
|
@Getter
|
||||||
public enum EIncomeStatus {
|
public enum EIncomeStatus {
|
||||||
/**
|
/**
|
||||||
*正常
|
* 正常
|
||||||
*/
|
*/
|
||||||
NORMAL(0, "正常", 0, EnumsPrefixConstants.INCOME_STATUS + "0"),
|
NORMAL(0, "正常", 0, EnumsPrefixConstants.INCOME_STATUS + "0"),
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package com.hzs.common.core.utils;
|
package com.hzs.common.core.utils;
|
||||||
|
|
||||||
import com.hzs.common.core.constant.RetailProductConstants;
|
import com.hzs.common.core.constant.RetailConstants;
|
||||||
import com.hzs.common.core.enums.ESystemType;
|
import com.hzs.common.core.enums.ESystemType;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -18,13 +18,13 @@ public class BoxProductUtil {
|
||||||
List<String> productList = new ArrayList<>(0);
|
List<String> productList = new ArrayList<>(0);
|
||||||
|
|
||||||
if (null == systemType || ESystemType.ALL.getValue() == systemType) {
|
if (null == systemType || ESystemType.ALL.getValue() == systemType) {
|
||||||
productList.addAll(RetailProductConstants.ALL_BOX_WARES_LIST);
|
productList.addAll(RetailConstants.ALL_BOX_WARES_LIST);
|
||||||
return productList;
|
return productList;
|
||||||
|
|
||||||
}
|
}
|
||||||
if (ESystemType.DEFAULT.getValue() == systemType) {
|
if (ESystemType.DEFAULT.getValue() == systemType) {
|
||||||
// 新零售
|
// 新零售
|
||||||
productList = RetailProductConstants.BOX_PRODUCT_LIST;
|
productList = RetailConstants.BOX_PRODUCT_LIST;
|
||||||
}
|
}
|
||||||
return productList;
|
return productList;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ import lombok.*;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员奖金-奖金收益明细表(复购极差)
|
* 会员奖金-奖金收益明细表(复购极差) -- 新直推级差
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
|
Loading…
Reference in New Issue