From e8225fbdee782bbabecda08d6d1a285e39c5ca3b Mon Sep 17 00:00:00 2001
From: MichelleChung <1242874891@qq.com>
Date: 星期四, 02 二月 2023 16:15:52 +0800
Subject: [PATCH] !282 System 相关表请求响应参数优化 * update 更新 system 相关表接口 (sys_role) 新增 Bo | Vo 类, 更改请求以及响应参数 ; * update 更新 system 相关表接口 (sys_notice, sys_post) 新增 Bo | Vo 类, 更改请求以及响应参数 ; * update 更新 system 相关表接口 (sys_menu) 新增 Bo | Vo 类, 更改请求以及响应参数 ; * update 更新 system 相关表接口 (sys_dict_data, sys_dict_type) 新增 Bo | Vo 类, 更改请求以及响应参数 ; * update 更新 system 相关表接口 (sys_config, sys_dept) 新增 Bo | Vo 类, 更改请求以及响应参数 ;

---
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java         |   55 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysPostController.java     |   21 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java                |    3 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysNoticeVo.java                   |   70 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysConfigBo.java                   |   60 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeMapper.java                  |    3 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java                        |   20 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java                    |    3 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPostService.java                 |   23 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysPostBo.java                     |   61 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysDictTypeVo.java                 |   64 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysPostMapper.java                    |    5 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysDeptVo.java                     |   89 ++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java       |   43 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysRoleVo.java                     |  104 ++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysUserBo.java                     |  127 +++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java                          |    8 
 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml                          |    2 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java         |   55 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java         |   19 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java             |   17 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysRoleController.java     |   23 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysRoleBo.java                     |   84 ++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDeptController.java     |   17 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDept.java                          |    6 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java     |   89 +-
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java       |   63 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java                    |   11 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysDictTypeBo.java                 |   59 +
 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml                          |    2 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java               |   19 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java     |   53 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java                 |   14 
 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml                          |    2 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysConfigVo.java                   |   70 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysMenuVo.java                     |  108 ++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java     |    8 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysUserController.java     |    5 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java               |   17 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysUserVo.java                     |  128 +++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java                    |    5 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictData.java                      |   24 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java                 |   35 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysNoticeController.java   |   11 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysConfigController.java   |   19 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRole.java                          |   25 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysDeptBo.java                     |   63 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysNoticeBo.java                   |   60 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDictTypeController.java |   16 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysDictDataVo.java                 |   93 ++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java                 |   16 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java             |   24 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java                  |    3 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysDictDataBo.java                 |   86 ++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictType.java                      |   19 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysPostVo.java                     |   71 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDictDataController.java |   20 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java         |   77 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java                          |   12 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java                        |    7 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java         |   10 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java                |    7 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysMenuBo.java                     |  106 ++
 63 files changed, 1,960 insertions(+), 479 deletions(-)

diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysConfigController.java
index f4b325a..f9074fa 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysConfigController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysConfigController.java
@@ -9,7 +9,8 @@
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.excel.utils.ExcelUtil;
-import com.ruoyi.system.domain.SysConfig;
+import com.ruoyi.system.domain.bo.SysConfigBo;
+import com.ruoyi.system.domain.vo.SysConfigVo;
 import com.ruoyi.system.service.ISysConfigService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
@@ -36,7 +37,7 @@
      */
     @SaCheckPermission("system:config:list")
     @GetMapping("/list")
-    public TableDataInfo<SysConfig> list(SysConfig config, PageQuery pageQuery) {
+    public TableDataInfo<SysConfigVo> list(SysConfigBo config, PageQuery pageQuery) {
         return configService.selectPageConfigList(config, pageQuery);
     }
 
@@ -46,9 +47,9 @@
     @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.EXPORT)
     @SaCheckPermission("system:config:export")
     @PostMapping("/export")
-    public void export(SysConfig config, HttpServletResponse response) {
-        List<SysConfig> list = configService.selectConfigList(config);
-        ExcelUtil.exportExcel(list, "鍙傛暟鏁版嵁", SysConfig.class, response);
+    public void export(SysConfigBo config, HttpServletResponse response) {
+        List<SysConfigVo> list = configService.selectConfigList(config);
+        ExcelUtil.exportExcel(list, "鍙傛暟鏁版嵁", SysConfigVo.class, response);
     }
 
     /**
@@ -58,7 +59,7 @@
      */
     @SaCheckPermission("system:config:query")
     @GetMapping(value = "/{configId}")
-    public R<SysConfig> getInfo(@PathVariable Long configId) {
+    public R<SysConfigVo> getInfo(@PathVariable Long configId) {
         return R.ok(configService.selectConfigById(configId));
     }
 
@@ -78,7 +79,7 @@
     @SaCheckPermission("system:config:add")
     @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.INSERT)
     @PostMapping
-    public R<Void> add(@Validated @RequestBody SysConfig config) {
+    public R<Void> add(@Validated @RequestBody SysConfigBo config) {
         if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) {
             return R.fail("鏂板鍙傛暟'" + config.getConfigName() + "'澶辫触锛屽弬鏁伴敭鍚嶅凡瀛樺湪");
         }
@@ -92,7 +93,7 @@
     @SaCheckPermission("system:config:edit")
     @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping
-    public R<Void> edit(@Validated @RequestBody SysConfig config) {
+    public R<Void> edit(@Validated @RequestBody SysConfigBo config) {
         if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) {
             return R.fail("淇敼鍙傛暟'" + config.getConfigName() + "'澶辫触锛屽弬鏁伴敭鍚嶅凡瀛樺湪");
         }
@@ -106,7 +107,7 @@
     @SaCheckPermission("system:config:edit")
     @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping("/updateByKey")
-    public R<Void> updateByKey(@RequestBody SysConfig config) {
+    public R<Void> updateByKey(@RequestBody SysConfigBo config) {
         configService.updateConfig(config);
         return R.ok();
     }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDeptController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDeptController.java
index 9abed98..316497c 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDeptController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDeptController.java
@@ -6,9 +6,10 @@
 import com.ruoyi.common.core.constant.UserConstants;
 import com.ruoyi.common.web.core.BaseController;
 import com.ruoyi.common.core.domain.R;
-import com.ruoyi.system.domain.SysDept;
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.system.domain.bo.SysDeptBo;
+import com.ruoyi.system.domain.vo.SysDeptVo;
 import com.ruoyi.system.service.ISysDeptService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
@@ -34,8 +35,8 @@
      */
     @SaCheckPermission("system:dept:list")
     @GetMapping("/list")
-    public R<List<SysDept>> list(SysDept dept) {
-        List<SysDept> depts = deptService.selectDeptList(dept);
+    public R<List<SysDeptVo>> list(SysDeptBo dept) {
+        List<SysDeptVo> depts = deptService.selectDeptList(dept);
         return R.ok(depts);
     }
 
@@ -46,8 +47,8 @@
      */
     @SaCheckPermission("system:dept:list")
     @GetMapping("/list/exclude/{deptId}")
-    public R<List<SysDept>> excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) {
-        List<SysDept> depts = deptService.selectDeptList(new SysDept());
+    public R<List<SysDeptVo>> excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) {
+        List<SysDeptVo> depts = deptService.selectDeptList(new SysDeptBo());
         depts.removeIf(d -> d.getDeptId().equals(deptId)
             || ArrayUtil.contains(StringUtils.split(d.getAncestors(), ","), deptId + ""));
         return R.ok(depts);
@@ -60,7 +61,7 @@
      */
     @SaCheckPermission("system:dept:query")
     @GetMapping(value = "/{deptId}")
-    public R<SysDept> getInfo(@PathVariable Long deptId) {
+    public R<SysDeptVo> getInfo(@PathVariable Long deptId) {
         deptService.checkDeptDataScope(deptId);
         return R.ok(deptService.selectDeptById(deptId));
     }
@@ -71,7 +72,7 @@
     @SaCheckPermission("system:dept:add")
     @Log(title = "閮ㄩ棬绠$悊", businessType = BusinessType.INSERT)
     @PostMapping
-    public R<Void> add(@Validated @RequestBody SysDept dept) {
+    public R<Void> add(@Validated @RequestBody SysDeptBo dept) {
         if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) {
             return R.fail("鏂板閮ㄩ棬'" + dept.getDeptName() + "'澶辫触锛岄儴闂ㄥ悕绉板凡瀛樺湪");
         }
@@ -84,7 +85,7 @@
     @SaCheckPermission("system:dept:edit")
     @Log(title = "閮ㄩ棬绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping
-    public R<Void> edit(@Validated @RequestBody SysDept dept) {
+    public R<Void> edit(@Validated @RequestBody SysDeptBo dept) {
         Long deptId = dept.getDeptId();
         deptService.checkDeptDataScope(deptId);
         if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) {
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDictDataController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDictDataController.java
index ed9d2ec..5cc5e89 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDictDataController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDictDataController.java
@@ -10,6 +10,8 @@
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.excel.utils.ExcelUtil;
+import com.ruoyi.system.domain.bo.SysDictDataBo;
+import com.ruoyi.system.domain.vo.SysDictDataVo;
 import com.ruoyi.system.service.ISysDictDataService;
 import com.ruoyi.system.service.ISysDictTypeService;
 import lombok.RequiredArgsConstructor;
@@ -39,7 +41,7 @@
      */
     @SaCheckPermission("system:dict:list")
     @GetMapping("/list")
-    public TableDataInfo<SysDictData> list(SysDictData dictData, PageQuery pageQuery) {
+    public TableDataInfo<SysDictDataVo> list(SysDictDataBo dictData, PageQuery pageQuery) {
         return dictDataService.selectPageDictDataList(dictData, pageQuery);
     }
 
@@ -49,9 +51,9 @@
     @Log(title = "瀛楀吀鏁版嵁", businessType = BusinessType.EXPORT)
     @SaCheckPermission("system:dict:export")
     @PostMapping("/export")
-    public void export(SysDictData dictData, HttpServletResponse response) {
-        List<SysDictData> list = dictDataService.selectDictDataList(dictData);
-        ExcelUtil.exportExcel(list, "瀛楀吀鏁版嵁", SysDictData.class, response);
+    public void export(SysDictDataBo dictData, HttpServletResponse response) {
+        List<SysDictDataVo> list = dictDataService.selectDictDataList(dictData);
+        ExcelUtil.exportExcel(list, "瀛楀吀鏁版嵁", SysDictDataVo.class, response);
     }
 
     /**
@@ -61,7 +63,7 @@
      */
     @SaCheckPermission("system:dict:query")
     @GetMapping(value = "/{dictCode}")
-    public R<SysDictData> getInfo(@PathVariable Long dictCode) {
+    public R<SysDictDataVo> getInfo(@PathVariable Long dictCode) {
         return R.ok(dictDataService.selectDictDataById(dictCode));
     }
 
@@ -71,8 +73,8 @@
      * @param dictType 瀛楀吀绫诲瀷
      */
     @GetMapping(value = "/type/{dictType}")
-    public R<List<SysDictData>> dictType(@PathVariable String dictType) {
-        List<SysDictData> data = dictTypeService.selectDictDataByType(dictType);
+    public R<List<SysDictDataVo>> dictType(@PathVariable String dictType) {
+        List<SysDictDataVo> data = dictTypeService.selectDictDataByType(dictType);
         if (ObjectUtil.isNull(data)) {
             data = new ArrayList<>();
         }
@@ -85,7 +87,7 @@
     @SaCheckPermission("system:dict:add")
     @Log(title = "瀛楀吀鏁版嵁", businessType = BusinessType.INSERT)
     @PostMapping
-    public R<Void> add(@Validated @RequestBody SysDictData dict) {
+    public R<Void> add(@Validated @RequestBody SysDictDataBo dict) {
         dictDataService.insertDictData(dict);
         return R.ok();
     }
@@ -96,7 +98,7 @@
     @SaCheckPermission("system:dict:edit")
     @Log(title = "瀛楀吀鏁版嵁", businessType = BusinessType.UPDATE)
     @PutMapping
-    public R<Void> edit(@Validated @RequestBody SysDictData dict) {
+    public R<Void> edit(@Validated @RequestBody SysDictDataBo dict) {
         dictDataService.updateDictData(dict);
         return R.ok();
     }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDictTypeController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDictTypeController.java
index 31adc9f..291920d 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDictTypeController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDictTypeController.java
@@ -10,6 +10,8 @@
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.excel.utils.ExcelUtil;
+import com.ruoyi.system.domain.bo.SysDictTypeBo;
+import com.ruoyi.system.domain.vo.SysDictTypeVo;
 import com.ruoyi.system.service.ISysDictTypeService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
@@ -36,7 +38,7 @@
      */
     @SaCheckPermission("system:dict:list")
     @GetMapping("/list")
-    public TableDataInfo<SysDictType> list(SysDictType dictType, PageQuery pageQuery) {
+    public TableDataInfo<SysDictTypeVo> list(SysDictTypeBo dictType, PageQuery pageQuery) {
         return dictTypeService.selectPageDictTypeList(dictType, pageQuery);
     }
 
@@ -46,9 +48,9 @@
     @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.EXPORT)
     @SaCheckPermission("system:dict:export")
     @PostMapping("/export")
-    public void export(SysDictType dictType, HttpServletResponse response) {
-        List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
-        ExcelUtil.exportExcel(list, "瀛楀吀绫诲瀷", SysDictType.class, response);
+    public void export(SysDictTypeBo dictType, HttpServletResponse response) {
+        List<SysDictTypeVo> list = dictTypeService.selectDictTypeList(dictType);
+        ExcelUtil.exportExcel(list, "瀛楀吀绫诲瀷", SysDictTypeVo.class, response);
     }
 
     /**
@@ -58,7 +60,7 @@
      */
     @SaCheckPermission("system:dict:query")
     @GetMapping(value = "/{dictId}")
-    public R<SysDictType> getInfo(@PathVariable Long dictId) {
+    public R<SysDictTypeVo> getInfo(@PathVariable Long dictId) {
         return R.ok(dictTypeService.selectDictTypeById(dictId));
     }
 
@@ -68,7 +70,7 @@
     @SaCheckPermission("system:dict:add")
     @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.INSERT)
     @PostMapping
-    public R<Void> add(@Validated @RequestBody SysDictType dict) {
+    public R<Void> add(@Validated @RequestBody SysDictTypeBo dict) {
         if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) {
             return R.fail("鏂板瀛楀吀'" + dict.getDictName() + "'澶辫触锛屽瓧鍏哥被鍨嬪凡瀛樺湪");
         }
@@ -82,7 +84,7 @@
     @SaCheckPermission("system:dict:edit")
     @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.UPDATE)
     @PutMapping
-    public R<Void> edit(@Validated @RequestBody SysDictType dict) {
+    public R<Void> edit(@Validated @RequestBody SysDictTypeBo dict) {
         if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) {
             return R.fail("淇敼瀛楀吀'" + dict.getDictName() + "'澶辫触锛屽瓧鍏哥被鍨嬪凡瀛樺湪");
         }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java
index 457f44b..0671abe 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java
@@ -10,6 +10,8 @@
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.satoken.utils.LoginHelper;
 import com.ruoyi.system.domain.SysMenu;
+import com.ruoyi.system.domain.bo.SysMenuBo;
+import com.ruoyi.system.domain.vo.SysMenuVo;
 import com.ruoyi.system.service.ISysMenuService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
@@ -48,7 +50,7 @@
      */
     @SaCheckPermission("system:menu:query")
     @GetMapping(value = "/{menuId}")
-    public R<SysMenu> getInfo(@PathVariable Long menuId) {
+    public R<SysMenuVo> getInfo(@PathVariable Long menuId) {
         return R.ok(menuService.selectMenuById(menuId));
     }
 
@@ -81,7 +83,7 @@
     @SaCheckPermission("system:menu:add")
     @Log(title = "鑿滃崟绠$悊", businessType = BusinessType.INSERT)
     @PostMapping
-    public R<Void> add(@Validated @RequestBody SysMenu menu) {
+    public R<Void> add(@Validated @RequestBody SysMenuBo menu) {
         if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))) {
             return R.fail("鏂板鑿滃崟'" + menu.getMenuName() + "'澶辫触锛岃彍鍗曞悕绉板凡瀛樺湪");
         } else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) {
@@ -96,7 +98,7 @@
     @SaCheckPermission("system:menu:edit")
     @Log(title = "鑿滃崟绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping
-    public R<Void> edit(@Validated @RequestBody SysMenu menu) {
+    public R<Void> edit(@Validated @RequestBody SysMenuBo menu) {
         if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))) {
             return R.fail("淇敼鑿滃崟'" + menu.getMenuName() + "'澶辫触锛岃彍鍗曞悕绉板凡瀛樺湪");
         } else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) {
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysNoticeController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysNoticeController.java
index dbb76f0..7eb3b34 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysNoticeController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysNoticeController.java
@@ -7,7 +7,8 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 import com.ruoyi.common.log.enums.BusinessType;
-import com.ruoyi.system.domain.SysNotice;
+import com.ruoyi.system.domain.bo.SysNoticeBo;
+import com.ruoyi.system.domain.vo.SysNoticeVo;
 import com.ruoyi.system.service.ISysNoticeService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
@@ -31,7 +32,7 @@
      */
     @SaCheckPermission("system:notice:list")
     @GetMapping("/list")
-    public TableDataInfo<SysNotice> list(SysNotice notice, PageQuery pageQuery) {
+    public TableDataInfo<SysNoticeVo> list(SysNoticeBo notice, PageQuery pageQuery) {
         return noticeService.selectPageNoticeList(notice, pageQuery);
     }
 
@@ -42,7 +43,7 @@
      */
     @SaCheckPermission("system:notice:query")
     @GetMapping(value = "/{noticeId}")
-    public R<SysNotice> getInfo(@PathVariable Long noticeId) {
+    public R<SysNoticeVo> getInfo(@PathVariable Long noticeId) {
         return R.ok(noticeService.selectNoticeById(noticeId));
     }
 
@@ -52,7 +53,7 @@
     @SaCheckPermission("system:notice:add")
     @Log(title = "閫氱煡鍏憡", businessType = BusinessType.INSERT)
     @PostMapping
-    public R<Void> add(@Validated @RequestBody SysNotice notice) {
+    public R<Void> add(@Validated @RequestBody SysNoticeBo notice) {
         return toAjax(noticeService.insertNotice(notice));
     }
 
@@ -62,7 +63,7 @@
     @SaCheckPermission("system:notice:edit")
     @Log(title = "閫氱煡鍏憡", businessType = BusinessType.UPDATE)
     @PutMapping
-    public R<Void> edit(@Validated @RequestBody SysNotice notice) {
+    public R<Void> edit(@Validated @RequestBody SysNoticeBo notice) {
         return toAjax(noticeService.updateNotice(notice));
     }
 
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysPostController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysPostController.java
index b0235a2..b4f20fe 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysPostController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysPostController.java
@@ -9,7 +9,8 @@
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.excel.utils.ExcelUtil;
-import com.ruoyi.system.domain.SysPost;
+import com.ruoyi.system.domain.bo.SysPostBo;
+import com.ruoyi.system.domain.vo.SysPostVo;
 import com.ruoyi.system.service.ISysPostService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
@@ -36,7 +37,7 @@
      */
     @SaCheckPermission("system:post:list")
     @GetMapping("/list")
-    public TableDataInfo<SysPost> list(SysPost post, PageQuery pageQuery) {
+    public TableDataInfo<SysPostVo> list(SysPostBo post, PageQuery pageQuery) {
         return postService.selectPagePostList(post, pageQuery);
     }
 
@@ -46,9 +47,9 @@
     @Log(title = "宀椾綅绠$悊", businessType = BusinessType.EXPORT)
     @SaCheckPermission("system:post:export")
     @PostMapping("/export")
-    public void export(SysPost post, HttpServletResponse response) {
-        List<SysPost> list = postService.selectPostList(post);
-        ExcelUtil.exportExcel(list, "宀椾綅鏁版嵁", SysPost.class, response);
+    public void export(SysPostBo post, HttpServletResponse response) {
+        List<SysPostVo> list = postService.selectPostList(post);
+        ExcelUtil.exportExcel(list, "宀椾綅鏁版嵁", SysPostVo.class, response);
     }
 
     /**
@@ -58,7 +59,7 @@
      */
     @SaCheckPermission("system:post:query")
     @GetMapping(value = "/{postId}")
-    public R<SysPost> getInfo(@PathVariable Long postId) {
+    public R<SysPostVo> getInfo(@PathVariable Long postId) {
         return R.ok(postService.selectPostById(postId));
     }
 
@@ -68,7 +69,7 @@
     @SaCheckPermission("system:post:add")
     @Log(title = "宀椾綅绠$悊", businessType = BusinessType.INSERT)
     @PostMapping
-    public R<Void> add(@Validated @RequestBody SysPost post) {
+    public R<Void> add(@Validated @RequestBody SysPostBo post) {
         if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post))) {
             return R.fail("鏂板宀椾綅'" + post.getPostName() + "'澶辫触锛屽矖浣嶅悕绉板凡瀛樺湪");
         } else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post))) {
@@ -83,7 +84,7 @@
     @SaCheckPermission("system:post:edit")
     @Log(title = "宀椾綅绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping
-    public R<Void> edit(@Validated @RequestBody SysPost post) {
+    public R<Void> edit(@Validated @RequestBody SysPostBo post) {
         if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post))) {
             return R.fail("淇敼宀椾綅'" + post.getPostName() + "'澶辫触锛屽矖浣嶅悕绉板凡瀛樺湪");
         } else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post))) {
@@ -108,8 +109,8 @@
      * 鑾峰彇宀椾綅閫夋嫨妗嗗垪琛�
      */
     @GetMapping("/optionselect")
-    public R<List<SysPost>> optionselect() {
-        List<SysPost> posts = postService.selectPostAll();
+    public R<List<SysPostVo>> optionselect() {
+        List<SysPostVo> posts = postService.selectPostAll();
         return R.ok(posts);
     }
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysRoleController.java
index 0dce18b..87d6ca2 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysRoleController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysRoleController.java
@@ -13,9 +13,10 @@
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 import com.ruoyi.common.satoken.utils.LoginHelper;
 import com.ruoyi.system.domain.SysDept;
-import com.ruoyi.system.domain.SysRole;
 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.SysRoleVo;
 import com.ruoyi.system.service.ISysDeptService;
 import com.ruoyi.system.service.ISysRoleService;
 import com.ruoyi.system.service.ISysUserService;
@@ -49,7 +50,7 @@
      */
     @SaCheckPermission("system:role:list")
     @GetMapping("/list")
-    public TableDataInfo<SysRole> list(SysRole role, PageQuery pageQuery) {
+    public TableDataInfo<SysRoleVo> list(SysRoleBo role, PageQuery pageQuery) {
         return roleService.selectPageRoleList(role, pageQuery);
     }
 
@@ -59,9 +60,9 @@
     @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.EXPORT)
     @SaCheckPermission("system:role:export")
     @PostMapping("/export")
-    public void export(SysRole role, HttpServletResponse response) {
-        List<SysRole> list = roleService.selectRoleList(role);
-        ExcelUtil.exportExcel(list, "瑙掕壊鏁版嵁", SysRole.class, response);
+    public void export(SysRoleBo role, HttpServletResponse response) {
+        List<SysRoleVo> list = roleService.selectRoleList(role);
+        ExcelUtil.exportExcel(list, "瑙掕壊鏁版嵁", SysRoleVo.class, response);
     }
 
     /**
@@ -71,7 +72,7 @@
      */
     @SaCheckPermission("system:role:query")
     @GetMapping(value = "/{roleId}")
-    public R<SysRole> getInfo(@PathVariable Long roleId) {
+    public R<SysRoleVo> getInfo(@PathVariable Long roleId) {
         roleService.checkRoleDataScope(roleId);
         return R.ok(roleService.selectRoleById(roleId));
     }
@@ -82,7 +83,7 @@
     @SaCheckPermission("system:role:add")
     @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.INSERT)
     @PostMapping
-    public R<Void> add(@Validated @RequestBody SysRole role) {
+    public R<Void> add(@Validated @RequestBody SysRoleBo role) {
         if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) {
             return R.fail("鏂板瑙掕壊'" + role.getRoleName() + "'澶辫触锛岃鑹插悕绉板凡瀛樺湪");
         } else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))) {
@@ -98,7 +99,7 @@
     @SaCheckPermission("system:role:edit")
     @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping
-    public R<Void> edit(@Validated @RequestBody SysRole role) {
+    public R<Void> edit(@Validated @RequestBody SysRoleBo role) {
         roleService.checkRoleAllowed(role);
         roleService.checkRoleDataScope(role.getRoleId());
         if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) {
@@ -126,7 +127,7 @@
     @SaCheckPermission("system:role:edit")
     @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping("/dataScope")
-    public R<Void> dataScope(@RequestBody SysRole role) {
+    public R<Void> dataScope(@RequestBody SysRoleBo role) {
         roleService.checkRoleAllowed(role);
         roleService.checkRoleDataScope(role.getRoleId());
         return toAjax(roleService.authDataScope(role));
@@ -138,7 +139,7 @@
     @SaCheckPermission("system:role:edit")
     @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping("/changeStatus")
-    public R<Void> changeStatus(@RequestBody SysRole role) {
+    public R<Void> changeStatus(@RequestBody SysRoleBo role) {
         roleService.checkRoleAllowed(role);
         roleService.checkRoleDataScope(role.getRoleId());
         return toAjax(roleService.updateRoleStatus(role));
@@ -161,7 +162,7 @@
      */
     @SaCheckPermission("system:role:query")
     @GetMapping("/optionselect")
-    public R<List<SysRole>> optionselect() {
+    public R<List<SysRoleVo>> optionselect() {
         return R.ok(roleService.selectRoleAll());
     }
 
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysUserController.java
index 62687d5..55350db 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysUserController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysUserController.java
@@ -21,6 +21,7 @@
 import com.ruoyi.system.domain.SysDept;
 import com.ruoyi.system.domain.SysRole;
 import com.ruoyi.system.domain.SysUser;
+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.listener.SysUserImportListener;
@@ -111,7 +112,7 @@
     public R<Map<String, Object>> getInfo(@PathVariable(value = "userId", required = false) Long userId) {
         userService.checkUserDataScope(userId);
         Map<String, Object> ajax = new HashMap<>();
-        List<SysRole> roles = roleService.selectRoleAll();
+        List<SysRoleVo> roles = roleService.selectRoleAll();
         ajax.put("roles", LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin()));
         ajax.put("posts", postService.selectPostAll());
         if (ObjectUtil.isNotNull(userId)) {
@@ -213,7 +214,7 @@
     @GetMapping("/authRole/{userId}")
     public R<Map<String, Object>> authRole(@PathVariable Long userId) {
         SysUser user = userService.selectUserById(userId);
-        List<SysRole> roles = roleService.selectRolesByUserId(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())
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java
index 1be771f..20b902d 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java
@@ -1,17 +1,10 @@
 package com.ruoyi.system.domain;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.mybatis.core.domain.BaseEntity;
-import com.ruoyi.common.excel.annotation.ExcelDictFormat;
-import com.ruoyi.common.excel.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.Size;
 
 /**
  * 鍙傛暟閰嶇疆琛� sys_config
@@ -22,45 +15,32 @@
 @Data
 @EqualsAndHashCode(callSuper = true)
 @TableName("sys_config")
-@ExcelIgnoreUnannotated
 public class SysConfig extends BaseEntity {
 
     /**
      * 鍙傛暟涓婚敭
      */
-    @ExcelProperty(value = "鍙傛暟涓婚敭")
     @TableId(value = "config_id")
     private Long configId;
 
     /**
      * 鍙傛暟鍚嶇О
      */
-    @ExcelProperty(value = "鍙傛暟鍚嶇О")
-    @NotBlank(message = "鍙傛暟鍚嶇О涓嶈兘涓虹┖")
-    @Size(min = 0, max = 100, message = "鍙傛暟鍚嶇О涓嶈兘瓒呰繃{max}涓瓧绗�")
     private String configName;
 
     /**
      * 鍙傛暟閿悕
      */
-    @ExcelProperty(value = "鍙傛暟閿悕")
-    @NotBlank(message = "鍙傛暟閿悕闀垮害涓嶈兘涓虹┖")
-    @Size(min = 0, max = 100, message = "鍙傛暟閿悕闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
     private String configKey;
 
     /**
      * 鍙傛暟閿��
      */
-    @ExcelProperty(value = "鍙傛暟閿��")
-    @NotBlank(message = "鍙傛暟閿�间笉鑳戒负绌�")
-    @Size(min = 0, max = 500, message = "鍙傛暟閿�奸暱搴︿笉鑳借秴杩噞max}涓瓧绗�")
     private String configValue;
 
     /**
      * 绯荤粺鍐呯疆锛圷鏄� N鍚︼級
      */
-    @ExcelProperty(value = "绯荤粺鍐呯疆", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(dictType = "sys_yes_no")
     private String configType;
 
     /**
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDept.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDept.java
index 8ec011c..eb3b1dc 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDept.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDept.java
@@ -36,14 +36,11 @@
     /**
      * 閮ㄩ棬鍚嶇О
      */
-    @NotBlank(message = "閮ㄩ棬鍚嶇О涓嶈兘涓虹┖")
-    @Size(min = 0, max = 30, message = "閮ㄩ棬鍚嶇О闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
     private String deptName;
 
     /**
      * 鏄剧ず椤哄簭
      */
-    @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖")
     private Integer orderNum;
 
     /**
@@ -54,14 +51,11 @@
     /**
      * 鑱旂郴鐢佃瘽
      */
-    @Size(min = 0, max = 11, message = "鑱旂郴鐢佃瘽闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
     private String phone;
 
     /**
      * 閭
      */
-    @Email(message = "閭鏍煎紡涓嶆纭�")
-    @Size(min = 0, max = 50, message = "閭闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
     private String email;
 
     /**
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictData.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictData.java
index 8055bc8..14a9cf7 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictData.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictData.java
@@ -1,18 +1,11 @@
 package com.ruoyi.system.domain;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.constant.UserConstants;
 import com.ruoyi.common.mybatis.core.domain.BaseEntity;
-import com.ruoyi.common.excel.annotation.ExcelDictFormat;
-import com.ruoyi.common.excel.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.Size;
 
 /**
  * 瀛楀吀鏁版嵁琛� sys_dict_data
@@ -23,50 +16,37 @@
 @Data
 @EqualsAndHashCode(callSuper = true)
 @TableName("sys_dict_data")
-@ExcelIgnoreUnannotated
 public class SysDictData extends BaseEntity {
 
     /**
      * 瀛楀吀缂栫爜
      */
-    @ExcelProperty(value = "瀛楀吀缂栫爜")
     @TableId(value = "dict_code")
     private Long dictCode;
 
     /**
      * 瀛楀吀鎺掑簭
      */
-    @ExcelProperty(value = "瀛楀吀鎺掑簭")
     private Integer dictSort;
 
     /**
      * 瀛楀吀鏍囩
      */
-    @ExcelProperty(value = "瀛楀吀鏍囩")
-    @NotBlank(message = "瀛楀吀鏍囩涓嶈兘涓虹┖")
-    @Size(min = 0, max = 100, message = "瀛楀吀鏍囩闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
     private String dictLabel;
 
     /**
      * 瀛楀吀閿��
      */
-    @ExcelProperty(value = "瀛楀吀閿��")
-    @NotBlank(message = "瀛楀吀閿�间笉鑳戒负绌�")
-    @Size(min = 0, max = 100, message = "瀛楀吀閿�奸暱搴︿笉鑳借秴杩噞max}涓瓧绗�")
     private String dictValue;
 
     /**
      * 瀛楀吀绫诲瀷
      */
-    @ExcelProperty(value = "瀛楀吀绫诲瀷")
-    @NotBlank(message = "瀛楀吀绫诲瀷涓嶈兘涓虹┖")
-    @Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
     private String dictType;
 
     /**
      * 鏍峰紡灞炴�э紙鍏朵粬鏍峰紡鎵╁睍锛�
      */
-    @Size(min = 0, max = 100, message = "鏍峰紡灞炴�ч暱搴︿笉鑳借秴杩噞max}涓瓧绗�")
     private String cssClass;
 
     /**
@@ -77,15 +57,11 @@
     /**
      * 鏄惁榛樿锛圷鏄� N鍚︼級
      */
-    @ExcelProperty(value = "鏄惁榛樿", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(dictType = "sys_yes_no")
     private String isDefault;
 
     /**
      * 鐘舵�侊紙0姝e父 1鍋滅敤锛�
      */
-    @ExcelProperty(value = "鐘舵��", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(dictType = "sys_normal_disable")
     private String status;
 
     /**
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictType.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictType.java
index cdd7aae..bbab812 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictType.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictType.java
@@ -1,18 +1,10 @@
 package com.ruoyi.system.domain;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.mybatis.core.domain.BaseEntity;
-import com.ruoyi.common.excel.annotation.ExcelDictFormat;
-import com.ruoyi.common.excel.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.Pattern;
-import jakarta.validation.constraints.Size;
 
 /**
  * 瀛楀吀绫诲瀷琛� sys_dict_type
@@ -23,38 +15,27 @@
 @Data
 @EqualsAndHashCode(callSuper = true)
 @TableName("sys_dict_type")
-@ExcelIgnoreUnannotated
 public class SysDictType extends BaseEntity {
 
     /**
      * 瀛楀吀涓婚敭
      */
-    @ExcelProperty(value = "瀛楀吀涓婚敭")
     @TableId(value = "dict_id")
     private Long dictId;
 
     /**
      * 瀛楀吀鍚嶇О
      */
-    @ExcelProperty(value = "瀛楀吀鍚嶇О")
-    @NotBlank(message = "瀛楀吀鍚嶇О涓嶈兘涓虹┖")
-    @Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷鍚嶇О闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
     private String dictName;
 
     /**
      * 瀛楀吀绫诲瀷
      */
-    @ExcelProperty(value = "瀛楀吀绫诲瀷")
-    @NotBlank(message = "瀛楀吀绫诲瀷涓嶈兘涓虹┖")
-    @Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷绫诲瀷闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
-    @Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "瀛楀吀绫诲瀷蹇呴』浠ュ瓧姣嶅紑澶达紝涓斿彧鑳戒负锛堝皬鍐欏瓧姣嶏紝鏁板瓧锛屼笅婊戠嚎锛�")
     private String dictType;
 
     /**
      * 鐘舵�侊紙0姝e父 1鍋滅敤锛�
      */
-    @ExcelProperty(value = "鐘舵��", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(dictType = "sys_normal_disable")
     private String status;
 
     /**
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java
index d8bb1a7..aec2f3b 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java
@@ -31,26 +31,21 @@
     /**
      * 鑿滃崟鍚嶇О
      */
-    @NotBlank(message = "鑿滃崟鍚嶇О涓嶈兘涓虹┖")
-    @Size(min = 0, max = 50, message = "鑿滃崟鍚嶇О闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
     private String menuName;
 
     /**
      * 鏄剧ず椤哄簭
      */
-    @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖")
     private Integer orderNum;
 
     /**
      * 璺敱鍦板潃
      */
-    @Size(min = 0, max = 200, message = "璺敱鍦板潃涓嶈兘瓒呰繃{max}涓瓧绗�")
     private String path;
 
     /**
      * 缁勪欢璺緞
      */
-    @Size(min = 0, max = 200, message = "缁勪欢璺緞涓嶈兘瓒呰繃{max}涓瓧绗�")
     private String component;
 
     /**
@@ -71,7 +66,6 @@
     /**
      * 绫诲瀷锛圡鐩綍 C鑿滃崟 F鎸夐挳锛�
      */
-    @NotBlank(message = "鑿滃崟绫诲瀷涓嶈兘涓虹┖")
     private String menuType;
 
     /**
@@ -87,8 +81,6 @@
     /**
      * 鏉冮檺瀛楃涓�
      */
-    @JsonInclude(JsonInclude.Include.NON_NULL)
-    @Size(min = 0, max = 100, message = "鏉冮檺鏍囪瘑闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
     private String perms;
 
     /**
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java
index 0a94ba4..21fba9f 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java
@@ -3,12 +3,8 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.mybatis.core.domain.BaseEntity;
-import com.ruoyi.common.core.xss.Xss;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.Size;
 
 
 /**
@@ -30,9 +26,6 @@
     /**
      * 鍏憡鏍囬
      */
-    @Xss(message = "鍏憡鏍囬涓嶈兘鍖呭惈鑴氭湰瀛楃")
-    @NotBlank(message = "鍏憡鏍囬涓嶈兘涓虹┖")
-    @Size(min = 0, max = 50, message = "鍏憡鏍囬涓嶈兘瓒呰繃{max}涓瓧绗�")
     private String noticeTitle;
 
     /**
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java
index 00e3d60..9da3cf5 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java
@@ -24,44 +24,32 @@
 @Data
 @EqualsAndHashCode(callSuper = true)
 @TableName("sys_post")
-@ExcelIgnoreUnannotated
 public class SysPost extends BaseEntity {
 
     /**
      * 宀椾綅搴忓彿
      */
-    @ExcelProperty(value = "宀椾綅搴忓彿")
     @TableId(value = "post_id")
     private Long postId;
 
     /**
      * 宀椾綅缂栫爜
      */
-    @ExcelProperty(value = "宀椾綅缂栫爜")
-    @NotBlank(message = "宀椾綅缂栫爜涓嶈兘涓虹┖")
-    @Size(min = 0, max = 64, message = "宀椾綅缂栫爜闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
     private String postCode;
 
     /**
      * 宀椾綅鍚嶇О
      */
-    @ExcelProperty(value = "宀椾綅鍚嶇О")
-    @NotBlank(message = "宀椾綅鍚嶇О涓嶈兘涓虹┖")
-    @Size(min = 0, max = 50, message = "宀椾綅鍚嶇О闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
     private String postName;
 
     /**
      * 宀椾綅鎺掑簭
      */
-    @ExcelProperty(value = "宀椾綅鎺掑簭")
-    @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖")
     private Integer postSort;
 
     /**
      * 鐘舵�侊紙0姝e父 1鍋滅敤锛�
      */
-    @ExcelProperty(value = "鐘舵��", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(dictType = "sys_normal_disable")
     private String status;
 
     /**
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRole.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRole.java
index 3f85873..5c557cc 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRole.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRole.java
@@ -1,18 +1,10 @@
 package com.ruoyi.system.domain;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.ruoyi.common.core.constant.UserConstants;
 import com.ruoyi.common.mybatis.core.domain.BaseEntity;
-import com.ruoyi.common.excel.annotation.ExcelDictFormat;
-import com.ruoyi.common.excel.convert.ExcelDictConvert;
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
@@ -29,44 +21,32 @@
 @NoArgsConstructor
 @EqualsAndHashCode(callSuper = true)
 @TableName("sys_role")
-@ExcelIgnoreUnannotated
 public class SysRole extends BaseEntity {
 
     /**
      * 瑙掕壊ID
      */
-    @ExcelProperty(value = "瑙掕壊搴忓彿")
     @TableId(value = "role_id")
     private Long roleId;
 
     /**
      * 瑙掕壊鍚嶇О
      */
-    @ExcelProperty(value = "瑙掕壊鍚嶇О")
-    @NotBlank(message = "瑙掕壊鍚嶇О涓嶈兘涓虹┖")
-    @Size(min = 0, max = 30, message = "瑙掕壊鍚嶇О闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
     private String roleName;
 
     /**
      * 瑙掕壊鏉冮檺
      */
-    @ExcelProperty(value = "瑙掕壊鏉冮檺")
-    @NotBlank(message = "鏉冮檺瀛楃涓嶈兘涓虹┖")
-    @Size(min = 0, max = 100, message = "鏉冮檺瀛楃闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
     private String roleKey;
 
     /**
      * 瑙掕壊鎺掑簭
      */
-    @ExcelProperty(value = "瑙掕壊鎺掑簭")
-    @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖")
     private Integer roleSort;
 
     /**
      * 鏁版嵁鑼冨洿锛�1锛氭墍鏈夋暟鎹潈闄愶紱2锛氳嚜瀹氫箟鏁版嵁鏉冮檺锛�3锛氭湰閮ㄩ棬鏁版嵁鏉冮檺锛�4锛氭湰閮ㄩ棬鍙婁互涓嬫暟鎹潈闄愶紱5锛氫粎鏈汉鏁版嵁鏉冮檺锛�
      */
-    @ExcelProperty(value = "鏁版嵁鑼冨洿", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(readConverterExp = "1=鎵�鏈夋暟鎹潈闄�,2=鑷畾涔夋暟鎹潈闄�,3=鏈儴闂ㄦ暟鎹潈闄�,4=鏈儴闂ㄥ強浠ヤ笅鏁版嵁鏉冮檺,5=浠呮湰浜烘暟鎹潈闄�")
     private String dataScope;
 
     /**
@@ -82,8 +62,6 @@
     /**
      * 瑙掕壊鐘舵�侊紙0姝e父 1鍋滅敤锛�
      */
-    @ExcelProperty(value = "瑙掕壊鐘舵��", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(dictType = "sys_normal_disable")
     private String status;
 
     /**
@@ -125,7 +103,4 @@
         this.roleId = roleId;
     }
 
-    public boolean isAdmin() {
-        return UserConstants.SUPER_ADMIN_ID.equals(this.roleId);
-    }
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysConfigBo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysConfigBo.java
new file mode 100644
index 0000000..0650849
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysConfigBo.java
@@ -0,0 +1,60 @@
+package com.ruoyi.system.domain.bo;
+
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+import com.ruoyi.common.mybatis.core.domain.BaseEntity;
+
+/**
+ * 鍙傛暟閰嶇疆涓氬姟瀵硅薄 sys_config
+ *
+ * @author ruoyi
+ * @date 2023-01-31
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class SysConfigBo extends BaseEntity {
+
+    /**
+     * 鍙傛暟涓婚敭
+     */
+    @NotNull(message = "鍙傛暟涓婚敭涓嶈兘涓虹┖", groups = { EditGroup.class })
+    private Long configId;
+
+    /**
+     * 鍙傛暟鍚嶇О
+     */
+    @NotBlank(message = "鍙傛暟鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    @Size(min = 0, max = 100, message = "鍙傛暟鍚嶇О涓嶈兘瓒呰繃{max}涓瓧绗�")
+    private String configName;
+
+    /**
+     * 鍙傛暟閿悕
+     */
+    @NotBlank(message = "鍙傛暟閿悕涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    @Size(min = 0, max = 100, message = "鍙傛暟閿悕闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
+    private String configKey;
+
+    /**
+     * 鍙傛暟閿��
+     */
+    @NotBlank(message = "鍙傛暟閿�间笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    @Size(min = 0, max = 500, message = "鍙傛暟閿�奸暱搴︿笉鑳借秴杩噞max}涓瓧绗�")
+    private String configValue;
+
+    /**
+     * 绯荤粺鍐呯疆锛圷鏄� N鍚︼級
+     */
+    private String configType;
+
+    /**
+     * 澶囨敞
+     */
+    private String remark;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysDeptBo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysDeptBo.java
new file mode 100644
index 0000000..94bfbab
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysDeptBo.java
@@ -0,0 +1,63 @@
+package com.ruoyi.system.domain.bo;
+
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.mybatis.core.domain.TreeEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 閮ㄩ棬涓氬姟瀵硅薄 sys_dept
+ *
+ * @author ruoyi
+ * @date 2023-01-31
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class SysDeptBo extends TreeEntity<SysDeptBo> {
+
+    /**
+     * 閮ㄩ棬id
+     */
+    @NotNull(message = "閮ㄩ棬id涓嶈兘涓虹┖", groups = { EditGroup.class })
+    private Long deptId;
+
+    /**
+     * 閮ㄩ棬鍚嶇О
+     */
+    @NotBlank(message = "閮ㄩ棬鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    @Size(min = 0, max = 30, message = "閮ㄩ棬鍚嶇О闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
+    private String deptName;
+
+    /**
+     * 鏄剧ず椤哄簭
+     */
+    @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖")
+    private Long orderNum;
+
+    /**
+     * 璐熻矗浜�
+     */
+    private String leader;
+
+    /**
+     * 鑱旂郴鐢佃瘽
+     */
+    @Size(min = 0, max = 11, message = "鑱旂郴鐢佃瘽闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
+    private String phone;
+
+    /**
+     * 閭
+     */
+    @Email(message = "閭鏍煎紡涓嶆纭�")
+    @Size(min = 0, max = 50, message = "閭闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
+    private String email;
+
+    /**
+     * 閮ㄩ棬鐘舵�侊紙0姝e父 1鍋滅敤锛�
+     */
+    private String status;
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysDictDataBo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysDictDataBo.java
new file mode 100644
index 0000000..5d4f786
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysDictDataBo.java
@@ -0,0 +1,86 @@
+package com.ruoyi.system.domain.bo;
+
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+import com.ruoyi.common.mybatis.core.domain.BaseEntity;
+
+/**
+ * 瀛楀吀鏁版嵁涓氬姟瀵硅薄 sys_dict_data
+ *
+ * @author ruoyi
+ * @date 2023-02-01
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class SysDictDataBo extends BaseEntity {
+
+    /**
+     * 瀛楀吀缂栫爜
+     */
+    @NotNull(message = "瀛楀吀缂栫爜涓嶈兘涓虹┖", groups = { EditGroup.class })
+    private Long dictCode;
+
+    /**
+     * 瀛楀吀鎺掑簭
+     */
+    private Integer dictSort;
+
+    /**
+     * 瀛楀吀鏍囩
+     */
+    @NotBlank(message = "瀛楀吀鏍囩涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    @Size(min = 0, max = 100, message = "瀛楀吀鏍囩闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
+    private String dictLabel;
+
+    /**
+     * 瀛楀吀閿��
+     */
+    @NotBlank(message = "瀛楀吀閿�间笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    @Size(min = 0, max = 100, message = "瀛楀吀閿�奸暱搴︿笉鑳借秴杩噞max}涓瓧绗�")
+    private String dictValue;
+
+    /**
+     * 瀛楀吀绫诲瀷
+     */
+    @NotBlank(message = "瀛楀吀绫诲瀷涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    @Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
+    private String dictType;
+
+    /**
+     * 鏍峰紡灞炴�э紙鍏朵粬鏍峰紡鎵╁睍锛�
+     */
+    @Size(min = 0, max = 100, message = "鏍峰紡灞炴�ч暱搴︿笉鑳借秴杩噞max}涓瓧绗�")
+    private String cssClass;
+
+    /**
+     * 琛ㄦ牸鍥炴樉鏍峰紡
+     */
+    private String listClass;
+
+    /**
+     * 鏄惁榛樿锛圷鏄� N鍚︼級
+     */
+    private String isDefault;
+
+    /**
+     * 鐘舵�侊紙0姝e父 1鍋滅敤锛�
+     */
+    private String status;
+
+    /**
+     * 鍒涘缓閮ㄩ棬
+     */
+    private Long createDept;
+
+    /**
+     * 澶囨敞
+     */
+    private String remark;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysDictTypeBo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysDictTypeBo.java
new file mode 100644
index 0000000..bf69a68
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysDictTypeBo.java
@@ -0,0 +1,59 @@
+package com.ruoyi.system.domain.bo;
+
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+import com.ruoyi.common.mybatis.core.domain.BaseEntity;
+
+/**
+ * 瀛楀吀绫诲瀷涓氬姟瀵硅薄 sys_dict_type
+ *
+ * @author ruoyi
+ * @date 2023-02-01
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class SysDictTypeBo extends BaseEntity {
+
+    /**
+     * 瀛楀吀涓婚敭
+     */
+    @NotNull(message = "瀛楀吀涓婚敭涓嶈兘涓虹┖", groups = { EditGroup.class })
+    private Long dictId;
+
+    /**
+     * 瀛楀吀鍚嶇О
+     */
+    @NotBlank(message = "瀛楀吀鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    @Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷鍚嶇О闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
+    private String dictName;
+
+    /**
+     * 瀛楀吀绫诲瀷
+     */
+    @NotBlank(message = "瀛楀吀绫诲瀷涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    @Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷绫诲瀷闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
+    @Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "瀛楀吀绫诲瀷蹇呴』浠ュ瓧姣嶅紑澶达紝涓斿彧鑳戒负锛堝皬鍐欏瓧姣嶏紝鏁板瓧锛屼笅婊戠嚎锛�")
+    private String dictType;
+
+    /**
+     * 鐘舵�侊紙0姝e父 1鍋滅敤锛�
+     */
+    private String status;
+
+    /**
+     * 鍒涘缓閮ㄩ棬
+     */
+    private Long createDept;
+
+    /**
+     * 澶囨敞
+     */
+    private String remark;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysMenuBo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysMenuBo.java
new file mode 100644
index 0000000..4770d9d
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysMenuBo.java
@@ -0,0 +1,106 @@
+package com.ruoyi.system.domain.bo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.mybatis.core.domain.TreeEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+import java.util.Date;
+
+import com.ruoyi.common.mybatis.core.domain.BaseEntity;
+
+/**
+ * 鑿滃崟鏉冮檺涓氬姟瀵硅薄 sys_menu
+ *
+ * @author ruoyi
+ * @date 2023-02-01
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class SysMenuBo extends TreeEntity<SysMenuBo> {
+
+    /**
+     * 鑿滃崟ID
+     */
+    @NotNull(message = "鑿滃崟ID涓嶈兘涓虹┖", groups = { EditGroup.class })
+    private Long menuId;
+
+    /**
+     * 鑿滃崟鍚嶇О
+     */
+    @NotBlank(message = "鑿滃崟鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    @Size(min = 0, max = 50, message = "鑿滃崟鍚嶇О闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
+    private String menuName;
+
+    /**
+     * 鏄剧ず椤哄簭
+     */
+    @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private Integer orderNum;
+
+    /**
+     * 璺敱鍦板潃
+     */
+    @Size(min = 0, max = 200, message = "璺敱鍦板潃涓嶈兘瓒呰繃{max}涓瓧绗�")
+    private String path;
+
+    /**
+     * 缁勪欢璺緞
+     */
+    @Size(min = 0, max = 200, message = "缁勪欢璺緞涓嶈兘瓒呰繃{max}涓瓧绗�")
+    private String component;
+
+    /**
+     * 璺敱鍙傛暟
+     */
+    private String queryParam;
+
+    /**
+     * 鏄惁涓哄閾撅紙0鏄� 1鍚︼級
+     */
+    private Integer isFrame;
+
+    /**
+     * 鏄惁缂撳瓨锛�0缂撳瓨 1涓嶇紦瀛橈級
+     */
+    private Integer isCache;
+
+    /**
+     * 鑿滃崟绫诲瀷锛圡鐩綍 C鑿滃崟 F鎸夐挳锛�
+     */
+    @NotBlank(message = "鑿滃崟绫诲瀷涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String menuType;
+
+    /**
+     * 鏄剧ず鐘舵�侊紙0鏄剧ず 1闅愯棌锛�
+     */
+    private String visible;
+
+    /**
+     * 鑿滃崟鐘舵�侊紙0姝e父 1鍋滅敤锛�
+     */
+    private String status;
+
+    /**
+     * 鏉冮檺鏍囪瘑
+     */
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    @Size(min = 0, max = 100, message = "鏉冮檺鏍囪瘑闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
+    private String perms;
+
+    /**
+     * 鑿滃崟鍥炬爣
+     */
+    private String icon;
+
+    /**
+     * 澶囨敞
+     */
+    private String remark;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysNoticeBo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysNoticeBo.java
new file mode 100644
index 0000000..b185031
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysNoticeBo.java
@@ -0,0 +1,60 @@
+package com.ruoyi.system.domain.bo;
+
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.core.xss.Xss;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+import java.util.Date;
+
+import com.ruoyi.common.mybatis.core.domain.BaseEntity;
+
+/**
+ * 閫氱煡鍏憡涓氬姟瀵硅薄 sys_notice
+ *
+ * @author ruoyi
+ * @date 2023-02-01
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class SysNoticeBo extends BaseEntity {
+
+    /**
+     * 鍏憡ID
+     */
+    @NotNull(message = "鍏憡ID涓嶈兘涓虹┖", groups = { EditGroup.class })
+    private Long noticeId;
+
+    /**
+     * 鍏憡鏍囬
+     */
+    @Xss(message = "鍏憡鏍囬涓嶈兘鍖呭惈鑴氭湰瀛楃")
+    @NotBlank(message = "鍏憡鏍囬涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    @Size(min = 0, max = 50, message = "鍏憡鏍囬涓嶈兘瓒呰繃{max}涓瓧绗�")
+    private String noticeTitle;
+
+    /**
+     * 鍏憡绫诲瀷锛�1閫氱煡 2鍏憡锛�
+     */
+    private String noticeType;
+
+    /**
+     * 鍏憡鍐呭
+     */
+    private String noticeContent;
+
+    /**
+     * 鍏憡鐘舵�侊紙0姝e父 1鍏抽棴锛�
+     */
+    private String status;
+
+    /**
+     * 澶囨敞
+     */
+    private String remark;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysPostBo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysPostBo.java
new file mode 100644
index 0000000..4eca2e7
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysPostBo.java
@@ -0,0 +1,61 @@
+package com.ruoyi.system.domain.bo;
+
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+import java.util.Date;
+
+import com.ruoyi.common.mybatis.core.domain.BaseEntity;
+
+/**
+ * 宀椾綅淇℃伅涓氬姟瀵硅薄 sys_post
+ *
+ * @author ruoyi
+ * @date 2023-02-01
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class SysPostBo extends BaseEntity {
+
+    /**
+     * 宀椾綅ID
+     */
+    @NotNull(message = "宀椾綅ID涓嶈兘涓虹┖", groups = { EditGroup.class })
+    private Long postId;
+
+    /**
+     * 宀椾綅缂栫爜
+     */
+    @NotBlank(message = "宀椾綅缂栫爜涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    @Size(min = 0, max = 64, message = "宀椾綅缂栫爜闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
+    private String postCode;
+
+    /**
+     * 宀椾綅鍚嶇О
+     */
+    @NotBlank(message = "宀椾綅鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    @Size(min = 0, max = 50, message = "宀椾綅鍚嶇О闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
+    private String postName;
+
+    /**
+     * 鏄剧ず椤哄簭
+     */
+    @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private Integer postSort;
+
+    /**
+     * 鐘舵�侊紙0姝e父 1鍋滅敤锛�
+     */
+    private String status;
+
+    /**
+     * 澶囨敞
+     */
+    private String remark;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysRoleBo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysRoleBo.java
new file mode 100644
index 0000000..b3d01ed
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysRoleBo.java
@@ -0,0 +1,84 @@
+package com.ruoyi.system.domain.bo;
+
+import com.ruoyi.common.core.constant.UserConstants;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+import com.ruoyi.common.mybatis.core.domain.BaseEntity;
+import lombok.NoArgsConstructor;
+
+/**
+ * 瑙掕壊淇℃伅涓氬姟瀵硅薄 sys_role
+ *
+ * @author ruoyi
+ * @date 2023-02-01
+ */
+
+@Data
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class SysRoleBo extends BaseEntity {
+
+    /**
+     * 瑙掕壊ID
+     */
+    @NotNull(message = "瑙掕壊ID涓嶈兘涓虹┖", groups = { EditGroup.class })
+    private Long roleId;
+
+    /**
+     * 瑙掕壊鍚嶇О
+     */
+    @NotBlank(message = "瑙掕壊鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    @Size(min = 0, max = 30, message = "瑙掕壊鍚嶇О闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
+    private String roleName;
+
+    /**
+     * 瑙掕壊鏉冮檺瀛楃涓�
+     */
+    @NotBlank(message = "瑙掕壊鏉冮檺瀛楃涓蹭笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    @Size(min = 0, max = 100, message = "鏉冮檺瀛楃闀垮害涓嶈兘瓒呰繃{max}涓瓧绗�")
+    private String roleKey;
+
+    /**
+     * 鏄剧ず椤哄簭
+     */
+    @NotNull(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private Integer roleSort;
+
+    /**
+     * 鏁版嵁鑼冨洿锛�1锛氬叏閮ㄦ暟鎹潈闄� 2锛氳嚜瀹氭暟鎹潈闄� 3锛氭湰閮ㄩ棬鏁版嵁鏉冮檺 4锛氭湰閮ㄩ棬鍙婁互涓嬫暟鎹潈闄愶級
+     */
+    private String dataScope;
+
+    /**
+     * 鑿滃崟鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀�
+     */
+    private Boolean menuCheckStrictly;
+
+    /**
+     * 閮ㄩ棬鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀�
+     */
+    private Boolean deptCheckStrictly;
+
+    /**
+     * 瑙掕壊鐘舵�侊紙0姝e父 1鍋滅敤锛�
+     */
+    private String status;
+
+    /**
+     * 澶囨敞
+     */
+    private String remark;
+
+    public SysRoleBo(Long roleId) {
+        this.roleId = roleId;
+    }
+
+    public boolean isAdmin() {
+        return UserConstants.SUPER_ADMIN_ID.equals(this.roleId);
+    }
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysUserBo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysUserBo.java
new file mode 100644
index 0000000..c4f8504
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysUserBo.java
@@ -0,0 +1,127 @@
+package com.ruoyi.system.domain.bo;
+
+import com.ruoyi.common.core.constant.UserConstants;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+import java.util.Date;
+
+import com.ruoyi.common.mybatis.core.domain.BaseEntity;
+import lombok.NoArgsConstructor;
+
+/**
+ * 鐢ㄦ埛淇℃伅涓氬姟瀵硅薄 sys_user
+ *
+ * @author ruoyi
+ * @date 2023-02-01
+ */
+
+@Data
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class SysUserBo extends BaseEntity {
+
+    /**
+     * 鐢ㄦ埛ID
+     */
+    @NotNull(message = "鐢ㄦ埛ID涓嶈兘涓虹┖", groups = { EditGroup.class })
+    private Long userId;
+
+    /**
+     * 閮ㄩ棬ID
+     */
+    private Long deptId;
+
+    /**
+     * 鐢ㄦ埛璐﹀彿
+     */
+    @NotBlank(message = "鐢ㄦ埛璐﹀彿涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String userName;
+
+    /**
+     * 鐢ㄦ埛鏄电О
+     */
+    private String nickName;
+
+    /**
+     * 鐢ㄦ埛绫诲瀷锛坰ys_user绯荤粺鐢ㄦ埛锛�
+     */
+    private String userType;
+
+    /**
+     * 鐢ㄦ埛閭
+     */
+    private String email;
+
+    /**
+     * 鎵嬫満鍙风爜
+     */
+    private String phonenumber;
+
+    /**
+     * 鐢ㄦ埛鎬у埆锛�0鐢� 1濂� 2鏈煡锛�
+     */
+    private String sex;
+
+    /**
+     * 澶村儚鍦板潃
+     */
+    private String avatar;
+
+    /**
+     * 瀵嗙爜
+     */
+    private String password;
+
+    /**
+     * 甯愬彿鐘舵�侊紙0姝e父 1鍋滅敤锛�
+     */
+    private String status;
+
+    /**
+     * 鏈�鍚庣櫥褰旾P
+     */
+    private String loginIp;
+
+    /**
+     * 鏈�鍚庣櫥褰曟椂闂�
+     */
+    private Date loginDate;
+
+    /**
+     * 鍒涘缓閮ㄩ棬
+     */
+    private Long createDept;
+
+    /**
+     * 澶囨敞
+     */
+    private String remark;
+
+    /**
+     * 瑙掕壊缁�
+     */
+    private Long[] roleIds;
+
+    /**
+     * 宀椾綅缁�
+     */
+    private Long[] postIds;
+
+    /**
+     * 鏁版嵁鏉冮檺 褰撳墠瑙掕壊ID
+     */
+    private Long roleId;
+
+    public SysUserBo(Long userId) {
+        this.userId = userId;
+    }
+
+    public boolean isAdmin() {
+        return UserConstants.SUPER_ADMIN_ID.equals(this.userId);
+    }
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysConfigVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysConfigVo.java
new file mode 100644
index 0000000..1c188cc
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysConfigVo.java
@@ -0,0 +1,70 @@
+package com.ruoyi.system.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.excel.annotation.ExcelDictFormat;
+import com.ruoyi.common.excel.convert.ExcelDictConvert;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 鍙傛暟閰嶇疆瑙嗗浘瀵硅薄 sys_config
+ *
+ * @author ruoyi
+ * @date 2023-01-31
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class SysConfigVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鍙傛暟涓婚敭
+     */
+    @ExcelProperty(value = "鍙傛暟涓婚敭")
+    private Long configId;
+
+    /**
+     * 鍙傛暟鍚嶇О
+     */
+    @ExcelProperty(value = "鍙傛暟鍚嶇О")
+    private String configName;
+
+    /**
+     * 鍙傛暟閿悕
+     */
+    @ExcelProperty(value = "鍙傛暟閿悕")
+    private String configKey;
+
+    /**
+     * 鍙傛暟閿��
+     */
+    @ExcelProperty(value = "鍙傛暟閿��")
+    private String configValue;
+
+    /**
+     * 绯荤粺鍐呯疆锛圷鏄� N鍚︼級
+     */
+    @ExcelProperty(value = "绯荤粺鍐呯疆", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "sys_yes_no")
+    private String configType;
+
+    /**
+     * 澶囨敞
+     */
+    @ExcelProperty(value = "澶囨敞")
+    private String remark;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @ExcelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysDeptVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysDeptVo.java
new file mode 100644
index 0000000..71fe3c2
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysDeptVo.java
@@ -0,0 +1,89 @@
+package com.ruoyi.system.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.excel.annotation.ExcelDictFormat;
+import com.ruoyi.common.excel.convert.ExcelDictConvert;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 閮ㄩ棬瑙嗗浘瀵硅薄 sys_dept
+ *
+ * @author ruoyi
+ * @date 2023-01-31
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class SysDeptVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 閮ㄩ棬id
+     */
+    @ExcelProperty(value = "閮ㄩ棬id")
+    private Long deptId;
+
+    /**
+     * 鐖堕儴闂╥d
+     */
+    private Long parentId;
+
+    /**
+     * 鐖堕儴闂ㄥ悕绉�
+     */
+    private String parentName;
+
+    /**
+     * 绁栫骇鍒楄〃
+     */
+    private String ancestors;
+
+    /**
+     * 閮ㄩ棬鍚嶇О
+     */
+    @ExcelProperty(value = "閮ㄩ棬鍚嶇О")
+    private String deptName;
+
+    /**
+     * 鏄剧ず椤哄簭
+     */
+    private Long orderNum;
+
+    /**
+     * 璐熻矗浜�
+     */
+    @ExcelProperty(value = "璐熻矗浜�")
+    private String leader;
+
+    /**
+     * 鑱旂郴鐢佃瘽
+     */
+    @ExcelProperty(value = "鑱旂郴鐢佃瘽")
+    private String phone;
+
+    /**
+     * 閭
+     */
+    @ExcelProperty(value = "閭")
+    private String email;
+
+    /**
+     * 閮ㄩ棬鐘舵�侊紙0姝e父 1鍋滅敤锛�
+     */
+    @ExcelProperty(value = "閮ㄩ棬鐘舵��", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "sys_normal_disable")
+    private String status;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @ExcelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysDictDataVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysDictDataVo.java
new file mode 100644
index 0000000..cae19d2
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysDictDataVo.java
@@ -0,0 +1,93 @@
+package com.ruoyi.system.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.excel.annotation.ExcelDictFormat;
+import com.ruoyi.common.excel.convert.ExcelDictConvert;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 瀛楀吀鏁版嵁瑙嗗浘瀵硅薄 sys_dict_data
+ *
+ * @author ruoyi
+ * @date 2023-02-01
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class SysDictDataVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 瀛楀吀缂栫爜
+     */
+    @ExcelProperty(value = "瀛楀吀缂栫爜")
+    private Long dictCode;
+
+    /**
+     * 瀛楀吀鎺掑簭
+     */
+    @ExcelProperty(value = "瀛楀吀鎺掑簭")
+    private Integer dictSort;
+
+    /**
+     * 瀛楀吀鏍囩
+     */
+    @ExcelProperty(value = "瀛楀吀鏍囩")
+    private String dictLabel;
+
+    /**
+     * 瀛楀吀閿��
+     */
+    @ExcelProperty(value = "瀛楀吀閿��")
+    private String dictValue;
+
+    /**
+     * 瀛楀吀绫诲瀷
+     */
+    @ExcelProperty(value = "瀛楀吀绫诲瀷")
+    private String dictType;
+
+    /**
+     * 鏍峰紡灞炴�э紙鍏朵粬鏍峰紡鎵╁睍锛�
+     */
+    private String cssClass;
+
+    /**
+     * 琛ㄦ牸鍥炴樉鏍峰紡
+     */
+    private String listClass;
+
+    /**
+     * 鏄惁榛樿锛圷鏄� N鍚︼級
+     */
+    @ExcelProperty(value = "鏄惁榛樿", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "sys_yes_no")
+    private String isDefault;
+
+    /**
+     * 鐘舵�侊紙0姝e父 1鍋滅敤锛�
+     */
+    @ExcelProperty(value = "鐘舵��", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "sys_normal_disable")
+    private String status;
+
+    /**
+     * 澶囨敞
+     */
+    @ExcelProperty(value = "澶囨敞")
+    private String remark;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @ExcelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysDictTypeVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysDictTypeVo.java
new file mode 100644
index 0000000..231dcab
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysDictTypeVo.java
@@ -0,0 +1,64 @@
+package com.ruoyi.system.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.excel.annotation.ExcelDictFormat;
+import com.ruoyi.common.excel.convert.ExcelDictConvert;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 瀛楀吀绫诲瀷瑙嗗浘瀵硅薄 sys_dict_type
+ *
+ * @author ruoyi
+ * @date 2023-02-01
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class SysDictTypeVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 瀛楀吀涓婚敭
+     */
+    @ExcelProperty(value = "瀛楀吀涓婚敭")
+    private Long dictId;
+
+    /**
+     * 瀛楀吀鍚嶇О
+     */
+    @ExcelProperty(value = "瀛楀吀鍚嶇О")
+    private String dictName;
+
+    /**
+     * 瀛楀吀绫诲瀷
+     */
+    @ExcelProperty(value = "瀛楀吀绫诲瀷")
+    private String dictType;
+
+    /**
+     * 鐘舵�侊紙0姝e父 1鍋滅敤锛�
+     */
+    @ExcelProperty(value = "鐘舵��", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "sys_normal_disable")
+    private String status;
+
+    /**
+     * 澶囨敞
+     */
+    @ExcelProperty(value = "澶囨敞")
+    private String remark;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @ExcelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysMenuVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysMenuVo.java
new file mode 100644
index 0000000..9da959f
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysMenuVo.java
@@ -0,0 +1,108 @@
+package com.ruoyi.system.domain.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 鑿滃崟鏉冮檺瑙嗗浘瀵硅薄 sys_menu
+ *
+ * @author ruoyi
+ * @date 2023-02-01
+ */
+@Data
+public class SysMenuVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鑿滃崟ID
+     */
+    private Long menuId;
+
+    /**
+     * 鑿滃崟鍚嶇О
+     */
+    private String menuName;
+
+    /**
+     * 鐖惰彍鍗旾D
+     */
+    private Long parentId;
+
+    /**
+     * 鏄剧ず椤哄簭
+     */
+    private Integer orderNum;
+
+    /**
+     * 璺敱鍦板潃
+     */
+    private String path;
+
+    /**
+     * 缁勪欢璺緞
+     */
+    private String component;
+
+    /**
+     * 璺敱鍙傛暟
+     */
+    private String queryParam;
+
+    /**
+     * 鏄惁涓哄閾撅紙0鏄� 1鍚︼級
+     */
+    private String isFrame;
+
+    /**
+     * 鏄惁缂撳瓨锛�0缂撳瓨 1涓嶇紦瀛橈級
+     */
+    private String isCache;
+
+    /**
+     * 鑿滃崟绫诲瀷锛圡鐩綍 C鑿滃崟 F鎸夐挳锛�
+     */
+    private String menuType;
+
+    /**
+     * 鏄剧ず鐘舵�侊紙0鏄剧ず 1闅愯棌锛�
+     */
+    private String visible;
+
+    /**
+     * 鑿滃崟鐘舵�侊紙0姝e父 1鍋滅敤锛�
+     */
+    private String status;
+
+    /**
+     * 鏉冮檺鏍囪瘑
+     */
+    private String perms;
+
+    /**
+     * 鑿滃崟鍥炬爣
+     */
+    private String icon;
+
+    /**
+     * 鍒涘缓閮ㄩ棬
+     */
+    private Long createDept;
+
+    /**
+     * 澶囨敞
+     */
+    private String remark;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysNoticeVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysNoticeVo.java
new file mode 100644
index 0000000..231f728
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysNoticeVo.java
@@ -0,0 +1,70 @@
+package com.ruoyi.system.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.excel.annotation.ExcelDictFormat;
+import com.ruoyi.common.excel.convert.ExcelDictConvert;
+import com.ruoyi.common.translation.annotation.Translation;
+import com.ruoyi.common.translation.constant.TransConstant;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 閫氱煡鍏憡瑙嗗浘瀵硅薄 sys_notice
+ *
+ * @author ruoyi
+ * @date 2023-02-01
+ */
+@Data
+public class SysNoticeVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鍏憡ID
+     */
+    private Long noticeId;
+
+    /**
+     * 鍏憡鏍囬
+     */
+    private String noticeTitle;
+
+    /**
+     * 鍏憡绫诲瀷锛�1閫氱煡 2鍏憡锛�
+     */
+    private String noticeType;
+
+    /**
+     * 鍏憡鍐呭
+     */
+    private String noticeContent;
+
+    /**
+     * 鍏憡鐘舵�侊紙0姝e父 1鍏抽棴锛�
+     */
+    private String status;
+
+    /**
+     * 澶囨敞
+     */
+    private String remark;
+
+    /**
+     * 鍒涘缓鑰�
+     */
+    @Translation(type = TransConstant.USER_ID_TO_NAME)
+    private Long createBy;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysPostVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysPostVo.java
new file mode 100644
index 0000000..c67ac5e
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysPostVo.java
@@ -0,0 +1,71 @@
+package com.ruoyi.system.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.excel.annotation.ExcelDictFormat;
+import com.ruoyi.common.excel.convert.ExcelDictConvert;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 宀椾綅淇℃伅瑙嗗浘瀵硅薄 sys_post
+ *
+ * @author ruoyi
+ * @date 2023-02-01
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class SysPostVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 宀椾綅ID
+     */
+    @ExcelProperty(value = "宀椾綅搴忓彿")
+    private Long postId;
+
+    /**
+     * 宀椾綅缂栫爜
+     */
+    @ExcelProperty(value = "宀椾綅缂栫爜")
+    private String postCode;
+
+    /**
+     * 宀椾綅鍚嶇О
+     */
+    @ExcelProperty(value = "宀椾綅鍚嶇О")
+    private String postName;
+
+    /**
+     * 鏄剧ず椤哄簭
+     */
+    @ExcelProperty(value = "宀椾綅鎺掑簭")
+    private Integer postSort;
+
+    /**
+     * 鐘舵�侊紙0姝e父 1鍋滅敤锛�
+     */
+    @ExcelProperty(value = "鐘舵��", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "sys_normal_disable")
+    private String status;
+
+    /**
+     * 澶囨敞
+     */
+    @ExcelProperty(value = "澶囨敞")
+    private String remark;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @ExcelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysRoleVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysRoleVo.java
new file mode 100644
index 0000000..e6aff11
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysRoleVo.java
@@ -0,0 +1,104 @@
+package com.ruoyi.system.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.core.constant.UserConstants;
+import com.ruoyi.common.excel.annotation.ExcelDictFormat;
+import com.ruoyi.common.excel.convert.ExcelDictConvert;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+/**
+ * 瑙掕壊淇℃伅瑙嗗浘瀵硅薄 sys_role
+ *
+ * @author ruoyi
+ * @date 2023-02-01
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class SysRoleVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 瑙掕壊ID
+     */
+    @ExcelProperty(value = "瑙掕壊搴忓彿")
+    private Long roleId;
+
+    /**
+     * 瑙掕壊鍚嶇О
+     */
+    @ExcelProperty(value = "瑙掕壊鍚嶇О")
+    private String roleName;
+
+    /**
+     * 瑙掕壊鏉冮檺瀛楃涓�
+     */
+    @ExcelProperty(value = "瑙掕壊鏉冮檺")
+    private String roleKey;
+
+    /**
+     * 鏄剧ず椤哄簭
+     */
+    @ExcelProperty(value = "瑙掕壊鎺掑簭")
+    private Integer roleSort;
+
+    /**
+     * 鏁版嵁鑼冨洿锛�1锛氬叏閮ㄦ暟鎹潈闄� 2锛氳嚜瀹氭暟鎹潈闄� 3锛氭湰閮ㄩ棬鏁版嵁鏉冮檺 4锛氭湰閮ㄩ棬鍙婁互涓嬫暟鎹潈闄愶級
+     */
+    @ExcelProperty(value = "鏁版嵁鑼冨洿", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(readConverterExp = "1=鎵�鏈夋暟鎹潈闄�,2=鑷畾涔夋暟鎹潈闄�,3=鏈儴闂ㄦ暟鎹潈闄�,4=鏈儴闂ㄥ強浠ヤ笅鏁版嵁鏉冮檺,5=浠呮湰浜烘暟鎹潈闄�")
+    private String dataScope;
+
+    /**
+     * 鑿滃崟鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀�
+     */
+    @ExcelProperty(value = "鑿滃崟鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀�")
+    private Boolean menuCheckStrictly;
+
+    /**
+     * 閮ㄩ棬鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀�
+     */
+    @ExcelProperty(value = "閮ㄩ棬鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀�")
+    private Boolean deptCheckStrictly;
+
+    /**
+     * 瑙掕壊鐘舵�侊紙0姝e父 1鍋滅敤锛�
+     */
+    @ExcelProperty(value = "瑙掕壊鐘舵��", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "sys_normal_disable")
+    private String status;
+
+    /**
+     * 澶囨敞
+     */
+    @ExcelProperty(value = "澶囨敞")
+    private String remark;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @ExcelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+
+    /**
+     * 鐢ㄦ埛鏄惁瀛樺湪姝よ鑹叉爣璇� 榛樿涓嶅瓨鍦�
+     */
+    private boolean flag = false;
+
+    /**
+     * 瑙掕壊鑿滃崟鏉冮檺
+     */
+    private Set<String> permissions;
+
+    public boolean isAdmin() {
+        return UserConstants.SUPER_ADMIN_ID.equals(this.roleId);
+    }
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysUserVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysUserVo.java
new file mode 100644
index 0000000..fb7fc0e
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysUserVo.java
@@ -0,0 +1,128 @@
+package com.ruoyi.system.domain.vo;
+
+import com.ruoyi.common.core.constant.UserConstants;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 鐢ㄦ埛淇℃伅瑙嗗浘瀵硅薄 sys_user
+ *
+ * @author ruoyi
+ * @date 2023-02-01
+ */
+@Data
+public class SysUserVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鐢ㄦ埛ID
+     */
+    private Long userId;
+
+    /**
+     * 閮ㄩ棬ID
+     */
+    private Long deptId;
+
+    /**
+     * 鐢ㄦ埛璐﹀彿
+     */
+    private String userName;
+
+    /**
+     * 鐢ㄦ埛鏄电О
+     */
+    private String nickName;
+
+    /**
+     * 鐢ㄦ埛绫诲瀷锛坰ys_user绯荤粺鐢ㄦ埛锛�
+     */
+    private String userType;
+
+    /**
+     * 鐢ㄦ埛閭
+     */
+    private String email;
+
+    /**
+     * 鎵嬫満鍙风爜
+     */
+    private String phonenumber;
+
+    /**
+     * 鐢ㄦ埛鎬у埆锛�0鐢� 1濂� 2鏈煡锛�
+     */
+    private String sex;
+
+    /**
+     * 澶村儚鍦板潃
+     */
+    private String avatar;
+
+    /**
+     * 瀵嗙爜
+     */
+    private String password;
+
+    /**
+     * 甯愬彿鐘舵�侊紙0姝e父 1鍋滅敤锛�
+     */
+    private String status;
+
+    /**
+     * 鏈�鍚庣櫥褰旾P
+     */
+    private String loginIp;
+
+    /**
+     * 鏈�鍚庣櫥褰曟椂闂�
+     */
+    private Date loginDate;
+
+    /**
+     * 澶囨敞
+     */
+    private String remark;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+
+    /**
+     * 閮ㄩ棬瀵硅薄
+     */
+    private SysDeptVo dept;
+
+    /**
+     * 瑙掕壊瀵硅薄
+     */
+    private List<SysRoleVo> roles;
+
+    /**
+     * 瑙掕壊缁�
+     */
+    private Long[] roleIds;
+
+    /**
+     * 宀椾綅缁�
+     */
+    private Long[] postIds;
+
+    /**
+     * 鏁版嵁鏉冮檺 褰撳墠瑙掕壊ID
+     */
+    private Long roleId;
+
+    public boolean isAdmin() {
+        return UserConstants.SUPER_ADMIN_ID.equals(this.userId);
+    }
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java
index 52fa701..2a91d13 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java
@@ -2,12 +2,13 @@
 
 import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 import com.ruoyi.system.domain.SysConfig;
+import com.ruoyi.system.domain.vo.SysConfigVo;
 
 /**
  * 鍙傛暟閰嶇疆 鏁版嵁灞�
  *
  * @author Lion Li
  */
-public interface SysConfigMapper extends BaseMapperPlus<SysConfigMapper, SysConfig, SysConfig> {
+public interface SysConfigMapper extends BaseMapperPlus<SysConfigMapper, SysConfig, SysConfigVo> {
 
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
index 80de8c5..3d08382 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
@@ -6,6 +6,7 @@
 import com.ruoyi.common.mybatis.annotation.DataPermission;
 import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 import com.ruoyi.system.domain.SysDept;
+import com.ruoyi.system.domain.vo.SysDeptVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -15,7 +16,7 @@
  *
  * @author Lion Li
  */
-public interface SysDeptMapper extends BaseMapperPlus<SysDeptMapper, SysDept, SysDept> {
+public interface SysDeptMapper extends BaseMapperPlus<SysDeptMapper, SysDept, SysDeptVo> {
 
     /**
      * 鏌ヨ閮ㄩ棬绠$悊鏁版嵁
@@ -26,7 +27,7 @@
     @DataPermission({
         @DataColumn(key = "deptName", value = "dept_id")
     })
-    List<SysDept> selectDeptList(@Param(Constants.WRAPPER) Wrapper<SysDept> queryWrapper);
+    List<SysDeptVo> selectDeptList(@Param(Constants.WRAPPER) Wrapper<SysDept> queryWrapper);
 
     /**
      * 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戜俊鎭�
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java
index d98baca..2bbb2fc 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java
@@ -4,6 +4,7 @@
 import com.ruoyi.common.core.constant.UserConstants;
 import com.ruoyi.system.domain.SysDictData;
 import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
+import com.ruoyi.system.domain.vo.SysDictDataVo;
 
 import java.util.List;
 
@@ -12,10 +13,10 @@
  *
  * @author Lion Li
  */
-public interface SysDictDataMapper extends BaseMapperPlus<SysDictDataMapper, SysDictData, SysDictData> {
+public interface SysDictDataMapper extends BaseMapperPlus<SysDictDataMapper, SysDictData, SysDictDataVo> {
 
-    default List<SysDictData> selectDictDataByType(String dictType) {
-        return selectList(
+    default List<SysDictDataVo> selectDictDataByType(String dictType) {
+        return selectVoList(
             new LambdaQueryWrapper<SysDictData>()
                 .eq(SysDictData::getStatus, UserConstants.DICT_NORMAL)
                 .eq(SysDictData::getDictType, dictType)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java
index 981a715..279f55a 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java
@@ -2,12 +2,13 @@
 
 import com.ruoyi.system.domain.SysDictType;
 import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
+import com.ruoyi.system.domain.vo.SysDictTypeVo;
 
 /**
  * 瀛楀吀琛� 鏁版嵁灞�
  *
  * @author Lion Li
  */
-public interface SysDictTypeMapper extends BaseMapperPlus<SysDictTypeMapper, SysDictType, SysDictType> {
+public interface SysDictTypeMapper extends BaseMapperPlus<SysDictTypeMapper, SysDictType, SysDictTypeVo> {
 
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java
index 366115a..936a012 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java
@@ -6,6 +6,7 @@
 import com.ruoyi.common.core.constant.UserConstants;
 import com.ruoyi.system.domain.SysMenu;
 import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
+import com.ruoyi.system.domain.vo.SysMenuVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -15,7 +16,7 @@
  *
  * @author Lion Li
  */
-public interface SysMenuMapper extends BaseMapperPlus<SysMenuMapper, SysMenu, SysMenu> {
+public interface SysMenuMapper extends BaseMapperPlus<SysMenuMapper, SysMenu, SysMenuVo> {
 
     /**
      * 鏍规嵁鐢ㄦ埛鎵�鏈夋潈闄�
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeMapper.java
index 119be77..6590dc4 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeMapper.java
@@ -2,12 +2,13 @@
 
 import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 import com.ruoyi.system.domain.SysNotice;
+import com.ruoyi.system.domain.vo.SysNoticeVo;
 
 /**
  * 閫氱煡鍏憡琛� 鏁版嵁灞�
  *
  * @author Lion Li
  */
-public interface SysNoticeMapper extends BaseMapperPlus<SysNoticeMapper, SysNotice, SysNotice> {
+public interface SysNoticeMapper extends BaseMapperPlus<SysNoticeMapper, SysNotice, SysNoticeVo> {
 
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysPostMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysPostMapper.java
index 7cf6b53..d7ec93c 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysPostMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysPostMapper.java
@@ -2,6 +2,7 @@
 
 import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 import com.ruoyi.system.domain.SysPost;
+import com.ruoyi.system.domain.vo.SysPostVo;
 
 import java.util.List;
 
@@ -10,7 +11,7 @@
  *
  * @author Lion Li
  */
-public interface SysPostMapper extends BaseMapperPlus<SysPostMapper, SysPost, SysPost> {
+public interface SysPostMapper extends BaseMapperPlus<SysPostMapper, SysPost, SysPostVo> {
 
     /**
      * 鏍规嵁鐢ㄦ埛ID鑾峰彇宀椾綅閫夋嫨妗嗗垪琛�
@@ -26,6 +27,6 @@
      * @param userName 鐢ㄦ埛鍚�
      * @return 缁撴灉
      */
-    List<SysPost> selectPostsByUserName(String userName);
+    List<SysPostVo> selectPostsByUserName(String userName);
 
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java
index 84e38f0..c6d0ad4 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java
@@ -7,6 +7,7 @@
 import com.ruoyi.common.mybatis.annotation.DataPermission;
 import com.ruoyi.system.domain.SysRole;
 import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
+import com.ruoyi.system.domain.vo.SysRoleVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -16,12 +17,12 @@
  *
  * @author Lion Li
  */
-public interface SysRoleMapper extends BaseMapperPlus<SysRoleMapper, SysRole, SysRole> {
+public interface SysRoleMapper extends BaseMapperPlus<SysRoleMapper, SysRole, SysRoleVo> {
 
     @DataPermission({
         @DataColumn(key = "deptName", value = "d.dept_id")
     })
-    Page<SysRole> selectPageRoleList(@Param("page") Page<SysRole> page, @Param(Constants.WRAPPER) Wrapper<SysRole> queryWrapper);
+    Page<SysRoleVo> selectPageRoleList(@Param("page") Page<SysRole> page, @Param(Constants.WRAPPER) Wrapper<SysRole> queryWrapper);
 
     /**
      * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瑙掕壊鏁版嵁
@@ -32,7 +33,7 @@
     @DataPermission({
         @DataColumn(key = "deptName", value = "d.dept_id")
     })
-    List<SysRole> selectRoleList(@Param(Constants.WRAPPER) Wrapper<SysRole> queryWrapper);
+    List<SysRoleVo> selectRoleList(@Param(Constants.WRAPPER) Wrapper<SysRole> queryWrapper);
 
     /**
      * 鏍规嵁鐢ㄦ埛ID鏌ヨ瑙掕壊
@@ -40,7 +41,7 @@
      * @param userId 鐢ㄦ埛ID
      * @return 瑙掕壊鍒楄〃
      */
-    List<SysRole> selectRolePermissionByUserId(Long userId);
+    List<SysRoleVo> selectRolePermissionByUserId(Long userId);
 
 
     /**
@@ -57,6 +58,6 @@
      * @param userName 鐢ㄦ埛鍚�
      * @return 瑙掕壊鍒楄〃
      */
-    List<SysRole> selectRolesByUserName(String userName);
+    List<SysRoleVo> selectRolesByUserName(String userName);
 
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java
index 83889b9..a998500 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java
@@ -2,7 +2,8 @@
 
 import com.ruoyi.common.mybatis.core.page.PageQuery;
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
-import com.ruoyi.system.domain.SysConfig;
+import com.ruoyi.system.domain.bo.SysConfigBo;
+import com.ruoyi.system.domain.vo.SysConfigVo;
 
 import java.util.List;
 
@@ -14,7 +15,7 @@
 public interface ISysConfigService {
 
 
-    TableDataInfo<SysConfig> selectPageConfigList(SysConfig config, PageQuery pageQuery);
+    TableDataInfo<SysConfigVo> selectPageConfigList(SysConfigBo config, PageQuery pageQuery);
 
     /**
      * 鏌ヨ鍙傛暟閰嶇疆淇℃伅
@@ -22,7 +23,7 @@
      * @param configId 鍙傛暟閰嶇疆ID
      * @return 鍙傛暟閰嶇疆淇℃伅
      */
-    SysConfig selectConfigById(Long configId);
+    SysConfigVo selectConfigById(Long configId);
 
     /**
      * 鏍规嵁閿悕鏌ヨ鍙傛暟閰嶇疆淇℃伅
@@ -45,23 +46,23 @@
      * @param config 鍙傛暟閰嶇疆淇℃伅
      * @return 鍙傛暟閰嶇疆闆嗗悎
      */
-    List<SysConfig> selectConfigList(SysConfig config);
+    List<SysConfigVo> selectConfigList(SysConfigBo config);
 
     /**
      * 鏂板鍙傛暟閰嶇疆
      *
-     * @param config 鍙傛暟閰嶇疆淇℃伅
+     * @param bo 鍙傛暟閰嶇疆淇℃伅
      * @return 缁撴灉
      */
-    String insertConfig(SysConfig config);
+    String insertConfig(SysConfigBo bo);
 
     /**
      * 淇敼鍙傛暟閰嶇疆
      *
-     * @param config 鍙傛暟閰嶇疆淇℃伅
+     * @param bo 鍙傛暟閰嶇疆淇℃伅
      * @return 缁撴灉
      */
-    String updateConfig(SysConfig config);
+    String updateConfig(SysConfigBo bo);
 
     /**
      * 鎵归噺鍒犻櫎鍙傛暟淇℃伅
@@ -91,6 +92,6 @@
      * @param config 鍙傛暟淇℃伅
      * @return 缁撴灉
      */
-    String checkConfigKeyUnique(SysConfig config);
+    String checkConfigKeyUnique(SysConfigBo config);
 
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java
index d91cc06..fc6641b 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java
@@ -2,6 +2,8 @@
 
 import cn.hutool.core.lang.tree.Tree;
 import com.ruoyi.system.domain.SysDept;
+import com.ruoyi.system.domain.bo.SysDeptBo;
+import com.ruoyi.system.domain.vo.SysDeptVo;
 
 import java.util.List;
 
@@ -17,7 +19,7 @@
      * @param dept 閮ㄩ棬淇℃伅
      * @return 閮ㄩ棬淇℃伅闆嗗悎
      */
-    List<SysDept> selectDeptList(SysDept dept);
+    List<SysDeptVo> selectDeptList(SysDeptBo dept);
 
     /**
      * 鏌ヨ閮ㄩ棬鏍戠粨鏋勪俊鎭�
@@ -49,7 +51,7 @@
      * @param deptId 閮ㄩ棬ID
      * @return 閮ㄩ棬淇℃伅
      */
-    SysDept selectDeptById(Long deptId);
+    SysDeptVo selectDeptById(Long deptId);
 
     /**
      * 鏍规嵁ID鏌ヨ鎵�鏈夊瓙閮ㄩ棬鏁帮紙姝e父鐘舵�侊級
@@ -81,7 +83,7 @@
      * @param dept 閮ㄩ棬淇℃伅
      * @return 缁撴灉
      */
-    String checkDeptNameUnique(SysDept dept);
+    String checkDeptNameUnique(SysDeptBo dept);
 
     /**
      * 鏍¢獙閮ㄩ棬鏄惁鏈夋暟鎹潈闄�
@@ -93,18 +95,18 @@
     /**
      * 鏂板淇濆瓨閮ㄩ棬淇℃伅
      *
-     * @param dept 閮ㄩ棬淇℃伅
+     * @param bo 閮ㄩ棬淇℃伅
      * @return 缁撴灉
      */
-    int insertDept(SysDept dept);
+    int insertDept(SysDeptBo bo);
 
     /**
      * 淇敼淇濆瓨閮ㄩ棬淇℃伅
      *
-     * @param dept 閮ㄩ棬淇℃伅
+     * @param bo 閮ㄩ棬淇℃伅
      * @return 缁撴灉
      */
-    int updateDept(SysDept dept);
+    int updateDept(SysDeptBo bo);
 
     /**
      * 鍒犻櫎閮ㄩ棬绠$悊淇℃伅
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java
index 14f521b..f8c8721 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java
@@ -1,8 +1,9 @@
 package com.ruoyi.system.service;
 
 import com.ruoyi.common.mybatis.core.page.PageQuery;
-import com.ruoyi.system.domain.SysDictData;
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
+import com.ruoyi.system.domain.bo.SysDictDataBo;
+import com.ruoyi.system.domain.vo.SysDictDataVo;
 
 import java.util.List;
 
@@ -14,7 +15,7 @@
 public interface ISysDictDataService {
 
 
-    TableDataInfo<SysDictData> selectPageDictDataList(SysDictData dictData, PageQuery pageQuery);
+    TableDataInfo<SysDictDataVo> selectPageDictDataList(SysDictDataBo dictData, PageQuery pageQuery);
 
     /**
      * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀鏁版嵁
@@ -22,7 +23,7 @@
      * @param dictData 瀛楀吀鏁版嵁淇℃伅
      * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅
      */
-    List<SysDictData> selectDictDataList(SysDictData dictData);
+    List<SysDictDataVo> selectDictDataList(SysDictDataBo dictData);
 
     /**
      * 鏍规嵁瀛楀吀绫诲瀷鍜屽瓧鍏搁敭鍊兼煡璇㈠瓧鍏告暟鎹俊鎭�
@@ -39,7 +40,7 @@
      * @param dictCode 瀛楀吀鏁版嵁ID
      * @return 瀛楀吀鏁版嵁
      */
-    SysDictData selectDictDataById(Long dictCode);
+    SysDictDataVo selectDictDataById(Long dictCode);
 
     /**
      * 鎵归噺鍒犻櫎瀛楀吀鏁版嵁淇℃伅
@@ -51,16 +52,16 @@
     /**
      * 鏂板淇濆瓨瀛楀吀鏁版嵁淇℃伅
      *
-     * @param dictData 瀛楀吀鏁版嵁淇℃伅
+     * @param bo 瀛楀吀鏁版嵁淇℃伅
      * @return 缁撴灉
      */
-    List<SysDictData> insertDictData(SysDictData dictData);
+    List<SysDictDataVo> insertDictData(SysDictDataBo bo);
 
     /**
      * 淇敼淇濆瓨瀛楀吀鏁版嵁淇℃伅
      *
-     * @param dictData 瀛楀吀鏁版嵁淇℃伅
+     * @param bo 瀛楀吀鏁版嵁淇℃伅
      * @return 缁撴灉
      */
-    List<SysDictData> updateDictData(SysDictData dictData);
+    List<SysDictDataVo> updateDictData(SysDictDataBo bo);
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java
index ae78363..bd4b8d7 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java
@@ -1,9 +1,11 @@
 package com.ruoyi.system.service;
 
 import com.ruoyi.common.mybatis.core.page.PageQuery;
-import com.ruoyi.system.domain.SysDictData;
 import com.ruoyi.system.domain.SysDictType;
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
+import com.ruoyi.system.domain.bo.SysDictTypeBo;
+import com.ruoyi.system.domain.vo.SysDictDataVo;
+import com.ruoyi.system.domain.vo.SysDictTypeVo;
 
 import java.util.List;
 
@@ -15,7 +17,7 @@
 public interface ISysDictTypeService {
 
 
-    TableDataInfo<SysDictType> selectPageDictTypeList(SysDictType dictType, PageQuery pageQuery);
+    TableDataInfo<SysDictTypeVo> selectPageDictTypeList(SysDictTypeBo dictType, PageQuery pageQuery);
 
     /**
      * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀绫诲瀷
@@ -23,7 +25,7 @@
      * @param dictType 瀛楀吀绫诲瀷淇℃伅
      * @return 瀛楀吀绫诲瀷闆嗗悎淇℃伅
      */
-    List<SysDictType> selectDictTypeList(SysDictType dictType);
+    List<SysDictTypeVo> selectDictTypeList(SysDictTypeBo dictType);
 
     /**
      * 鏍规嵁鎵�鏈夊瓧鍏哥被鍨�
@@ -38,7 +40,7 @@
      * @param dictType 瀛楀吀绫诲瀷
      * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅
      */
-    List<SysDictData> selectDictDataByType(String dictType);
+    List<SysDictDataVo> selectDictDataByType(String dictType);
 
     /**
      * 鏍规嵁瀛楀吀绫诲瀷ID鏌ヨ淇℃伅
@@ -46,7 +48,7 @@
      * @param dictId 瀛楀吀绫诲瀷ID
      * @return 瀛楀吀绫诲瀷
      */
-    SysDictType selectDictTypeById(Long dictId);
+    SysDictTypeVo selectDictTypeById(Long dictId);
 
     /**
      * 鏍规嵁瀛楀吀绫诲瀷鏌ヨ淇℃伅
@@ -54,7 +56,7 @@
      * @param dictType 瀛楀吀绫诲瀷
      * @return 瀛楀吀绫诲瀷
      */
-    SysDictType selectDictTypeByType(String dictType);
+    SysDictTypeVo selectDictTypeByType(String dictType);
 
     /**
      * 鎵归噺鍒犻櫎瀛楀吀淇℃伅
@@ -81,18 +83,18 @@
     /**
      * 鏂板淇濆瓨瀛楀吀绫诲瀷淇℃伅
      *
-     * @param dictType 瀛楀吀绫诲瀷淇℃伅
+     * @param bo 瀛楀吀绫诲瀷淇℃伅
      * @return 缁撴灉
      */
-    List<SysDictData> insertDictType(SysDictType dictType);
+    List<SysDictTypeVo> insertDictType(SysDictTypeBo bo);
 
     /**
      * 淇敼淇濆瓨瀛楀吀绫诲瀷淇℃伅
      *
-     * @param dictType 瀛楀吀绫诲瀷淇℃伅
+     * @param bo 瀛楀吀绫诲瀷淇℃伅
      * @return 缁撴灉
      */
-    List<SysDictData> updateDictType(SysDictType dictType);
+    List<SysDictDataVo> updateDictType(SysDictTypeBo bo);
 
     /**
      * 鏍¢獙瀛楀吀绫诲瀷绉版槸鍚﹀敮涓�
@@ -100,5 +102,5 @@
      * @param dictType 瀛楀吀绫诲瀷
      * @return 缁撴灉
      */
-    String checkDictTypeUnique(SysDictType dictType);
+    String checkDictTypeUnique(SysDictTypeBo dictType);
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java
index fa4f418..43f1a86 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java
@@ -2,7 +2,9 @@
 
 import cn.hutool.core.lang.tree.Tree;
 import com.ruoyi.system.domain.SysMenu;
+import com.ruoyi.system.domain.bo.SysMenuBo;
 import com.ruoyi.system.domain.vo.RouterVo;
+import com.ruoyi.system.domain.vo.SysMenuVo;
 
 import java.util.List;
 import java.util.Set;
@@ -85,7 +87,7 @@
      * @param menuId 鑿滃崟ID
      * @return 鑿滃崟淇℃伅
      */
-    SysMenu selectMenuById(Long menuId);
+    SysMenuVo selectMenuById(Long menuId);
 
     /**
      * 鏄惁瀛樺湪鑿滃崟瀛愯妭鐐�
@@ -106,18 +108,18 @@
     /**
      * 鏂板淇濆瓨鑿滃崟淇℃伅
      *
-     * @param menu 鑿滃崟淇℃伅
+     * @param bo 鑿滃崟淇℃伅
      * @return 缁撴灉
      */
-    int insertMenu(SysMenu menu);
+    int insertMenu(SysMenuBo bo);
 
     /**
      * 淇敼淇濆瓨鑿滃崟淇℃伅
      *
-     * @param menu 鑿滃崟淇℃伅
+     * @param bo 鑿滃崟淇℃伅
      * @return 缁撴灉
      */
-    int updateMenu(SysMenu menu);
+    int updateMenu(SysMenuBo bo);
 
     /**
      * 鍒犻櫎鑿滃崟绠$悊淇℃伅
@@ -133,5 +135,5 @@
      * @param menu 鑿滃崟淇℃伅
      * @return 缁撴灉
      */
-    String checkMenuNameUnique(SysMenu menu);
+    String checkMenuNameUnique(SysMenuBo menu);
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java
index 4e69042..02f9b80 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java
@@ -2,7 +2,8 @@
 
 import com.ruoyi.common.mybatis.core.page.PageQuery;
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
-import com.ruoyi.system.domain.SysNotice;
+import com.ruoyi.system.domain.bo.SysNoticeBo;
+import com.ruoyi.system.domain.vo.SysNoticeVo;
 
 import java.util.List;
 
@@ -14,7 +15,7 @@
 public interface ISysNoticeService {
 
 
-    TableDataInfo<SysNotice> selectPageNoticeList(SysNotice notice, PageQuery pageQuery);
+    TableDataInfo<SysNoticeVo> selectPageNoticeList(SysNoticeBo notice, PageQuery pageQuery);
 
     /**
      * 鏌ヨ鍏憡淇℃伅
@@ -22,7 +23,7 @@
      * @param noticeId 鍏憡ID
      * @return 鍏憡淇℃伅
      */
-    SysNotice selectNoticeById(Long noticeId);
+    SysNoticeVo selectNoticeById(Long noticeId);
 
     /**
      * 鏌ヨ鍏憡鍒楄〃
@@ -30,23 +31,23 @@
      * @param notice 鍏憡淇℃伅
      * @return 鍏憡闆嗗悎
      */
-    List<SysNotice> selectNoticeList(SysNotice notice);
+    List<SysNoticeVo> selectNoticeList(SysNoticeBo notice);
 
     /**
      * 鏂板鍏憡
      *
-     * @param notice 鍏憡淇℃伅
+     * @param bo 鍏憡淇℃伅
      * @return 缁撴灉
      */
-    int insertNotice(SysNotice notice);
+    int insertNotice(SysNoticeBo bo);
 
     /**
      * 淇敼鍏憡
      *
-     * @param notice 鍏憡淇℃伅
+     * @param bo 鍏憡淇℃伅
      * @return 缁撴灉
      */
-    int updateNotice(SysNotice notice);
+    int updateNotice(SysNoticeBo bo);
 
     /**
      * 鍒犻櫎鍏憡淇℃伅
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPostService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPostService.java
index 0fbbe02..e7e8955 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPostService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPostService.java
@@ -2,7 +2,8 @@
 
 import com.ruoyi.common.mybatis.core.page.PageQuery;
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
-import com.ruoyi.system.domain.SysPost;
+import com.ruoyi.system.domain.bo.SysPostBo;
+import com.ruoyi.system.domain.vo.SysPostVo;
 
 import java.util.List;
 
@@ -14,7 +15,7 @@
 public interface ISysPostService {
 
 
-    TableDataInfo<SysPost> selectPagePostList(SysPost post, PageQuery pageQuery);
+    TableDataInfo<SysPostVo> selectPagePostList(SysPostBo post, PageQuery pageQuery);
 
     /**
      * 鏌ヨ宀椾綅淇℃伅闆嗗悎
@@ -22,14 +23,14 @@
      * @param post 宀椾綅淇℃伅
      * @return 宀椾綅鍒楄〃
      */
-    List<SysPost> selectPostList(SysPost post);
+    List<SysPostVo> selectPostList(SysPostBo post);
 
     /**
      * 鏌ヨ鎵�鏈夊矖浣�
      *
      * @return 宀椾綅鍒楄〃
      */
-    List<SysPost> selectPostAll();
+    List<SysPostVo> selectPostAll();
 
     /**
      * 閫氳繃宀椾綅ID鏌ヨ宀椾綅淇℃伅
@@ -37,7 +38,7 @@
      * @param postId 宀椾綅ID
      * @return 瑙掕壊瀵硅薄淇℃伅
      */
-    SysPost selectPostById(Long postId);
+    SysPostVo selectPostById(Long postId);
 
     /**
      * 鏍规嵁鐢ㄦ埛ID鑾峰彇宀椾綅閫夋嫨妗嗗垪琛�
@@ -53,7 +54,7 @@
      * @param post 宀椾綅淇℃伅
      * @return 缁撴灉
      */
-    String checkPostNameUnique(SysPost post);
+    String checkPostNameUnique(SysPostBo post);
 
     /**
      * 鏍¢獙宀椾綅缂栫爜
@@ -61,7 +62,7 @@
      * @param post 宀椾綅淇℃伅
      * @return 缁撴灉
      */
-    String checkPostCodeUnique(SysPost post);
+    String checkPostCodeUnique(SysPostBo post);
 
     /**
      * 閫氳繃宀椾綅ID鏌ヨ宀椾綅浣跨敤鏁伴噺
@@ -90,16 +91,16 @@
     /**
      * 鏂板淇濆瓨宀椾綅淇℃伅
      *
-     * @param post 宀椾綅淇℃伅
+     * @param bo 宀椾綅淇℃伅
      * @return 缁撴灉
      */
-    int insertPost(SysPost post);
+    int insertPost(SysPostBo bo);
 
     /**
      * 淇敼淇濆瓨宀椾綅淇℃伅
      *
-     * @param post 宀椾綅淇℃伅
+     * @param bo 宀椾綅淇℃伅
      * @return 缁撴灉
      */
-    int updatePost(SysPost post);
+    int updatePost(SysPostBo bo);
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java
index c03be2c..77f6003 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java
@@ -1,9 +1,10 @@
 package com.ruoyi.system.service;
 
 import com.ruoyi.common.mybatis.core.page.PageQuery;
-import com.ruoyi.system.domain.SysRole;
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 import com.ruoyi.system.domain.SysUserRole;
+import com.ruoyi.system.domain.bo.SysRoleBo;
+import com.ruoyi.system.domain.vo.SysRoleVo;
 
 import java.util.List;
 import java.util.Set;
@@ -16,7 +17,7 @@
 public interface ISysRoleService {
 
 
-    TableDataInfo<SysRole> selectPageRoleList(SysRole role, PageQuery pageQuery);
+    TableDataInfo<SysRoleVo> selectPageRoleList(SysRoleBo role, PageQuery pageQuery);
 
     /**
      * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瑙掕壊鏁版嵁
@@ -24,7 +25,7 @@
      * @param role 瑙掕壊淇℃伅
      * @return 瑙掕壊鏁版嵁闆嗗悎淇℃伅
      */
-    List<SysRole> selectRoleList(SysRole role);
+    List<SysRoleVo> selectRoleList(SysRoleBo role);
 
     /**
      * 鏍规嵁鐢ㄦ埛ID鏌ヨ瑙掕壊鍒楄〃
@@ -32,7 +33,7 @@
      * @param userId 鐢ㄦ埛ID
      * @return 瑙掕壊鍒楄〃
      */
-    List<SysRole> selectRolesByUserId(Long userId);
+    List<SysRoleVo> selectRolesByUserId(Long userId);
 
     /**
      * 鏍规嵁鐢ㄦ埛ID鏌ヨ瑙掕壊鏉冮檺
@@ -47,7 +48,7 @@
      *
      * @return 瑙掕壊鍒楄〃
      */
-    List<SysRole> selectRoleAll();
+    List<SysRoleVo> selectRoleAll();
 
     /**
      * 鏍规嵁鐢ㄦ埛ID鑾峰彇瑙掕壊閫夋嫨妗嗗垪琛�
@@ -63,7 +64,7 @@
      * @param roleId 瑙掕壊ID
      * @return 瑙掕壊瀵硅薄淇℃伅
      */
-    SysRole selectRoleById(Long roleId);
+    SysRoleVo selectRoleById(Long roleId);
 
     /**
      * 鏍¢獙瑙掕壊鍚嶇О鏄惁鍞竴
@@ -71,7 +72,7 @@
      * @param role 瑙掕壊淇℃伅
      * @return 缁撴灉
      */
-    String checkRoleNameUnique(SysRole role);
+    String checkRoleNameUnique(SysRoleBo role);
 
     /**
      * 鏍¢獙瑙掕壊鏉冮檺鏄惁鍞竴
@@ -79,14 +80,14 @@
      * @param role 瑙掕壊淇℃伅
      * @return 缁撴灉
      */
-    String checkRoleKeyUnique(SysRole role);
+    String checkRoleKeyUnique(SysRoleBo role);
 
     /**
      * 鏍¢獙瑙掕壊鏄惁鍏佽鎿嶄綔
      *
      * @param role 瑙掕壊淇℃伅
      */
-    void checkRoleAllowed(SysRole role);
+    void checkRoleAllowed(SysRoleBo role);
 
     /**
      * 鏍¢獙瑙掕壊鏄惁鏈夋暟鎹潈闄�
@@ -106,34 +107,34 @@
     /**
      * 鏂板淇濆瓨瑙掕壊淇℃伅
      *
-     * @param role 瑙掕壊淇℃伅
+     * @param bo 瑙掕壊淇℃伅
      * @return 缁撴灉
      */
-    int insertRole(SysRole role);
+    int insertRole(SysRoleBo bo);
 
     /**
      * 淇敼淇濆瓨瑙掕壊淇℃伅
      *
-     * @param role 瑙掕壊淇℃伅
+     * @param bo 瑙掕壊淇℃伅
      * @return 缁撴灉
      */
-    int updateRole(SysRole role);
+    int updateRole(SysRoleBo bo);
 
     /**
      * 淇敼瑙掕壊鐘舵��
      *
-     * @param role 瑙掕壊淇℃伅
+     * @param bo 瑙掕壊淇℃伅
      * @return 缁撴灉
      */
-    int updateRoleStatus(SysRole role);
+    int updateRoleStatus(SysRoleBo bo);
 
     /**
      * 淇敼鏁版嵁鏉冮檺淇℃伅
      *
-     * @param role 瑙掕壊淇℃伅
+     * @param bo 瑙掕壊淇℃伅
      * @return 缁撴灉
      */
-    int authDataScope(SysRole role);
+    int authDataScope(SysRoleBo bo);
 
     /**
      * 閫氳繃瑙掕壊ID鍒犻櫎瑙掕壊
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
index 0d569da..3104e15 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
@@ -1,9 +1,11 @@
 package com.ruoyi.system.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.constant.CacheNames;
 import com.ruoyi.common.core.constant.UserConstants;
@@ -15,6 +17,8 @@
 import com.ruoyi.common.redis.utils.CacheUtils;
 import com.ruoyi.common.core.utils.SpringUtils;
 import com.ruoyi.system.domain.SysConfig;
+import com.ruoyi.system.domain.bo.SysConfigBo;
+import com.ruoyi.system.domain.vo.SysConfigVo;
 import com.ruoyi.system.mapper.SysConfigMapper;
 import com.ruoyi.system.service.ISysConfigService;
 import lombok.RequiredArgsConstructor;
@@ -38,15 +42,9 @@
     private final SysConfigMapper baseMapper;
 
     @Override
-    public TableDataInfo<SysConfig> selectPageConfigList(SysConfig config, PageQuery pageQuery) {
-        Map<String, Object> params = config.getParams();
-        LambdaQueryWrapper<SysConfig> lqw = new LambdaQueryWrapper<SysConfig>()
-            .like(StringUtils.isNotBlank(config.getConfigName()), SysConfig::getConfigName, config.getConfigName())
-            .eq(StringUtils.isNotBlank(config.getConfigType()), SysConfig::getConfigType, config.getConfigType())
-            .like(StringUtils.isNotBlank(config.getConfigKey()), SysConfig::getConfigKey, config.getConfigKey())
-            .between(params.get("beginTime") != null && params.get("endTime") != null,
-                SysConfig::getCreateTime, params.get("beginTime"), params.get("endTime"));
-        Page<SysConfig> page = baseMapper.selectPage(pageQuery.build(), lqw);
+    public TableDataInfo<SysConfigVo> selectPageConfigList(SysConfigBo config, PageQuery pageQuery) {
+        LambdaQueryWrapper<SysConfig> lqw = buildQueryWrapper(config);
+        Page<SysConfigVo> page = baseMapper.selectVoPage(pageQuery.build(), lqw);
         return TableDataInfo.build(page);
     }
 
@@ -58,8 +56,8 @@
      */
     @Override
     @DS("master")
-    public SysConfig selectConfigById(Long configId) {
-        return baseMapper.selectById(configId);
+    public SysConfigVo selectConfigById(Long configId) {
+        return baseMapper.selectVoById(configId);
     }
 
     /**
@@ -100,26 +98,32 @@
      * @return 鍙傛暟閰嶇疆闆嗗悎
      */
     @Override
-    public List<SysConfig> selectConfigList(SysConfig config) {
-        Map<String, Object> params = config.getParams();
-        LambdaQueryWrapper<SysConfig> lqw = new LambdaQueryWrapper<SysConfig>()
-            .like(StringUtils.isNotBlank(config.getConfigName()), SysConfig::getConfigName, config.getConfigName())
-            .eq(StringUtils.isNotBlank(config.getConfigType()), SysConfig::getConfigType, config.getConfigType())
-            .like(StringUtils.isNotBlank(config.getConfigKey()), SysConfig::getConfigKey, config.getConfigKey())
-            .between(params.get("beginTime") != null && params.get("endTime") != null,
-                SysConfig::getCreateTime, params.get("beginTime"), params.get("endTime"));
-        return baseMapper.selectList(lqw);
+    public List<SysConfigVo> selectConfigList(SysConfigBo config) {
+        LambdaQueryWrapper<SysConfig> lqw = buildQueryWrapper(config);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<SysConfig> buildQueryWrapper(SysConfigBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<SysConfig> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getConfigName()), SysConfig::getConfigName, bo.getConfigName());
+        lqw.eq(StringUtils.isNotBlank(bo.getConfigType()), SysConfig::getConfigType, bo.getConfigType());
+        lqw.like(StringUtils.isNotBlank(bo.getConfigKey()), SysConfig::getConfigKey, bo.getConfigKey());
+        lqw.between(params.get("beginTime") != null && params.get("endTime") != null,
+            SysConfig::getCreateTime, params.get("beginTime"), params.get("endTime"));
+        return lqw;
     }
 
     /**
      * 鏂板鍙傛暟閰嶇疆
      *
-     * @param config 鍙傛暟閰嶇疆淇℃伅
+     * @param bo 鍙傛暟閰嶇疆淇℃伅
      * @return 缁撴灉
      */
-    @CachePut(cacheNames = CacheNames.SYS_CONFIG, key = "#config.configKey")
+    @CachePut(cacheNames = CacheNames.SYS_CONFIG, key = "#bo.configKey")
     @Override
-    public String insertConfig(SysConfig config) {
+    public String insertConfig(SysConfigBo bo) {
+        SysConfig config = BeanUtil.toBean(bo, SysConfig.class);
         int row = baseMapper.insert(config);
         if (row > 0) {
             return config.getConfigValue();
@@ -130,13 +134,14 @@
     /**
      * 淇敼鍙傛暟閰嶇疆
      *
-     * @param config 鍙傛暟閰嶇疆淇℃伅
+     * @param bo 鍙傛暟閰嶇疆淇℃伅
      * @return 缁撴灉
      */
-    @CachePut(cacheNames = CacheNames.SYS_CONFIG, key = "#config.configKey")
+    @CachePut(cacheNames = CacheNames.SYS_CONFIG, key = "#bo.configKey")
     @Override
-    public String updateConfig(SysConfig config) {
+    public String updateConfig(SysConfigBo bo) {
         int row = 0;
+        SysConfig config = BeanUtil.toBean(bo, SysConfig.class);
         if (config.getConfigId() != null) {
             SysConfig temp = baseMapper.selectById(config.getConfigId());
             if (!StringUtils.equals(temp.getConfigKey(), config.getConfigKey())) {
@@ -161,7 +166,7 @@
     @Override
     public void deleteConfigByIds(Long[] configIds) {
         for (Long configId : configIds) {
-            SysConfig config = selectConfigById(configId);
+            SysConfig config = baseMapper.selectById(configId);
             if (StringUtils.equals(UserConstants.YES, config.getConfigType())) {
                 throw new ServiceException(String.format("鍐呯疆鍙傛暟銆�%1$s銆戜笉鑳藉垹闄� ", config.getConfigKey()));
             }
@@ -175,7 +180,7 @@
      */
     @Override
     public void loadingConfigCache() {
-        List<SysConfig> configsList = selectConfigList(new SysConfig());
+        List<SysConfigVo> configsList = selectConfigList(new SysConfigBo());
         configsList.forEach(config ->
             CacheUtils.put(CacheNames.SYS_CONFIG, config.getConfigKey(), config.getConfigValue()));
     }
@@ -204,7 +209,7 @@
      * @return 缁撴灉
      */
     @Override
-    public String checkConfigKeyUnique(SysConfig config) {
+    public String checkConfigKeyUnique(SysConfigBo config) {
         long configId = ObjectUtil.isNull(config.getConfigId()) ? -1L : config.getConfigId();
         SysConfig info = baseMapper.selectOne(new LambdaQueryWrapper<SysConfig>().eq(SysConfig::getConfigKey, config.getConfigKey()));
         if (ObjectUtil.isNotNull(info) && info.getConfigId() != configId) {
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
index 8040cff..8206bdc 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
@@ -1,11 +1,13 @@
 package com.ruoyi.system.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.lang.tree.Tree;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.common.core.constant.UserConstants;
 import com.ruoyi.system.domain.SysDept;
 import com.ruoyi.system.domain.SysRole;
@@ -15,6 +17,8 @@
 import com.ruoyi.common.satoken.utils.LoginHelper;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.TreeBuildUtils;
+import com.ruoyi.system.domain.bo.SysDeptBo;
+import com.ruoyi.system.domain.vo.SysDeptVo;
 import com.ruoyi.system.mapper.SysDeptMapper;
 import com.ruoyi.system.mapper.SysRoleMapper;
 import com.ruoyi.system.mapper.SysUserMapper;
@@ -46,15 +50,8 @@
      * @return 閮ㄩ棬淇℃伅闆嗗悎
      */
     @Override
-    public List<SysDept> selectDeptList(SysDept dept) {
-        LambdaQueryWrapper<SysDept> lqw = new LambdaQueryWrapper<>();
-        lqw.eq(SysDept::getDelFlag, "0")
-            .eq(ObjectUtil.isNotNull(dept.getDeptId()), SysDept::getDeptId, dept.getDeptId())
-            .eq(ObjectUtil.isNotNull(dept.getParentId()), SysDept::getParentId, dept.getParentId())
-            .like(StringUtils.isNotBlank(dept.getDeptName()), SysDept::getDeptName, dept.getDeptName())
-            .eq(StringUtils.isNotBlank(dept.getStatus()), SysDept::getStatus, dept.getStatus())
-            .orderByAsc(SysDept::getParentId)
-            .orderByAsc(SysDept::getOrderNum);
+    public List<SysDeptVo> selectDeptList(SysDeptBo dept) {
+        LambdaQueryWrapper<SysDept> lqw = buildQueryWrapper(dept);
         return baseMapper.selectDeptList(lqw);
     }
 
@@ -66,8 +63,22 @@
      */
     @Override
     public List<Tree<Long>> selectDeptTreeList(SysDept dept) {
-        List<SysDept> depts = this.selectDeptList(dept);
+        SysDeptBo bo = BeanUtil.toBean(dept, SysDeptBo.class);
+        LambdaQueryWrapper<SysDept> lqw = buildQueryWrapper(bo);
+        List<SysDept> depts = baseMapper.selectList(lqw);
         return buildDeptTreeSelect(depts);
+    }
+
+    private LambdaQueryWrapper<SysDept> buildQueryWrapper(SysDeptBo bo) {
+        LambdaQueryWrapper<SysDept> lqw = Wrappers.lambdaQuery();
+        lqw.eq(SysDept::getDelFlag, "0");
+        lqw.eq(ObjectUtil.isNotNull(bo.getDeptId()), SysDept::getDeptId, bo.getDeptId());
+        lqw.eq(ObjectUtil.isNotNull(bo.getParentId()), SysDept::getParentId, bo.getParentId());
+        lqw.like(StringUtils.isNotBlank(bo.getDeptName()), SysDept::getDeptName, bo.getDeptName());
+        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysDept::getStatus, bo.getStatus());
+        lqw.orderByAsc(SysDept::getParentId);
+        lqw.orderByAsc(SysDept::getOrderNum);
+        return lqw;
     }
 
     /**
@@ -107,9 +118,9 @@
      * @return 閮ㄩ棬淇℃伅
      */
     @Override
-    public SysDept selectDeptById(Long deptId) {
-        SysDept dept = baseMapper.selectById(deptId);
-        SysDept parentDept = baseMapper.selectOne(new LambdaQueryWrapper<SysDept>()
+    public SysDeptVo selectDeptById(Long deptId) {
+        SysDeptVo dept = baseMapper.selectVoById(deptId);
+        SysDeptVo parentDept = baseMapper.selectVoOne(new LambdaQueryWrapper<SysDept>()
             .select(SysDept::getDeptName).eq(SysDept::getDeptId, dept.getParentId()));
         dept.setParentName(ObjectUtil.isNotNull(parentDept) ? parentDept.getDeptName() : null);
         return dept;
@@ -159,7 +170,7 @@
      * @return 缁撴灉
      */
     @Override
-    public String checkDeptNameUnique(SysDept dept) {
+    public String checkDeptNameUnique(SysDeptBo dept) {
         boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysDept>()
             .eq(SysDept::getDeptName, dept.getDeptName())
             .eq(SysDept::getParentId, dept.getParentId())
@@ -178,9 +189,9 @@
     @Override
     public void checkDeptDataScope(Long deptId) {
         if (!LoginHelper.isAdmin()) {
-            SysDept dept = new SysDept();
+            SysDeptBo dept = new SysDeptBo();
             dept.setDeptId(deptId);
-            List<SysDept> depts = this.selectDeptList(dept);
+            List<SysDeptVo> depts = this.selectDeptList(dept);
             if (CollUtil.isEmpty(depts)) {
                 throw new ServiceException("娌℃湁鏉冮檺璁块棶閮ㄩ棬鏁版嵁锛�");
             }
@@ -190,16 +201,17 @@
     /**
      * 鏂板淇濆瓨閮ㄩ棬淇℃伅
      *
-     * @param dept 閮ㄩ棬淇℃伅
+     * @param bo 閮ㄩ棬淇℃伅
      * @return 缁撴灉
      */
     @Override
-    public int insertDept(SysDept dept) {
-        SysDept info = baseMapper.selectById(dept.getParentId());
+    public int insertDept(SysDeptBo bo) {
+        SysDept info = baseMapper.selectById(bo.getParentId());
         // 濡傛灉鐖惰妭鐐逛笉涓烘甯哥姸鎬�,鍒欎笉鍏佽鏂板瀛愯妭鐐�
         if (!UserConstants.DEPT_NORMAL.equals(info.getStatus())) {
             throw new ServiceException("閮ㄩ棬鍋滅敤锛屼笉鍏佽鏂板");
         }
+        SysDept dept = BeanUtil.toBean(bo, SysDept.class);
         dept.setAncestors(info.getAncestors() + "," + dept.getParentId());
         return baseMapper.insert(dept);
     }
@@ -207,11 +219,12 @@
     /**
      * 淇敼淇濆瓨閮ㄩ棬淇℃伅
      *
-     * @param dept 閮ㄩ棬淇℃伅
+     * @param bo 閮ㄩ棬淇℃伅
      * @return 缁撴灉
      */
     @Override
-    public int updateDept(SysDept dept) {
+    public int updateDept(SysDeptBo bo) {
+        SysDept dept = BeanUtil.toBean(bo, SysDept.class);
         SysDept newParentDept = baseMapper.selectById(dept.getParentId());
         SysDept oldDept = baseMapper.selectById(dept.getDeptId());
         if (ObjectUtil.isNotNull(newParentDept) && ObjectUtil.isNotNull(oldDept)) {
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java
index 5d06194..eb125f2 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java
@@ -1,6 +1,8 @@
 package com.ruoyi.system.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.constant.CacheNames;
 import com.ruoyi.common.mybatis.core.page.PageQuery;
@@ -9,6 +11,8 @@
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.redis.utils.CacheUtils;
+import com.ruoyi.system.domain.bo.SysDictDataBo;
+import com.ruoyi.system.domain.vo.SysDictDataVo;
 import com.ruoyi.system.mapper.SysDictDataMapper;
 import com.ruoyi.system.service.ISysDictDataService;
 import lombok.RequiredArgsConstructor;
@@ -29,13 +33,9 @@
     private final SysDictDataMapper baseMapper;
 
     @Override
-    public TableDataInfo<SysDictData> selectPageDictDataList(SysDictData dictData, PageQuery pageQuery) {
-        LambdaQueryWrapper<SysDictData> lqw = new LambdaQueryWrapper<SysDictData>()
-            .eq(StringUtils.isNotBlank(dictData.getDictType()), SysDictData::getDictType, dictData.getDictType())
-            .like(StringUtils.isNotBlank(dictData.getDictLabel()), SysDictData::getDictLabel, dictData.getDictLabel())
-            .eq(StringUtils.isNotBlank(dictData.getStatus()), SysDictData::getStatus, dictData.getStatus())
-            .orderByAsc(SysDictData::getDictSort);
-        Page<SysDictData> page = baseMapper.selectPage(pageQuery.build(), lqw);
+    public TableDataInfo<SysDictDataVo> selectPageDictDataList(SysDictDataBo dictData, PageQuery pageQuery) {
+        LambdaQueryWrapper<SysDictData> lqw = buildQueryWrapper(dictData);
+        Page<SysDictDataVo> page = baseMapper.selectVoPage(pageQuery.build(), lqw);
         return TableDataInfo.build(page);
     }
 
@@ -46,12 +46,19 @@
      * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅
      */
     @Override
-    public List<SysDictData> selectDictDataList(SysDictData dictData) {
-        return baseMapper.selectList(new LambdaQueryWrapper<SysDictData>()
-            .eq(StringUtils.isNotBlank(dictData.getDictType()), SysDictData::getDictType, dictData.getDictType())
-            .like(StringUtils.isNotBlank(dictData.getDictLabel()), SysDictData::getDictLabel, dictData.getDictLabel())
-            .eq(StringUtils.isNotBlank(dictData.getStatus()), SysDictData::getStatus, dictData.getStatus())
-            .orderByAsc(SysDictData::getDictSort));
+    public List<SysDictDataVo> selectDictDataList(SysDictDataBo dictData) {
+        LambdaQueryWrapper<SysDictData> lqw = buildQueryWrapper(dictData);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<SysDictData> buildQueryWrapper(SysDictDataBo bo) {
+        LambdaQueryWrapper<SysDictData> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getDictSort() != null, SysDictData::getDictSort, bo.getDictSort());
+        lqw.like(StringUtils.isNotBlank(bo.getDictLabel()), SysDictData::getDictLabel, bo.getDictLabel());
+        lqw.eq(StringUtils.isNotBlank(bo.getDictType()), SysDictData::getDictType, bo.getDictType());
+        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysDictData::getStatus, bo.getStatus());
+        lqw.orderByAsc(SysDictData::getDictSort);
+        return lqw;
     }
 
     /**
@@ -77,8 +84,8 @@
      * @return 瀛楀吀鏁版嵁
      */
     @Override
-    public SysDictData selectDictDataById(Long dictCode) {
-        return baseMapper.selectById(dictCode);
+    public SysDictDataVo selectDictDataById(Long dictCode) {
+        return baseMapper.selectVoById(dictCode);
     }
 
     /**
@@ -89,7 +96,7 @@
     @Override
     public void deleteDictDataByIds(Long[] dictCodes) {
         for (Long dictCode : dictCodes) {
-            SysDictData data = selectDictDataById(dictCode);
+            SysDictData data = baseMapper.selectById(dictCode);
             baseMapper.deleteById(dictCode);
             CacheUtils.evict(CacheNames.SYS_DICT, data.getDictType());
         }
@@ -98,12 +105,13 @@
     /**
      * 鏂板淇濆瓨瀛楀吀鏁版嵁淇℃伅
      *
-     * @param data 瀛楀吀鏁版嵁淇℃伅
+     * @param bo 瀛楀吀鏁版嵁淇℃伅
      * @return 缁撴灉
      */
-    @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#data.dictType")
+    @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#bo.dictType")
     @Override
-    public List<SysDictData> insertDictData(SysDictData data) {
+    public List<SysDictDataVo> insertDictData(SysDictDataBo bo) {
+        SysDictData data = BeanUtil.toBean(bo, SysDictData.class);
         int row = baseMapper.insert(data);
         if (row > 0) {
             return baseMapper.selectDictDataByType(data.getDictType());
@@ -114,12 +122,13 @@
     /**
      * 淇敼淇濆瓨瀛楀吀鏁版嵁淇℃伅
      *
-     * @param data 瀛楀吀鏁版嵁淇℃伅
+     * @param bo 瀛楀吀鏁版嵁淇℃伅
      * @return 缁撴灉
      */
-    @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#data.dictType")
+    @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#bo.dictType")
     @Override
-    public List<SysDictData> updateDictData(SysDictData data) {
+    public List<SysDictDataVo> updateDictData(SysDictDataBo bo) {
+        SysDictData data = BeanUtil.toBean(bo, SysDictData.class);
         int row = baseMapper.updateById(data);
         if (row > 0) {
             return baseMapper.selectDictDataByType(data.getDictType());
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java
index dd155ae..952e198 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java
@@ -1,10 +1,12 @@
 package com.ruoyi.system.service.impl;
 
 import cn.dev33.satoken.context.SaHolder;
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.constant.CacheConstants;
 import com.ruoyi.common.core.constant.CacheNames;
@@ -19,6 +21,9 @@
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.redis.utils.CacheUtils;
 import com.ruoyi.common.core.utils.SpringUtils;
+import com.ruoyi.system.domain.bo.SysDictTypeBo;
+import com.ruoyi.system.domain.vo.SysDictDataVo;
+import com.ruoyi.system.domain.vo.SysDictTypeVo;
 import com.ruoyi.system.mapper.SysDictDataMapper;
 import com.ruoyi.system.mapper.SysDictTypeMapper;
 import com.ruoyi.system.service.ISysDictTypeService;
@@ -44,15 +49,9 @@
     private final SysDictDataMapper dictDataMapper;
 
     @Override
-    public TableDataInfo<SysDictType> selectPageDictTypeList(SysDictType dictType, PageQuery pageQuery) {
-        Map<String, Object> params = dictType.getParams();
-        LambdaQueryWrapper<SysDictType> lqw = new LambdaQueryWrapper<SysDictType>()
-            .like(StringUtils.isNotBlank(dictType.getDictName()), SysDictType::getDictName, dictType.getDictName())
-            .eq(StringUtils.isNotBlank(dictType.getStatus()), SysDictType::getStatus, dictType.getStatus())
-            .like(StringUtils.isNotBlank(dictType.getDictType()), SysDictType::getDictType, dictType.getDictType())
-            .between(params.get("beginTime") != null && params.get("endTime") != null,
-                SysDictType::getCreateTime, params.get("beginTime"), params.get("endTime"));
-        Page<SysDictType> page = baseMapper.selectPage(pageQuery.build(), lqw);
+    public TableDataInfo<SysDictTypeVo> selectPageDictTypeList(SysDictTypeBo dictType, PageQuery pageQuery) {
+        LambdaQueryWrapper<SysDictType> lqw = buildQueryWrapper(dictType);
+        Page<SysDictTypeVo> page = baseMapper.selectVoPage(pageQuery.build(), lqw);
         return TableDataInfo.build(page);
     }
 
@@ -63,14 +62,20 @@
      * @return 瀛楀吀绫诲瀷闆嗗悎淇℃伅
      */
     @Override
-    public List<SysDictType> selectDictTypeList(SysDictType dictType) {
-        Map<String, Object> params = dictType.getParams();
-        return baseMapper.selectList(new LambdaQueryWrapper<SysDictType>()
-            .like(StringUtils.isNotBlank(dictType.getDictName()), SysDictType::getDictName, dictType.getDictName())
-            .eq(StringUtils.isNotBlank(dictType.getStatus()), SysDictType::getStatus, dictType.getStatus())
-            .like(StringUtils.isNotBlank(dictType.getDictType()), SysDictType::getDictType, dictType.getDictType())
-            .between(params.get("beginTime") != null && params.get("endTime") != null,
-                SysDictType::getCreateTime, params.get("beginTime"), params.get("endTime")));
+    public List<SysDictTypeVo> selectDictTypeList(SysDictTypeBo dictType) {
+        LambdaQueryWrapper<SysDictType> lqw = buildQueryWrapper(dictType);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<SysDictType> buildQueryWrapper(SysDictTypeBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<SysDictType> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getDictName()), SysDictType::getDictName, bo.getDictName());
+        lqw.like(StringUtils.isNotBlank(bo.getDictType()), SysDictType::getDictType, bo.getDictType());
+        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysDictType::getStatus, bo.getStatus());
+        lqw.between(params.get("beginTime") != null && params.get("endTime") != null,
+            SysDictType::getCreateTime, params.get("beginTime"), params.get("endTime"));
+        return lqw;
     }
 
     /**
@@ -91,8 +96,8 @@
      */
     @Cacheable(cacheNames = CacheNames.SYS_DICT, key = "#dictType")
     @Override
-    public List<SysDictData> selectDictDataByType(String dictType) {
-        List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(dictType);
+    public List<SysDictDataVo> selectDictDataByType(String dictType) {
+        List<SysDictDataVo> dictDatas = dictDataMapper.selectDictDataByType(dictType);
         if (CollUtil.isNotEmpty(dictDatas)) {
             return dictDatas;
         }
@@ -106,8 +111,8 @@
      * @return 瀛楀吀绫诲瀷
      */
     @Override
-    public SysDictType selectDictTypeById(Long dictId) {
-        return baseMapper.selectById(dictId);
+    public SysDictTypeVo selectDictTypeById(Long dictId) {
+        return baseMapper.selectVoById(dictId);
     }
 
     /**
@@ -118,8 +123,8 @@
      */
     @Cacheable(cacheNames = CacheNames.SYS_DICT, key = "#dictType")
     @Override
-    public SysDictType selectDictTypeByType(String dictType) {
-        return baseMapper.selectById(new LambdaQueryWrapper<SysDictType>().eq(SysDictType::getDictType, dictType));
+    public SysDictTypeVo selectDictTypeByType(String dictType) {
+        return baseMapper.selectVoById(new LambdaQueryWrapper<SysDictType>().eq(SysDictType::getDictType, dictType));
     }
 
     /**
@@ -130,7 +135,7 @@
     @Override
     public void deleteDictTypeByIds(Long[] dictIds) {
         for (Long dictId : dictIds) {
-            SysDictType dictType = selectDictTypeById(dictId);
+            SysDictType dictType = baseMapper.selectById(dictId);
             if (dictDataMapper.exists(new LambdaQueryWrapper<SysDictData>()
                 .eq(SysDictData::getDictType, dictType.getDictType()))) {
                 throw new ServiceException(String.format("%1$s宸插垎閰�,涓嶈兘鍒犻櫎", dictType.getDictName()));
@@ -145,11 +150,11 @@
      */
     @Override
     public void loadingDictCache() {
-        List<SysDictData> dictDataList = dictDataMapper.selectList(
+        List<SysDictDataVo> dictDataList = dictDataMapper.selectVoList(
             new LambdaQueryWrapper<SysDictData>().eq(SysDictData::getStatus, UserConstants.DICT_NORMAL));
-        Map<String, List<SysDictData>> dictDataMap = StreamUtils.groupByKey(dictDataList, SysDictData::getDictType);
+        Map<String, List<SysDictDataVo>> dictDataMap = StreamUtils.groupByKey(dictDataList, SysDictDataVo::getDictType);
         dictDataMap.forEach((k,v) -> {
-            List<SysDictData> dictList = StreamUtils.sorted(v, Comparator.comparing(SysDictData::getDictSort));
+            List<SysDictDataVo> dictList = StreamUtils.sorted(v, Comparator.comparing(SysDictDataVo::getDictSort));
             CacheUtils.put(CacheNames.SYS_DICT, k, dictList);
         });
     }
@@ -174,12 +179,13 @@
     /**
      * 鏂板淇濆瓨瀛楀吀绫诲瀷淇℃伅
      *
-     * @param dict 瀛楀吀绫诲瀷淇℃伅
+     * @param bo 瀛楀吀绫诲瀷淇℃伅
      * @return 缁撴灉
      */
-    @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#dict.dictType")
+    @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#bo.dictType")
     @Override
-    public List<SysDictData> insertDictType(SysDictType dict) {
+    public List<SysDictTypeVo> insertDictType(SysDictTypeBo bo) {
+        SysDictType dict = BeanUtil.toBean(bo, SysDictType.class);
         int row = baseMapper.insert(dict);
         if (row > 0) {
             return new ArrayList<>();
@@ -190,13 +196,14 @@
     /**
      * 淇敼淇濆瓨瀛楀吀绫诲瀷淇℃伅
      *
-     * @param dict 瀛楀吀绫诲瀷淇℃伅
+     * @param bo 瀛楀吀绫诲瀷淇℃伅
      * @return 缁撴灉
      */
-    @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#dict.dictType")
+    @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#bo.dictType")
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public List<SysDictData> updateDictType(SysDictType dict) {
+    public List<SysDictDataVo> updateDictType(SysDictTypeBo bo) {
+        SysDictType dict = BeanUtil.toBean(bo, SysDictType.class);
         SysDictType oldDict = baseMapper.selectById(dict.getDictId());
         dictDataMapper.update(null, new LambdaUpdateWrapper<SysDictData>()
             .set(SysDictData::getDictType, dict.getDictType())
@@ -212,14 +219,14 @@
     /**
      * 鏍¢獙瀛楀吀绫诲瀷绉版槸鍚﹀敮涓�
      *
-     * @param dict 瀛楀吀绫诲瀷
+     * @param dictType 瀛楀吀绫诲瀷
      * @return 缁撴灉
      */
     @Override
-    public String checkDictTypeUnique(SysDictType dict) {
+    public String checkDictTypeUnique(SysDictTypeBo dictType) {
         boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysDictType>()
-            .eq(SysDictType::getDictType, dict.getDictType())
-            .ne(ObjectUtil.isNotNull(dict.getDictId()), SysDictType::getDictId, dict.getDictId()));
+            .eq(SysDictType::getDictType, dictType.getDictType())
+            .ne(ObjectUtil.isNotNull(dictType.getDictId()), SysDictType::getDictId, dictType.getDictId()));
         if (exist) {
             return UserConstants.NOT_UNIQUE;
         }
@@ -238,13 +245,13 @@
     @Override
     public String getDictLabel(String dictType, String dictValue, String separator) {
         // 浼樺厛浠庢湰鍦扮紦瀛樿幏鍙�
-        List<SysDictData> datas = (List<SysDictData>) SaHolder.getStorage().get(CacheConstants.SYS_DICT_KEY + dictType);
+        List<SysDictDataVo> datas = (List<SysDictDataVo>) SaHolder.getStorage().get(CacheConstants.SYS_DICT_KEY + dictType);
         if (ObjectUtil.isNull(datas)) {
             datas = SpringUtils.getAopProxy(this).selectDictDataByType(dictType);
             SaHolder.getStorage().set(CacheConstants.SYS_DICT_KEY + dictType, datas);
         }
 
-        Map<String, String> map = StreamUtils.toMap(datas, SysDictData::getDictValue, SysDictData::getDictLabel);
+        Map<String, String> map = StreamUtils.toMap(datas, SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel);
         if (StringUtils.containsAny(dictValue, separator)) {
             return Arrays.stream(dictValue.split(separator))
                 .map(v -> map.getOrDefault(v, StringUtils.EMPTY))
@@ -266,13 +273,13 @@
     @Override
     public String getDictValue(String dictType, String dictLabel, String separator) {
         // 浼樺厛浠庢湰鍦扮紦瀛樿幏鍙�
-        List<SysDictData> datas = (List<SysDictData>) SaHolder.getStorage().get(CacheConstants.SYS_DICT_KEY + dictType);
+        List<SysDictDataVo> datas = (List<SysDictDataVo>) SaHolder.getStorage().get(CacheConstants.SYS_DICT_KEY + dictType);
         if (ObjectUtil.isNull(datas)) {
             datas = SpringUtils.getAopProxy(this).selectDictDataByType(dictType);
             SaHolder.getStorage().set(CacheConstants.SYS_DICT_KEY + dictType, datas);
         }
 
-        Map<String, String> map = StreamUtils.toMap(datas, SysDictData::getDictLabel, SysDictData::getDictValue);
+        Map<String, String> map = StreamUtils.toMap(datas, SysDictDataVo::getDictLabel, SysDictDataVo::getDictValue);
         if (StringUtils.containsAny(dictLabel, separator)) {
             return Arrays.stream(dictLabel.split(separator))
                 .map(l -> map.getOrDefault(l, StringUtils.EMPTY))
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
index 4db0a14..7e13c9f 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ruoyi.system.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.lang.tree.Tree;
 import cn.hutool.core.util.ObjectUtil;
@@ -15,8 +16,10 @@
 import com.ruoyi.system.domain.SysMenu;
 import com.ruoyi.system.domain.SysRole;
 import com.ruoyi.system.domain.SysRoleMenu;
+import com.ruoyi.system.domain.bo.SysMenuBo;
 import com.ruoyi.system.domain.vo.MetaVo;
 import com.ruoyi.system.domain.vo.RouterVo;
+import com.ruoyi.system.domain.vo.SysMenuVo;
 import com.ruoyi.system.mapper.SysMenuMapper;
 import com.ruoyi.system.mapper.SysRoleMapper;
 import com.ruoyi.system.mapper.SysRoleMenuMapper;
@@ -221,8 +224,8 @@
      * @return 鑿滃崟淇℃伅
      */
     @Override
-    public SysMenu selectMenuById(Long menuId) {
-        return baseMapper.selectById(menuId);
+    public SysMenuVo selectMenuById(Long menuId) {
+        return baseMapper.selectVoById(menuId);
     }
 
     /**
@@ -250,22 +253,24 @@
     /**
      * 鏂板淇濆瓨鑿滃崟淇℃伅
      *
-     * @param menu 鑿滃崟淇℃伅
+     * @param bo 鑿滃崟淇℃伅
      * @return 缁撴灉
      */
     @Override
-    public int insertMenu(SysMenu menu) {
+    public int insertMenu(SysMenuBo bo) {
+        SysMenu menu = BeanUtil.toBean(bo, SysMenu.class);
         return baseMapper.insert(menu);
     }
 
     /**
      * 淇敼淇濆瓨鑿滃崟淇℃伅
      *
-     * @param menu 鑿滃崟淇℃伅
+     * @param bo 鑿滃崟淇℃伅
      * @return 缁撴灉
      */
     @Override
-    public int updateMenu(SysMenu menu) {
+    public int updateMenu(SysMenuBo bo) {
+        SysMenu menu = BeanUtil.toBean(bo, SysMenu.class);
         return baseMapper.updateById(menu);
     }
 
@@ -287,7 +292,7 @@
      * @return 缁撴灉
      */
     @Override
-    public String checkMenuNameUnique(SysMenu menu) {
+    public String checkMenuNameUnique(SysMenuBo menu) {
         boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysMenu>()
             .eq(SysMenu::getMenuName, menu.getMenuName())
             .eq(SysMenu::getParentId, menu.getParentId())
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java
index b7b81d1..17d9f04 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java
@@ -1,12 +1,16 @@
 package com.ruoyi.system.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.mybatis.core.page.PageQuery;
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.system.domain.SysNotice;
+import com.ruoyi.system.domain.bo.SysNoticeBo;
+import com.ruoyi.system.domain.vo.SysNoticeVo;
 import com.ruoyi.system.mapper.SysNoticeMapper;
 import com.ruoyi.system.service.ISysNoticeService;
 import lombok.RequiredArgsConstructor;
@@ -27,12 +31,9 @@
     private final SysNoticeMapper baseMapper;
 
     @Override
-    public TableDataInfo<SysNotice> selectPageNoticeList(SysNotice notice, PageQuery pageQuery) {
-        LambdaQueryWrapper<SysNotice> lqw = new LambdaQueryWrapper<SysNotice>()
-            .like(StringUtils.isNotBlank(notice.getNoticeTitle()), SysNotice::getNoticeTitle, notice.getNoticeTitle())
-            .eq(StringUtils.isNotBlank(notice.getNoticeType()), SysNotice::getNoticeType, notice.getNoticeType())
-            .like(ObjectUtil.isNotNull(notice.getCreateBy()), SysNotice::getCreateBy, notice.getCreateBy());
-        Page<SysNotice> page = baseMapper.selectPage(pageQuery.build(), lqw);
+    public TableDataInfo<SysNoticeVo> selectPageNoticeList(SysNoticeBo notice, PageQuery pageQuery) {
+        LambdaQueryWrapper<SysNotice> lqw = buildQueryWrapper(notice);
+        Page<SysNoticeVo> page = baseMapper.selectVoPage(pageQuery.build(), lqw);
         return TableDataInfo.build(page);
     }
 
@@ -43,8 +44,8 @@
      * @return 鍏憡淇℃伅
      */
     @Override
-    public SysNotice selectNoticeById(Long noticeId) {
-        return baseMapper.selectById(noticeId);
+    public SysNoticeVo selectNoticeById(Long noticeId) {
+        return baseMapper.selectVoById(noticeId);
     }
 
     /**
@@ -54,32 +55,40 @@
      * @return 鍏憡闆嗗悎
      */
     @Override
-    public List<SysNotice> selectNoticeList(SysNotice notice) {
-        return baseMapper.selectList(new LambdaQueryWrapper<SysNotice>()
-            .like(StringUtils.isNotBlank(notice.getNoticeTitle()), SysNotice::getNoticeTitle, notice.getNoticeTitle())
-            .eq(StringUtils.isNotBlank(notice.getNoticeType()), SysNotice::getNoticeType, notice.getNoticeType())
-            .like(ObjectUtil.isNotNull(notice.getCreateBy()), SysNotice::getCreateBy, notice.getCreateBy()));
+    public List<SysNoticeVo> selectNoticeList(SysNoticeBo notice) {
+        LambdaQueryWrapper<SysNotice> lqw = buildQueryWrapper(notice);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<SysNotice> buildQueryWrapper(SysNoticeBo bo) {
+        LambdaQueryWrapper<SysNotice> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getNoticeTitle()), SysNotice::getNoticeTitle, bo.getNoticeTitle());
+        lqw.eq(StringUtils.isNotBlank(bo.getNoticeType()), SysNotice::getNoticeType, bo.getNoticeType());
+        lqw.eq(ObjectUtil.isNotNull(bo.getCreateBy()), SysNotice::getCreateBy, bo.getCreateBy());
+        return lqw;
     }
 
     /**
      * 鏂板鍏憡
      *
-     * @param notice 鍏憡淇℃伅
+     * @param bo 鍏憡淇℃伅
      * @return 缁撴灉
      */
     @Override
-    public int insertNotice(SysNotice notice) {
+    public int insertNotice(SysNoticeBo bo) {
+        SysNotice notice = BeanUtil.toBean(bo, SysNotice.class);
         return baseMapper.insert(notice);
     }
 
     /**
      * 淇敼鍏憡
      *
-     * @param notice 鍏憡淇℃伅
+     * @param bo 鍏憡淇℃伅
      * @return 缁撴灉
      */
     @Override
-    public int updateNotice(SysNotice notice) {
+    public int updateNotice(SysNoticeBo bo) {
+        SysNotice notice = BeanUtil.toBean(bo, SysNotice.class);
         return baseMapper.updateById(notice);
     }
 
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java
index 7d492d1..543946c 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java
@@ -1,7 +1,10 @@
 package com.ruoyi.system.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.constant.UserConstants;
 import com.ruoyi.common.mybatis.core.page.PageQuery;
@@ -10,6 +13,8 @@
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.system.domain.SysPost;
 import com.ruoyi.system.domain.SysUserPost;
+import com.ruoyi.system.domain.bo.SysPostBo;
+import com.ruoyi.system.domain.vo.SysPostVo;
 import com.ruoyi.system.mapper.SysPostMapper;
 import com.ruoyi.system.mapper.SysUserPostMapper;
 import com.ruoyi.system.service.ISysPostService;
@@ -32,12 +37,9 @@
     private final SysUserPostMapper userPostMapper;
 
     @Override
-    public TableDataInfo<SysPost> selectPagePostList(SysPost post, PageQuery pageQuery) {
-        LambdaQueryWrapper<SysPost> lqw = new LambdaQueryWrapper<SysPost>()
-            .like(StringUtils.isNotBlank(post.getPostCode()), SysPost::getPostCode, post.getPostCode())
-            .eq(StringUtils.isNotBlank(post.getStatus()), SysPost::getStatus, post.getStatus())
-            .like(StringUtils.isNotBlank(post.getPostName()), SysPost::getPostName, post.getPostName());
-        Page<SysPost> page = baseMapper.selectPage(pageQuery.build(), lqw);
+    public TableDataInfo<SysPostVo> selectPagePostList(SysPostBo post, PageQuery pageQuery) {
+        LambdaQueryWrapper<SysPost> lqw = buildQueryWrapper(post);
+        Page<SysPostVo> page = baseMapper.selectVoPage(pageQuery.build(), lqw);
         return TableDataInfo.build(page);
     }
 
@@ -48,11 +50,18 @@
      * @return 宀椾綅淇℃伅闆嗗悎
      */
     @Override
-    public List<SysPost> selectPostList(SysPost post) {
-        return baseMapper.selectList(new LambdaQueryWrapper<SysPost>()
-            .like(StringUtils.isNotBlank(post.getPostCode()), SysPost::getPostCode, post.getPostCode())
-            .eq(StringUtils.isNotBlank(post.getStatus()), SysPost::getStatus, post.getStatus())
-            .like(StringUtils.isNotBlank(post.getPostName()), SysPost::getPostName, post.getPostName()));
+    public List<SysPostVo> selectPostList(SysPostBo post) {
+        LambdaQueryWrapper<SysPost> lqw = buildQueryWrapper(post);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<SysPost> buildQueryWrapper(SysPostBo bo) {
+        LambdaQueryWrapper<SysPost> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getPostCode()), SysPost::getPostCode, bo.getPostCode());
+        lqw.like(StringUtils.isNotBlank(bo.getPostName()), SysPost::getPostName, bo.getPostName());
+        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysPost::getStatus, bo.getStatus());
+        lqw.orderByAsc(SysPost::getPostSort);
+        return lqw;
     }
 
     /**
@@ -61,8 +70,8 @@
      * @return 宀椾綅鍒楄〃
      */
     @Override
-    public List<SysPost> selectPostAll() {
-        return baseMapper.selectList();
+    public List<SysPostVo> selectPostAll() {
+        return baseMapper.selectVoList(new QueryWrapper<>());
     }
 
     /**
@@ -72,8 +81,8 @@
      * @return 瑙掕壊瀵硅薄淇℃伅
      */
     @Override
-    public SysPost selectPostById(Long postId) {
-        return baseMapper.selectById(postId);
+    public SysPostVo selectPostById(Long postId) {
+        return baseMapper.selectVoById(postId);
     }
 
     /**
@@ -94,7 +103,7 @@
      * @return 缁撴灉
      */
     @Override
-    public String checkPostNameUnique(SysPost post) {
+    public String checkPostNameUnique(SysPostBo post) {
         boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysPost>()
             .eq(SysPost::getPostName, post.getPostName())
             .ne(ObjectUtil.isNotNull(post.getPostId()), SysPost::getPostId, post.getPostId()));
@@ -111,7 +120,7 @@
      * @return 缁撴灉
      */
     @Override
-    public String checkPostCodeUnique(SysPost post) {
+    public String checkPostCodeUnique(SysPostBo post) {
         boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysPost>()
             .eq(SysPost::getPostCode, post.getPostCode())
             .ne(ObjectUtil.isNotNull(post.getPostId()), SysPost::getPostId, post.getPostId()));
@@ -152,7 +161,7 @@
     @Override
     public int deletePostByIds(Long[] postIds) {
         for (Long postId : postIds) {
-            SysPost post = selectPostById(postId);
+            SysPost post = baseMapper.selectById(postId);
             if (countUserPostById(postId) > 0) {
                 throw new ServiceException(String.format("%1$s宸插垎閰�,涓嶈兘鍒犻櫎", post.getPostName()));
             }
@@ -163,22 +172,24 @@
     /**
      * 鏂板淇濆瓨宀椾綅淇℃伅
      *
-     * @param post 宀椾綅淇℃伅
+     * @param bo 宀椾綅淇℃伅
      * @return 缁撴灉
      */
     @Override
-    public int insertPost(SysPost post) {
+    public int insertPost(SysPostBo bo) {
+        SysPost post = BeanUtil.toBean(bo, SysPost.class);
         return baseMapper.insert(post);
     }
 
     /**
      * 淇敼淇濆瓨宀椾綅淇℃伅
      *
-     * @param post 宀椾綅淇℃伅
+     * @param bo 宀椾綅淇℃伅
      * @return 缁撴灉
      */
     @Override
-    public int updatePost(SysPost post) {
+    public int updatePost(SysPostBo bo) {
+        SysPost post = BeanUtil.toBean(bo, SysPost.class);
         return baseMapper.updateById(post);
     }
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
index a8dcdb4..e83a124 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ruoyi.system.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
@@ -18,6 +19,8 @@
 import com.ruoyi.system.domain.SysRoleDept;
 import com.ruoyi.system.domain.SysRoleMenu;
 import com.ruoyi.system.domain.SysUserRole;
+import com.ruoyi.system.domain.bo.SysRoleBo;
+import com.ruoyi.system.domain.vo.SysRoleVo;
 import com.ruoyi.system.mapper.SysRoleDeptMapper;
 import com.ruoyi.system.mapper.SysRoleMapper;
 import com.ruoyi.system.mapper.SysRoleMenuMapper;
@@ -44,8 +47,8 @@
     private final SysRoleDeptMapper roleDeptMapper;
 
     @Override
-    public TableDataInfo<SysRole> selectPageRoleList(SysRole role, PageQuery pageQuery) {
-        Page<SysRole> page = baseMapper.selectPageRoleList(pageQuery.build(), this.buildQueryWrapper(role));
+    public TableDataInfo<SysRoleVo> selectPageRoleList(SysRoleBo role, PageQuery pageQuery) {
+        Page<SysRoleVo> page = baseMapper.selectPageRoleList(pageQuery.build(), this.buildQueryWrapper(role));
         return TableDataInfo.build(page);
     }
 
@@ -56,18 +59,18 @@
      * @return 瑙掕壊鏁版嵁闆嗗悎淇℃伅
      */
     @Override
-    public List<SysRole> selectRoleList(SysRole role) {
+    public List<SysRoleVo> selectRoleList(SysRoleBo role) {
         return baseMapper.selectRoleList(this.buildQueryWrapper(role));
     }
 
-    private Wrapper<SysRole> buildQueryWrapper(SysRole role) {
-        Map<String, Object> params = role.getParams();
+    private Wrapper<SysRole> buildQueryWrapper(SysRoleBo bo) {
+        Map<String, Object> params = bo.getParams();
         QueryWrapper<SysRole> wrapper = Wrappers.query();
         wrapper.eq("r.del_flag", UserConstants.ROLE_NORMAL)
-            .eq(ObjectUtil.isNotNull(role.getRoleId()), "r.role_id", role.getRoleId())
-            .like(StringUtils.isNotBlank(role.getRoleName()), "r.role_name", role.getRoleName())
-            .eq(StringUtils.isNotBlank(role.getStatus()), "r.status", role.getStatus())
-            .like(StringUtils.isNotBlank(role.getRoleKey()), "r.role_key", role.getRoleKey())
+            .eq(ObjectUtil.isNotNull(bo.getRoleId()), "r.role_id", bo.getRoleId())
+            .like(StringUtils.isNotBlank(bo.getRoleName()), "r.role_name", bo.getRoleName())
+            .eq(StringUtils.isNotBlank(bo.getStatus()), "r.status", bo.getStatus())
+            .like(StringUtils.isNotBlank(bo.getRoleKey()), "r.role_key", bo.getRoleKey())
             .between(params.get("beginTime") != null && params.get("endTime") != null,
                 "r.create_time", params.get("beginTime"), params.get("endTime"))
             .orderByAsc("r.role_sort");
@@ -81,11 +84,11 @@
      * @return 瑙掕壊鍒楄〃
      */
     @Override
-    public List<SysRole> selectRolesByUserId(Long userId) {
-        List<SysRole> userRoles = baseMapper.selectRolePermissionByUserId(userId);
-        List<SysRole> roles = selectRoleAll();
-        for (SysRole role : roles) {
-            for (SysRole userRole : userRoles) {
+    public List<SysRoleVo> selectRolesByUserId(Long userId) {
+        List<SysRoleVo> userRoles = baseMapper.selectRolePermissionByUserId(userId);
+        List<SysRoleVo> roles = selectRoleAll();
+        for (SysRoleVo role : roles) {
+            for (SysRoleVo userRole : userRoles) {
                 if (role.getRoleId().longValue() == userRole.getRoleId().longValue()) {
                     role.setFlag(true);
                     break;
@@ -103,9 +106,9 @@
      */
     @Override
     public Set<String> selectRolePermissionByUserId(Long userId) {
-        List<SysRole> perms = baseMapper.selectRolePermissionByUserId(userId);
+        List<SysRoleVo> perms = baseMapper.selectRolePermissionByUserId(userId);
         Set<String> permsSet = new HashSet<>();
-        for (SysRole perm : perms) {
+        for (SysRoleVo perm : perms) {
             if (ObjectUtil.isNotNull(perm)) {
                 permsSet.addAll(Arrays.asList(perm.getRoleKey().trim().split(",")));
             }
@@ -119,8 +122,8 @@
      * @return 瑙掕壊鍒楄〃
      */
     @Override
-    public List<SysRole> selectRoleAll() {
-        return this.selectRoleList(new SysRole());
+    public List<SysRoleVo> selectRoleAll() {
+        return this.selectRoleList(new SysRoleBo());
     }
 
     /**
@@ -141,8 +144,8 @@
      * @return 瑙掕壊瀵硅薄淇℃伅
      */
     @Override
-    public SysRole selectRoleById(Long roleId) {
-        return baseMapper.selectById(roleId);
+    public SysRoleVo selectRoleById(Long roleId) {
+        return baseMapper.selectVoById(roleId);
     }
 
     /**
@@ -152,7 +155,7 @@
      * @return 缁撴灉
      */
     @Override
-    public String checkRoleNameUnique(SysRole role) {
+    public String checkRoleNameUnique(SysRoleBo role) {
         boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysRole>()
             .eq(SysRole::getRoleName, role.getRoleName())
             .ne(ObjectUtil.isNotNull(role.getRoleId()), SysRole::getRoleId, role.getRoleId()));
@@ -169,7 +172,7 @@
      * @return 缁撴灉
      */
     @Override
-    public String checkRoleKeyUnique(SysRole role) {
+    public String checkRoleKeyUnique(SysRoleBo role) {
         boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysRole>()
             .eq(SysRole::getRoleKey, role.getRoleKey())
             .ne(ObjectUtil.isNotNull(role.getRoleId()), SysRole::getRoleId, role.getRoleId()));
@@ -185,7 +188,7 @@
      * @param role 瑙掕壊淇℃伅
      */
     @Override
-    public void checkRoleAllowed(SysRole role) {
+    public void checkRoleAllowed(SysRoleBo role) {
         if (ObjectUtil.isNotNull(role.getRoleId()) && role.isAdmin()) {
             throw new ServiceException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳瑙掕壊");
         }
@@ -199,9 +202,9 @@
     @Override
     public void checkRoleDataScope(Long roleId) {
         if (!LoginHelper.isAdmin()) {
-            SysRole role = new SysRole();
+            SysRoleBo role = new SysRoleBo();
             role.setRoleId(roleId);
-            List<SysRole> roles = this.selectRoleList(role);
+            List<SysRoleVo> roles = this.selectRoleList(role);
             if (CollUtil.isEmpty(roles)) {
                 throw new ServiceException("娌℃湁鏉冮檺璁块棶瑙掕壊鏁版嵁锛�");
             }
@@ -222,12 +225,13 @@
     /**
      * 鏂板淇濆瓨瑙掕壊淇℃伅
      *
-     * @param role 瑙掕壊淇℃伅
+     * @param bo 瑙掕壊淇℃伅
      * @return 缁撴灉
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int insertRole(SysRole role) {
+    public int insertRole(SysRoleBo bo) {
+        SysRole role = BeanUtil.toBean(bo, SysRole.class);
         // 鏂板瑙掕壊淇℃伅
         baseMapper.insert(role);
         return insertRoleMenu(role);
@@ -236,12 +240,13 @@
     /**
      * 淇敼淇濆瓨瑙掕壊淇℃伅
      *
-     * @param role 瑙掕壊淇℃伅
+     * @param bo 瑙掕壊淇℃伅
      * @return 缁撴灉
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int updateRole(SysRole role) {
+    public int updateRole(SysRoleBo bo) {
+        SysRole role = BeanUtil.toBean(bo, SysRole.class);
         // 淇敼瑙掕壊淇℃伅
         baseMapper.updateById(role);
         // 鍒犻櫎瑙掕壊涓庤彍鍗曞叧鑱�
@@ -252,23 +257,25 @@
     /**
      * 淇敼瑙掕壊鐘舵��
      *
-     * @param role 瑙掕壊淇℃伅
+     * @param bo 瑙掕壊淇℃伅
      * @return 缁撴灉
      */
     @Override
-    public int updateRoleStatus(SysRole role) {
+    public int updateRoleStatus(SysRoleBo bo) {
+        SysRole role = BeanUtil.toBean(bo, SysRole.class);
         return baseMapper.updateById(role);
     }
 
     /**
      * 淇敼鏁版嵁鏉冮檺淇℃伅
      *
-     * @param role 瑙掕壊淇℃伅
+     * @param bo 瑙掕壊淇℃伅
      * @return 缁撴灉
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int authDataScope(SysRole role) {
+    public int authDataScope(SysRoleBo bo) {
+        SysRole role = BeanUtil.toBean(bo, SysRole.class);
         // 淇敼瑙掕壊淇℃伅
         baseMapper.updateById(role);
         // 鍒犻櫎瑙掕壊涓庨儴闂ㄥ叧鑱�
@@ -345,9 +352,9 @@
     @Transactional(rollbackFor = Exception.class)
     public int deleteRoleByIds(Long[] roleIds) {
         for (Long roleId : roleIds) {
-            checkRoleAllowed(new SysRole(roleId));
+            checkRoleAllowed(new SysRoleBo(roleId));
             checkRoleDataScope(roleId);
-            SysRole role = selectRoleById(roleId);
+            SysRole role = baseMapper.selectById(roleId);
             if (countUserRoleByRoleId(roleId) > 0) {
                 throw new ServiceException(String.format("%1$s宸插垎閰�,涓嶈兘鍒犻櫎", role.getRoleName()));
             }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 9739806..94ddc4a 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -20,6 +20,8 @@
 import com.ruoyi.common.mybatis.helper.DataBaseHelper;
 import com.ruoyi.common.satoken.utils.LoginHelper;
 import com.ruoyi.system.domain.*;
+import com.ruoyi.system.domain.vo.SysPostVo;
+import com.ruoyi.system.domain.vo.SysRoleVo;
 import com.ruoyi.system.mapper.*;
 import com.ruoyi.system.service.ISysUserService;
 import lombok.RequiredArgsConstructor;
@@ -164,11 +166,11 @@
      */
     @Override
     public String selectUserRoleGroup(String userName) {
-        List<SysRole> list = roleMapper.selectRolesByUserName(userName);
+        List<SysRoleVo> list = roleMapper.selectRolesByUserName(userName);
         if (CollUtil.isEmpty(list)) {
             return StringUtils.EMPTY;
         }
-        return StreamUtils.join(list, SysRole::getRoleName);
+        return StreamUtils.join(list, SysRoleVo::getRoleName);
     }
 
     /**
@@ -179,11 +181,11 @@
      */
     @Override
     public String selectUserPostGroup(String userName) {
-        List<SysPost> list = postMapper.selectPostsByUserName(userName);
+        List<SysPostVo> list = postMapper.selectPostsByUserName(userName);
         if (CollUtil.isEmpty(list)) {
             return StringUtils.EMPTY;
         }
-        return StreamUtils.join(list, SysPost::getPostName);
+        return StreamUtils.join(list, SysPostVo::getPostName);
     }
 
     /**
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
index fedf820..80aa428 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -4,7 +4,7 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysDeptMapper">
 
-    <resultMap type="com.ruoyi.system.domain.SysDept" id="SysDeptResult">
+    <resultMap type="com.ruoyi.system.domain.vo.SysDeptVo" id="SysDeptResult">
     </resultMap>
 
     <select id="selectDeptList" resultMap="SysDeptResult">
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml
index 614a99b..f142b8d 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml
@@ -4,7 +4,7 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysPostMapper">
 
-    <resultMap type="com.ruoyi.system.domain.SysPost" id="SysPostResult">
+    <resultMap type="com.ruoyi.system.domain.vo.SysPostVo" id="SysPostResult">
     </resultMap>
 
     <select id="selectPostListByUserId" parameterType="Long" resultType="Long">
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
index 875352b..ba2eca9 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
@@ -4,7 +4,7 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysRoleMapper">
 
-    <resultMap type="com.ruoyi.system.domain.SysRole" id="SysRoleResult">
+    <resultMap type="com.ruoyi.system.domain.vo.SysRoleVo" id="SysRoleResult">
     </resultMap>
 
     <sql id="selectRoleVo">

--
Gitblit v1.9.3