From 52422adc2297f11e5e0c4b0feaed0688537ddc9c Mon Sep 17 00:00:00 2001
From: 刘帅 <rr.iii@qq.com>
Date: 星期三, 23 九月 2026 11:52:47 +0800
Subject: [PATCH] bug:员工角色赋值问题
---
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java | 19 ++++++++-----------
1 files changed, 8 insertions(+), 11 deletions(-)
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java
index c58c69e..c62f9dd 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java
@@ -491,9 +491,9 @@
// "undefined";该值绝不能覆盖 sys_user.roleid。
if (isValidRoleId(user.getRoleid())) {
oldUser.setRoleid(user.getRoleid());
- // 角色归属类型决定账号的数据范围。切换角色时同步 objectType,
- // 但保留原 objectId,避免修改角色意外解除门店/运营商归属。
- syncObjectTypeWithRole(oldUser, user.getRoleid());
+ // 仅内置平台管理员(1)和门店管理员(3)切换数据归属类型;
+ // 其他自定义角色只控制菜单权限,不改变账号归属。objectId 始终保留。
+ syncObjectTypeWithBuiltInRole(oldUser, user.getRoleid());
}
this.userService.updateById(oldUser);
return SUCCESS_TIP;
@@ -505,14 +505,11 @@
&& !"null".equalsIgnoreCase(roleId);
}
- private void syncObjectTypeWithRole(User user, String roleId) {
- try {
- Role role = roleService.getById(Integer.valueOf(roleId));
- if (role != null && role.getObjType() != null) {
- user.setObjectType(role.getObjType());
- }
- } catch (NumberFormatException ignored) {
- // 历史账号可能保存多角色或脏数据;无法解析为单个角色时保留原归属类型。
+ private void syncObjectTypeWithBuiltInRole(User user, String roleId) {
+ if ("1".equals(roleId)) {
+ user.setObjectType(1);
+ } else if ("3".equals(roleId)) {
+ user.setObjectType(3);
}
}
--
Gitblit v1.7.1