From d15cc03e48f34ad98ec0133cf4bce7ce4e53fcb6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com>
Date: Sun, 25 Jan 2026 12:08:36 +0800
Subject: [PATCH] =?UTF-8?q?feat(credit):=20=E6=89=A9=E5=B1=95=E4=BF=A1?=
=?UTF-8?q?=E7=94=A8=E5=AE=9E=E4=BD=93=E5=B9=B6=E8=B0=83=E6=95=B4=E7=BB=8F?=
=?UTF-8?q?=E9=94=80=E5=95=86=E7=BB=93=E7=AE=97=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 在CreditXgxf实体中添加原告/上诉人和被告/被上诉人字段
- 调整经销商订单结算任务中的佣金费率配置
- 修改简推佣金计算逻辑,允许同一个人获得双重佣金
- 更新门店推广佣金分配策略,第二名佣金从8%降至1%
- 扩展店铺经销商订单查询条件以支持更多用户层级
---
.../com/gxwebsoft/credit/entity/CreditXgxf.java | 6 ++++++
.../shop/mapper/xml/ShopDealerOrderMapper.xml | 2 +-
.../shop/task/DealerOrderSettlement10584Task.java | 13 +++++++------
3 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/gxwebsoft/credit/entity/CreditXgxf.java b/src/main/java/com/gxwebsoft/credit/entity/CreditXgxf.java
index ba4bcac..9f8e1c6 100644
--- a/src/main/java/com/gxwebsoft/credit/entity/CreditXgxf.java
+++ b/src/main/java/com/gxwebsoft/credit/entity/CreditXgxf.java
@@ -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;
diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerOrderMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerOrderMapper.xml
index cf8107c..2e804d6 100644
--- a/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerOrderMapper.xml
+++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerOrderMapper.xml
@@ -19,7 +19,7 @@
AND a.user_id = #{param.userId}
- 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} )
AND a.month = #{param.month}
diff --git a/src/main/java/com/gxwebsoft/shop/task/DealerOrderSettlement10584Task.java b/src/main/java/com/gxwebsoft/shop/task/DealerOrderSettlement10584Task.java
index e50a3f2..6e04b46 100644
--- a/src/main/java/com/gxwebsoft/shop/task/DealerOrderSettlement10584Task.java
+++ b/src/main/java/com/gxwebsoft/shop/task/DealerOrderSettlement10584Task.java
@@ -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);
}