fix(shop): 修复分销订单结算中的文案和逻辑错误

- 修复CmsOrderController中save方法的空行格式问题
- 将所有"简推"相关文案统一更正为"间推",包括注释和日志输出
- 修正ShopRoleCommission方法中的佣金类型描述从"简推"改为"间推"
- 修复门店分红规则描述中的术语一致性
- 修正ShopDealerOrderMapper.xml中的重复条件查询逻辑,
This commit is contained in:
2026-01-28 14:00:20 +08:00
parent 3814711ec4
commit cbc9a1c861
3 changed files with 9 additions and 8 deletions

View File

@@ -57,6 +57,7 @@ public class CmsOrderController extends BaseController {
@Operation(summary = "添加网站订单")
@PostMapping()
public ApiResult<?> save(@RequestBody CmsOrder cmsOrder) {
if (cmsOrderService.save(cmsOrder)) {
return success("添加成功");
}

View File

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

View File

@@ -144,10 +144,10 @@ public class DealerOrderSettlement10584Task {
log.info("开始结算订单 - orderId={}, orderNo={}, buyerUserId={}, payPrice={}",
order.getOrderId(), order.getOrderNo(), order.getUserId(), baseAmount);
// 1) 直推/shop_dealer_referee
// 1) 直推/shop_dealer_referee
DealerRefereeCommission dealerRefereeCommission = settleDealerRefereeCommission(order, baseAmount);
// 2) 门店分红上级:从下单用户开始逐级向上找,命中 ShopDealerUser.type=1 的最近两级(直推门店/推门店)。
// 2) 门店分红上级:从下单用户开始逐级向上找,命中 ShopDealerUser.type=1 的最近两级(直推门店/推门店)。
ShopRoleCommission shopRoleCommission = settleShopRoleRefereeCommission(order, baseAmount, level1ParentCache, shopRoleCache);
// 3) 写入分销订单记录(用于排查/统计;详细分佣以 ShopDealerCapital 为准)
@@ -167,10 +167,10 @@ public class DealerOrderSettlement10584Task {
}
BigDecimal directMoney = directDealerId != null ? calcMoney(baseAmount, RATE_0_10) : BigDecimal.ZERO;
// 允许同一条线内同一个人同时拿到“直推 + 推”(即使 directDealerId == simpleDealerId 也照常发放两笔)
// 允许同一条线内同一个人同时拿到“直推 + 推”(即使 directDealerId == simpleDealerId 也照常发放两笔)
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);
// 直推:对方=买家;推荐奖(5%):对方=直推分销商(便于在资金明细中看出“来自哪个下级分销商/团队订单”)
@@ -228,7 +228,7 @@ public class DealerOrderSettlement10584Task {
log.info("分红发放(2人) - orderNo={}, firstDividendUserId={}, firstDividendMoney={}, secondDividendUserId={}, secondDividendMoney={}",
order.getOrderNo(), shopRoleReferees.get(0), storeDirectMoney, shopRoleReferees.get(1), storeSimpleMoney);
creditDealerCommission(shopRoleReferees.get(0), storeDirectMoney, order, order.getUserId(), "门店直推佣金(第1级2%)");
creditDealerCommission(shopRoleReferees.get(1), storeSimpleMoney, order, order.getUserId(), "门店推佣金(第2级1%)");
creditDealerCommission(shopRoleReferees.get(1), storeSimpleMoney, order, order.getUserId(), "门店推佣金(第2级1%)");
return new ShopRoleCommission(shopRoleReferees.get(0), storeDirectMoney, shopRoleReferees.get(1), storeSimpleMoney);
}
@@ -236,7 +236,7 @@ public class DealerOrderSettlement10584Task {
* 门店分红规则:
* - 门店角色为 ShopDealerUser.type=1
* - 从下单用户开始,沿 shop_dealer_referee(level=1) 链路逐级向上找;
* - 遇到第一个 type=1 用户命中为“直推门店用户”,继续向上找到第二个 type=1 用户命中为“推门店用户”。
* - 遇到第一个 type=1 用户命中为“直推门店用户”,继续向上找到第二个 type=1 用户命中为“推门店用户”。
*/
private List<Integer> findFirstTwoShopRoleReferees(
Integer buyerUserId,
@@ -339,7 +339,7 @@ public class DealerOrderSettlement10584Task {
);
if (!updated) {
// 门店角色用户可能未开通分销账户:此时门店直推/推会“找到了人但入不了账”,收益与明细都不会写入。
// 门店角色用户可能未开通分销账户:此时门店直推/推会“找到了人但入不了账”,收益与明细都不会写入。
// 这里补偿创建账户后再尝试入账一次。
ShopDealerUser existed = shopDealerUserService.getOne(
new LambdaQueryWrapper<ShopDealerUser>()