fix(shop): 修复分销订单结算中的文案和逻辑错误
- 修复CmsOrderController中save方法的空行格式问题 - 将所有"简推"相关文案统一更正为"间推",包括注释和日志输出 - 修正ShopRoleCommission方法中的佣金类型描述从"简推"改为"间推" - 修复门店分红规则描述中的术语一致性 - 修正ShopDealerOrderMapper.xml中的重复条件查询逻辑,
This commit is contained in:
@@ -57,6 +57,7 @@ public class CmsOrderController extends BaseController {
|
||||
@Operation(summary = "添加网站订单")
|
||||
@PostMapping()
|
||||
public ApiResult<?> save(@RequestBody CmsOrder cmsOrder) {
|
||||
|
||||
if (cmsOrderService.save(cmsOrder)) {
|
||||
return success("添加成功");
|
||||
}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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>()
|
||||
|
||||
Reference in New Issue
Block a user