feat(settlement): 调整门店直推佣金比例并完善用户信息展示

- 将门店直推佣金从2%调整为3%(仅1门店情况)
- 新增RATE_0_03常量用于门店直推佣金计算
- 在ShopDealerCapital实体中添加分销商昵称字段
- 在ShopDealerOrder实体中添加门店名称字段
- 在ShopDealerUser实体中添加头像字段
- 更新Mapper XML文件以关联查询用户昵称和头像信息
- 修改日志输出信息以反映新的佣金比例和门店信息
This commit is contained in:
2026-01-26 23:02:05 +08:00
parent 3b63172012
commit e4d4a19020
7 changed files with 28 additions and 7 deletions

View File

@@ -30,6 +30,10 @@ public class ShopDealerCapital implements Serializable {
@Schema(description = "分销商用户ID")
private Integer userId;
@Schema(description = "分销商昵称")
@TableField(exist = false)
private String nickName;
@Schema(description = "订单编号")
private String orderNo;

View File

@@ -88,12 +88,20 @@ public class ShopDealerOrder implements Serializable {
@Schema(description = "门店(一级)")
private Integer firstDividendUser;
@Schema(description = "门店名称(一级)")
@TableField(exist = false)
private String firstDividendUserName;
@Schema(description = "分红(一级)")
private BigDecimal firstDividend;
@Schema(description = "门店(二级)")
private Integer secondDividendUser;
@Schema(description = "门店名称(二级)")
@TableField(exist = false)
private String secondDividendUserName;
@Schema(description = "分红(二级)")
private BigDecimal secondDividend;

View File

@@ -37,6 +37,10 @@ public class ShopDealerUser implements Serializable {
@TableField(exist = false)
private String openid;
@Schema(description = "头像")
@TableField(exist = false)
private String avatar;
@Schema(description = "姓名")
private String realName;

View File

@@ -4,9 +4,11 @@
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*, b.order_no, b.month
SELECT a.*, b.order_no, b.month, c.nickname AS nickName, d.nickname AS toNickName
FROM shop_dealer_capital a
LEFT JOIN shop_dealer_order b ON a.order_no = b.order_no
LEFT JOIN gxwebsoft_core.sys_user c ON a.user_id = c.user_id and c.deleted = 0
LEFT JOIN gxwebsoft_core.sys_user d ON a.to_user_id = d.user_id and d.deleted = 0
<where>
<if test="param.id != null">
AND a.id = #{param.id}

View File

@@ -4,12 +4,14 @@
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*, b.nickname, c.nickname AS firstNickname, d.nickname AS secondNickname, e.nickname AS thirdNickname, f.rate, f.price
SELECT a.*, b.nickname, c.nickname AS firstNickname, d.nickname AS secondNickname, e.nickname AS thirdNickname, f.rate, f.price, g.nickname AS firstDividendUserName, h.nickname AS secondDividendUserName
FROM shop_dealer_order a
LEFT JOIN gxwebsoft_core.sys_user b ON a.user_id = b.user_id
LEFT JOIN gxwebsoft_core.sys_user c ON a.first_user_id = c.user_id
LEFT JOIN gxwebsoft_core.sys_user d ON a.second_user_id = d.user_id
LEFT JOIN gxwebsoft_core.sys_user e ON a.third_user_id = e.user_id
LEFT JOIN gxwebsoft_core.sys_user g ON a.first_dividend_user = g.user_id
LEFT JOIN gxwebsoft_core.sys_user h ON a.second_dividend_user = h.user_id
LEFT JOIN shop_dealer_user f ON a.user_id = f.user_id
<where>
<if test="param.id != null">

View File

@@ -4,7 +4,7 @@
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*, b.openid
SELECT a.*, b.openid, b.avatar
FROM shop_dealer_user a
LEFT JOIN gxwebsoft_core.sys_user b ON a.user_id = b.user_id
<where>

View File

@@ -41,6 +41,7 @@ public class DealerOrderSettlement10584Task {
private static final BigDecimal RATE_0_10 = new BigDecimal("0.10");
private static final BigDecimal RATE_0_05 = new BigDecimal("0.05");
private static final BigDecimal RATE_0_03 = new BigDecimal("0.03");
private static final BigDecimal RATE_0_02 = new BigDecimal("0.02");
private static final BigDecimal RATE_0_01 = new BigDecimal("0.01");
@@ -214,10 +215,10 @@ public class DealerOrderSettlement10584Task {
}
if (shopRoleReferees.size() == 1) {
// 门店直推2%
BigDecimal money = calcDividendMoney(baseAmount, RATE_0_02);
log.info("分红发放(仅1) - orderNo={}, firstDividendUserId={}, money={}", order.getOrderNo(), shopRoleReferees.get(0), money);
creditDealerCommission(shopRoleReferees.get(0), money, order, order.getUserId(), "门店直推佣金(仅12%)");
// 仅找到一个门店3%都给他
BigDecimal money = calcDividendMoney(baseAmount, RATE_0_03);
log.info("分红发放(仅1门店3%) - orderNo={}, firstDividendUserId={}, money={}", order.getOrderNo(), shopRoleReferees.get(0), money);
creditDealerCommission(shopRoleReferees.get(0), money, order, order.getUserId(), "门店直推佣金(仅1门店3%)");
return new ShopRoleCommission(shopRoleReferees.get(0), money, null, BigDecimal.ZERO);
}