Explorar o código

数据权限名称全局更换,不直接使用字符串

Yue %!s(int64=2) %!d(string=hai) anos
pai
achega
73ba69ee9e
Modificáronse 40 ficheiros con 309 adicións e 332 borrados
  1. BIN=BIN
      UI/VA.Vue_V1.0/dist.rar
  2. 26 37
      UI/VA.Vue_V1.0/src/core/services/PermissionNames.ts
  3. 1 1
      UI/VA.Vue_V1.0/src/views/system/config/index.vue
  4. 1 1
      UI/VA.Vue_V1.0/src/views/system/dept/index.vue
  5. 1 1
      UI/VA.Vue_V1.0/src/views/system/dict/_data.vue
  6. 2 2
      UI/VA.Vue_V1.0/src/views/system/dict/index.vue
  7. 1 1
      UI/VA.Vue_V1.0/src/views/system/log/logininfor.vue
  8. 1 1
      UI/VA.Vue_V1.0/src/views/system/log/operlog.vue
  9. 1 1
      UI/VA.Vue_V1.0/src/views/system/menu/index.vue
  10. 1 1
      UI/VA.Vue_V1.0/src/views/system/notice/index.vue
  11. 1 1
      UI/VA.Vue_V1.0/src/views/system/post/index.vue
  12. 1 1
      UI/VA.Vue_V1.0/src/views/system/role/index.vue
  13. 1 1
      UI/VA.Vue_V1.0/src/views/system/user/index.vue
  14. 4 2
      UI/VA.Vue_V1.0/vite.config.ts
  15. 2 2
      vber-data-seeder/src/main/java/com/vber/dataSeeder/DataSeederRunner.java
  16. 2 0
      vber-data-seeder/src/main/java/com/vber/dataSeeder/menu/DefaultMenuCreator.java
  17. 1 1
      vber-data-seeder/src/main/java/com/vber/dataSeeder/table/BuildTables.java
  18. 1 1
      vber-data-seeder/src/main/resources/application.yml
  19. 0 2
      vber-system/src/main/java/com/vber/system/permissions/permissionName.java
  20. 4 4
      vber-system/src/main/resources/mapper/system/SysMenuMapper.xml
  21. 12 9
      vber-web/src/main/java/com/vber/web/controller/common/CaptchaController.java
  22. 14 13
      vber-web/src/main/java/com/vber/web/controller/common/CommonController.java
  23. 33 23
      vber-web/src/main/java/com/vber/web/controller/monitor/CacheController.java
  24. 1 1
      vber-web/src/main/java/com/vber/web/controller/monitor/ServerController.java
  25. 13 11
      vber-web/src/main/java/com/vber/web/controller/monitor/SysLogininforController.java
  26. 10 8
      vber-web/src/main/java/com/vber/web/controller/monitor/SysOperlogController.java
  27. 10 8
      vber-web/src/main/java/com/vber/web/controller/monitor/SysUserOnlineController.java
  28. 8 8
      vber-web/src/main/java/com/vber/web/controller/system/SysConfigController.java
  29. 6 7
      vber-web/src/main/java/com/vber/web/controller/system/SysDeptController.java
  30. 15 13
      vber-web/src/main/java/com/vber/web/controller/system/SysDictDataController.java
  31. 14 12
      vber-web/src/main/java/com/vber/web/controller/system/SysDictTypeController.java
  32. 9 7
      vber-web/src/main/java/com/vber/web/controller/system/SysLoginController.java
  33. 10 8
      vber-web/src/main/java/com/vber/web/controller/system/SysMenuController.java
  34. 10 7
      vber-web/src/main/java/com/vber/web/controller/system/SysNoticeController.java
  35. 12 10
      vber-web/src/main/java/com/vber/web/controller/system/SysPostController.java
  36. 7 5
      vber-web/src/main/java/com/vber/web/controller/system/SysProfileController.java
  37. 7 5
      vber-web/src/main/java/com/vber/web/controller/system/SysRegisterController.java
  38. 29 27
      vber-web/src/main/java/com/vber/web/controller/system/SysRoleController.java
  39. 37 24
      vber-web/src/main/java/com/vber/web/controller/system/SysUserController.java
  40. 0 65
      vber-web/src/main/java/com/vber/web/controller/system/TestUserController.java

BIN=BIN
UI/VA.Vue_V1.0/dist.rar


+ 26 - 37
UI/VA.Vue_V1.0/src/core/services/PermissionNames.ts

@@ -1,5 +1,6 @@
 class permissionName {
-  SystemUserList = "system:user:list"
+  System = "system"
+  SystemUser = "system:user"
   SystemUserQuery = "system:user:query"
   SystemUserAdd = "system:user:add"
   SystemUserEdit = "system:user:edit"
@@ -7,77 +8,65 @@ class permissionName {
   SystemUserExport = "system:user:export"
   SystemUserImport = "system:user:import"
   SystemUserResetpwd = "system:user:resetPwd"
-  SystemRoleList = "system:role:list"
+  SystemRole = "system:role"
   SystemRoleQuery = "system:role:query"
   SystemRoleAdd = "system:role:add"
   SystemRoleEdit = "system:role:edit"
   SystemRoleRemove = "system:role:remove"
   SystemRoleExport = "system:role:export"
-  SystemMenuList = "system:menu:list"
+  SystemMenu = "system:menu"
   SystemMenuQuery = "system:menu:query"
   SystemMenuAdd = "system:menu:add"
   SystemMenuEdit = "system:menu:edit"
   SystemMenuRemove = "system:menu:remove"
-  SystemDeptList = "system:dept:list"
+  SystemDept = "system:dept"
   SystemDeptQuery = "system:dept:query"
   SystemDeptAdd = "system:dept:add"
   SystemDeptEdit = "system:dept:edit"
   SystemDeptRemove = "system:dept:remove"
-  SystemPostList = "system:post:list"
+  SystemPost = "system:post"
   SystemPostQuery = "system:post:query"
   SystemPostAdd = "system:post:add"
   SystemPostEdit = "system:post:edit"
   SystemPostRemove = "system:post:remove"
   SystemPostExport = "system:post:export"
-  SystemDictList = "system:dict:list"
+  SystemDict = "system:dict"
   SystemDictQuery = "system:dict:query"
   SystemDictAdd = "system:dict:add"
   SystemDictEdit = "system:dict:edit"
   SystemDictRemove = "system:dict:remove"
   SystemDictExport = "system:dict:export"
-  SystemConfigList = "system:config:list"
+  SystemConfig = "system:config"
   SystemConfigQuery = "system:config:query"
   SystemConfigAdd = "system:config:add"
   SystemConfigEdit = "system:config:edit"
   SystemConfigRemove = "system:config:remove"
   SystemConfigExport = "system:config:export"
-  SystemNoticeList = "system:notice:list"
+  SystemNotice = "system:notice"
   SystemNoticeQuery = "system:notice:query"
   SystemNoticeAdd = "system:notice:add"
   SystemNoticeEdit = "system:notice:edit"
   SystemNoticeRemove = "system:notice:remove"
-  MonitorOperlogList = "monitor:operlog:list"
-  MonitorOperlogQuery = "monitor:operlog:query"
-  MonitorOperlogRemove = "monitor:operlog:remove"
-  MonitorOperlogExport = "monitor:operlog:export"
-  MonitorLogininforList = "monitor:logininfor:list"
-  MonitorLogininforQuery = "monitor:logininfor:query"
-  MonitorLogininforRemove = "monitor:logininfor:remove"
-  MonitorLogininforExport = "monitor:logininfor:export"
-  MonitorLogininforUnlock = "monitor:logininfor:unlock"
-  MonitorOnlineList = "monitor:online:list"
+  SystemNoticeExport = "system:notice:export"
+  SystemLog = "system:log"
+  SystemLogOperlog = "system:log:operlog"
+  SystemLogOperlogQuery = "system:log:operlog:query"
+  SystemLogOperlogRemove = "system:log:operlog:remove"
+  SystemLogOperlogExport = "system:log:operlog:export"
+  SystemLogLogininfor = "system:log:logininfor"
+  SystemLogLogininforQuery = "system:log:logininfor:query"
+  SystemLogLogininforRemove = "system:log:logininfor:remove"
+  SystemLogLogininforExport = "system:log:logininfor:export"
+  SystemLogLogininforUnlock = "system:log:logininfor:unlock"
+  Monitor = "monitor"
+  MonitorOnline = "monitor:online"
   MonitorOnlineQuery = "monitor:online:query"
   MonitorOnlineBatchlogout = "monitor:online:batchLogout"
   MonitorOnlineForcelogout = "monitor:online:forceLogout"
-  MonitorJobList = "monitor:job:list"
-  MonitorJobQuery = "monitor:job:query"
-  MonitorJobAdd = "monitor:job:add"
-  MonitorJobEdit = "monitor:job:edit"
-  MonitorJobRemove = "monitor:job:remove"
-  MonitorJobChangestatus = "monitor:job:changeStatus"
-  MonitorJobExport = "monitor:job:export"
-  MonitorDruidList = "monitor:druid:list"
-  MonitorServerList = "monitor:server:list"
-  MonitorCacheList = "monitor:cache:list"
-  ToolBuildList = "tool:build:list"
-  ToolGenList = "tool:gen:list"
-  ToolGenQuery = "tool:gen:query"
-  ToolGenEdit = "tool:gen:edit"
-  ToolGenRemove = "tool:gen:remove"
-  ToolGenImport = "tool:gen:import"
-  ToolGenPreview = "tool:gen:preview"
-  ToolGenCode = "tool:gen:code"
-  ToolSwaggerList = "tool:swagger:list"
+  MonitorDruid = "monitor:druid"
+  MonitorServer = "monitor:server"
+  MonitorCache = "monitor:cache"
+  MonitorCachelist = "monitor:cacheList"
 }
 export const permissionNames = new permissionName()
 export default permissionName

+ 1 - 1
UI/VA.Vue_V1.0/src/views/system/config/index.vue

@@ -68,7 +68,7 @@ const opts = reactive({
       },
     },
   ],
-  permission: permissionNames.SystemConfigList,
+  permission: permissionNames.SystemConfig,
   handleFuns: { handleRefreshCache },
   customBtns: [],
   tableListFun: apis.system.configApi.listConfig,

+ 1 - 1
UI/VA.Vue_V1.0/src/views/system/dept/index.vue

@@ -50,7 +50,7 @@ const opts = reactive({
       },
     },
   ],
-  permission: permissionNames.SystemDeptList,
+  permission: permissionNames.SystemDept,
   handleFuns: {
     handleCreate,
   },

+ 1 - 1
UI/VA.Vue_V1.0/src/views/system/dict/_data.vue

@@ -62,7 +62,7 @@ const opts = reactive({
       span: 1.5,
     },
   ],
-  permission: permissionNames.SystemDictList,
+  permission: permissionNames.SystemDict,
   handleBtns: [
     {
       key: "handleCreate",

+ 2 - 2
UI/VA.Vue_V1.0/src/views/system/dict/index.vue

@@ -91,7 +91,7 @@ const opts = reactive({
       span: 5,
     },
   ],
-  permission: permissionNames.SystemDictList,
+  permission: permissionNames.SystemDict,
   handleFuns: { handleRefreshCache },
   customBtns: [],
   tableListFun: apis.system.dictApi.listType,
@@ -217,7 +217,7 @@ function handleView(row: any) {
           </el-button>
         </vb-tooltip>
         <vb-tooltip content="详情" placement="top">
-          <el-button link type="primary" @click="handleView(row)" v-hasPermission="permissionNames.SystemDictList">
+          <el-button link type="primary" @click="handleView(row)" v-hasPermission="permissionNames.SystemDict">
             <template #icon>
               <KTIcon icon-name="eye" icon-type="duotone" class="fs-3"></KTIcon>
             </template>

+ 1 - 1
UI/VA.Vue_V1.0/src/views/system/log/logininfor.vue

@@ -85,7 +85,7 @@ const opts = reactive<any>({
       },
     },
   ],
-  permission: permissionNames.MonitorLogininforList,
+  permission: permissionNames.SystemLogLogininfor,
   handleFuns: {
     handleUnlock: () => {
       const row = tableRef.value.getSelected()

+ 1 - 1
UI/VA.Vue_V1.0/src/views/system/log/operlog.vue

@@ -96,7 +96,7 @@ const opts = reactive<any>({
       },
     },
   ],
-  permission: permissionNames.MonitorOperlogList,
+  permission: permissionNames.SystemLogOperlog,
   handleFuns: {
     handleClean,
   },

+ 1 - 1
UI/VA.Vue_V1.0/src/views/system/menu/index.vue

@@ -69,7 +69,7 @@ const opts = reactive({
       },
     },
   ],
-  permission: permissionNames.SystemMenuList,
+  permission: permissionNames.SystemMenu,
   handleFuns: {
     handleCreate,
   },

+ 1 - 1
UI/VA.Vue_V1.0/src/views/system/notice/index.vue

@@ -62,7 +62,7 @@ const opts = reactive({
       },
     },
   ],
-  permission: permissionNames.SystemNoticeList,
+  permission: permissionNames.SystemNotice,
   handleFuns: {},
   customBtns: [],
   tableListFun: apis.system.noticeApi.listNotice,

+ 1 - 1
UI/VA.Vue_V1.0/src/views/system/post/index.vue

@@ -84,7 +84,7 @@ const opts = reactive<any>({
     //   },
     // },
   ],
-  permission: permissionNames.SystemPostList,
+  permission: permissionNames.SystemPost,
   handleFuns: {},
   customBtns: [],
   tableListFun: apis.system.postApi.listPost,

+ 1 - 1
UI/VA.Vue_V1.0/src/views/system/role/index.vue

@@ -125,7 +125,7 @@ const opts = reactive({
       span: 5,
     },
   ],
-  permission: permissionNames.SystemRoleList,
+  permission: permissionNames.SystemRole,
   handleBtns: [],
   handleFuns: {
     handleCreate,

+ 1 - 1
UI/VA.Vue_V1.0/src/views/system/user/index.vue

@@ -22,7 +22,7 @@ function loadDept() {
 }
 const tableRef = ref()
 const tableOpts = reactive({
-  permission: permissionNames.SystemUserList,
+  permission: permissionNames.SystemUser,
   columns: [
     { field: "userId", name: `用户编号`, width: 85 },
     { field: "userName", name: `用户名称` },

+ 4 - 2
UI/VA.Vue_V1.0/vite.config.ts

@@ -53,9 +53,11 @@ export default defineConfig(({ mode, command }) => {
       proxy: {
         // https://cn.vitejs.dev/config/#server-proxy
         "/prod-api": {
-          target: "http://shvber.com:6066",
+          target: "http://localhost:6060",
+          //target: "http://shvber.com:6066",
           changeOrigin: true,
-          rewrite: (p) => p.replace(/^\/prod-api/, "/prod-api"),
+          rewrite: (p) => p.replace(/^\/prod-api/, ""),
+          //rewrite: (p) => p.replace(/^\/prod-api/, "/prod-api"),
         },
       },
     },

+ 2 - 2
vber-data-seeder/src/main/java/com/vber/dataSeeder/DataSeederRunner.java

@@ -34,10 +34,10 @@ public class DataSeederRunner {
     public void Run(){
         log.debug(StringUtils.format("-- START -- {}", DataSeederRunner.class));
 
-//        buildTables.build();
+        buildTables.build();
 //        configCreator.create();
 //        dictCreator.create();
-//        menuCreator.create(true);
+        menuCreator.create(true);
 //        userRoleCreator.create();
 
         log.debug(StringUtils.format("--  END  -- {}",  DataSeederRunner.class));

+ 2 - 0
vber-data-seeder/src/main/java/com/vber/dataSeeder/menu/DefaultMenuCreator.java

@@ -395,11 +395,13 @@ public class DefaultMenuCreator {
 
         javaPermissionStr ="";
         javaPermissionStr +="package com.vber.system.permissions;\n\n";
+        javaPermissionStr +="import org.springframework.stereotype.Service;\n\n";
         javaPermissionStr +="/**\n";
         javaPermissionStr +=" * AUTO_GENERATOR\n";
         javaPermissionStr +=" * DATE: " + DateUtils.getTime()+"\n";
         javaPermissionStr +=" * BY IWB_Y\n";
         javaPermissionStr +=" */\n";
+        javaPermissionStr +="@Service(\"pn\")\n";
         javaPermissionStr +="public class permissionName {\n";
         meunList.forEach(v->{
             String name= StringUtils.convertToCamelCase(v.getPerms().replace(":","_"));

+ 1 - 1
vber-data-seeder/src/main/java/com/vber/dataSeeder/table/BuildTables.java

@@ -20,7 +20,7 @@ public class BuildTables {
 //        createTable("sys_user");
 //        createTable("sys_post");
 //        createTable("sys_role");
-//        createTable("sys_menu",true);
+        createTable("sys_menu",true);
 //        createTable("sys_user_role");
 //        createTable("sys_role_menu");
 //        createTable("sys_role_dept");

+ 1 - 1
vber-data-seeder/src/main/resources/application.yml

@@ -56,7 +56,7 @@ spring:
     druid:
       # 主库数据源
       master:
-        url: jdbc:mysql://47.112.30.247:4501/VberTest_V1.0.0?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        url: jdbc:mysql://47.112.30.247:4501/VberAdmin_V1.0.0?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         username: root
         password: Iwb2023
       # 初始连接数

+ 0 - 2
vber-system/src/main/java/com/vber/system/permissions/permissionName.java

@@ -2,8 +2,6 @@ package com.vber.system.permissions;
 
 /**
  * AUTO_GENERATOR
- * DATE: 2023-07-24 13:49:32
- * BY IWB_Y
  */
 public class permissionName {
 	public static final String System = "system";

+ 4 - 4
vber-system/src/main/resources/mapper/system/SysMenuMapper.xml

@@ -30,7 +30,7 @@
 	</resultMap>
 
 	<sql id="selectMenuVo">
-        select menu_id, menu_name, parent_id, order_num, path, component, `query`, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, btnClass, btnScript, create_time
+        select menu_id, menu_name, parent_id, order_num, path, component, `query`, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, btn_class, btn_script, create_time
 		from sys_menu
     </sql>
     
@@ -51,13 +51,13 @@
 	</select>
 	
 	<select id="selectMenuTreeAll" resultMap="SysMenuResult">
-		select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.btnClass, m.btnScript, m.order_num, m.create_time
+		select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.btn_class, m.btn_script, m.order_num, m.create_time
 		from sys_menu m where m.menu_type in ('M', 'C') and m.status = 0
 		order by m.parent_id, m.order_num
 	</select>
 	
 	<select id="selectMenuListByUserId" parameterType="SysMenu" resultMap="SysMenuResult">
-		select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.btnClass, m.btnScript, m.order_num, m.create_time
+		select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.btn_class, m.btn_script, m.order_num, m.create_time
 		from sys_menu m
 		left join sys_role_menu rm on m.menu_id = rm.menu_id
 		left join sys_user_role ur on rm.role_id = ur.role_id
@@ -76,7 +76,7 @@
 	</select>
     
     <select id="selectMenuTreeByUserId" parameterType="Long" resultMap="SysMenuResult">
-		select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.btnClass, m.btnScript, m.order_num, m.create_time
+		select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.btn_class, m.btn_script, m.order_num, m.create_time
 		from sys_menu m
 			 left join sys_role_menu rm on m.menu_id = rm.menu_id
 			 left join sys_user_role ur on rm.role_id = ur.role_id

+ 12 - 9
vber-web/src/main/java/com/vber/web/controller/common/CaptchaController.java

@@ -9,14 +9,12 @@ import com.vber.common.core.redis.RedisCache;
 import com.vber.common.utils.sign.Base64;
 import com.vber.common.utils.uuid.IdUtils;
 import com.vber.system.service.ISysConfigService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.FastByteArrayOutputStream;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import javax.imageio.ImageIO;
-import javax.servlet.http.HttpServletResponse;
 import java.awt.image.BufferedImage;
 import java.io.IOException;
 import java.util.concurrent.TimeUnit;
@@ -32,17 +30,20 @@ public class CaptchaController {
     @Resource(name = "captchaProducerMath")
     private Producer captchaProducerMath;
 
-    @Autowired
-    private RedisCache redisCache;
+    private final RedisCache redisCache;
 
-    @Autowired
-    private ISysConfigService configService;
+    private final ISysConfigService configService;
+
+    public CaptchaController(RedisCache redisCache, ISysConfigService configService) {
+        this.redisCache = redisCache;
+        this.configService = configService;
+    }
 
     /**
      * 生成验证码
      */
     @GetMapping("/captchaImage")
-    public AjaxResult getCode(HttpServletResponse response) throws IOException {
+    public AjaxResult getCode() {
         AjaxResult ajax = AjaxResult.success();
         boolean captchaEnabled = configService.selectCaptchaEnabled();
         ajax.put("captchaEnabled", captchaEnabled);
@@ -54,7 +55,7 @@ public class CaptchaController {
         String uuid = IdUtils.simpleUUID();
         String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid;
 
-        String capStr = null, code = null;
+        String capStr, code = null;
         BufferedImage image = null;
 
         // 生成验证码
@@ -73,7 +74,9 @@ public class CaptchaController {
         // 转换流信息写出
         FastByteArrayOutputStream os = new FastByteArrayOutputStream();
         try {
-            ImageIO.write(image, "jpg", os);
+            if (image != null) {
+                ImageIO.write(image, "jpg", os);
+            }
         } catch (IOException e) {
             return AjaxResult.error(e.getMessage());
         }

+ 14 - 13
vber-web/src/main/java/com/vber/web/controller/common/CommonController.java

@@ -9,7 +9,6 @@ import com.vber.common.utils.file.FileUtils;
 import com.vber.framework.config.ServerConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -17,7 +16,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
-import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.List;
@@ -30,8 +28,11 @@ import java.util.List;
 public class CommonController {
     private static final Logger log = LoggerFactory.getLogger(CommonController.class);
     private static final String FILE_DELIMETER = ",";
-    @Autowired
-    private ServerConfig serverConfig;
+    private final ServerConfig serverConfig;
+
+    public CommonController(ServerConfig serverConfig) {
+        this.serverConfig = serverConfig;
+    }
 
     /**
      * 通用下载请求
@@ -40,7 +41,7 @@ public class CommonController {
      * @param delete   是否删除
      */
     @GetMapping("/download")
-    public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) {
+    public void fileDownload(String fileName, Boolean delete, HttpServletResponse response) {
         try {
             if (!FileUtils.checkAllowDownload(fileName)) {
                 throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName));
@@ -63,7 +64,7 @@ public class CommonController {
      * 通用上传请求(单个)
      */
     @PostMapping("/upload")
-    public AjaxResult uploadFile(MultipartFile file) throws Exception {
+    public AjaxResult uploadFile(MultipartFile file) {
         try {
             // 上传文件路径
             String filePath = VberConfig.getUploadPath();
@@ -85,14 +86,14 @@ public class CommonController {
      * 通用上传请求(多个)
      */
     @PostMapping("/uploads")
-    public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception {
+    public AjaxResult uploadFiles(List<MultipartFile> files)  {
         try {
             // 上传文件路径
             String filePath = VberConfig.getUploadPath();
-            List<String> urls = new ArrayList<String>();
-            List<String> fileNames = new ArrayList<String>();
-            List<String> newFileNames = new ArrayList<String>();
-            List<String> originalFilenames = new ArrayList<String>();
+            List<String> urls = new ArrayList<>();
+            List<String> fileNames = new ArrayList<>();
+            List<String> newFileNames = new ArrayList<>();
+            List<String> originalFilenames = new ArrayList<>();
             for (MultipartFile file : files) {
                 // 上传并返回新文件名称
                 String fileName = FileUploadUtils.upload(filePath, file);
@@ -117,8 +118,8 @@ public class CommonController {
      * 本地资源通用下载
      */
     @GetMapping("/download/resource")
-    public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response)
-            throws Exception {
+    public void resourceDownload(String resource, HttpServletResponse response)
+    {
         try {
             if (!FileUtils.checkAllowDownload(resource)) {
                 throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource));

+ 33 - 23
vber-web/src/main/java/com/vber/web/controller/monitor/CacheController.java

@@ -4,7 +4,7 @@ import com.vber.common.constant.CacheConstants;
 import com.vber.common.core.domain.AjaxResult;
 import com.vber.common.utils.StringUtils;
 import com.vber.system.SysCache;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.connection.RedisServerCommands;
 import org.springframework.data.redis.core.RedisCallback;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -18,11 +18,10 @@ import java.util.*;
 @RestController
 @RequestMapping("/monitor/cache")
 public class CacheController {
-    private final static List<SysCache> caches = new ArrayList<SysCache>();
-    @Autowired
-    private RedisTemplate<String, String> redisTemplate;
+    private final static List<SysCache> caches = new ArrayList<>();
+    private final RedisTemplate<String, String> redisTemplate;
 
-    {
+    static {
         caches.add(new SysCache(CacheConstants.LOGIN_TOKEN_KEY, "用户信息"));
         caches.add(new SysCache(CacheConstants.SYS_CONFIG_KEY, "配置信息"));
         caches.add(new SysCache(CacheConstants.SYS_DICT_KEY, "数据字典"));
@@ -32,43 +31,50 @@ public class CacheController {
         caches.add(new SysCache(CacheConstants.PWD_ERR_CNT_KEY, "密码错误次数"));
     }
 
-    @PreAuthorize("@ss.hasPermission('monitor:cache:list')")
+    public CacheController(RedisTemplate<String, String> redisTemplate) {
+        this.redisTemplate = redisTemplate;
+    }
+
+    @PreAuthorize("@ss.hasPermission(@pn.MonitorCache)")
     @GetMapping()
     public AjaxResult getInfo() throws Exception {
-        Properties info = (Properties) redisTemplate.execute((RedisCallback<Object>) connection -> connection.info());
+        Properties info = (Properties) redisTemplate.execute((RedisCallback<Object>) RedisServerCommands::info);
         Properties commandStats = (Properties) redisTemplate.execute((RedisCallback<Object>) connection -> connection.info("commandstats"));
-        Object dbSize = redisTemplate.execute((RedisCallback<Object>) connection -> connection.dbSize());
+        Object dbSize = redisTemplate.execute((RedisCallback<Object>) RedisServerCommands::dbSize);
 
         Map<String, Object> result = new HashMap<>(3);
         result.put("info", info);
         result.put("dbSize", dbSize);
 
         List<Map<String, String>> pieList = new ArrayList<>();
-        commandStats.stringPropertyNames().forEach(key -> {
-            Map<String, String> data = new HashMap<>(2);
-            String property = commandStats.getProperty(key);
-            data.put("name", StringUtils.removeStart(key, "cmdstat_"));
-            data.put("value", StringUtils.substringBetween(property, "calls=", ",usec"));
-            pieList.add(data);
-        });
+        if (commandStats != null) {
+            commandStats.stringPropertyNames().forEach(key -> {
+                Map<String, String> data = new HashMap<>(2);
+                String property = commandStats.getProperty(key);
+                data.put("name", StringUtils.removeStart(key, "cmdstat_"));
+                data.put("value", StringUtils.substringBetween(property, "calls=", ",usec"));
+                pieList.add(data);
+            });
+        }
+
         result.put("commandStats", pieList);
         return AjaxResult.success(result);
     }
 
-    @PreAuthorize("@ss.hasPermission('monitor:cache:list')")
+    @PreAuthorize("@ss.hasPermission(@pn.MonitorCachelist)")
     @GetMapping("/getNames")
     public AjaxResult cache() {
         return AjaxResult.success(caches);
     }
 
-    @PreAuthorize("@ss.hasPermission('monitor:cache:list')")
+    @PreAuthorize("@ss.hasPermission(@pn.MonitorCachelist)")
     @GetMapping("/getKeys/{cacheName}")
     public AjaxResult getCacheKeys(@PathVariable String cacheName) {
         Set<String> cacheKeys = redisTemplate.keys(cacheName + "*");
         return AjaxResult.success(cacheKeys);
     }
 
-    @PreAuthorize("@ss.hasPermission('monitor:cache:list')")
+    @PreAuthorize("@ss.hasPermission(@pn.MonitorCachelist)")
     @GetMapping("/getValue/{cacheName}/{cacheKey}")
     public AjaxResult getCacheValue(@PathVariable String cacheName, @PathVariable String cacheKey) {
         String cacheValue = redisTemplate.opsForValue().get(cacheKey);
@@ -76,26 +82,30 @@ public class CacheController {
         return AjaxResult.success(sysCache);
     }
 
-    @PreAuthorize("@ss.hasPermission('monitor:cache:list')")
+    @PreAuthorize("@ss.hasPermission(@pn.MonitorCachelist)")
     @DeleteMapping("/clearCacheName/{cacheName}")
     public AjaxResult clearCacheName(@PathVariable String cacheName) {
         Collection<String> cacheKeys = redisTemplate.keys(cacheName + "*");
-        redisTemplate.delete(cacheKeys);
+        if (cacheKeys != null) {
+            redisTemplate.delete(cacheKeys);
+        }
         return AjaxResult.success();
     }
 
-    @PreAuthorize("@ss.hasPermission('monitor:cache:list')")
+    @PreAuthorize("@ss.hasPermission(@pn.MonitorCachelist)")
     @DeleteMapping("/clearCacheKey/{cacheKey}")
     public AjaxResult clearCacheKey(@PathVariable String cacheKey) {
         redisTemplate.delete(cacheKey);
         return AjaxResult.success();
     }
 
-    @PreAuthorize("@ss.hasPermission('monitor:cache:list')")
+    @PreAuthorize("@ss.hasPermission(@pn.MonitorCachelist)")
     @DeleteMapping("/clearCacheAll")
     public AjaxResult clearCacheAll() {
         Collection<String> cacheKeys = redisTemplate.keys("*");
-        redisTemplate.delete(cacheKeys);
+        if (cacheKeys != null) {
+            redisTemplate.delete(cacheKeys);
+        }
         return AjaxResult.success();
     }
 }

+ 1 - 1
vber-web/src/main/java/com/vber/web/controller/monitor/ServerController.java

@@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("/monitor/server")
 public class ServerController {
-    @PreAuthorize("@ss.hasPermission('monitor:server:list')")
+    @PreAuthorize("@ss.hasPermission(@pn.MonitorServer)")
     @GetMapping()
     public AjaxResult getInfo() throws Exception {
         Server server = new Server();

+ 13 - 11
vber-web/src/main/java/com/vber/web/controller/monitor/SysLogininforController.java

@@ -9,7 +9,6 @@ import com.vber.common.utils.poi.ExcelUtil;
 import com.vber.framework.web.service.SysPasswordService;
 import com.vber.system.SysLogininfor;
 import com.vber.system.service.ISysLogininforService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
@@ -22,13 +21,16 @@ import java.util.List;
 @RestController
 @RequestMapping("/monitor/logininfor")
 public class SysLogininforController extends BaseController {
-    @Autowired
-    private ISysLogininforService logininforService;
+    private final ISysLogininforService logininforService;
 
-    @Autowired
-    private SysPasswordService passwordService;
+    private final SysPasswordService passwordService;
 
-    @PreAuthorize("@ss.hasPermission('monitor:logininfor:list')")
+    public SysLogininforController(ISysLogininforService logininforService, SysPasswordService passwordService) {
+        this.logininforService = logininforService;
+        this.passwordService = passwordService;
+    }
+
+    @PreAuthorize("@ss.hasPermission(@pn.SystemLogLogininfor)")
     @GetMapping("/list")
     public TableDataInfo list(SysLogininfor logininfor) {
         startPage();
@@ -37,22 +39,22 @@ public class SysLogininforController extends BaseController {
     }
 
     @Log(title = "登录日志", businessType = BusinessType.EXPORT)
-    @PreAuthorize("@ss.hasPermission('monitor:logininfor:export')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemLogLogininforExport)")
     @PostMapping("/export")
     public void export(HttpServletResponse response, SysLogininfor logininfor) {
         List<SysLogininfor> list = logininforService.selectLogininforList(logininfor);
-        ExcelUtil<SysLogininfor> util = new ExcelUtil<SysLogininfor>(SysLogininfor.class);
+        ExcelUtil<SysLogininfor> util = new ExcelUtil<>(SysLogininfor.class);
         util.exportExcel(response, list, "登录日志");
     }
 
-    @PreAuthorize("@ss.hasPermission('monitor:logininfor:remove')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemLogLogininforRemove)")
     @Log(title = "登录日志", businessType = BusinessType.DELETE)
     @DeleteMapping("/{infoIds}")
     public AjaxResult remove(@PathVariable Long[] infoIds) {
         return toAjax(logininforService.deleteLogininforByIds(infoIds));
     }
 
-    @PreAuthorize("@ss.hasPermission('monitor:logininfor:remove')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemLogLogininforRemove)")
     @Log(title = "登录日志", businessType = BusinessType.CLEAN)
     @DeleteMapping("/clean")
     public AjaxResult clean() {
@@ -60,7 +62,7 @@ public class SysLogininforController extends BaseController {
         return success();
     }
 
-    @PreAuthorize("@ss.hasPermission('monitor:logininfor:unlock')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemLogLogininforUnlock)")
     @Log(title = "账户解锁", businessType = BusinessType.OTHER)
     @GetMapping("/unlock/{userName}")
     public AjaxResult unlock(@PathVariable("userName") String userName) {

+ 10 - 8
vber-web/src/main/java/com/vber/web/controller/monitor/SysOperlogController.java

@@ -8,7 +8,6 @@ import com.vber.common.enums.BusinessType;
 import com.vber.common.utils.poi.ExcelUtil;
 import com.vber.system.SysOperLog;
 import com.vber.system.service.ISysOperLogService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
@@ -21,10 +20,13 @@ import java.util.List;
 @RestController
 @RequestMapping("/monitor/operlog")
 public class SysOperlogController extends BaseController {
-    @Autowired
-    private ISysOperLogService operLogService;
+    private final ISysOperLogService operLogService;
 
-    @PreAuthorize("@ss.hasPermission('monitor:operlog:list')")
+    public SysOperlogController(ISysOperLogService operLogService) {
+        this.operLogService = operLogService;
+    }
+
+    @PreAuthorize("@ss.hasPermission(@pn.SystemLogOperlog)")
     @GetMapping("/list")
     public TableDataInfo list(SysOperLog operLog) {
         startPage();
@@ -33,23 +35,23 @@ public class SysOperlogController extends BaseController {
     }
 
     @Log(title = "操作日志", businessType = BusinessType.EXPORT)
-    @PreAuthorize("@ss.hasPermission('monitor:operlog:export')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemLogOperlogExport)")
     @PostMapping("/export")
     public void export(HttpServletResponse response, SysOperLog operLog) {
         List<SysOperLog> list = operLogService.selectOperLogList(operLog);
-        ExcelUtil<SysOperLog> util = new ExcelUtil<SysOperLog>(SysOperLog.class);
+        ExcelUtil<SysOperLog> util = new ExcelUtil<>(SysOperLog.class);
         util.exportExcel(response, list, "操作日志");
     }
 
     @Log(title = "操作日志", businessType = BusinessType.DELETE)
-    @PreAuthorize("@ss.hasPermission('monitor:operlog:remove')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemLogOperlogRemove)")
     @DeleteMapping("/{operIds}")
     public AjaxResult remove(@PathVariable Long[] operIds) {
         return toAjax(operLogService.deleteOperLogByIds(operIds));
     }
 
     @Log(title = "操作日志", businessType = BusinessType.CLEAN)
-    @PreAuthorize("@ss.hasPermission('monitor:operlog:remove')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemLogOperlogRemove)")
     @DeleteMapping("/clean")
     public AjaxResult clean() {
         operLogService.cleanOperLog();

+ 10 - 8
vber-web/src/main/java/com/vber/web/controller/monitor/SysUserOnlineController.java

@@ -11,7 +11,6 @@ import com.vber.common.enums.BusinessType;
 import com.vber.common.utils.StringUtils;
 import com.vber.system.SysUserOnline;
 import com.vber.system.service.ISysUserOnlineService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
@@ -26,17 +25,20 @@ import java.util.List;
 @RestController
 @RequestMapping("/monitor/online")
 public class SysUserOnlineController extends BaseController {
-    @Autowired
-    private ISysUserOnlineService userOnlineService;
+    private final ISysUserOnlineService userOnlineService;
 
-    @Autowired
-    private RedisCache redisCache;
+    private final RedisCache redisCache;
 
-    @PreAuthorize("@ss.hasPermission('monitor:online:list')")
+    public SysUserOnlineController(ISysUserOnlineService userOnlineService, RedisCache redisCache) {
+        this.userOnlineService = userOnlineService;
+        this.redisCache = redisCache;
+    }
+
+    @PreAuthorize("@ss.hasPermission(@pn.MonitorOnline)")
     @GetMapping("/list")
     public TableDataInfo list(String ipaddr, String userName) {
         Collection<String> keys = redisCache.keys(CacheConstants.LOGIN_TOKEN_KEY + "*");
-        List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>();
+        List<SysUserOnline> userOnlineList = new ArrayList<>();
         for (String key : keys) {
             LoginUser user = redisCache.getCacheObject(key);
             if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) {
@@ -57,7 +59,7 @@ public class SysUserOnlineController extends BaseController {
     /**
      * 强退用户
      */
-    @PreAuthorize("@ss.hasPermission('monitor:online:forceLogout')")
+    @PreAuthorize("@ss.hasPermission(@pn.MonitorOnlineForcelogout)")
     @Log(title = "在线用户", businessType = BusinessType.FORCE)
     @DeleteMapping("/{tokenId}")
     public AjaxResult forceLogout(@PathVariable String tokenId) {

+ 8 - 8
vber-web/src/main/java/com/vber/web/controller/system/SysConfigController.java

@@ -30,7 +30,7 @@ public class SysConfigController extends BaseController {
     /**
      * 获取参数配置列表
      */
-    @PreAuthorize("@ss.hasPermission('system:config:list')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemConfig)")
     @GetMapping("/list")
     public TableDataInfo list(SysConfig config) {
         startPage();
@@ -39,18 +39,18 @@ public class SysConfigController extends BaseController {
     }
 
     @Log(title = "参数管理", businessType = BusinessType.EXPORT)
-    @PreAuthorize("@ss.hasPermission('system:config:export')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemConfigExport)")
     @PostMapping("/export")
     public void export(HttpServletResponse response, SysConfig config) {
         List<SysConfig> list = configService.selectConfigList(config);
-        ExcelUtil<SysConfig> util = new ExcelUtil<SysConfig>(SysConfig.class);
+        ExcelUtil<SysConfig> util = new ExcelUtil<>(SysConfig.class);
         util.exportExcel(response, list, "参数数据");
     }
 
     /**
      * 根据参数编号获取详细信息
      */
-    @PreAuthorize("@ss.hasPermission('system:config:query')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemConfigQuery)")
     @GetMapping(value = "/{configId}")
     public AjaxResult getInfo(@PathVariable Long configId) {
         return success(configService.selectConfigById(configId));
@@ -67,7 +67,7 @@ public class SysConfigController extends BaseController {
     /**
      * 新增参数配置
      */
-    @PreAuthorize("@ss.hasPermission('system:config:add')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemConfigAdd)")
     @Log(title = "参数管理", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysConfig config) {
@@ -81,7 +81,7 @@ public class SysConfigController extends BaseController {
     /**
      * 修改参数配置
      */
-    @PreAuthorize("@ss.hasPermission('system:config:edit')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemConfigEdit)")
     @Log(title = "参数管理", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody SysConfig config) {
@@ -95,7 +95,7 @@ public class SysConfigController extends BaseController {
     /**
      * 删除参数配置
      */
-    @PreAuthorize("@ss.hasPermission('system:config:remove')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemConfigRemove)")
     @Log(title = "参数管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{configIds}")
     public AjaxResult remove(@PathVariable Long[] configIds) {
@@ -106,7 +106,7 @@ public class SysConfigController extends BaseController {
     /**
      * 刷新参数缓存
      */
-    @PreAuthorize("@ss.hasPermission('system:config:remove')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemConfigRemove)")
     @Log(title = "参数管理", businessType = BusinessType.CLEAN)
     @DeleteMapping("/refreshCache")
     public AjaxResult refreshCache() {

+ 6 - 7
vber-web/src/main/java/com/vber/web/controller/system/SysDeptController.java

@@ -9,7 +9,6 @@ import com.vber.common.enums.BusinessType;
 import com.vber.common.utils.StringUtils;
 import com.vber.system.service.ISysDeptService;
 import org.apache.commons.lang3.ArrayUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -31,7 +30,7 @@ public class SysDeptController extends BaseController {
     /**
      * 获取部门列表
      */
-    @PreAuthorize("@ss.hasPermission('system:dept:list')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDept)")
     @GetMapping("/list")
     public AjaxResult list(SysDept dept) {
         List<SysDept> depts = deptService.selectDeptList(dept);
@@ -41,7 +40,7 @@ public class SysDeptController extends BaseController {
     /**
      * 查询部门列表(排除节点)
      */
-    @PreAuthorize("@ss.hasPermission('system:dept:list')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDept)")
     @GetMapping("/list/exclude/{deptId}")
     public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) {
         List<SysDept> depts = deptService.selectDeptList(new SysDept());
@@ -52,7 +51,7 @@ public class SysDeptController extends BaseController {
     /**
      * 根据部门编号获取详细信息
      */
-    @PreAuthorize("@ss.hasPermission('system:dept:query')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDeptQuery)")
     @GetMapping(value = "/{deptId}")
     public AjaxResult getInfo(@PathVariable Long deptId) {
         deptService.checkDeptDataScope(deptId);
@@ -62,7 +61,7 @@ public class SysDeptController extends BaseController {
     /**
      * 新增部门
      */
-    @PreAuthorize("@ss.hasPermission('system:dept:add')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDeptAdd)")
     @Log(title = "部门管理", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysDept dept) {
@@ -76,7 +75,7 @@ public class SysDeptController extends BaseController {
     /**
      * 修改部门
      */
-    @PreAuthorize("@ss.hasPermission('system:dept:edit')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDeptEdit)")
     @Log(title = "部门管理", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody SysDept dept) {
@@ -96,7 +95,7 @@ public class SysDeptController extends BaseController {
     /**
      * 删除部门
      */
-    @PreAuthorize("@ss.hasPermission('system:dept:remove')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDeptRemove)")
     @Log(title = "部门管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{deptId}")
     public AjaxResult remove(@PathVariable Long deptId) {

+ 15 - 13
vber-web/src/main/java/com/vber/web/controller/system/SysDictDataController.java

@@ -10,7 +10,6 @@ import com.vber.common.utils.StringUtils;
 import com.vber.common.utils.poi.ExcelUtil;
 import com.vber.system.service.ISysDictDataService;
 import com.vber.system.service.ISysDictTypeService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -25,13 +24,16 @@ import java.util.List;
 @RestController
 @RequestMapping("/system/dict/data")
 public class SysDictDataController extends BaseController {
-    @Autowired
-    private ISysDictDataService dictDataService;
+    private final ISysDictDataService dictDataService;
 
-    @Autowired
-    private ISysDictTypeService dictTypeService;
+    private final ISysDictTypeService dictTypeService;
 
-    @PreAuthorize("@ss.hasPermission('system:dict:list')")
+    public SysDictDataController(ISysDictDataService dictDataService, ISysDictTypeService dictTypeService) {
+        this.dictDataService = dictDataService;
+        this.dictTypeService = dictTypeService;
+    }
+
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDict)")
     @GetMapping("/list")
     public TableDataInfo list(SysDictData dictData) {
         startPage();
@@ -40,18 +42,18 @@ public class SysDictDataController extends BaseController {
     }
 
     @Log(title = "字典数据", businessType = BusinessType.EXPORT)
-    @PreAuthorize("@ss.hasPermission('system:dict:export')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDictExport)")
     @PostMapping("/export")
     public void export(HttpServletResponse response, SysDictData dictData) {
         List<SysDictData> list = dictDataService.selectDictDataList(dictData);
-        ExcelUtil<SysDictData> util = new ExcelUtil<SysDictData>(SysDictData.class);
+        ExcelUtil<SysDictData> util = new ExcelUtil<>(SysDictData.class);
         util.exportExcel(response, list, "字典数据");
     }
 
     /**
      * 查询字典数据详细
      */
-    @PreAuthorize("@ss.hasPermission('system:dict:query')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDictQuery)")
     @GetMapping(value = "/{dictCode}")
     public AjaxResult getInfo(@PathVariable Long dictCode) {
         return success(dictDataService.selectDictDataById(dictCode));
@@ -64,7 +66,7 @@ public class SysDictDataController extends BaseController {
     public AjaxResult dictType(@PathVariable String dictType) {
         List<SysDictData> data = dictTypeService.selectDictDataByType(dictType);
         if (StringUtils.isNull(data)) {
-            data = new ArrayList<SysDictData>();
+            data = new ArrayList<>();
         }
         return success(data);
     }
@@ -72,7 +74,7 @@ public class SysDictDataController extends BaseController {
     /**
      * 新增字典类型
      */
-    @PreAuthorize("@ss.hasPermission('system:dict:add')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDictAdd)")
     @Log(title = "字典数据", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysDictData dict) {
@@ -83,7 +85,7 @@ public class SysDictDataController extends BaseController {
     /**
      * 修改保存字典类型
      */
-    @PreAuthorize("@ss.hasPermission('system:dict:edit')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDictEdit)")
     @Log(title = "字典数据", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody SysDictData dict) {
@@ -94,7 +96,7 @@ public class SysDictDataController extends BaseController {
     /**
      * 删除字典类型
      */
-    @PreAuthorize("@ss.hasPermission('system:dict:remove')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDictRemove)")
     @Log(title = "字典类型", businessType = BusinessType.DELETE)
     @DeleteMapping("/{dictCodes}")
     public AjaxResult remove(@PathVariable Long[] dictCodes) {

+ 14 - 12
vber-web/src/main/java/com/vber/web/controller/system/SysDictTypeController.java

@@ -8,7 +8,6 @@ import com.vber.common.core.page.TableDataInfo;
 import com.vber.common.enums.BusinessType;
 import com.vber.common.utils.poi.ExcelUtil;
 import com.vber.system.service.ISysDictTypeService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -22,10 +21,13 @@ import java.util.List;
 @RestController
 @RequestMapping("/system/dict/type")
 public class SysDictTypeController extends BaseController {
-    @Autowired
-    private ISysDictTypeService dictTypeService;
+    private final ISysDictTypeService dictTypeService;
 
-    @PreAuthorize("@ss.hasPermission('system:dict:list')")
+    public SysDictTypeController(ISysDictTypeService dictTypeService) {
+        this.dictTypeService = dictTypeService;
+    }
+
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDict)")
     @GetMapping("/list")
     public TableDataInfo list(SysDictType dictType) {
         startPage();
@@ -34,18 +36,18 @@ public class SysDictTypeController extends BaseController {
     }
 
     @Log(title = "字典类型", businessType = BusinessType.EXPORT)
-    @PreAuthorize("@ss.hasPermission('system:dict:export')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDictExport)")
     @PostMapping("/export")
     public void export(HttpServletResponse response, SysDictType dictType) {
         List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
-        ExcelUtil<SysDictType> util = new ExcelUtil<SysDictType>(SysDictType.class);
+        ExcelUtil<SysDictType> util = new ExcelUtil<>(SysDictType.class);
         util.exportExcel(response, list, "字典类型");
     }
 
     /**
      * 查询字典类型详细
      */
-    @PreAuthorize("@ss.hasPermission('system:dict:query')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDictQuery)")
     @GetMapping(value = "/{dictId}")
     public AjaxResult getInfo(@PathVariable Long dictId) {
         return success(dictTypeService.selectDictTypeById(dictId));
@@ -54,7 +56,7 @@ public class SysDictTypeController extends BaseController {
     /**
      * 新增字典类型
      */
-    @PreAuthorize("@ss.hasPermission('system:dict:add')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDictAdd)")
     @Log(title = "字典类型", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysDictType dict) {
@@ -68,7 +70,7 @@ public class SysDictTypeController extends BaseController {
     /**
      * 修改字典类型
      */
-    @PreAuthorize("@ss.hasPermission('system:dict:edit')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDictEdit)")
     @Log(title = "字典类型", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody SysDictType dict) {
@@ -82,7 +84,7 @@ public class SysDictTypeController extends BaseController {
     /**
      * 删除字典类型
      */
-    @PreAuthorize("@ss.hasPermission('system:dict:remove')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDictRemove)")
     @Log(title = "字典类型", businessType = BusinessType.DELETE)
     @DeleteMapping("/{dictIds}")
     public AjaxResult remove(@PathVariable Long[] dictIds) {
@@ -93,7 +95,7 @@ public class SysDictTypeController extends BaseController {
     /**
      * 刷新字典缓存
      */
-    @PreAuthorize("@ss.hasPermission('system:dict:remove')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemDictRemove)")
     @Log(title = "字典类型", businessType = BusinessType.CLEAN)
     @DeleteMapping("/refreshCache")
     public AjaxResult refreshCache() {
@@ -105,7 +107,7 @@ public class SysDictTypeController extends BaseController {
      * 获取字典选择框列表
      */
     @GetMapping("/optionselect")
-    public AjaxResult optionselect() {
+    public AjaxResult optionSelect() {
         List<SysDictType> dictTypes = dictTypeService.selectDictTypeAll();
         return success(dictTypes);
     }

+ 9 - 7
vber-web/src/main/java/com/vber/web/controller/system/SysLoginController.java

@@ -9,7 +9,6 @@ import com.vber.common.utils.SecurityUtils;
 import com.vber.framework.web.service.SysLoginService;
 import com.vber.framework.web.service.SysPermissionService;
 import com.vber.system.service.ISysMenuService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -23,14 +22,17 @@ import java.util.Set;
  */
 @RestController
 public class SysLoginController {
-    @Autowired
-    private SysLoginService loginService;
+    private final SysLoginService loginService;
 
-    @Autowired
-    private ISysMenuService menuService;
+    private final ISysMenuService menuService;
 
-    @Autowired
-    private SysPermissionService permissionService;
+    private final SysPermissionService permissionService;
+
+    public SysLoginController(SysLoginService loginService, ISysMenuService menuService, SysPermissionService permissionService) {
+        this.loginService = loginService;
+        this.menuService = menuService;
+        this.permissionService = permissionService;
+    }
 
     /**
      * 登录方法

+ 10 - 8
vber-web/src/main/java/com/vber/web/controller/system/SysMenuController.java

@@ -8,7 +8,6 @@ import com.vber.common.core.domain.entity.SysMenu;
 import com.vber.common.enums.BusinessType;
 import com.vber.common.utils.StringUtils;
 import com.vber.system.service.ISysMenuService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -21,13 +20,16 @@ import java.util.List;
 @RestController
 @RequestMapping("/system/menu")
 public class SysMenuController extends BaseController {
-    @Autowired
-    private ISysMenuService menuService;
+    private final ISysMenuService menuService;
+
+    public SysMenuController(ISysMenuService menuService) {
+        this.menuService = menuService;
+    }
 
     /**
      * 获取菜单列表
      */
-    @PreAuthorize("@ss.hasPermission('system:menu:list')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemMenu)")
     @GetMapping("/list")
     public AjaxResult list(SysMenu menu) {
         List<SysMenu> menus = menuService.selectMenuList(menu, getUserId());
@@ -37,7 +39,7 @@ public class SysMenuController extends BaseController {
     /**
      * 根据菜单编号获取详细信息
      */
-    @PreAuthorize("@ss.hasPermission('system:menu:query')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemMenuQuery)")
     @GetMapping(value = "/{menuId}")
     public AjaxResult getInfo(@PathVariable Long menuId) {
         return success(menuService.selectMenuById(menuId));
@@ -75,7 +77,7 @@ public class SysMenuController extends BaseController {
     /**
      * 新增菜单
      */
-    @PreAuthorize("@ss.hasPermission('system:menu:add')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemMenuAdd)")
     @Log(title = "菜单管理", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysMenu menu) {
@@ -91,7 +93,7 @@ public class SysMenuController extends BaseController {
     /**
      * 修改菜单
      */
-    @PreAuthorize("@ss.hasPermission('system:menu:edit')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemMenuEdit)")
     @Log(title = "菜单管理", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody SysMenu menu) {
@@ -109,7 +111,7 @@ public class SysMenuController extends BaseController {
     /**
      * 删除菜单
      */
-    @PreAuthorize("@ss.hasPermission('system:menu:remove')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemMenuRemove)")
     @Log(title = "菜单管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{menuId}")
     public AjaxResult remove(@PathVariable("menuId") Long menuId) {

+ 10 - 7
vber-web/src/main/java/com/vber/web/controller/system/SysNoticeController.java

@@ -20,13 +20,16 @@ import java.util.List;
 @RestController
 @RequestMapping("/system/notice")
 public class SysNoticeController extends BaseController {
-    @Autowired
-    private ISysNoticeService noticeService;
+    private final ISysNoticeService noticeService;
+
+    public SysNoticeController(ISysNoticeService noticeService) {
+        this.noticeService = noticeService;
+    }
 
     /**
      * 获取通知公告列表
      */
-    @PreAuthorize("@ss.hasPermission('system:notice:list')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemNotice)")
     @GetMapping("/list")
     public TableDataInfo list(SysNotice notice) {
         startPage();
@@ -37,7 +40,7 @@ public class SysNoticeController extends BaseController {
     /**
      * 根据通知公告编号获取详细信息
      */
-    @PreAuthorize("@ss.hasPermission('system:notice:query')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemNoticeQuery)")
     @GetMapping(value = "/{noticeId}")
     public AjaxResult getInfo(@PathVariable Long noticeId) {
         return success(noticeService.selectNoticeById(noticeId));
@@ -46,7 +49,7 @@ public class SysNoticeController extends BaseController {
     /**
      * 新增通知公告
      */
-    @PreAuthorize("@ss.hasPermission('system:notice:add')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemNoticeAdd)")
     @Log(title = "通知公告", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysNotice notice) {
@@ -57,7 +60,7 @@ public class SysNoticeController extends BaseController {
     /**
      * 修改通知公告
      */
-    @PreAuthorize("@ss.hasPermission('system:notice:edit')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemNoticeEdit)")
     @Log(title = "通知公告", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody SysNotice notice) {
@@ -68,7 +71,7 @@ public class SysNoticeController extends BaseController {
     /**
      * 删除通知公告
      */
-    @PreAuthorize("@ss.hasPermission('system:notice:remove')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemNoticeRemove)")
     @Log(title = "通知公告", businessType = BusinessType.DELETE)
     @DeleteMapping("/{noticeIds}")
     public AjaxResult remove(@PathVariable Long[] noticeIds) {

+ 12 - 10
vber-web/src/main/java/com/vber/web/controller/system/SysPostController.java

@@ -8,7 +8,6 @@ import com.vber.common.enums.BusinessType;
 import com.vber.common.utils.poi.ExcelUtil;
 import com.vber.system.SysPost;
 import com.vber.system.service.ISysPostService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -22,13 +21,16 @@ import java.util.List;
 @RestController
 @RequestMapping("/system/post")
 public class SysPostController extends BaseController {
-    @Autowired
-    private ISysPostService postService;
+    private final ISysPostService postService;
+
+    public SysPostController(ISysPostService postService) {
+        this.postService = postService;
+    }
 
     /**
      * 获取岗位列表
      */
-    @PreAuthorize("@ss.hasPermission('system:post:list')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemPost)")
     @GetMapping("/list")
     public TableDataInfo list(SysPost post) {
         startPage();
@@ -37,18 +39,18 @@ public class SysPostController extends BaseController {
     }
 
     @Log(title = "岗位管理", businessType = BusinessType.EXPORT)
-    @PreAuthorize("@ss.hasPermission('system:post:export')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemPost)")
     @PostMapping("/export")
     public void export(HttpServletResponse response, SysPost post) {
         List<SysPost> list = postService.selectPostList(post);
-        ExcelUtil<SysPost> util = new ExcelUtil<SysPost>(SysPost.class);
+        ExcelUtil<SysPost> util = new ExcelUtil<>(SysPost.class);
         util.exportExcel(response, list, "岗位数据");
     }
 
     /**
      * 根据岗位编号获取详细信息
      */
-    @PreAuthorize("@ss.hasPermission('system:post:query')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemPostExport)")
     @GetMapping(value = "/{postId}")
     public AjaxResult getInfo(@PathVariable Long postId) {
         return success(postService.selectPostById(postId));
@@ -57,7 +59,7 @@ public class SysPostController extends BaseController {
     /**
      * 新增岗位
      */
-    @PreAuthorize("@ss.hasPermission('system:post:add')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemPostAdd)")
     @Log(title = "岗位管理", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysPost post) {
@@ -73,7 +75,7 @@ public class SysPostController extends BaseController {
     /**
      * 修改岗位
      */
-    @PreAuthorize("@ss.hasPermission('system:post:edit')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemPostEdit)")
     @Log(title = "岗位管理", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody SysPost post) {
@@ -89,7 +91,7 @@ public class SysPostController extends BaseController {
     /**
      * 删除岗位
      */
-    @PreAuthorize("@ss.hasPermission('system:post:remove')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemPostRemove)")
     @Log(title = "岗位管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{postIds}")
     public AjaxResult remove(@PathVariable Long[] postIds) {

+ 7 - 5
vber-web/src/main/java/com/vber/web/controller/system/SysProfileController.java

@@ -13,7 +13,6 @@ import com.vber.common.utils.file.FileUploadUtils;
 import com.vber.common.utils.file.MimeTypeUtils;
 import com.vber.framework.web.service.TokenService;
 import com.vber.system.service.ISysUserService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -23,11 +22,14 @@ import org.springframework.web.multipart.MultipartFile;
 @RestController
 @RequestMapping("/system/user/profile")
 public class SysProfileController extends BaseController {
-    @Autowired
-    private ISysUserService userService;
+    private final ISysUserService userService;
 
-    @Autowired
-    private TokenService tokenService;
+    private final TokenService tokenService;
+
+    public SysProfileController(ISysUserService userService, TokenService tokenService) {
+        this.userService = userService;
+        this.tokenService = tokenService;
+    }
 
     /**
      * 个人信息

+ 7 - 5
vber-web/src/main/java/com/vber/web/controller/system/SysRegisterController.java

@@ -6,7 +6,6 @@ import com.vber.common.core.domain.model.RegisterBody;
 import com.vber.common.utils.StringUtils;
 import com.vber.framework.web.service.SysRegisterService;
 import com.vber.system.service.ISysConfigService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
@@ -16,11 +15,14 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 public class SysRegisterController extends BaseController {
-    @Autowired
-    private SysRegisterService registerService;
+    private final SysRegisterService registerService;
 
-    @Autowired
-    private ISysConfigService configService;
+    private final ISysConfigService configService;
+
+    public SysRegisterController(SysRegisterService registerService, ISysConfigService configService) {
+        this.registerService = registerService;
+        this.configService = configService;
+    }
 
     @PostMapping("/register")
     public AjaxResult register(@RequestBody RegisterBody user) {

+ 29 - 27
vber-web/src/main/java/com/vber/web/controller/system/SysRoleController.java

@@ -17,7 +17,6 @@ import com.vber.system.SysUserRole;
 import com.vber.system.service.ISysDeptService;
 import com.vber.system.service.ISysRoleService;
 import com.vber.system.service.ISysUserService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -31,22 +30,25 @@ import java.util.List;
 @RestController
 @RequestMapping("/system/role")
 public class SysRoleController extends BaseController {
-    @Autowired
-    private ISysRoleService roleService;
+    private final ISysRoleService roleService;
 
-    @Autowired
-    private TokenService tokenService;
+    private final TokenService tokenService;
 
-    @Autowired
-    private SysPermissionService permissionService;
+    private final SysPermissionService permissionService;
 
-    @Autowired
-    private ISysUserService userService;
+    private final ISysUserService userService;
 
-    @Autowired
-    private ISysDeptService deptService;
+    private final ISysDeptService deptService;
 
-    @PreAuthorize("@ss.hasPermission('system:role:list')")
+    public SysRoleController(ISysRoleService roleService, TokenService tokenService, SysPermissionService permissionService, ISysUserService userService, ISysDeptService deptService) {
+        this.roleService = roleService;
+        this.tokenService = tokenService;
+        this.permissionService = permissionService;
+        this.userService = userService;
+        this.deptService = deptService;
+    }
+
+    @PreAuthorize("@ss.hasPermission(@pn.SystemRole)")
     @GetMapping("/list")
     public TableDataInfo list(SysRole role) {
         startPage();
@@ -55,18 +57,18 @@ public class SysRoleController extends BaseController {
     }
 
     @Log(title = "角色管理", businessType = BusinessType.EXPORT)
-    @PreAuthorize("@ss.hasPermission('system:role:export')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemRoleExport)")
     @PostMapping("/export")
     public void export(HttpServletResponse response, SysRole role) {
         List<SysRole> list = roleService.selectRoleList(role);
-        ExcelUtil<SysRole> util = new ExcelUtil<SysRole>(SysRole.class);
+        ExcelUtil<SysRole> util = new ExcelUtil<>(SysRole.class);
         util.exportExcel(response, list, "角色数据");
     }
 
     /**
      * 根据角色编号获取详细信息
      */
-    @PreAuthorize("@ss.hasPermission('system:role:query')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemRoleQuery)")
     @GetMapping(value = "/{roleId}")
     public AjaxResult getInfo(@PathVariable Long roleId) {
         roleService.checkRoleDataScope(roleId);
@@ -76,7 +78,7 @@ public class SysRoleController extends BaseController {
     /**
      * 新增角色
      */
-    @PreAuthorize("@ss.hasPermission('system:role:add')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemRoleAdd)")
     @Log(title = "角色管理", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysRole role) {
@@ -93,7 +95,7 @@ public class SysRoleController extends BaseController {
     /**
      * 修改保存角色
      */
-    @PreAuthorize("@ss.hasPermission('system:role:edit')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemRoleEdit)")
     @Log(title = "角色管理", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody SysRole role) {
@@ -122,7 +124,7 @@ public class SysRoleController extends BaseController {
     /**
      * 修改保存数据权限
      */
-    @PreAuthorize("@ss.hasPermission('system:role:edit')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemRoleEdit)")
     @Log(title = "角色管理", businessType = BusinessType.UPDATE)
     @PutMapping("/dataScope")
     public AjaxResult dataScope(@RequestBody SysRole role) {
@@ -134,7 +136,7 @@ public class SysRoleController extends BaseController {
     /**
      * 状态修改
      */
-    @PreAuthorize("@ss.hasPermission('system:role:edit')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemRoleEdit)")
     @Log(title = "角色管理", businessType = BusinessType.UPDATE)
     @PutMapping("/changeStatus")
     public AjaxResult changeStatus(@RequestBody SysRole role) {
@@ -147,7 +149,7 @@ public class SysRoleController extends BaseController {
     /**
      * 删除角色
      */
-    @PreAuthorize("@ss.hasPermission('system:role:remove')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemRoleRemove)")
     @Log(title = "角色管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{roleIds}")
     public AjaxResult remove(@PathVariable Long[] roleIds) {
@@ -157,7 +159,7 @@ public class SysRoleController extends BaseController {
     /**
      * 获取角色选择框列表
      */
-    @PreAuthorize("@ss.hasPermission('system:role:query')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemRoleQuery)")
     @GetMapping("/optionselect")
     public AjaxResult optionselect() {
         return success(roleService.selectRoleAll());
@@ -166,7 +168,7 @@ public class SysRoleController extends BaseController {
     /**
      * 查询已分配用户角色列表
      */
-    @PreAuthorize("@ss.hasPermission('system:role:list')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemRole)")
     @GetMapping("/authUser/allocatedList")
     public TableDataInfo allocatedList(SysUser user) {
         startPage();
@@ -177,7 +179,7 @@ public class SysRoleController extends BaseController {
     /**
      * 查询未分配用户角色列表
      */
-    @PreAuthorize("@ss.hasPermission('system:role:list')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemRole)")
     @GetMapping("/authUser/unallocatedList")
     public TableDataInfo unallocatedList(SysUser user) {
         startPage();
@@ -188,7 +190,7 @@ public class SysRoleController extends BaseController {
     /**
      * 取消授权用户
      */
-    @PreAuthorize("@ss.hasPermission('system:role:edit')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemRoleEdit)")
     @Log(title = "角色管理", businessType = BusinessType.GRANT)
     @PutMapping("/authUser/cancel")
     public AjaxResult cancelAuthUser(@RequestBody SysUserRole userRole) {
@@ -198,7 +200,7 @@ public class SysRoleController extends BaseController {
     /**
      * 批量取消授权用户
      */
-    @PreAuthorize("@ss.hasPermission('system:role:edit')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemRoleEdit)")
     @Log(title = "角色管理", businessType = BusinessType.GRANT)
     @PutMapping("/authUser/cancelAll")
     public AjaxResult cancelAuthUserAll(Long roleId, Long[] userIds) {
@@ -208,7 +210,7 @@ public class SysRoleController extends BaseController {
     /**
      * 批量选择用户授权
      */
-    @PreAuthorize("@ss.hasPermission('system:role:edit')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemRoleEdit)")
     @Log(title = "角色管理", businessType = BusinessType.GRANT)
     @PutMapping("/authUser/selectAll")
     public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds) {
@@ -219,7 +221,7 @@ public class SysRoleController extends BaseController {
     /**
      * 获取对应角色部门树列表
      */
-    @PreAuthorize("@ss.hasPermission('system:role:query')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemRoleQuery)")
     @GetMapping(value = "/deptTree/{roleId}")
     public AjaxResult deptTree(@PathVariable("roleId") Long roleId) {
         AjaxResult ajax = AjaxResult.success();

+ 37 - 24
vber-web/src/main/java/com/vber/web/controller/system/SysUserController.java

@@ -16,7 +16,6 @@ import com.vber.system.service.ISysPostService;
 import com.vber.system.service.ISysRoleService;
 import com.vber.system.service.ISysUserService;
 import org.apache.commons.lang3.ArrayUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -33,22 +32,25 @@ import java.util.stream.Collectors;
 @RestController
 @RequestMapping("/system/user")
 public class SysUserController extends BaseController {
-    @Autowired
-    private ISysUserService userService;
+    private final ISysUserService userService;
 
-    @Autowired
-    private ISysRoleService roleService;
+    private final ISysRoleService roleService;
 
-    @Autowired
-    private ISysDeptService deptService;
+    private final ISysDeptService deptService;
 
-    @Autowired
-    private ISysPostService postService;
+    private final ISysPostService postService;
+
+    public SysUserController(ISysUserService userService, ISysRoleService roleService, ISysDeptService deptService, ISysPostService postService) {
+        this.userService = userService;
+        this.roleService = roleService;
+        this.deptService = deptService;
+        this.postService = postService;
+    }
 
     /**
      * 获取用户列表
      */
-    @PreAuthorize("@ss.hasPermission('system:user:list')")
+    @PreAuthorize("@ss.hasPermission(@pn.SystemUser)")
     @GetMapping("/list")
     public TableDataInfo list(SysUser user) {
         startPage();
@@ -57,19 +59,21 @@ public class SysUserController extends BaseController {
     }
 
     @Log(title = "用户管理", businessType = BusinessType.EXPORT)
-    @PreAuthorize("@ss.hasPermission('system:user:export')")
+    
+    @PreAuthorize("@ss.hasPermission(@pn.SystemUserExport)")
     @PostMapping("/export")
     public void export(HttpServletResponse response, SysUser user) {
         List<SysUser> list = userService.selectUserList(user);
-        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
+        ExcelUtil<SysUser> util = new ExcelUtil<>(SysUser.class);
         util.exportExcel(response, list, "用户数据");
     }
 
     @Log(title = "用户管理", businessType = BusinessType.IMPORT)
-    @PreAuthorize("@ss.hasPermission('system:user:import')")
+    
+    @PreAuthorize("@ss.hasPermission(@pn.SystemUserImport)")
     @PostMapping("/importData")
     public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
-        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
+        ExcelUtil<SysUser> util = new ExcelUtil<>(SysUser.class);
         List<SysUser> userList = util.importExcel(file.getInputStream());
         String operName = getUsername();
         String message = userService.importUser(userList, updateSupport, operName);
@@ -78,14 +82,15 @@ public class SysUserController extends BaseController {
 
     @PostMapping("/importTemplate")
     public void importTemplate(HttpServletResponse response) {
-        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
+        ExcelUtil<SysUser> util = new ExcelUtil<>(SysUser.class);
         util.importTemplateExcel(response, "用户数据");
     }
 
     /**
      * 根据用户编号获取详细信息
      */
-    @PreAuthorize("@ss.hasPermission('system:user:query')")
+    
+    @PreAuthorize("@ss.hasPermission(@pn.SystemUserQuery)")
     @GetMapping(value = {"/", "/{userId}"})
     public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) {
         userService.checkUserDataScope(userId);
@@ -105,7 +110,8 @@ public class SysUserController extends BaseController {
     /**
      * 新增用户
      */
-    @PreAuthorize("@ss.hasPermission('system:user:add')")
+    
+    @PreAuthorize("@ss.hasPermission(@pn.SystemUserAdd)")
     @Log(title = "用户管理", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysUser user) {
@@ -132,7 +138,8 @@ public class SysUserController extends BaseController {
     /**
      * 修改用户
      */
-    @PreAuthorize("@ss.hasPermission('system:user:edit')")
+    
+    @PreAuthorize("@ss.hasPermission(@pn.SystemUserEdit)")
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody SysUser user) {
@@ -152,7 +159,8 @@ public class SysUserController extends BaseController {
     /**
      * 删除用户
      */
-    @PreAuthorize("@ss.hasPermission('system:user:remove')")
+    
+    @PreAuthorize("@ss.hasPermission(@pn.SystemUserRemove)")
     @Log(title = "用户管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{userIds}")
     public AjaxResult remove(@PathVariable Long[] userIds) {
@@ -165,7 +173,8 @@ public class SysUserController extends BaseController {
     /**
      * 重置密码
      */
-    @PreAuthorize("@ss.hasPermission('system:user:resetPwd')")
+    
+    @PreAuthorize("@ss.hasPermission(@pn.SystemUserResetpwd)")
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PutMapping("/resetPwd")
     public AjaxResult resetPwd(@RequestBody SysUser user) {
@@ -179,7 +188,8 @@ public class SysUserController extends BaseController {
     /**
      * 状态修改
      */
-    @PreAuthorize("@ss.hasPermission('system:user:edit')")
+    
+    @PreAuthorize("@ss.hasPermission(@pn.SystemUserEdit)")
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PutMapping("/changeStatus")
     public AjaxResult changeStatus(@RequestBody SysUser user) {
@@ -192,7 +202,8 @@ public class SysUserController extends BaseController {
     /**
      * 根据用户编号获取授权角色
      */
-    @PreAuthorize("@ss.hasPermission('system:user:query')")
+    
+    @PreAuthorize("@ss.hasPermission(@pn.SystemUserQuery)")
     @GetMapping("/authRole/{userId}")
     public AjaxResult authRole(@PathVariable("userId") Long userId) {
         AjaxResult ajax = AjaxResult.success();
@@ -206,7 +217,8 @@ public class SysUserController extends BaseController {
     /**
      * 用户授权角色
      */
-    @PreAuthorize("@ss.hasPermission('system:user:edit')")
+    
+    @PreAuthorize("@ss.hasPermission(@pn.SystemUserEdit)")
     @Log(title = "用户管理", businessType = BusinessType.GRANT)
     @PutMapping("/authRole")
     public AjaxResult insertAuthRole(Long userId, Long[] roleIds) {
@@ -218,7 +230,8 @@ public class SysUserController extends BaseController {
     /**
      * 获取部门树列表
      */
-    @PreAuthorize("@ss.hasPermission('system:user:list')")
+    
+    @PreAuthorize("@ss.hasPermission(@pn.SystemUser)")
     @GetMapping("/deptTree")
     public AjaxResult deptTree(SysDept dept) {
         return success(deptService.selectDeptTreeList(dept));

+ 0 - 65
vber-web/src/main/java/com/vber/web/controller/system/TestUserController.java

@@ -1,65 +0,0 @@
-package com.vber.web.controller.system;
-
-import com.vber.common.annotation.Anonymous;
-import com.vber.common.annotation.DataSource;
-import com.vber.common.core.controller.BaseController;
-import com.vber.common.core.domain.AjaxResult;
-import com.vber.common.enums.DataSourceType;
-import com.vber.system.TestUser;
-import com.vber.system.mapper.TestUserMapper;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
-import java.util.Random;
-
-@RestController
-@RequestMapping("/test")
-public class TestUserController extends BaseController {
-    private TestUserMapper testUserMapper;
-
-    public TestUserController(TestUserMapper testUserMapper) {
-        this.testUserMapper = testUserMapper;
-    }
-
-    @Anonymous
-    @GetMapping("/add/{date}")
-    public AjaxResult add(@PathVariable("date") Long date)
-    {
-        TestUser user = new TestUser();
-        String userId= date.toString().substring(0,6)+ (new Random().nextInt(900)+100);
-        user.setUserId(userId);
-        user.setUserName("User"+userId);
-        user.setBirthday(date);
-        return AjaxResult.success(testUserMapper.insert(user));
-    }
-
-    @Anonymous
-    @GetMapping("/ui/{id}")
-    public AjaxResult getUserById(@PathVariable String id)  {
-        TestUser user= testUserMapper.selectUserById(id);
-        return success(user);
-    }
-    @Anonymous
-    @GetMapping("/un/{name}")
-    public AjaxResult getUserByName(@PathVariable String name)  {
-        TestUser user= testUserMapper.selectUserByUserName(name);
-        return success(user);
-    }
-    @Anonymous
-    @GetMapping("/b/{date1}/{date2}")
-    @DataSource(DataSourceType.SHARDING)
-    public AjaxResult getUserByBirthday(@PathVariable Long date1,@PathVariable Long date2)  {
-        List<TestUser> users= testUserMapper.selectUserByBirthday(date1,date2);
-        return success(users);
-    }
-
-    @Anonymous
-    @GetMapping("/l")
-    public AjaxResult getUsers()  {
-        List<TestUser> users= testUserMapper.selectUserList();
-        return success(users);
-    }
-}