feat(credit): 扩展信用实体并调整经销商结算逻辑
- 在CreditXgxf实体中添加原告/上诉人和被告/被上诉人字段 - 调整经销商订单结算任务中的佣金费率配置 - 修改简推佣金计算逻辑,允许同一个人获得双重佣金 - 更新门店推广佣金分配策略,第二名佣金从8%降至1% - 扩展店铺经销商订单查询条件以支持更多用户层级
This commit is contained in:
@@ -48,6 +48,12 @@ public class CreditXgxf implements Serializable {
|
||||
@Schema(description = "申请人")
|
||||
private String appellee;
|
||||
|
||||
@Schema(description = "原告/上诉人")
|
||||
private String plaintiffUser;
|
||||
|
||||
@Schema(description = "被告/被上诉人")
|
||||
private String defendantUser;
|
||||
|
||||
@Schema(description = "涉案金额(元)")
|
||||
private String involvedAmount;
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
AND a.user_id = #{param.userId}
|
||||
</if>
|
||||
<if test="param.resourceId != null">
|
||||
AND ( a.user_id = #{param.resourceId} OR a.first_user_id = #{param.resourceId} OR a.second_user_id = #{param.resourceId} )
|
||||
AND ( a.user_id = #{param.resourceId} OR a.first_user_id = #{param.resourceId} OR a.second_user_id = #{param.resourceId} OR a.third_user_id = #{param.resourceId} OR a.first_dividend_user = #{param.resourceId} OR a.first_dividend_user = #{param.resourceId} OR a.second_dividend_user = #{param.resourceId} )
|
||||
</if>
|
||||
<if test="param.month != null">
|
||||
AND a.month = #{param.month}
|
||||
|
||||
@@ -39,8 +39,9 @@ public class DealerOrderSettlement10584Task {
|
||||
private static final Integer TENANT_ID = 10584;
|
||||
|
||||
private static final BigDecimal RATE_0_10 = new BigDecimal("0.10");
|
||||
private static final BigDecimal RATE_0_08 = new BigDecimal("0.08");
|
||||
private static final BigDecimal RATE_0_05 = new BigDecimal("0.05");
|
||||
private static final BigDecimal RATE_0_02 = new BigDecimal("0.02");
|
||||
private static final BigDecimal RATE_0_01 = new BigDecimal("0.01");
|
||||
|
||||
private static final int MAX_ORDERS_PER_RUN = 50;
|
||||
private static final int MAX_REFEREE_CHAIN_DEPTH = 20;
|
||||
@@ -157,14 +158,14 @@ public class DealerOrderSettlement10584Task {
|
||||
Integer simpleDealerId = directDealerId != null ? getDealerRefereeId(directDealerId) : null;
|
||||
|
||||
BigDecimal directMoney = directDealerId != null ? calcMoney(baseAmount, RATE_0_10) : BigDecimal.ZERO;
|
||||
boolean samePerson = directDealerId != null && directDealerId.equals(simpleDealerId);
|
||||
BigDecimal simpleMoney = (simpleDealerId != null && !samePerson) ? calcMoney(baseAmount, RATE_0_10) : BigDecimal.ZERO;
|
||||
// 允许同一条线内同一个人同时拿到“直推 + 简推”(即使 directDealerId == simpleDealerId 也照常发放两笔)
|
||||
BigDecimal simpleMoney = simpleDealerId != null ? calcMoney(baseAmount, RATE_0_05) : BigDecimal.ZERO;
|
||||
|
||||
log.info("分销直推/简推查询结果 - orderNo={}, buyerUserId={}, directDealerId={}, directMoney={}, simpleDealerId={}, simpleMoney={}",
|
||||
order.getOrderNo(), order.getUserId(), directDealerId, directMoney, simpleDealerId, simpleMoney);
|
||||
|
||||
creditDealerCommission(directDealerId, directMoney, order, "直推佣金(10%)");
|
||||
creditDealerCommission(simpleDealerId, simpleMoney, order, "简推佣金(10%)");
|
||||
creditDealerCommission(simpleDealerId, simpleMoney, order, "简推佣金(5%)");
|
||||
|
||||
return new DealerRefereeCommission(directDealerId, directMoney, simpleDealerId, simpleMoney);
|
||||
}
|
||||
@@ -203,11 +204,11 @@ public class DealerOrderSettlement10584Task {
|
||||
|
||||
// 两个或以上:第一个0.02,第二个0.08
|
||||
BigDecimal storeDirectMoney = calcMoney(baseAmount, RATE_0_02);
|
||||
BigDecimal storeSimpleMoney = calcMoney(baseAmount, RATE_0_08);
|
||||
BigDecimal storeSimpleMoney = calcMoney(baseAmount, RATE_0_01);
|
||||
log.info("门店直推/门店简推发放 - orderNo={}, storeDirectUserId={}, storeDirectMoney={}, storeSimpleUserId={}, storeSimpleMoney={}",
|
||||
order.getOrderNo(), shopRoleReferees.get(0), storeDirectMoney, shopRoleReferees.get(1), storeSimpleMoney);
|
||||
creditDealerCommission(shopRoleReferees.get(0), storeDirectMoney, order, "门店直推佣金(角色shop,第1个,2%)");
|
||||
creditDealerCommission(shopRoleReferees.get(1), storeSimpleMoney, order, "门店简推佣金(角色shop,第2个,8%)");
|
||||
creditDealerCommission(shopRoleReferees.get(1), storeSimpleMoney, order, "门店简推佣金(角色shop,第2个,1%)");
|
||||
return new ShopRoleCommission(shopRoleReferees.get(0), storeDirectMoney, shopRoleReferees.get(1), storeSimpleMoney);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user