补齐父手机客户
This commit is contained in:
@@ -177,4 +177,8 @@ public class LbUser implements Serializable {
|
||||
@TableField("pname")
|
||||
@Schema(description = "上级用户昵称")
|
||||
private String pname;
|
||||
|
||||
@TableField("pmobile")
|
||||
@Schema(description = "上级用户手机号")
|
||||
private String pmobile;
|
||||
}
|
||||
|
||||
@@ -14,4 +14,9 @@ public interface LbUserMapper extends BaseMapper<LbUser> {
|
||||
* 按用户 id 批量 upsert(同步外部用户数据)。
|
||||
*/
|
||||
int upsertBatch(@Param("list") List<LbUser> list);
|
||||
|
||||
/**
|
||||
* 按 pid 关联同租户上级用户,将其 mobile 写入当前用户的 pmobile。
|
||||
*/
|
||||
int fillPmobileByTenantId(@Param("tenantId") String tenantId);
|
||||
}
|
||||
|
||||
@@ -376,9 +376,21 @@ public class LbUserServiceImpl extends ServiceImpl<LbUserMapper, LbUser> 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<LbUserMapper, LbUser> 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
|
||||
*/
|
||||
|
||||
@@ -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
|
||||
<foreach collection="list" item="item" separator=",">
|
||||
(
|
||||
@@ -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}
|
||||
)
|
||||
</foreach>
|
||||
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)
|
||||
</insert>
|
||||
|
||||
<update id="fillPmobileByTenantId">
|
||||
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}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user