feat(credit): 扩展信用实体并调整经销商结算逻辑

- 在CreditXgxf实体中添加原告/上诉人和被告/被上诉人字段
- 调整经销商订单结算任务中的佣金费率配置
- 修改简推佣金计算逻辑,允许同一个人获得双重佣金
- 更新门店推广佣金分配策略,第二名佣金从8%降至1%
- 扩展店铺经销商订单查询条件以支持更多用户层级
This commit is contained in:
2026-01-25 12:08:36 +08:00
parent 0035d3cd7d
commit d15cc03e48
3 changed files with 14 additions and 7 deletions

View File

@@ -48,6 +48,12 @@ public class CreditXgxf implements Serializable {
@Schema(description = "申请人") @Schema(description = "申请人")
private String appellee; private String appellee;
@Schema(description = "原告/上诉人")
private String plaintiffUser;
@Schema(description = "被告/被上诉人")
private String defendantUser;
@Schema(description = "涉案金额(元)") @Schema(description = "涉案金额(元)")
private String involvedAmount; private String involvedAmount;

View File

@@ -19,7 +19,7 @@
AND a.user_id = #{param.userId} AND a.user_id = #{param.userId}
</if> </if>
<if test="param.resourceId != null"> <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>
<if test="param.month != null"> <if test="param.month != null">
AND a.month = #{param.month} AND a.month = #{param.month}

View File

@@ -39,8 +39,9 @@ public class DealerOrderSettlement10584Task {
private static final Integer TENANT_ID = 10584; private static final Integer TENANT_ID = 10584;
private static final BigDecimal RATE_0_10 = new BigDecimal("0.10"); 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_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_ORDERS_PER_RUN = 50;
private static final int MAX_REFEREE_CHAIN_DEPTH = 20; private static final int MAX_REFEREE_CHAIN_DEPTH = 20;
@@ -157,14 +158,14 @@ public class DealerOrderSettlement10584Task {
Integer simpleDealerId = directDealerId != null ? getDealerRefereeId(directDealerId) : null; Integer simpleDealerId = directDealerId != null ? getDealerRefereeId(directDealerId) : null;
BigDecimal directMoney = directDealerId != null ? calcMoney(baseAmount, RATE_0_10) : BigDecimal.ZERO; BigDecimal directMoney = directDealerId != null ? calcMoney(baseAmount, RATE_0_10) : BigDecimal.ZERO;
boolean samePerson = directDealerId != null && directDealerId.equals(simpleDealerId); // 允许同一条线内同一个人同时拿到“直推 + 简推”(即使 directDealerId == simpleDealerId 也照常发放两笔)
BigDecimal simpleMoney = (simpleDealerId != null && !samePerson) ? calcMoney(baseAmount, RATE_0_10) : BigDecimal.ZERO; BigDecimal simpleMoney = simpleDealerId != null ? calcMoney(baseAmount, RATE_0_05) : BigDecimal.ZERO;
log.info("分销直推/简推查询结果 - orderNo={}, buyerUserId={}, directDealerId={}, directMoney={}, simpleDealerId={}, simpleMoney={}", log.info("分销直推/简推查询结果 - orderNo={}, buyerUserId={}, directDealerId={}, directMoney={}, simpleDealerId={}, simpleMoney={}",
order.getOrderNo(), order.getUserId(), directDealerId, directMoney, simpleDealerId, simpleMoney); order.getOrderNo(), order.getUserId(), directDealerId, directMoney, simpleDealerId, simpleMoney);
creditDealerCommission(directDealerId, directMoney, order, "直推佣金(10%)"); creditDealerCommission(directDealerId, directMoney, order, "直推佣金(10%)");
creditDealerCommission(simpleDealerId, simpleMoney, order, "简推佣金(10%)"); creditDealerCommission(simpleDealerId, simpleMoney, order, "简推佣金(5%)");
return new DealerRefereeCommission(directDealerId, directMoney, simpleDealerId, simpleMoney); return new DealerRefereeCommission(directDealerId, directMoney, simpleDealerId, simpleMoney);
} }
@@ -203,11 +204,11 @@ public class DealerOrderSettlement10584Task {
// 两个或以上第一个0.02第二个0.08 // 两个或以上第一个0.02第二个0.08
BigDecimal storeDirectMoney = calcMoney(baseAmount, RATE_0_02); 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={}", log.info("门店直推/门店简推发放 - orderNo={}, storeDirectUserId={}, storeDirectMoney={}, storeSimpleUserId={}, storeSimpleMoney={}",
order.getOrderNo(), shopRoleReferees.get(0), storeDirectMoney, shopRoleReferees.get(1), storeSimpleMoney); order.getOrderNo(), shopRoleReferees.get(0), storeDirectMoney, shopRoleReferees.get(1), storeSimpleMoney);
creditDealerCommission(shopRoleReferees.get(0), storeDirectMoney, order, "门店直推佣金(角色shop第1个2%)"); 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); return new ShopRoleCommission(shopRoleReferees.get(0), storeDirectMoney, shopRoleReferees.get(1), storeSimpleMoney);
} }