!284 更新常量 GenConstants,优化 Map 返回结构
* update 优化返回结构, 将 Map 改为指定 Vo 对象 ;
* update GenConstants 扩展数据库数据类型, 更新 BO, VO, ENTITY 字段, 并移动到 generator 模块 ;
已修改12个文件
已添加10个文件
已重命名1个文件
439 ■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/CaptchaController.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/SysLoginController.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/domain/vo/CaptchaVo.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/domain/vo/LoginVo.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/domain/vo/UserInfoVo.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-generator/src/main/java/com/ruoyi/generator/constant/GenConstants.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/monitor/CacheController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysOssController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysProfileController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysRoleController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysUserController.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/AvatarVo.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/CacheListInfoVo.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/DeptTreeSelectVo.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MenuTreeSelectVo.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/ProfileVo.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssUploadVo.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysUserInfoVo.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/CaptchaController.java
@@ -18,6 +18,7 @@
import com.ruoyi.common.web.config.properties.CaptchaProperties;
import com.ruoyi.common.web.enums.CaptchaType;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.web.domain.vo.CaptchaVo;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.expression.Expression;
@@ -79,10 +80,12 @@
     * ç”ŸæˆéªŒè¯ç 
     */
    @GetMapping("/captchaImage")
    public R<Map<String, Object>> getCode() {
    public R<CaptchaVo> getCode() {
        CaptchaVo captchaVo = new CaptchaVo();
        boolean captchaEnabled = configService.selectCaptchaEnabled();
        if (!captchaEnabled) {
            return R.ok(Map.of("captchaEnabled", false));
            captchaVo.setCaptchaEnabled(false);
            return R.ok(captchaVo);
        }
        // ä¿å­˜éªŒè¯ç ä¿¡æ¯
        String uuid = IdUtil.simpleUUID();
@@ -102,7 +105,9 @@
            code = exp.getValue(String.class);
        }
        RedisUtils.setCacheObject(verifyKey, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
        return R.ok(Map.of("uuid", uuid, "img", captcha.getImageBase64()));
        captchaVo.setUuid(uuid);
        captchaVo.setImg(captcha.getImageBase64());
        return R.ok(captchaVo);
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/SysLoginController.java
@@ -1,7 +1,6 @@
package com.ruoyi.web.controller;
import cn.dev33.satoken.annotation.SaIgnore;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.model.LoginBody;
import com.ruoyi.common.core.domain.model.LoginUser;
@@ -13,6 +12,8 @@
import com.ruoyi.system.service.ISysMenuService;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.SysLoginService;
import com.ruoyi.web.domain.vo.UserInfoVo;
import com.ruoyi.web.domain.vo.LoginVo;
import jakarta.validation.constraints.NotBlank;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
@@ -22,7 +23,6 @@
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
 * ç™»å½•验证
@@ -46,11 +46,13 @@
     */
    @SaIgnore
    @PostMapping("/login")
    public R<Map<String, Object>> login(@Validated @RequestBody LoginBody loginBody) {
    public R<LoginVo> login(@Validated @RequestBody LoginBody loginBody) {
        LoginVo loginVo = new LoginVo();
        // ç”Ÿæˆä»¤ç‰Œ
        String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
            loginBody.getUuid());
        return R.ok(Map.of(Constants.TOKEN, token));
        loginVo.setToken(token);
        return R.ok(loginVo);
    }
    /**
@@ -61,10 +63,12 @@
     */
    @SaIgnore
    @PostMapping("/smsLogin")
    public R<Map<String, Object>> smsLogin(@Validated @RequestBody SmsLoginBody smsLoginBody) {
    public R<LoginVo> smsLogin(@Validated @RequestBody SmsLoginBody smsLoginBody) {
        LoginVo loginVo = new LoginVo();
        // ç”Ÿæˆä»¤ç‰Œ
        String token = loginService.smsLogin(smsLoginBody.getPhonenumber(), smsLoginBody.getSmsCode());
        return R.ok(Map.of(Constants.TOKEN, token));
        loginVo.setToken(token);
        return R.ok(loginVo);
    }
    /**
@@ -75,10 +79,12 @@
     */
    @SaIgnore
    @PostMapping("/xcxLogin")
    public R<Map<String, Object>> xcxLogin(@NotBlank(message = "{xcx.code.not.blank}") String xcxCode) {
    public R<LoginVo> xcxLogin(@NotBlank(message = "{xcx.code.not.blank}") String xcxCode) {
        LoginVo loginVo = new LoginVo();
        // ç”Ÿæˆä»¤ç‰Œ
        String token = loginService.xcxLogin(xcxCode);
        return R.ok(Map.of(Constants.TOKEN, token));
        loginVo.setToken(token);
        return R.ok(loginVo);
    }
    /**
@@ -97,14 +103,14 @@
     * @return ç”¨æˆ·ä¿¡æ¯
     */
    @GetMapping("getInfo")
    public R<Map<String, Object>> getInfo() {
    public R<UserInfoVo> getInfo() {
        UserInfoVo userInfoVo = new UserInfoVo();
        LoginUser loginUser = LoginHelper.getLoginUser();
        SysUser user = userService.selectUserById(loginUser.getUserId());
        return R.ok(Map.of(
            "user", user,
            "roles", loginUser.getRolePermission(),
            "permissions", loginUser.getMenuPermission()
        ));
        userInfoVo.setUser(user);
        userInfoVo.setPermissions(loginUser.getMenuPermission());
        userInfoVo.setRoles(loginUser.getRolePermission());
        return R.ok(userInfoVo);
    }
    /**
ruoyi-admin/src/main/java/com/ruoyi/web/domain/vo/CaptchaVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.ruoyi.web.domain.vo;
import lombok.Data;
/**
 * éªŒè¯ç ä¿¡æ¯
 *
 * @author Michelle.Chung
 */
@Data
public class CaptchaVo {
    /**
     * æ˜¯å¦å¼€å¯éªŒè¯ç 
     */
    private Boolean captchaEnabled = true;
    private String uuid;
    /**
     * éªŒè¯ç å›¾ç‰‡
     */
    private String img;
}
ruoyi-admin/src/main/java/com/ruoyi/web/domain/vo/LoginVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.ruoyi.web.domain.vo;
import lombok.Data;
/**
 * ç™»å½•验证信息
 *
 * @author Michelle.Chung
 */
@Data
public class LoginVo {
    private String token;
}
ruoyi-admin/src/main/java/com/ruoyi/web/domain/vo/UserInfoVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.ruoyi.web.domain.vo;
import com.ruoyi.system.domain.SysUser;
import lombok.Data;
import java.util.Set;
/**
 * ç™»å½•用户信息
 *
 * @author Michelle.Chung
 */
@Data
public class UserInfoVo {
    /**
     * ç”¨æˆ·åŸºæœ¬ä¿¡æ¯
     */
    private SysUser user;
    /**
     * èœå•权限
     */
    private Set<String> permissions;
    /**
     * è§’色权限
     */
    private Set<String> roles;
}
ruoyi-modules/ruoyi-generator/src/main/java/com/ruoyi/generator/constant/GenConstants.java
ÎļþÃû´Ó ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/GenConstants.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.ruoyi.common.core.constant;
package com.ruoyi.generator.constant;
/**
 * ä»£ç ç”Ÿæˆé€šç”¨å¸¸é‡
@@ -44,52 +44,55 @@
    /**
     * æ•°æ®åº“字符串类型
     */
    String[] COLUMNTYPE_STR = {"char", "varchar", "nvarchar", "varchar2"};
    String[] COLUMNTYPE_STR = {"char", "varchar", "enum", "set", "nchar", "nvarchar", "varchar2", "nvarchar2"};
    /**
     * æ•°æ®åº“文本类型
     */
    String[] COLUMNTYPE_TEXT = {"tinytext", "text", "mediumtext", "longtext"};
    String[] COLUMNTYPE_TEXT = {"tinytext", "text", "mediumtext", "longtext", "binary", "varbinary", "blob",
        "ntext", "image", "bytea"};
    /**
     * æ•°æ®åº“时间类型
     */
    String[] COLUMNTYPE_TIME = {"datetime", "time", "date", "timestamp"};
    String[] COLUMNTYPE_TIME = {"datetime", "time", "date", "timestamp", "year", "interval",
        "smalldatetime", "datetime2", "datetimeoffset"};
    /**
     * æ•°æ®åº“数字类型
     */
    String[] COLUMNTYPE_NUMBER = {"tinyint", "smallint", "mediumint", "int", "number", "integer",
        "bit", "bigint", "float", "double", "decimal"};
        "bit", "bigint", "float", "double", "decimal", "numeric", "real", "double precision",
        "smallserial", "serial", "bigserial", "money", "smallmoney"};
    /**
     * BO对象 ä¸éœ€è¦æ·»åŠ å­—æ®µ
     */
    String[] COLUMNNAME_NOT_ADD = {"create_by", "create_time", "del_flag", "update_by",
    String[] COLUMNNAME_NOT_ADD = {"create_dept", "create_by", "create_time", "del_flag", "update_by",
        "update_time", "version"};
    /**
     * BO对象 ä¸éœ€è¦ç¼–辑字段
     */
    String[] COLUMNNAME_NOT_EDIT = {"create_by", "create_time", "del_flag", "update_by",
    String[] COLUMNNAME_NOT_EDIT = {"create_dept", "create_by", "create_time", "del_flag", "update_by",
        "update_time", "version"};
    /**
     * VO对象 ä¸éœ€è¦è¿”回字段
     */
    String[] COLUMNNAME_NOT_LIST = {"create_by", "create_time", "del_flag", "update_by",
    String[] COLUMNNAME_NOT_LIST = {"create_dept", "create_by", "create_time", "del_flag", "update_by",
        "update_time", "version"};
    /**
     * BO对象 ä¸éœ€è¦æŸ¥è¯¢å­—段
     */
    String[] COLUMNNAME_NOT_QUERY = {"id", "create_by", "create_time", "del_flag", "update_by",
    String[] COLUMNNAME_NOT_QUERY = {"id", "create_dept", "create_by", "create_time", "del_flag", "update_by",
        "update_time", "remark", "version"};
    /**
     * Entity基类字段
     */
    String[] BASE_ENTITY = {"createBy", "createTime", "updateBy", "updateTime"};
    String[] BASE_ENTITY = {"createDept", "createBy", "createTime", "updateBy", "updateTime"};
    /**
     * Tree基类字段
ruoyi-modules/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java
@@ -1,7 +1,7 @@
package com.ruoyi.generator.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.ruoyi.common.core.constant.GenConstants;
import com.ruoyi.generator.constant.GenConstants;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.mybatis.core.domain.BaseEntity;
import jakarta.validation.Valid;
ruoyi-modules/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
@@ -11,7 +11,7 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.constant.GenConstants;
import com.ruoyi.generator.constant.GenConstants;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StreamUtils;
import com.ruoyi.common.core.utils.StringUtils;
ruoyi-modules/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java
@@ -1,6 +1,6 @@
package com.ruoyi.generator.util;
import com.ruoyi.common.core.constant.GenConstants;
import com.ruoyi.generator.constant.GenConstants;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.satoken.utils.LoginHelper;
import com.ruoyi.generator.config.GenConfig;
ruoyi-modules/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java
@@ -3,7 +3,7 @@
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.Dict;
import com.ruoyi.common.core.constant.GenConstants;
import com.ruoyi.generator.constant.GenConstants;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.json.utils.JsonUtils;
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/monitor/CacheController.java
@@ -11,6 +11,7 @@
import com.ruoyi.common.redis.utils.CacheUtils;
import com.ruoyi.common.redis.utils.RedisUtils;
import com.ruoyi.system.domain.SysCache;
import com.ruoyi.system.domain.vo.CacheListInfoVo;
import lombok.RequiredArgsConstructor;
import org.redisson.spring.data.connection.RedissonConnectionFactory;
import org.springframework.data.redis.connection.RedisConnection;
@@ -49,7 +50,7 @@
     */
    @SaCheckPermission("monitor:cache:list")
    @GetMapping()
    public R<Map<String, Object>> getInfo() throws Exception {
    public R<CacheListInfoVo> getInfo() throws Exception {
        RedisConnection connection = connectionFactory.getConnection();
        Properties commandStats = connection.commands().info("commandstats");
@@ -63,11 +64,12 @@
                pieList.add(data);
            });
        }
        return R.ok(Map.of(
                "info", connection.commands().info(),
                "dbSize", connection.commands().dbSize(),
                "commandStats", pieList
        ));
        CacheListInfoVo infoVo = new CacheListInfoVo();
        infoVo.setInfo(connection.commands().info());
        infoVo.setDbSize(connection.commands().dbSize());
        infoVo.setCommandStats(pieList);
        return R.ok(infoVo);
    }
    /**
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java
@@ -10,6 +10,7 @@
import com.ruoyi.common.satoken.utils.LoginHelper;
import com.ruoyi.common.web.core.BaseController;
import com.ruoyi.system.domain.bo.SysMenuBo;
import com.ruoyi.system.domain.vo.MenuTreeSelectVo;
import com.ruoyi.system.domain.vo.SysMenuVo;
import com.ruoyi.system.service.ISysMenuService;
import lombok.RequiredArgsConstructor;
@@ -17,7 +18,6 @@
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
 * èœå•信息
@@ -68,12 +68,12 @@
     * @param roleId è§’色ID
     */
    @GetMapping(value = "/roleMenuTreeselect/{roleId}")
    public R<Map<String, Object>> roleMenuTreeselect(@PathVariable("roleId") Long roleId) {
    public R<MenuTreeSelectVo> roleMenuTreeselect(@PathVariable("roleId") Long roleId) {
        List<SysMenuVo> menus = menuService.selectMenuList(LoginHelper.getUserId());
        return R.ok(Map.of(
                "checkedKeys", menuService.selectMenuListByRoleId(roleId),
                "menus", menuService.buildMenuTreeSelect(menus)
        ));
        MenuTreeSelectVo selectVo = new MenuTreeSelectVo();
        selectVo.setCheckedKeys(menuService.selectMenuListByRoleId(roleId));
        selectVo.setMenus(menuService.buildMenuTreeSelect(menus));
        return R.ok(selectVo);
    }
    /**
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysOssController.java
@@ -12,6 +12,7 @@
import com.ruoyi.common.mybatis.core.page.PageQuery;
import com.ruoyi.common.mybatis.core.page.TableDataInfo;
import com.ruoyi.system.domain.bo.SysOssBo;
import com.ruoyi.system.domain.vo.SysOssUploadVo;
import com.ruoyi.system.domain.vo.SysOssVo;
import com.ruoyi.system.service.ISysOssService;
import jakarta.servlet.http.HttpServletResponse;
@@ -25,7 +26,6 @@
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
 * æ–‡ä»¶ä¸Šä¼  æŽ§åˆ¶å±‚
@@ -70,16 +70,16 @@
    @SaCheckPermission("system:oss:upload")
    @Log(title = "OSS对象存储", businessType = BusinessType.INSERT)
    @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public R<Map<String, String>> upload(@RequestPart("file") MultipartFile file) {
    public R<SysOssUploadVo> upload(@RequestPart("file") MultipartFile file) {
        if (ObjectUtil.isNull(file)) {
            throw new ServiceException("上传文件不能为空");
        }
        SysOssVo oss = iSysOssService.upload(file);
        return R.ok(Map.of(
                "url", oss.getUrl(),
                "fileName", oss.getOriginalName(),
                "ossId", oss.getOssId().toString()
        ));
        SysOssUploadVo uploadVo = new SysOssUploadVo();
        uploadVo.setUrl(oss.getUrl());
        uploadVo.setFileName(oss.getOriginalName());
        uploadVo.setOssId(oss.getOssId().toString());
        return R.ok(uploadVo);
    }
    /**
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysProfileController.java
@@ -11,6 +11,8 @@
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.satoken.utils.LoginHelper;
import com.ruoyi.system.domain.SysUser;
import com.ruoyi.system.domain.vo.AvatarVo;
import com.ruoyi.system.domain.vo.ProfileVo;
import com.ruoyi.system.domain.vo.SysOssVo;
import com.ruoyi.system.service.ISysOssService;
import com.ruoyi.system.service.ISysUserService;
@@ -21,7 +23,6 @@
import org.springframework.web.multipart.MultipartFile;
import java.util.Arrays;
import java.util.Map;
/**
 * ä¸ªäººä¿¡æ¯ ä¸šåŠ¡å¤„ç†
@@ -41,13 +42,13 @@
     * ä¸ªäººä¿¡æ¯
     */
    @GetMapping
    public R<Map<String, Object>> profile() {
    public R<ProfileVo> profile() {
        SysUser user = userService.selectUserById(LoginHelper.getUserId());
        return R.ok(Map.of(
                "user", user,
                "roleGroup", userService.selectUserRoleGroup(user.getUserName()),
                "postGroup", userService.selectUserPostGroup(user.getUserName())
        ));
        ProfileVo profileVo = new ProfileVo();
        profileVo.setUser(user);
        profileVo.setRoleGroup(userService.selectUserRoleGroup(user.getUserName()));
        profileVo.setPostGroup(userService.selectUserPostGroup(user.getUserName()));
        return R.ok(profileVo);
    }
    /**
@@ -107,7 +108,7 @@
     */
    @Log(title = "用户头像", businessType = BusinessType.UPDATE)
    @PostMapping(value = "/avatar", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public R<Map<String, Object>> avatar(@RequestPart("avatarfile") MultipartFile avatarfile) {
    public R<AvatarVo> avatar(@RequestPart("avatarfile") MultipartFile avatarfile) {
        if (!avatarfile.isEmpty()) {
            String extension = FileUtil.extName(avatarfile.getOriginalFilename());
            if (!StringUtils.equalsAnyIgnoreCase(extension, MimeTypeUtils.IMAGE_EXTENSION)) {
@@ -116,7 +117,9 @@
            SysOssVo oss = iSysOssService.upload(avatarfile);
            String avatar = oss.getUrl();
            if (userService.updateUserAvatar(LoginHelper.getUsername(), avatar)) {
                return R.ok(Map.of("imgUrl", avatar));
                AvatarVo avatarVo = new AvatarVo();
                avatarVo.setImgUrl(avatar);
                return R.ok(avatarVo);
            }
        }
        return R.fail("上传图片异常,请联系管理员");
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysRoleController.java
@@ -16,6 +16,7 @@
import com.ruoyi.system.domain.SysUser;
import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.domain.bo.SysRoleBo;
import com.ruoyi.system.domain.vo.DeptTreeSelectVo;
import com.ruoyi.system.domain.vo.SysRoleVo;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysRoleService;
@@ -27,7 +28,6 @@
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
 * è§’色信息
@@ -228,10 +228,10 @@
     */
    @SaCheckPermission("system:role:list")
    @GetMapping(value = "/deptTree/{roleId}")
    public R<Map<String, Object>> roleDeptTreeselect(@PathVariable("roleId") Long roleId) {
        return R.ok(Map.of(
                "checkedKeys", deptService.selectDeptListByRoleId(roleId),
                "depts", deptService.selectDeptTreeList(new SysDept())
        ));
    public R<DeptTreeSelectVo> roleDeptTreeselect(@PathVariable("roleId") Long roleId) {
        DeptTreeSelectVo selectVo = new DeptTreeSelectVo();
        selectVo.setCheckedKeys(deptService.selectDeptListByRoleId(roleId));
        selectVo.setDepts(deptService.selectDeptTreeList(new SysDept()));
        return R.ok(selectVo);
    }
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysUserController.java
@@ -24,6 +24,7 @@
import com.ruoyi.system.domain.vo.SysRoleVo;
import com.ruoyi.system.domain.vo.SysUserExportVo;
import com.ruoyi.system.domain.vo.SysUserImportVo;
import com.ruoyi.system.domain.vo.SysUserInfoVo;
import com.ruoyi.system.listener.SysUserImportListener;
import com.ruoyi.system.service.*;
import jakarta.servlet.http.HttpServletResponse;
@@ -109,19 +110,19 @@
     */
    @SaCheckPermission("system:user:query")
    @GetMapping(value = {"/", "/{userId}"})
    public R<Map<String, Object>> getInfo(@PathVariable(value = "userId", required = false) Long userId) {
    public R<SysUserInfoVo> getInfo(@PathVariable(value = "userId", required = false) Long userId) {
        userService.checkUserDataScope(userId);
        Map<String, Object> ajax = new HashMap<>();
        SysUserInfoVo userInfoVo = new SysUserInfoVo();
        List<SysRoleVo> roles = roleService.selectRoleAll();
        ajax.put("roles", LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin()));
        ajax.put("posts", postService.selectPostAll());
        userInfoVo.setRoles(LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin()));
        userInfoVo.setPosts(postService.selectPostAll());
        if (ObjectUtil.isNotNull(userId)) {
            SysUser sysUser = userService.selectUserById(userId);
            ajax.put("user", sysUser);
            ajax.put("postIds", postService.selectPostListByUserId(userId));
            ajax.put("roleIds", StreamUtils.toList(sysUser.getRoles(), SysRole::getRoleId));
            userInfoVo.setUser(sysUser);
            userInfoVo.setRoleIds(StreamUtils.toList(sysUser.getRoles(), SysRole::getRoleId));
            userInfoVo.setPostIds(postService.selectPostListByUserId(userId));
        }
        return R.ok(ajax);
        return R.ok(userInfoVo);
    }
    /**
@@ -212,13 +213,13 @@
     */
    @SaCheckPermission("system:user:query")
    @GetMapping("/authRole/{userId}")
    public R<Map<String, Object>> authRole(@PathVariable Long userId) {
    public R<SysUserInfoVo> authRole(@PathVariable Long userId) {
        SysUser user = userService.selectUserById(userId);
        List<SysRoleVo> roles = roleService.selectRolesByUserId(userId);
        return R.ok(Map.of(
                "user", user,
                "roles", LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin())
        ));
        SysUserInfoVo userInfoVo = new SysUserInfoVo();
        userInfoVo.setUser(user);
        userInfoVo.setRoles(LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin()));
        return R.ok(userInfoVo);
    }
    /**
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/AvatarVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.system.domain.vo;
import lombok.Data;
/**
 * ç”¨æˆ·å¤´åƒä¿¡æ¯
 *
 * @author Michelle.Chung
 */
@Data
public class AvatarVo {
    /**
     * å¤´åƒåœ°å€
     */
    private String imgUrl;
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/CacheListInfoVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.ruoyi.system.domain.vo;
import lombok.Data;
import java.util.List;
import java.util.Map;
import java.util.Properties;
/**
 * ç¼“存监控列表信息
 *
 * @author Michelle.Chung
 */
@Data
public class CacheListInfoVo {
    private Properties info;
    private Long dbSize;
    private List<Map<String, String>> commandStats;
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/DeptTreeSelectVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.ruoyi.system.domain.vo;
import cn.hutool.core.lang.tree.Tree;
import lombok.Data;
import java.util.List;
/**
 * è§’色部门列表树信息
 *
 * @author Michelle.Chung
 */
@Data
public class DeptTreeSelectVo {
    /**
     * é€‰ä¸­éƒ¨é—¨åˆ—表
     */
    private List<Long> checkedKeys;
    /**
     * ä¸‹æ‹‰æ ‘结构列表
     */
    private List<Tree<Long>> depts;
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MenuTreeSelectVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.ruoyi.system.domain.vo;
import cn.hutool.core.lang.tree.Tree;
import lombok.Data;
import java.util.List;
/**
 * è§’色菜单列表树信息
 *
 * @author Michelle.Chung
 */
@Data
public class MenuTreeSelectVo {
    /**
     * é€‰ä¸­èœå•列表
     */
    private List<Long> checkedKeys;
    /**
     * èœå•下拉树结构列表
     */
    private List<Tree<Long>> menus;
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/ProfileVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package com.ruoyi.system.domain.vo;
import com.ruoyi.system.domain.SysUser;
import lombok.Data;
/**
 * ç”¨æˆ·ä¸ªäººä¿¡æ¯
 *
 * @author Michelle.Chung
 */
@Data
public class ProfileVo {
    /**
     * ç”¨æˆ·ä¿¡æ¯
     */
    private SysUser user;
    /**
     * ç”¨æˆ·æ‰€å±žè§’色组
     */
    private String roleGroup;
    /**
     * ç”¨æˆ·æ‰€å±žå²—位组
     */
    private String postGroup;
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssUploadVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.ruoyi.system.domain.vo;
import lombok.Data;
/**
 * ä¸Šä¼ å¯¹è±¡ä¿¡æ¯
 *
 * @author Michelle.Chung
 */
@Data
public class SysOssUploadVo {
    /**
     * URL地址
     */
    private String url;
    /**
     * æ–‡ä»¶å
     */
    private String fileName;
    /**
     * å¯¹è±¡å­˜å‚¨ä¸»é”®
     */
    private String ossId;
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysUserInfoVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package com.ruoyi.system.domain.vo;
import com.ruoyi.system.domain.SysUser;
import lombok.Data;
import java.util.List;
/**
 * ç”¨æˆ·ä¿¡æ¯
 *
 * @author Michelle.Chung
 */
@Data
public class SysUserInfoVo {
    /**
     * ç”¨æˆ·ä¿¡æ¯
     */
    private SysUser user;
    /**
     * è§’色ID列表
     */
    private List<Long> roleIds;
    /**
     * è§’色列表
     */
    private List<SysRoleVo> roles;
    /**
     * å²—位ID列表
     */
    private List<Long> postIds;
    /**
     * å²—位列表
     */
    private List<SysPostVo> posts;
}