Merge remote-tracking branch 'origin/test' into test
This commit is contained in:
commit
3961ea195d
|
@ -65,6 +65,17 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
@DubboReference
|
@DubboReference
|
||||||
ICuMemberServiceLogServiceApi iCuMemberServiceLogServiceApi;
|
ICuMemberServiceLogServiceApi iCuMemberServiceLogServiceApi;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 特殊体系PK_ID: 150
|
||||||
|
* V4:总 500,小 100
|
||||||
|
* V5:总 2000,小 400
|
||||||
|
*/
|
||||||
|
public static final Long VERTEX_PK_ID = 150L;
|
||||||
|
public static final BigDecimal VERTEX_V4_TOTAL_BOX = new BigDecimal("500");
|
||||||
|
public static final BigDecimal VERTEX_V4_SMALL_BOX = new BigDecimal("100");
|
||||||
|
public static final BigDecimal VERTEX_V5_TOTAL_BOX = new BigDecimal("2000");
|
||||||
|
public static final BigDecimal VERTEX_V5_SMALL_BOX = new BigDecimal("400");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 秒结:
|
* 秒结:
|
||||||
* 实时计算秒结数据(业绩、盒数、等级、奖衔、日奖)
|
* 实时计算秒结数据(业绩、盒数、等级、奖衔、日奖)
|
||||||
|
@ -723,10 +734,27 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 遍历团队等级map(V4,V5)
|
// 遍历团队等级map(V4,V5)
|
||||||
for (Integer gradeValue : retailTeamGradeMap.keySet()) {
|
for (Integer gradeValue : retailTeamGradeMap.keySet()) {
|
||||||
BdGrade bdGrade = retailTeamGradeMap.get(gradeValue);
|
BdGrade bdGrade = retailTeamGradeMap.get(gradeValue);
|
||||||
|
// 等级总盒数
|
||||||
|
BigDecimal boxTotal = bdGrade.getBoxTotal();
|
||||||
|
// 等级小市场盒数
|
||||||
|
BigDecimal boxSmallTotal = bdGrade.getBoxSmallTotal();
|
||||||
|
|
||||||
|
if (VERTEX_PK_ID.equals(targetMemberRangeExt.getPkVertex())) {
|
||||||
|
// TODO 需要根据配置写死的体系,进行单独处理
|
||||||
|
// V4: 总 500,小 100
|
||||||
|
// V5: 总 2000,小 400
|
||||||
|
if (EGrade.VIP.getValue() == bdGrade.getGradeValue()) {
|
||||||
|
boxTotal = VERTEX_V4_TOTAL_BOX;
|
||||||
|
boxSmallTotal = VERTEX_V4_SMALL_BOX;
|
||||||
|
} else if (EGrade.S_VIP.getValue() == bdGrade.getGradeValue()) {
|
||||||
|
boxTotal = VERTEX_V5_TOTAL_BOX;
|
||||||
|
boxSmallTotal = VERTEX_V5_SMALL_BOX;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 如果等级值 大于 当前会员等级值 并且 等级要求累计盒数 小于等于 团队累计盒数 + 累计消费盒数 + 大区注水 + 小区注水,则可以进行升级
|
// 如果等级值 大于 当前会员等级值 并且 等级要求累计盒数 小于等于 团队累计盒数 + 累计消费盒数 + 大区注水 + 小区注水,则可以进行升级
|
||||||
if (bdGrade.getGradeValue() > targetMemberRangeExt.getGradeValue()
|
if (bdGrade.getGradeValue() > targetMemberRangeExt.getGradeValue()
|
||||||
&& bdGrade.getBoxTotal().compareTo(
|
&& boxTotal.compareTo(
|
||||||
targetMemberRangeExt.getTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum())
|
targetMemberRangeExt.getTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum())
|
||||||
) <= 0
|
) <= 0
|
||||||
) {
|
) {
|
||||||
|
@ -766,7 +794,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
|
|
||||||
// 小区盒数(团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数)
|
// 小区盒数(团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数)
|
||||||
BigDecimal smallBoxNum = targetMemberRangeExt.getAllTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum()).subtract(bigBoxNum);
|
BigDecimal smallBoxNum = targetMemberRangeExt.getAllTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum()).subtract(bigBoxNum);
|
||||||
if (smallBoxNum.compareTo(bdGrade.getBoxSmallTotal()) >= 0) {
|
if (smallBoxNum.compareTo(boxSmallTotal) >= 0) {
|
||||||
// 小区盒数 大于等于 升级小区盒数
|
// 小区盒数 大于等于 升级小区盒数
|
||||||
CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade);
|
CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade);
|
||||||
cuMemberGradeList.add(cuMemberGrade);
|
cuMemberGradeList.add(cuMemberGrade);
|
||||||
|
@ -955,8 +983,25 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 遍历团队等级map(V4,V5)
|
// 遍历团队等级map(V4,V5)
|
||||||
for (Integer gradeValue : retailTeamGradeMap.keySet()) {
|
for (Integer gradeValue : retailTeamGradeMap.keySet()) {
|
||||||
BdGrade bdGrade = retailTeamGradeMap.get(gradeValue);
|
BdGrade bdGrade = retailTeamGradeMap.get(gradeValue);
|
||||||
|
// 等级总盒数
|
||||||
|
BigDecimal boxTotal = bdGrade.getBoxTotal();
|
||||||
|
// 等级小市场盒数
|
||||||
|
BigDecimal boxSmallTotal = bdGrade.getBoxSmallTotal();
|
||||||
|
|
||||||
if (bdGrade.getBoxTotal().compareTo(targetMemberRangeExt.getTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum())) <= 0) {
|
if (VERTEX_PK_ID.equals(targetMemberRangeExt.getPkVertex())) {
|
||||||
|
// TODO 需要根据配置写死的体系,进行单独处理
|
||||||
|
// V4: 总 500,小 100
|
||||||
|
// V5: 总 2000,小 400
|
||||||
|
if (EGrade.VIP.getValue() == bdGrade.getGradeValue()) {
|
||||||
|
boxTotal = VERTEX_V4_TOTAL_BOX;
|
||||||
|
boxSmallTotal = VERTEX_V4_SMALL_BOX;
|
||||||
|
} else if (EGrade.S_VIP.getValue() == bdGrade.getGradeValue()) {
|
||||||
|
boxTotal = VERTEX_V5_TOTAL_BOX;
|
||||||
|
boxSmallTotal = VERTEX_V5_SMALL_BOX;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (boxTotal.compareTo(targetMemberRangeExt.getTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum())) <= 0) {
|
||||||
// 验证小区,计算小区累计盒数 查询伞下会员
|
// 验证小区,计算小区累计盒数 查询伞下会员
|
||||||
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
|
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
|
||||||
if (secondRangeTableName != null) {
|
if (secondRangeTableName != null) {
|
||||||
|
@ -993,7 +1038,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
|
|
||||||
// 小区盒数(团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数)
|
// 小区盒数(团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数)
|
||||||
BigDecimal smallBoxNum = targetMemberRangeExt.getAllTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum()).subtract(bigBoxNum);
|
BigDecimal smallBoxNum = targetMemberRangeExt.getAllTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum()).subtract(bigBoxNum);
|
||||||
if (smallBoxNum.compareTo(bdGrade.getBoxSmallTotal()) >= 0) {
|
if (smallBoxNum.compareTo(boxSmallTotal) >= 0) {
|
||||||
// 小区盒数 大于等于 升级小区盒数
|
// 小区盒数 大于等于 升级小区盒数
|
||||||
CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade);
|
CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade);
|
||||||
cuMemberGradeMap.put(cuMemberGrade.getPkMember() + "_" + cuMemberGrade.getNewLevel(), cuMemberGrade);
|
cuMemberGradeMap.put(cuMemberGrade.getPkMember() + "_" + cuMemberGrade.getNewLevel(), cuMemberGrade);
|
||||||
|
@ -1124,7 +1169,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// // 直推级差收益
|
// // 直推级差收益
|
||||||
// BigDecimal calBonusIncome = BigDecimal.ZERO;
|
// BigDecimal calBonusIncome = BigDecimal.ZERO;
|
||||||
|
|
||||||
// 商品最终价格
|
// 商品最终价格(总价,带数量的价格)
|
||||||
BigDecimal waresPrice = saOrderItems.getWaresPrice();
|
BigDecimal waresPrice = saOrderItems.getWaresPrice();
|
||||||
// 商品数量
|
// 商品数量
|
||||||
BigDecimal waresQuantityBig = saOrderItems.getWaresQuantity();
|
BigDecimal waresQuantityBig = saOrderItems.getWaresQuantity();
|
||||||
|
@ -1168,20 +1213,20 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
if (beforeGradeValue == 0) {
|
if (beforeGradeValue == 0) {
|
||||||
// 前一个会员等级为0,肯定为第一次处理,直接处理直推级差收益
|
// 前一个会员等级为0,肯定为第一次处理,直接处理直推级差收益
|
||||||
if (EGrade.HAI_FAN.getValue() == calGradeValue) {
|
if (EGrade.HAI_FAN.getValue() == calGradeValue) {
|
||||||
// VIP,拿1份40
|
// VIP,拿 1 份 10%
|
||||||
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig);
|
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresPrice);
|
||||||
} else if (EGrade.YOU_KE.getValue() == calGradeValue) {
|
} else if (EGrade.YOU_KE.getValue() == calGradeValue) {
|
||||||
// SVIP,拿2份40
|
// SVIP,拿 2 份 10%
|
||||||
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal("2"));
|
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresPrice).multiply(new BigDecimal("2"));
|
||||||
} else if (EGrade.MAKER.getValue() == calGradeValue) {
|
} else if (EGrade.MAKER.getValue() == calGradeValue) {
|
||||||
// 卓越,拿3份40
|
// 卓越,拿 3 份 10%
|
||||||
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal("3"));
|
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresPrice).multiply(new BigDecimal("3"));
|
||||||
} else if (EGrade.VIP.getValue() == calGradeValue) {
|
} else if (EGrade.VIP.getValue() == calGradeValue) {
|
||||||
// 首席,拿4份40
|
// 首席,拿 4 份 10%
|
||||||
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal("4"));
|
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresPrice).multiply(new BigDecimal("4"));
|
||||||
} else if (EGrade.S_VIP.getValue() == calGradeValue) {
|
} else if (EGrade.S_VIP.getValue() == calGradeValue) {
|
||||||
// 合伙人,拿5份40
|
// 合伙人,拿 5 份 10%
|
||||||
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal("5"));
|
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresPrice).multiply(new BigDecimal("5"));
|
||||||
}
|
}
|
||||||
// 赋值前一个会员等级
|
// 赋值前一个会员等级
|
||||||
beforeGradeValue = calGradeValue;
|
beforeGradeValue = calGradeValue;
|
||||||
|
@ -1210,7 +1255,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
int tmpGradeVal = (calGradeValue - beforeGradeValue) / 10;
|
int tmpGradeVal = (calGradeValue - beforeGradeValue) / 10;
|
||||||
|
|
||||||
// 新等级的直推级差收益
|
// 新等级的直推级差收益
|
||||||
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal(tmpGradeVal));
|
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresPrice).multiply(new BigDecimal(tmpGradeVal));
|
||||||
// 直推级差收益 = 新等级的直推级差收益 - 上一等级的平级收益
|
// 直推级差收益 = 新等级的直推级差收益 - 上一等级的平级收益
|
||||||
rangeBonusIncome = rangeBonusIncome.subtract(beforeSameBonus);
|
rangeBonusIncome = rangeBonusIncome.subtract(beforeSameBonus);
|
||||||
|
|
||||||
|
|
|
@ -2461,7 +2461,8 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
try {
|
try {
|
||||||
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()
|
||||||
|| EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
|
|| EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()
|
||||||
|
|| EOrderType.RETAIL_CONSUME.getValue() == saOrderExt.getOrderType()) {
|
||||||
// 撤单标记为 true
|
// 撤单标记为 true
|
||||||
saOrderExt.setCancelBool(Boolean.TRUE);
|
saOrderExt.setCancelBool(Boolean.TRUE);
|
||||||
// 计算奖金,通过mq分发消息,异步处理
|
// 计算奖金,通过mq分发消息,异步处理
|
||||||
|
|
|
@ -10,9 +10,9 @@ import java.util.List;
|
||||||
public class RetailConstants {
|
public class RetailConstants {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 直推级差等级收益(每个等级为40元)
|
* 直推级差等级收益(每个等级差为百分之十)
|
||||||
*/
|
*/
|
||||||
public static final BigDecimal RANGE_BONUS = new BigDecimal("40");
|
public static final BigDecimal RANGE_BONUS = new BigDecimal("0.1");
|
||||||
/**
|
/**
|
||||||
* 直推平级收益比例(每代拿商品价格的千分之五)
|
* 直推平级收益比例(每代拿商品价格的千分之五)
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue