刘帅
2026-09-23 30774a92c4c492eb9629752faca04a00cd946304
bug:员工角色问题
1个文件已修改
14 ■■■■■ 已修改文件
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java
@@ -491,6 +491,9 @@
        // "undefined";该值绝不能覆盖 sys_user.roleid。
        if (isValidRoleId(user.getRoleid())) {
            oldUser.setRoleid(user.getRoleid());
            // 角色归属类型决定账号的数据范围。切换角色时同步 objectType,
            // 但保留原 objectId,避免修改角色意外解除门店/运营商归属。
            syncObjectTypeWithRole(oldUser, user.getRoleid());
        }
        this.userService.updateById(oldUser);
        return SUCCESS_TIP;
@@ -502,6 +505,17 @@
                && !"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 String maskPhone(String value) {
        if (value == null) return null;
        return value.length() <= 7 ? stars(value.length()) : value.substring(0, 3) + "****" + value.substring(7);