diff --git a/src/main/java/com/gxwebsoft/common/system/controller/WxOfficialController.java b/src/main/java/com/gxwebsoft/common/system/controller/WxOfficialController.java index 90b7083..6a5b7d1 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/WxOfficialController.java +++ b/src/main/java/com/gxwebsoft/common/system/controller/WxOfficialController.java @@ -274,8 +274,14 @@ public class WxOfficialController extends BaseController { userRole.setTenantId(user.getTenantId()); userRole.setRoleId(user.getRoleId()); userRoleService.save(userRole); - // 同步到 websopy - userSyncService.syncUserToWebsopy(user); + // 同步到 websopy - 从数据库重新加载确保有完整数据 + User savedUser = userService.getAllByUserId(String.valueOf(userId)); + if (savedUser != null) { + userSyncService.syncUserToWebsopy(savedUser); + } else { + // 如果无法重新加载,使用当前对象 + userSyncService.syncUserToWebsopy(user); + } } System.out.println("新微信公众号用户 userId = " + userId); } @@ -690,8 +696,14 @@ public class WxOfficialController extends BaseController { userRole.setTenantId(user.getTenantId()); userRole.setRoleId(user.getRoleId()); userRoleService.save(userRole); - // 同步到 websopy - userSyncService.syncUserToWebsopy(user); + // 同步到 websopy - 从数据库重新加载确保有完整数据 + User savedUser = userService.getAllByUserId(String.valueOf(userId)); + if (savedUser != null) { + userSyncService.syncUserToWebsopy(savedUser); + } else { + // 如果无法重新加载,使用当前对象 + userSyncService.syncUserToWebsopy(user); + } } System.out.println("数据不一致:创建新用户 userId = " + userId); } diff --git a/src/main/java/com/gxwebsoft/common/system/service/UserSyncService.java b/src/main/java/com/gxwebsoft/common/system/service/UserSyncService.java index 2326252..4c42d5b 100644 --- a/src/main/java/com/gxwebsoft/common/system/service/UserSyncService.java +++ b/src/main/java/com/gxwebsoft/common/system/service/UserSyncService.java @@ -65,8 +65,9 @@ public class UserSyncService { userCache.put("status", user.getStatus()); userCache.put("updateTime", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); // tenantId 可能为 null,但在 websopy 端是必填字段,至少传 0 + // 注意:websopy 端数据库字段是 tenant_id(下划线),不是 tenantId(驼峰) Integer tenantIdValue = user.getTenantId() != null ? user.getTenantId() : 0; - userCache.put("tenantId", tenantIdValue); + userCache.put("tenant_id", tenantIdValue); String url = websopyBaseUrl + "/api/app/user-sync/single"; String body = userCache.toJSONString(); @@ -74,6 +75,9 @@ public class UserSyncService { log.info("同步用户到 websopy: userId={}, username={}, nickname={}, phone={}, tenantId={}, url={}", user.getUserId(), user.getUsername(), user.getNickname(), user.getPhone(), user.getTenantId(), url); log.debug("同步用户请求体: {}", body); + // 额外日志:tenantId 值检查 + log.debug("tenantId检查 - 原始值: {}, 转换后值: {}, 请求体中tenant_id字段: {}", + user.getTenantId(), tenantIdValue, userCache.get("tenant_id")); // 发送 HTTP POST 请求 Map headers = new HashMap<>();