|
|
@@ -303,7 +303,7 @@ public class FamilyJoinRequestService {
|
|
|
* 平台推荐人绑定(需求:未注册/已注册但无推荐人 → 绑定为邀请人的上级推荐人;已有推荐人 → 不动):
|
|
|
* - 仅 token 路径(inviterUserId 非空)有明确邀请人,短码路径无邀请人则不处理;
|
|
|
* - 被邀请者已有推荐人则跳过(需求:已有推荐人不动);
|
|
|
- * - 邀请人自身无推荐人时,将邀请人作为直接推荐人(fallback,避免新用户无推荐人);
|
|
|
+ * - 邀请人自身无推荐人则跳过(被邀请者保持无推荐人);
|
|
|
* - 幂等性由 commissionService.bindReferrerByUserId 双保险(已有推荐人忽略);
|
|
|
* - 绑定失败不阻断审批(仅记录日志)。
|
|
|
*/
|
|
|
@@ -317,16 +317,12 @@ public class FamilyJoinRequestService {
|
|
|
}
|
|
|
try {
|
|
|
User inviter = userMapper.selectById(inviterUserId);
|
|
|
- if (inviter == null) {
|
|
|
+ if (inviter == null || inviter.getReferrerId() == null) {
|
|
|
return;
|
|
|
}
|
|
|
- // 邀请人有上级推荐人 → 绑定到上级(保持推荐链不跨家庭)
|
|
|
- // 邀请人无上级推荐人 → 将邀请人作为直接推荐人(避免新用户无推荐人)
|
|
|
- Long targetReferrerId = (inviter.getReferrerId() != null)
|
|
|
- ? inviter.getReferrerId() : inviter.getId();
|
|
|
- commissionService.bindReferrerByUserId(requester.getId(), targetReferrerId);
|
|
|
- log.info("家庭加入已绑定平台推荐人: userId={}, targetReferrerId={}, inviterId={}, requestId={}",
|
|
|
- requester.getId(), targetReferrerId, inviter.getId(), request.getId());
|
|
|
+ commissionService.bindReferrerByUserId(requester.getId(), inviter.getReferrerId());
|
|
|
+ log.info("家庭加入已绑定平台推荐人: userId={}, referrerId={}, requestId={}",
|
|
|
+ requester.getId(), inviter.getReferrerId(), request.getId());
|
|
|
} catch (Exception e) {
|
|
|
log.warn("家庭加入绑定平台推荐人失败(不阻断审批): requestId={}, error={}", request.getId(), e.getMessage());
|
|
|
}
|