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