From 1f7c36424e8f48a5917ac6c77e2e47979c469a28 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期三, 26 八月 2026 09:00:14 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_business' into dev_business

---
 yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java
index 5a8d019..da7b82f 100644
--- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java
+++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java
@@ -57,6 +57,12 @@
     @Resource
     @Lazy // 鎳掑姞杞斤紝閬垮厤寰幆渚濊禆
     private AdminUserService adminUserService;
+    @Resource
+    @Lazy
+    private cn.iocoder.yudao.module.system.service.permission.PermissionService permissionService;
+    @Resource
+    @Lazy
+    private cn.iocoder.yudao.module.system.service.permission.RoleService roleService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -226,8 +232,18 @@
         }
         if (userType.equals(UserTypeEnum.ADMIN.getValue())) {
             AdminUserDO user = adminUserService.getUser(userId);
-            return MapUtil.builder(LoginUser.INFO_KEY_NICKNAME, user.getNickname())
-                    .put(LoginUser.INFO_KEY_DEPT_ID, StrUtil.toStringOrNull(user.getDeptId())).build();
+            java.util.Map<String, String> info = new java.util.HashMap<>();
+            info.put(LoginUser.INFO_KEY_NICKNAME, user.getNickname());
+            info.put(LoginUser.INFO_KEY_DEPT_ID, cn.hutool.core.util.StrUtil.toStringOrNull(user.getDeptId()));
+            // Fetch roles and put into info
+            java.util.Set<Long> roleIds = permissionService.getUserRoleIdListByUserId(userId);
+            if (cn.hutool.core.collection.CollUtil.isNotEmpty(roleIds)) {
+                java.util.List<cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO> roles = roleService.getRoleList(roleIds);
+                if (cn.hutool.core.collection.CollUtil.isNotEmpty(roles)) {
+                    info.put(LoginUser.INFO_KEY_ROLE_CODES, cn.hutool.core.collection.CollUtil.join(roles, ",", cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO::getCode));
+                }
+            }
+            return info;
         } else if (userType.equals(UserTypeEnum.MEMBER.getValue())) {
             // 娉ㄦ剰锛氱洰鍓� Member 鏆傛椂涓嶈鍙栵紝鍙互鎸夐渶瀹炵幇
             return Collections.emptyMap();

--
Gitblit v1.9.3