From 323764c813a09cd56cdab780155ef659dbe0b364 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 11 八月 2026 15:08:03 +0800
Subject: [PATCH] update

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java |   39 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 39 insertions(+), 0 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 66328f8..2c1f1f6 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -10,6 +10,7 @@
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.BeanValidators;
 import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.common.utils.uuid.IdUtils;
 import com.ruoyi.system.domain.SysPost;
 import com.ruoyi.system.domain.SysUserPost;
 import com.ruoyi.system.domain.SysUserRole;
@@ -40,6 +41,10 @@
 public class SysUserServiceImpl implements ISysUserService
 {
     private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
+
+    private static final Long ADMIN_ROLE_ID = 1L;
+
+    private static final String MIDDLE_PLATFORM_CREATE_BY = "middlePlatform";
 
     @Autowired
     private SysUserMapper userMapper;
@@ -114,6 +119,40 @@
     }
 
     /**
+     * 获取中台账号对应的本地权限载体,本地不存在时创建独立用户并赋予管理员角色。
+     */
+    @Override
+    @Transactional
+    public SysUser getOrCreateMiddlePlatformAdmin(String userName)
+    {
+        String account = StringUtils.trim(userName);
+        SysUser user = userMapper.selectUserByUserName(account);
+        if (StringUtils.isNotNull(user))
+        {
+            return user;
+        }
+
+        SysUser middlePlatformUser = new SysUser();
+        middlePlatformUser.setUserName(account);
+        middlePlatformUser.setNickName(account);
+        // 使用随机本地密码,避免中台账号绕过中台认证直接从本地登录。
+        middlePlatformUser.setPassword(SecurityUtils.encryptPassword(IdUtils.fastSimpleUUID()));
+        middlePlatformUser.setStatus(UserConstants.NORMAL);
+        middlePlatformUser.setRoleId(ADMIN_ROLE_ID);
+        middlePlatformUser.setCreateBy(MIDDLE_PLATFORM_CREATE_BY);
+        middlePlatformUser.setRemark("中台认证用户自动创建");
+        insertUser(middlePlatformUser);
+
+        SysUser createdUser = userMapper.selectUserByUserName(account);
+        if (StringUtils.isNull(createdUser))
+        {
+            throw new ServiceException("中台用户本地账号创建失败");
+        }
+        log.info("中台登录用户:{} 本地账号不存在,已自动创建并赋予管理员角色。", account);
+        return createdUser;
+    }
+
+    /**
      * 通过用户ID查询用户
      * 
      * @param userId 用户ID

--
Gitblit v1.7.1