refactor(task): 统一佣金分红术语为分润

- 将"分红"相关术语统一替换为"分润",包括日志信息中的"未找到分红账号"改为"未找到分润账号"
- 修改注释中"门店分红上级"为"门店分润上级","总经销商分润"为"分润"
- 更新佣金计算相关注释和日志信息,将"直推佣金"、"门店直推佣金"等统一为"分佣"、"门店直推分润"
- 修正ShopDealerOrder数据回填逻辑中的术语表述,将"门店分红字段"改为"门店分润字段"
- 调整门店分润规则注释和订单记录落字段说明,统一使用分润概念
This commit is contained in:
2026-03-07 01:58:28 +08:00
parent 43a98cf7cd
commit 93dbc22603
2 changed files with 16 additions and 16 deletions

View File

@@ -105,7 +105,7 @@ public class DealerOrderSettlement10584Task {
DealerBasicSetting dealerBasicSetting = findDealerBasicSetting();
ShopDealerUser totalDealerUser = findTotalDealerUser();
if (totalDealerUser == null || totalDealerUser.getUserId() == null) {
log.warn("未找到总经销商账号,订单仍可结算但不会发放总经销商分润 - tenantId={}", TENANT_ID);
log.warn("未找到分红账号,订单仍可结算但不会发放分红 - tenantId={}", TENANT_ID);
}
log.debug("租户{}分销设置 - level={}", TENANT_ID, dealerBasicSetting.level);
@@ -201,10 +201,10 @@ public class DealerOrderSettlement10584Task {
// 1) 直推/间推shop_dealer_referee
DealerRefereeCommission dealerRefereeCommission = settleDealerRefereeCommission(order, baseAmount, goodsQty, commissionConfig, dealerLevel);
// 2) 门店分上级:从下单用户开始逐级向上找,命中 ShopDealerUser.type=1 的最近两级(直推门店/间推门店)。
// 2) 门店分上级:从下单用户开始逐级向上找,命中 ShopDealerUser.type=1 的最近两级(直推门店/间推门店)。
ShopRoleCommission shopRoleCommission = settleShopRoleRefereeCommission(order, baseAmount, goodsQty, commissionConfig, level1ParentCache, shopRoleCache);
// 3) 总经销商分润:固定比率,每个订单都分。
// 3) 分红:固定比率,每个订单都分。
TotalDealerCommission totalDealerCommission = settleTotalDealerCommission(order, baseAmount, goodsQty, totalDealerUser);
// 4) 写入分销订单记录(用于排查/统计;详细分佣以 ShopDealerCapital 为准)
@@ -265,7 +265,7 @@ public class DealerOrderSettlement10584Task {
directMoney,
order,
order.getUserId(),
buildCommissionComment("直推佣金", commissionConfig.commissionType, commissionConfig.dealerDirectValue, goodsQty)
buildCommissionComment("分佣", commissionConfig.commissionType, commissionConfig.dealerDirectValue, goodsQty)
);
}
if (normalizedLevel >= 2) {
@@ -320,7 +320,7 @@ public class DealerOrderSettlement10584Task {
Map<Integer, Boolean> shopRoleCache
) {
List<Integer> shopRoleReferees = findFirstTwoShopRoleReferees(order.getUserId(), level1ParentCache, shopRoleCache);
log.info("门店分命中结果(type=1门店角色取前两级) - orderNo={}, buyerUserId={}, shopRoleReferees={}",
log.info("门店分命中结果(type=1门店角色取前两级) - orderNo={}, buyerUserId={}, shopRoleReferees={}",
order.getOrderNo(), order.getUserId(), shopRoleReferees);
if (shopRoleReferees.isEmpty()) {
return ShopRoleCommission.empty();
@@ -330,14 +330,14 @@ public class DealerOrderSettlement10584Task {
// 仅找到一个门店:按(直推+间推)汇总发放
BigDecimal singleStoreValue = safeValue(commissionConfig.storeDirectValue).add(safeValue(commissionConfig.storeSimpleValue));
BigDecimal money = calcMoneyByCommissionType(baseAmount, singleStoreValue, goodsQty, DIVIDEND_SCALE, commissionConfig.commissionType);
log.info("发放(仅1门店) - orderNo={}, firstDividendUserId={}, commissionType={}, value={}, money={}",
log.info("发放(仅1门店) - orderNo={}, firstDividendUserId={}, commissionType={}, value={}, money={}",
order.getOrderNo(), shopRoleReferees.get(0), commissionConfig.commissionType, singleStoreValue, money);
creditDealerCommission(
shopRoleReferees.get(0),
money,
order,
order.getUserId(),
buildCommissionComment("门店直推佣金(仅1门店)", commissionConfig.commissionType, singleStoreValue, goodsQty)
buildCommissionComment("门店直推分润(仅1门店)", commissionConfig.commissionType, singleStoreValue, goodsQty)
);
return new ShopRoleCommission(shopRoleReferees.get(0), money, null, BigDecimal.ZERO);
}
@@ -347,7 +347,7 @@ public class DealerOrderSettlement10584Task {
calcMoneyByCommissionType(baseAmount, commissionConfig.storeDirectValue, goodsQty, DIVIDEND_SCALE, commissionConfig.commissionType);
BigDecimal storeSimpleMoney =
calcMoneyByCommissionType(baseAmount, commissionConfig.storeSimpleValue, goodsQty, DIVIDEND_SCALE, commissionConfig.commissionType);
log.info("发放(2人) - orderNo={}, firstDividendUserId={}, commissionType={}, firstValue={}, firstMoney={}, secondDividendUserId={}, secondValue={}, secondMoney={}",
log.info("发放(2人) - orderNo={}, firstDividendUserId={}, commissionType={}, firstValue={}, firstMoney={}, secondDividendUserId={}, secondValue={}, secondMoney={}",
order.getOrderNo(),
shopRoleReferees.get(0),
commissionConfig.commissionType,
@@ -361,14 +361,14 @@ public class DealerOrderSettlement10584Task {
storeDirectMoney,
order,
order.getUserId(),
buildCommissionComment("门店直推佣金", commissionConfig.commissionType, commissionConfig.storeDirectValue, goodsQty)
buildCommissionComment("门店直推分润", commissionConfig.commissionType, commissionConfig.storeDirectValue, goodsQty)
);
creditDealerCommission(
shopRoleReferees.get(1),
storeSimpleMoney,
order,
order.getUserId(),
buildCommissionComment("门店间推佣金", commissionConfig.commissionType, commissionConfig.storeSimpleValue, goodsQty)
buildCommissionComment("门店间推分润", commissionConfig.commissionType, commissionConfig.storeSimpleValue, goodsQty)
);
return new ShopRoleCommission(shopRoleReferees.get(0), storeDirectMoney, shopRoleReferees.get(1), storeSimpleMoney);
}
@@ -387,14 +387,14 @@ public class DealerOrderSettlement10584Task {
rate = TOTAL_DEALER_DIVIDEND_RATE;
}
BigDecimal money = calcMoneyByCommissionType(baseAmount, rate, goodsQty, DIVIDEND_SCALE, 20);
log.info("总经销商分润发放 - orderNo={}, totalDealerUserId={}, rate={}, money={}",
log.info("分红发放 - orderNo={}, totalDealerUserId={}, rate={}, money={}",
order.getOrderNo(), totalDealerUser.getUserId(), rate, money);
creditDealerCommission(
totalDealerUser.getUserId(),
money,
order,
order.getUserId(),
buildCommissionComment("总经销商分润", 20, rate, goodsQty)
buildCommissionComment("分红", 20, rate, goodsQty)
);
return new TotalDealerCommission(totalDealerUser.getUserId(), money);
}
@@ -451,7 +451,7 @@ public class DealerOrderSettlement10584Task {
}
/**
* 门店分规则:
* 门店分规则:
* - 门店角色为 ShopDealerUser.type=1
* - 从下单用户开始,沿 shop_dealer_referee(level=1) 链路逐级向上找;
* - 遇到第一个 type=1 用户命中为“直推门店用户”,继续向上找到第二个 type=1 用户命中为“间推门店用户”。
@@ -641,7 +641,7 @@ public class DealerOrderSettlement10584Task {
.last("limit 1")
);
if (existed != null) {
// 允许“补发”门店分时回填分字段,避免订单已结算但分字段一直为空,影响排查/对账。
// 允许“补发”门店分时回填分字段,避免订单已结算但分字段一直为空,影响排查/对账。
LambdaUpdateWrapper<ShopDealerOrder> uw = new LambdaUpdateWrapper<ShopDealerOrder>()
.eq(ShopDealerOrder::getTenantId, TENANT_ID)
.eq(ShopDealerOrder::getOrderNo, order.getOrderNo());
@@ -676,7 +676,7 @@ public class DealerOrderSettlement10584Task {
}
if (needUpdate) {
shopDealerOrderService.update(uw);
log.info("ShopDealerOrder已存在回填门店分字段 - orderNo={}, firstDividendUser={}, secondDividendUser={}",
log.info("ShopDealerOrder已存在回填门店分字段 - orderNo={}, firstDividendUser={}, secondDividendUser={}",
order.getOrderNo(), shopRoleCommission.storeDirectUserId, shopRoleCommission.storeSimpleUserId);
} else {
log.info("ShopDealerOrder已存在跳过写入 - orderNo={}", order.getOrderNo());
@@ -697,7 +697,7 @@ public class DealerOrderSettlement10584Task {
dealerOrder.setThirdUserId(dealerRefereeCommission.thirdDealerId);
dealerOrder.setThirdMoney(dealerRefereeCommission.thirdMoney);
// 门店(角色shop)两级分单独落字段(详细以 ShopDealerCapital 为准)
// 门店(角色shop)两级分单独落字段(详细以 ShopDealerCapital 为准)
dealerOrder.setFirstDividendUser(shopRoleCommission.storeDirectUserId);
dealerOrder.setFirstDividend(shopRoleCommission.storeDirectMoney);
dealerOrder.setSecondDividendUser(shopRoleCommission.storeSimpleUserId);