From 893af21ce23b897ef9fb7df4351007e56924bcbd Mon Sep 17 00:00:00 2001 From: cst61 Date: Tue, 19 May 2026 09:31:13 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E9=BD=90=E7=88=B6=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E5=AE=A2=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/rj/entity/LbUser.java | 4 +++ src/main/java/com/rj/mapper/LbUserMapper.java | 5 ++++ .../rj/service/impl/LbUserServiceImpl.java | 26 +++++++++++++++++++ src/main/resources/mapper/LbUserMapper.xml | 15 ++++++++--- 4 files changed, 47 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/rj/entity/LbUser.java b/src/main/java/com/rj/entity/LbUser.java index cc472ee..4838b1d 100644 --- a/src/main/java/com/rj/entity/LbUser.java +++ b/src/main/java/com/rj/entity/LbUser.java @@ -177,4 +177,8 @@ public class LbUser implements Serializable { @TableField("pname") @Schema(description = "上级用户昵称") private String pname; + + @TableField("pmobile") + @Schema(description = "上级用户手机号") + private String pmobile; } diff --git a/src/main/java/com/rj/mapper/LbUserMapper.java b/src/main/java/com/rj/mapper/LbUserMapper.java index d27144e..17044b7 100644 --- a/src/main/java/com/rj/mapper/LbUserMapper.java +++ b/src/main/java/com/rj/mapper/LbUserMapper.java @@ -14,4 +14,9 @@ public interface LbUserMapper extends BaseMapper { * 按用户 id 批量 upsert(同步外部用户数据)。 */ int upsertBatch(@Param("list") List list); + + /** + * 按 pid 关联同租户上级用户,将其 mobile 写入当前用户的 pmobile。 + */ + int fillPmobileByTenantId(@Param("tenantId") String tenantId); } diff --git a/src/main/java/com/rj/service/impl/LbUserServiceImpl.java b/src/main/java/com/rj/service/impl/LbUserServiceImpl.java index 6150785..ef15963 100644 --- a/src/main/java/com/rj/service/impl/LbUserServiceImpl.java +++ b/src/main/java/com/rj/service/impl/LbUserServiceImpl.java @@ -376,9 +376,21 @@ public class LbUserServiceImpl extends ServiceImpl impleme page++; } + int pmobileFilled = fillParentMobile(tid); + if (pmobileFilled < 0) { + result.put("success", false); + result.put("message", "用户已同步,但补齐上级手机号失败"); + result.put("synced", totalSynced); + result.put("pmobileFilled", 0); + result.put("remoteCount", firstBody != null ? firstBody.count() : 0); + result.put("pages", page); + return result; + } + result.put("success", true); result.put("message", totalSynced == 0 ? "接口成功,无用户数据" : "同步完成"); result.put("synced", totalSynced); + result.put("pmobileFilled", pmobileFilled); result.put("remoteCount", firstBody != null ? firstBody.count() : 0); result.put("pages", page); return result; @@ -398,6 +410,20 @@ public class LbUserServiceImpl extends ServiceImpl impleme } } + /** + * 同步完成后,按 pid 查找上级用户并将其 mobile 写入 pmobile。 + * + * @return 受影响行数;失败返回 -1 + */ + private int fillParentMobile(String tenantId) { + try { + return baseMapper.fillPmobileByTenantId(tenantId); + } catch (Exception e) { + log.error("fillParentMobile failed, tenantId={}", tenantId, e); + return -1; + } + } + /** * @return 实际 upsert 条数;无有效 id 时返回 0;失败返回 -1 */ diff --git a/src/main/resources/mapper/LbUserMapper.xml b/src/main/resources/mapper/LbUserMapper.xml index 1354b6d..2e58920 100644 --- a/src/main/resources/mapper/LbUserMapper.xml +++ b/src/main/resources/mapper/LbUserMapper.xml @@ -9,7 +9,7 @@ last_time, last_ip, join_time, join_ip, token, created_at, updated_at, status, viptime, is_vip, contract, max_order, is_resell, yesterday_sell_count, today_buy_count, today_buy_total, today_sell_total, - poor, pname + poor, pname, pmobile ) VALUES ( @@ -21,7 +21,8 @@ #{item.createdAt}, #{item.updatedAt}, #{item.status}, #{item.viptime}, #{item.isVip}, #{item.contract}, #{item.maxOrder}, #{item.isResell}, #{item.yesterdaySellCount}, #{item.todayBuyCount}, - #{item.todayBuyTotal}, #{item.todaySellTotal}, #{item.poor}, #{item.pname} + #{item.todayBuyTotal}, #{item.todaySellTotal}, #{item.poor}, #{item.pname}, + #{item.pmobile} ) ON DUPLICATE KEY UPDATE @@ -60,7 +61,15 @@ today_buy_total = VALUES(today_buy_total), today_sell_total = VALUES(today_sell_total), poor = VALUES(poor), - pname = VALUES(pname) + pname = VALUES(pname), + pmobile = VALUES(pmobile) + + UPDATE lb_user u + LEFT JOIN lb_user p ON u.pid = p.id AND u.tenant_id = p.tenant_id + SET u.pmobile = p.mobile + WHERE u.tenant_id = #{tenantId} + +