refactor(task): 统一佣金分红术语为分润
- 将"分红"相关术语统一替换为"分润",包括日志信息中的"未找到分红账号"改为"未找到分润账号" - 修改注释中"门店分红上级"为"门店分润上级","总经销商分润"为"分润" - 更新佣金计算相关注释和日志信息,将"直推佣金"、"门店直推佣金"等统一为"分佣"、"门店直推分润" - 修正ShopDealerOrder数据回填逻辑中的术语表述,将"门店分红字段"改为"门店分润字段" - 调整门店分润规则注释和订单记录落字段说明,统一使用分润概念
This commit is contained in:
@@ -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);
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user