3
0
Fork 0

Compare commits

...

3 Commits

5 changed files with 48 additions and 20 deletions

View File

@ -323,13 +323,21 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 直推级差收益
BigDecimal rangeBonusIncome = BigDecimal.ZERO;
if (EGrade.HAI_FAN.getValue() == targetGradeValue) {
if (EGrade.HAI_FAN.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) {
// 推荐人是 会员
rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_HAI_FAN).setScale(4, BigDecimal.ROUND_HALF_UP);
} else if (EGrade.YOU_KE.getValue() == targetGradeValue) {
// 已经算完级差等级的累计奖金
totalBonus = totalBonus.add(rangeBonusIncome);
// 前一级会员等级
beforeGradeValue = targetGradeValue;
} else if (EGrade.YOU_KE.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) {
// 推荐人是 VIP
rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_YOU_KE).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP);
} else if (EGrade.MAKER.getValue() == targetGradeValue) {
// 已经算完级差等级的累计奖金
totalBonus = totalBonus.add(rangeBonusIncome);
// 前一级会员等级
beforeGradeValue = targetGradeValue;
} else if (EGrade.MAKER.getValue() == targetGradeValue && targetGradeValue >= beforeGradeValue) {
// 推荐人是 合伙人
if (v3Count == 1) {
rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_MAKER_1).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP);
@ -339,26 +347,46 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_MAKER_3).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP);
}
v3Count++;
} else if (EGrade.VIP.getValue() == targetGradeValue) {
// 已经算完级差等级的累计奖金
totalBonus = totalBonus.add(rangeBonusIncome);
// 前一级会员等级
beforeGradeValue = targetGradeValue;
} else if (EGrade.VIP.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) {
// 推荐人是 博羚店主
rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_VIP).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP);
} else if (EGrade.S_VIP.getValue() == targetGradeValue) {
// 已经算完级差等级的累计奖金
totalBonus = totalBonus.add(rangeBonusIncome);
// 前一级会员等级
beforeGradeValue = targetGradeValue;
} else if (EGrade.S_VIP.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) {
// 推荐人是 高级店主
rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_S_VIP).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP);
} else if (EGrade.REGION.getValue() == targetGradeValue) {
// 已经算完级差等级的累计奖金
totalBonus = totalBonus.add(rangeBonusIncome);
// 前一级会员等级
beforeGradeValue = targetGradeValue;
} else if (EGrade.REGION.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) {
// 推荐人是 区域代理
rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_REGION).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP);
} else if (EGrade.DIRECTOR.getValue() == targetGradeValue) {
// 已经算完级差等级的累计奖金
totalBonus = totalBonus.add(rangeBonusIncome);
// 前一级会员等级
beforeGradeValue = targetGradeValue;
} else if (EGrade.DIRECTOR.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) {
// 推荐人是 董事代理
rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_DIRECTOR).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP);
} else if (EGrade.COMPANY.getValue() == targetGradeValue) {
// 已经算完级差等级的累计奖金
totalBonus = totalBonus.add(rangeBonusIncome);
// 前一级会员等级
beforeGradeValue = targetGradeValue;
} else if (EGrade.COMPANY.getValue() == targetGradeValue && targetGradeValue > beforeGradeValue) {
// 推荐人是 总公司
rangeBonusIncome = orderAmount.multiply(RetailConstants.RECOMMEND_COMPANY).subtract(totalBonus).setScale(4, BigDecimal.ROUND_HALF_UP);
// 已经算完级差等级的累计奖金
totalBonus = totalBonus.add(rangeBonusIncome);
// 前一级会员等级
beforeGradeValue = targetGradeValue;
}
// 已经算完级差等级的累计奖金
totalBonus = totalBonus.add(rangeBonusIncome);
// 前一级会员等级
beforeGradeValue = targetGradeValue;
if (rangeBonusIncome.compareTo(BigDecimal.ZERO) > 0) {
// 处理直推级差收益
@ -524,7 +552,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 2025.08.13 添加 代理 级差收益每1盒4个产品区域代理4元董事代理4元公司6元总拨出14元
if ((EGrade.REGION.getValue() == targetMemberRangeExt.getGradeValue()
&& EGrade.DIRECTOR.getValue() == targetMemberRangeExt.getGradeValue())
|| EGrade.DIRECTOR.getValue() == targetMemberRangeExt.getGradeValue())
&& branch < 2) {
// 等级是分公司 并且 发放次数小于2
this.calculateRetailRepurCompanyRangeBonus(sourceMemberRangeExt, targetMemberRangeExt, cuMemberBonusMap, bonusConfigDTO,
@ -617,6 +645,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(retailRegion.getPkMember());
if (ObjectUtil.isEmpty(targetMemberRangeExt)) {
targetMemberRangeExt = cuMemberRetailRangeMapper.queryCuMemberRetailRangeByMemberId(rangeTableName, retailRegion.getPkMember());
if (null == targetMemberRangeExt) {
// 配送区域对应的会员不存在了直接跳过
return memberBonusDetailList;
}
memberRangeExtMap.put(retailRegion.getPkMember(), targetMemberRangeExt);
}
// 复购配送区域收益

View File

@ -61,8 +61,6 @@ public class ApiOrderController extends BaseController {
private ISaDeliverService iSaDeliverService;
@Autowired
private IOrderBusinessService iOrderBusinessService;
@Autowired
private ISaDeliverItemsService saDeliverItemsService;
@DubboReference
ICurrencyServiceApi iCurrencyServiceApi;
@ -537,8 +535,6 @@ public class ApiOrderController extends BaseController {
if (null != param.getCreationTimeEnd()) {
param.setCreationTimeEnd(DateUtils.getEndTime(param.getCreationTimeEnd()));
}
// 会员ID
Long userId = SecurityUtils.getUserId();
// 返回的订单数据
List<MyOrderVO> myOrderList = new ArrayList<>();

View File

@ -529,7 +529,7 @@
<choose>
<when test="param.orderStatus == 1">
<!-- 前台如果查询待发货,需要包括已合单 -->
and soi.order_status in (1, 2)
and soi.order_status in (1, 2, 6)
</when>
<otherwise>
and soi.order_status = #{param.orderStatus}

View File

@ -33,7 +33,7 @@ public class RetailConstants {
public static final BigDecimal RECOMMEND_MAKER_2 = new BigDecimal("0.3");
public static final BigDecimal RECOMMEND_MAKER_3 = new BigDecimal("0.325");
public static final BigDecimal RECOMMEND_VIP = new BigDecimal("0.5");
public static final BigDecimal RECOMMEND_S_VIP = new BigDecimal("0.5");
public static final BigDecimal RECOMMEND_S_VIP = new BigDecimal("0.52");
public static final BigDecimal RECOMMEND_REGION = new BigDecimal("0.55");
public static final BigDecimal RECOMMEND_DIRECTOR = new BigDecimal("0.55");
public static final BigDecimal RECOMMEND_COMPANY = new BigDecimal("0.6");

View File

@ -13,7 +13,7 @@ public class BonusMsgConstants {
/**
* 直推级差收益说明
*/
public static String RANGE = "订单编号%s,%s为%s贡献了直推级差收益,计算金额%f,前一级差等级名称%s,当前级差等级名称%s。";
public static String RANGE = "订单编号%s,%s为%s贡献了直推级差收益,计算金额%f,来源等级名称%s,当前级差等级名称%s。";
/**
* 复购级差收益说明