刘帅
2026-09-23 2d1510060f55ac012cb862363203313744c0432f
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java
@@ -160,7 +160,9 @@
        }
        user.setPhone(maskPhone(user.getPhone()));
        user.setIdCard(maskIdCard(user.getIdCard()));
        model.addAttribute(user);
        // 显式指定模型名称和身份证回显字段,避免模板按隐式参数名解析失败。
        model.addAttribute("user", user);
        model.addAttribute("idCard", user.getIdCard());
        if(role==null){
            model.addAttribute("roleName", "");
        }else {
@@ -489,6 +491,9 @@
        // "undefined";该值绝不能覆盖 sys_user.roleid。
        if (isValidRoleId(user.getRoleid())) {
            oldUser.setRoleid(user.getRoleid());
            // 仅内置平台管理员(1)和门店管理员(3)切换数据归属类型;
            // 其他自定义角色只控制菜单权限,不改变账号归属。objectId 始终保留。
            syncObjectTypeWithBuiltInRole(oldUser, user.getRoleid());
        }
        this.userService.updateById(oldUser);
        return SUCCESS_TIP;
@@ -500,6 +505,14 @@
                && !"null".equalsIgnoreCase(roleId);
    }
    private void syncObjectTypeWithBuiltInRole(User user, String roleId) {
        if ("1".equals(roleId)) {
            user.setObjectType(1);
        } else if ("3".equals(roleId)) {
            user.setObjectType(3);
        }
    }
    private String maskPhone(String value) {
        if (value == null) return null;
        return value.length() <= 7 ? stars(value.length()) : value.substring(0, 3) + "****" + value.substring(7);