fix(user-sync): 修复用户同步时tenantId为空问题
- 在用户同步数据中添加tenantId字段,tenantId为空时默认传0 - 更新同步日志,增加tenantId信息输出,便于调试跟踪 - 在扫码登录流程中添加多处详细调试日志,输出关键变量状态 - 添加System.out调试信息,帮助排查绑定用户及扫码登录异常情况
This commit is contained in:
@@ -306,6 +306,9 @@ public class WxOfficialController extends BaseController {
|
||||
.eq(UserOauth::getTenantId, tenantId));
|
||||
if (existingUser != null) {
|
||||
userId = existingUser.getUserId();
|
||||
System.out.println("已存在绑定用户 userId = " + userId);
|
||||
} else {
|
||||
System.out.println("警告:count=1但未找到对应的绑定记录,unionid=" + unionid + ", tenantId=" + tenantId);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -318,6 +321,7 @@ public class WxOfficialController extends BaseController {
|
||||
*/
|
||||
private void completeQrLogin(String token, Integer userId, Integer tenantId) {
|
||||
try {
|
||||
System.out.println("开始完成扫码登录: token=" + token + ", userId=" + userId + ", tenantId=" + tenantId);
|
||||
String redisKey = "qr-login:token:" + token;
|
||||
QrLoginData qrLoginData = redisUtil.get(redisKey, QrLoginData.class);
|
||||
if (qrLoginData == null) {
|
||||
@@ -352,9 +356,14 @@ public class WxOfficialController extends BaseController {
|
||||
}
|
||||
|
||||
redisUtil.set(redisKey, qrLoginData, ttlSeconds, TimeUnit.SECONDS);
|
||||
log.info("扫码登录状态已更新,token={}, userId={}, status={}", token, userId, qrLoginData.getStatus());
|
||||
log.info("扫码登录状态已更新,token={}, userId={}, status={}, needBindPhone={}, message={}, ttlSeconds={}",
|
||||
token, userId, qrLoginData.getStatus(), qrLoginData.getNeedBindPhone(),
|
||||
qrLoginData.getMessage(), ttlSeconds);
|
||||
System.out.println("扫码登录完成,token=" + token + ", userId=" + userId +
|
||||
", status=" + qrLoginData.getStatus() + ", message=" + qrLoginData.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error("完成扫码登录失败", e);
|
||||
System.out.println("完成扫码登录异常: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -64,12 +64,15 @@ public class UserSyncService {
|
||||
userCache.put("phone", user.getPhone());
|
||||
userCache.put("status", user.getStatus());
|
||||
userCache.put("updateTime", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
||||
// tenantId 可能为 null,但在 websopy 端是必填字段,至少传 0
|
||||
Integer tenantIdValue = user.getTenantId() != null ? user.getTenantId() : 0;
|
||||
userCache.put("tenantId", tenantIdValue);
|
||||
|
||||
String url = websopyBaseUrl + "/api/app/user-sync/single";
|
||||
String body = userCache.toJSONString();
|
||||
|
||||
log.info("同步用户到 websopy: userId={}, username={}, nickname={}, phone={}, url={}",
|
||||
user.getUserId(), user.getUsername(), user.getNickname(), user.getPhone(), url);
|
||||
log.info("同步用户到 websopy: userId={}, username={}, nickname={}, phone={}, tenantId={}, url={}",
|
||||
user.getUserId(), user.getUsername(), user.getNickname(), user.getPhone(), user.getTenantId(), url);
|
||||
log.debug("同步用户请求体: {}", body);
|
||||
|
||||
// 发送 HTTP POST 请求
|
||||
|
||||
Reference in New Issue
Block a user