Browse Source

重构权限控制

tsurumure 7 months ago
parent
commit
81cc86561d
60 changed files with 444 additions and 377 deletions
  1. 1 1
      src/main/java/com/backendsys/config/Interceptor/PreAuthorizeInterceptor.java
  2. 3 3
      src/main/java/com/backendsys/controller/Ai/AiChatController.java
  3. 2 2
      src/main/java/com/backendsys/controller/Ai/AiChatHistoryController.java
  4. 5 5
      src/main/java/com/backendsys/controller/Ai/AiGenerateVideoController.java
  5. 8 8
      src/main/java/com/backendsys/controller/Ai/AiivhAssetController.java
  6. 4 4
      src/main/java/com/backendsys/controller/Ai/AiivhMakeBroadcastAudioTaskController.java
  7. 4 4
      src/main/java/com/backendsys/controller/Ai/AiivhMakeBroadcastTaskController.java
  8. 9 9
      src/main/java/com/backendsys/controller/Ai/AiivhMakeVirtualmanTaskController.java
  9. 6 6
      src/main/java/com/backendsys/controller/Ai/AiivhQuotaController.java
  10. 4 4
      src/main/java/com/backendsys/controller/Ai/AiznGoodController.java
  11. 7 7
      src/main/java/com/backendsys/controller/Ai/AiznModelController.java
  12. 2 2
      src/main/java/com/backendsys/controller/Ali/AliDashscopeController.java
  13. 2 2
      src/main/java/com/backendsys/controller/Ali/AliDashscopeTaskController.java
  14. 5 5
      src/main/java/com/backendsys/controller/B2c/B2cGoodBrandController.java
  15. 5 5
      src/main/java/com/backendsys/controller/B2c/B2cGoodCategoryController.java
  16. 5 5
      src/main/java/com/backendsys/controller/B2c/B2cGoodController.java
  17. 5 5
      src/main/java/com/backendsys/controller/B2c/B2cGoodSpecController.java
  18. 5 5
      src/main/java/com/backendsys/controller/B2c/B2cGoodSpecSkuController.java
  19. 5 5
      src/main/java/com/backendsys/controller/B2c/B2cGoodUnitController.java
  20. 6 6
      src/main/java/com/backendsys/controller/B2c/B2cMemberController.java
  21. 3 3
      src/main/java/com/backendsys/controller/B2c/B2cOrderController.java
  22. 5 5
      src/main/java/com/backendsys/controller/Cms/CmsArticleCategoryController.java
  23. 7 7
      src/main/java/com/backendsys/controller/Cms/CmsArticleController.java
  24. 5 5
      src/main/java/com/backendsys/controller/Cms/CmsBannerController.java
  25. 3 3
      src/main/java/com/backendsys/controller/Cms/CmsPageController.java
  26. 2 2
      src/main/java/com/backendsys/controller/Cms/CmsSiteInfoController.java
  27. 5 5
      src/main/java/com/backendsys/controller/Med/MedMaterialCategoryController.java
  28. 8 8
      src/main/java/com/backendsys/controller/Med/MedMaterialController.java
  29. 8 8
      src/main/java/com/backendsys/controller/Med/MedMyMaterialController.java
  30. 4 4
      src/main/java/com/backendsys/controller/Systems/SysMenuController.java
  31. 10 10
      src/main/java/com/backendsys/controller/Systems/SysUserController.java
  32. 5 8
      src/main/java/com/backendsys/controller/Systems/SysUserPointController.java
  33. 6 6
      src/main/java/com/backendsys/controller/Systems/SysUserRoleV1Controller.java
  34. 1 1
      src/main/java/com/backendsys/controller/Upload/UploadAliOSSController.java
  35. 1 1
      src/main/java/com/backendsys/controller/Upload/UploadLocalController.java
  36. 7 7
      src/main/java/com/backendsys/controller/Upload/UploadTencentCOSController.java
  37. 5 5
      src/main/java/com/backendsys/modules/cms/article/controller/ArticleCategoryController.java
  38. 6 6
      src/main/java/com/backendsys/modules/cms/article/controller/ArticleController.java
  39. 6 6
      src/main/java/com/backendsys/modules/cms/navigation/controller/NavigationController.java
  40. 2 2
      src/main/java/com/backendsys/modules/cms/siteinfo/controller/SiteInfoController.java
  41. 4 11
      src/main/java/com/backendsys/modules/common/config/redis/RedisConfig.java
  42. 0 3
      src/main/java/com/backendsys/modules/common/config/security/entity/SecurityUserInfo.java
  43. 3 3
      src/main/java/com/backendsys/modules/common/config/security/filter/JwtAuthenticationFilter.java
  44. 122 105
      src/main/java/com/backendsys/modules/common/config/security/utils/PermissionUtil.java
  45. 20 0
      src/main/java/com/backendsys/modules/common/config/security/utils/SecurityUtil.java
  46. 4 4
      src/main/java/com/backendsys/modules/common/config/security/utils/TokenUtil.java
  47. 7 7
      src/main/java/com/backendsys/modules/system/controller/SysUserController.java
  48. 5 5
      src/main/java/com/backendsys/modules/system/controller/SysUserRoleController.java
  49. 5 5
      src/main/java/com/backendsys/modules/system/controller/SysUserRoleMenuController.java
  50. 1 1
      src/main/java/com/backendsys/modules/system/controller/SysUserRolePermissionController.java
  51. 39 12
      src/main/java/com/backendsys/modules/system/service/impl/SysAuthV2ServiceImpl.java
  52. 8 4
      src/main/java/com/backendsys/modules/system/service/impl/SysUserV2ServiceImpl.java
  53. 2 2
      src/main/java/com/backendsys/modules/upload/controller/SysUploadController.java
  54. 3 3
      src/main/java/com/backendsys/modules/upload/controller/SysUploadMultipartController.java
  55. 6 4
      src/main/java/com/backendsys/service/B2c/B2cMemberServiceImpl.java
  56. 3 1
      src/main/java/com/backendsys/service/System/SysAuthServiceImpl.java
  57. 10 8
      src/main/java/com/backendsys/service/System/SysUserServiceImpl.java
  58. 5 0
      src/main/resources/application-local.yml
  59. 5 0
      src/main/resources/application-prod.yml
  60. 0 4
      src/main/resources/application.yml

+ 1 - 1
src/main/java/com/backendsys/config/Interceptor/PreAuthorizeInterceptor.java

@@ -22,7 +22,7 @@ public class PreAuthorizeInterceptor implements HandlerInterceptor {
             // PreAuthorize preAuthorize = method.getAnnotation(PreAuthorize.class);
             // String value = preAuthorize.value();
 
-            // out: @ss.hasPermi('1.3')
+            // out: @sr.hasPermission('1.3')
 
             // 判断权限表达式中是否包含"/api/public"
             String uri = request.getRequestURI(); // 获取当前请求的 URI

+ 3 - 3
src/main/java/com/backendsys/controller/Ai/AiChatController.java

@@ -37,7 +37,7 @@ public class AiChatController {
      * @param aiChatDTO
      * @return
      */
-    @PreAuthorize("@ss.hasPermi('31')")
+    @PreAuthorize("@sr.hasPermission('31')")
     @GetMapping("/api/ai/chat/getAiChat")
     public Result getAiChat(@Validated PageDTO pageDTO, @Validated AiChatDTO aiChatDTO) {
         return Result.success(aiChatService.queryAiChatList(pageDTO.getPage_num(), pageDTO.getPage_size(), aiChatDTO));
@@ -49,7 +49,7 @@ public class AiChatController {
      * @param aiChatDTO
      * @return
      */
-    @PreAuthorize("@ss.hasPermi('31')")
+    @PreAuthorize("@sr.hasPermission('31')")
     @GetMapping("/api/ai/chat/getMyAiChat")
     public Result getMyAiChat(@Validated PageDTO pageDTO, @Validated AiChatDTO aiChatDTO) {
         
@@ -71,7 +71,7 @@ public class AiChatController {
      * @param aiChatDTO
      * @return
      */
-    @PreAuthorize("@ss.hasPermi('31')")
+    @PreAuthorize("@sr.hasPermission('31')")
     @PostMapping("/api/ai/chat/createMyAiChat")
     public Result createMyAiChat(@Validated(AiChatDTO.Create.class) @RequestBody AiChatDTO aiChatDTO) {
         return Result.success(aiChatService.insertAiChat(aiChatDTO), "创建成功");

+ 2 - 2
src/main/java/com/backendsys/controller/Ai/AiChatHistoryController.java

@@ -31,7 +31,7 @@ public class AiChatHistoryController {
      * @param aiChatHistoryDTO
      * @return
      */
-    @PreAuthorize("@ss.hasPermi('31')")
+    @PreAuthorize("@sr.hasPermission('31')")
     @GetMapping("/api/ai/chat/getMyAiChatHistory")
     public Result getMyAiChatHistory(@Validated PageDTO pageDTO, @Validated AiChatHistoryDTO aiChatHistoryDTO) {
 
@@ -42,7 +42,7 @@ public class AiChatHistoryController {
         return Result.success(AiChatHistoryService.queryAiChatHistoryList(pageDTO.getPage_num(), pageDTO.getPage_size(), aiChatHistoryDTO));
     }
 
-    @PreAuthorize("@ss.hasPermi('31')")
+    @PreAuthorize("@sr.hasPermission('31')")
     @QueryNullCheck(serviceClass = AiChatHistoryService.class, serviceMethod = "queryAiChatHistoryByCode", argField = "history_code", message = "对话记录不存在")
     @DeleteMapping("/api/ai/chat/deleteAiChatHistory")
     public Result deleteAiChatHistory(@Validated(AiChatHistoryDTO.Delete.class) @RequestBody AiChatHistoryDTO aiChatHistoryDTO) {

+ 5 - 5
src/main/java/com/backendsys/controller/Ai/AiGenerateVideoController.java

@@ -25,7 +25,7 @@ public class AiGenerateVideoController {
     /**
      * 定制成片
      */
-    @PreAuthorize("@ss.hasPermi('34')")
+    @PreAuthorize("@sr.hasPermission('34')")
     @PostMapping("/api/ai/generate/video/make")
     public Result makePersonvideo(@Validated(AiGenerateVideoDTO.Create.class) @RequestBody AiGenerateVideoDTO aiGenerateVideoDTO) {
 
@@ -39,7 +39,7 @@ public class AiGenerateVideoController {
     /**
      * 查询成片任务进度/结果
      */
-    @PreAuthorize("@ss.hasPermi('34')")
+    @PreAuthorize("@sr.hasPermission('34')")
     @GetMapping("/api/ai/generate/video/getProgress")
     public Result getGenerateVideoProgress(@Validated(AiGenerateVideoDTO.Detail.class) @RequestBody AiGenerateVideoDTO aiGenerateVideoDTO) {
 
@@ -54,7 +54,7 @@ public class AiGenerateVideoController {
     /**
      * 获得全部配音列表
      */
-    @PreAuthorize("@ss.hasPermi('34')")
+    @PreAuthorize("@sr.hasPermission('34')")
     @GetMapping("/api/ai/generate/video/getGenerateVideoTimbre")
     public Result getGenerateVideoTimbre() {
         return Result.success(aiGenerateVideoService.getGenerateVideoTimbre());
@@ -63,7 +63,7 @@ public class AiGenerateVideoController {
     /**
      * 我的成片任务列表
      */
-    @PreAuthorize("@ss.hasPermi('34')")
+    @PreAuthorize("@sr.hasPermission('34')")
     @GetMapping("/api/ai/generate/video/my/list")
     public Result getGenerateVideoMyList(@Validated PageDTO pageDTO, @Validated AiGenerateVideoDTO aiGenerateVideoDTO) {
 
@@ -77,7 +77,7 @@ public class AiGenerateVideoController {
     /**
      * 我的成片任务详情
      */
-    @PreAuthorize("@ss.hasPermi('34')")
+    @PreAuthorize("@sr.hasPermission('34')")
     @GetMapping("/api/ai/generate/video/my/detail")
     public Result getGenerateVideoMyList(@Validated(AiGenerateVideoDTO.Detail.class) AiGenerateVideoDTO aiGenerateVideoDTO) {
 

+ 8 - 8
src/main/java/com/backendsys/controller/Ai/AiivhAssetController.java

@@ -203,7 +203,7 @@ public class AiivhAssetController {
     /**
      * 初始化公共主播 (第三方接口) (到本地数据库)
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @PostMapping("/api/ai/ivh/asset/initPublicVirtualman")
     public Result initPublicVirtualman() {
         return Result.success(Map.of("total", aiivhAnchorService.insertAiivhAnchor(1, 100)));
@@ -212,7 +212,7 @@ public class AiivhAssetController {
     /**
      * 初始化公共音色 (第三方接口) (到本地数据库) (SDK接口不能超过100个,目前有做循环遍历获得全部的数据)
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @PostMapping("/api/ai/person/asset/initPublicTimbre")
     public Result initPublicTimbre() throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException {
         return Result.success(Map.of("total", aiPersonTimbreService.insertAiivhPublicTimbreBatch(1, 100)));
@@ -223,7 +223,7 @@ public class AiivhAssetController {
     /**
      * 获取公共形象 (本地) (初始化后的结果查询)
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @GetMapping("/api/ai/ivh/asset/getPublicVirtualman")
     public Result getPublicVirtualman(@Validated PageDTO pageDTO, @Validated AiivhAnchorPublicDTO aiivhAnchorPublicDTO) {
         return Result.success(aiivhAnchorService.queryAiivhPublicAnchorList(pageDTO.getPage_num(), pageDTO.getPage_size(), aiivhAnchorPublicDTO));
@@ -232,7 +232,7 @@ public class AiivhAssetController {
     /**
      * 获取定制形象 (我的)
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @GetMapping("/api/ai/ivh/asset/getMyCustomVirtualman")
     public Result getCustomVirtualman(@Validated PageDTO pageDTO, @Validated AiivhAnchorDTO aiivhAnchorDTO) {
 
@@ -248,7 +248,7 @@ public class AiivhAssetController {
     /**
      * 获取公共音色 (本地) (初始化后的结果查询)
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @GetMapping("/api/ai/ivh/asset/getPublicTimbre")
     public Result getPublicTimbre(@Validated PageDTO pageDTO, @Validated AiPersonTimbreDTO aiPersonTimbreDTO) {
         return Result.success(aiPersonTimbreService.queryAiivhPublicTimbreList(pageDTO.getPage_num(), pageDTO.getPage_size(), aiPersonTimbreDTO));
@@ -257,7 +257,7 @@ public class AiivhAssetController {
     /**
      * 获取定制音色 (我的)
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @GetMapping("/api/ai/ivh/asset/getMyCutomTimbre")
     public Result getMyCutomTimbre(@Validated PageDTO pageDTO, @Validated AiPersonTimbreCustomDTO aiPersonTimbreCustomDTO) {
 
@@ -271,7 +271,7 @@ public class AiivhAssetController {
     /**
      * 音色情感分类
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @GetMapping("/api/ai/ivh/asset/getTimbreEmotionalCategory")
     public Result getTimbreEmotionalCategory(@Validated AiivhTimbreEmotionalCategoryDTO aiivhTimbreEmotionalCategoryDTO) {
         return Result.success(aiivhTimbreEmotionalCategoryMapper.queryAiivhTimbreEmotionalCategory(aiivhTimbreEmotionalCategoryDTO));
@@ -281,7 +281,7 @@ public class AiivhAssetController {
     /**
      * 我的数智人资产一览
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @GetMapping("/api/ai/ivh/asset/getMyOverview")
     public Result getTimbreEmotionalCategory() {
         return Result.success(aiivhAssetService.getMyOverview());

+ 4 - 4
src/main/java/com/backendsys/controller/Ai/AiivhMakeBroadcastAudioTaskController.java

@@ -26,7 +26,7 @@ public class AiivhMakeBroadcastAudioTaskController {
     /**
      * 我的定制音频任务列表
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @GetMapping("/api/ai/ivh/getMyBroadcastAudio")
     public Result getPersonaudioListBySelf(@Validated PageDTO pageDTO, @Validated AiivhMakeBroadcastAudioTaskDTO aiivhMakeBroadcastAudioTaskDTO) {
         // [查询] 自身 UserId
@@ -39,7 +39,7 @@ public class AiivhMakeBroadcastAudioTaskController {
     /**
      * 我的定制音频任务详情
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @GetMapping("/api/ai/ivh/getMyBroadcastAudioDetail")
     public Result getPersonaudioDetailBySelf(@Validated AiivhMakeBroadcastAudioTaskDTO aiivhMakeBroadcastAudioTaskDTO) throws IOException {
         // [查询] 自身 UserId
@@ -52,7 +52,7 @@ public class AiivhMakeBroadcastAudioTaskController {
     /**
      * 创建定制音频播报任务
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @PostMapping("/api/ai/ivh/makeBroadcastAudio")
     public Result makePersonaudio(@Validated(AiivhMakeBroadcastAudioTaskDTO.Create.class) @RequestBody AiivhMakeBroadcastAudioTaskDTO aiivhMakeBroadcastAudioTaskDTO) throws IOException {
 
@@ -67,7 +67,7 @@ public class AiivhMakeBroadcastAudioTaskController {
     /**
      * 删除定制音频任务 (仅删除自己)
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @DeleteMapping("/api/ai/ivh/deleteBroadcastAudio")
     public Result deletePersonaudio(@Validated @RequestBody AiivhMakeBroadcastAudioTaskDTO aiivhMakeBroadcastAudioTaskDTO) throws IOException {
         // [查询] 自身 UserId

+ 4 - 4
src/main/java/com/backendsys/controller/Ai/AiivhMakeBroadcastTaskController.java

@@ -26,7 +26,7 @@ public class AiivhMakeBroadcastTaskController {
     /**
      * 我的定制视频任务列表
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @GetMapping("/api/ai/ivh/getMyBroadcast")
     public Result getPersonvideoListBySelf(@Validated PageDTO pageDTO, @Validated AiivhMakeBroadcastTaskDTO aiivhMakeBroadcastTaskDTO) {
         // [查询] 自身 UserId
@@ -39,7 +39,7 @@ public class AiivhMakeBroadcastTaskController {
     /**
      * 我的定制视频任务详情
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @GetMapping("/api/ai/ivh/getMyBroadcastDetail")
     public Result getPersonvideoDetailBySelf(@Validated AiivhMakeBroadcastTaskDTO aiivhMakeBroadcastTaskDTO) {
         // [查询] 自身 UserId
@@ -59,7 +59,7 @@ public class AiivhMakeBroadcastTaskController {
      * 1. 增购并发数
      * 2. 上游做排队逻辑 (待做)
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @PostMapping("/api/ai/ivh/makeBroadcast")
     public Result makePersonvideo(@Validated(AiivhMakeBroadcastTaskDTO.Create.class) @RequestBody AiivhMakeBroadcastTaskDTO aiivhMakeBroadcastTaskDTO) throws IOException {
         return Result.success(aiivhMakeBroadcastTaskService.insertAiivhMakeBroadcastTask(aiivhMakeBroadcastTaskDTO));
@@ -86,7 +86,7 @@ public class AiivhMakeBroadcastTaskController {
     /**
      * 删除定制视频任务 (仅删除自己)
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @DeleteMapping("/api/ai/ivh/deleteBroadcast")
     public Result deletePersonvideo(@Validated @RequestBody AiivhMakeBroadcastTaskDTO aiivhMakeBroadcastTaskDTO) {
         // [查询] 自身 UserId

+ 9 - 9
src/main/java/com/backendsys/controller/Ai/AiivhMakeVirtualmanTaskController.java

@@ -55,7 +55,7 @@ public class AiivhMakeVirtualmanTaskController {
     /**
      * 我的定制形象(主播/音色)任务列表
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @GetMapping("/api/ai/ivh/getMyAiivhMakeVirtualmanTask")
     public Result getMyAiivhMakeVirtualmanTask(@Validated PageDTO pageDTO, @Validated AiPersonDTO aiPersonDTO) {
         // [查询] 自身 UserId
@@ -68,7 +68,7 @@ public class AiivhMakeVirtualmanTaskController {
     /**
      * 获得全部定制形象任务列表
      */
-    @PreAuthorize("@ss.hasPermi('33.1')")
+    @PreAuthorize("@sr.hasPermission('33.1')")
     @GetMapping("/api/ai/ivh/getAiivhMakeVirtualmanTask")
     public Result getAiivhMakeVirtualmanTask(@Validated PageDTO pageDTO, @Validated AiPersonDTO aiPersonDTO) {
         return Result.success(aiivhMakeVirtualmanTaskService.queryAiivhMakeVirtualmanTaskList(pageDTO.getPage_num(), pageDTO.getPage_size(), aiPersonDTO));
@@ -144,7 +144,7 @@ public class AiivhMakeVirtualmanTaskController {
     /**
      * 我的定制形象(主播/音色)任务详情 (同时查询并更新任务进度)
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @GetMapping("/api/ai/ivh/getMyAiivhMakeVirtualmanTaskDetail")
     public Result getMyAiivhMakeVirtualmanTaskDetail(@Validated AiPersonDTO aiPersonDTO) {
         // [查询] 自身 UserId
@@ -157,7 +157,7 @@ public class AiivhMakeVirtualmanTaskController {
     /**
      * 全部定制形象详情 (同时查询并更新任务进度)
      */
-    @PreAuthorize("@ss.hasPermi('33.1')")
+    @PreAuthorize("@sr.hasPermission('33.1')")
     @GetMapping("/api/ai/ivh/getAiivhMakeVirtualmanTaskDetail")
     public Result getAiivhMakeVirtualmanTaskDetail(@Validated AiPersonDTO aiPersonDTO) {
         Map<String, Object> response = checkAndUpdateProgress(aiPersonDTO);
@@ -169,7 +169,7 @@ public class AiivhMakeVirtualmanTaskController {
      * [腾讯-数智人] 效果确认接口
      * https://cloud.tencent.com/document/product/1240/102665
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @PostMapping("/api/ai/ivh/confirmVirtualmanTask")
     public Result confirmVirtualmanTask(@Validated @RequestBody TencentCustomserviceConfirmDTO tencentCustomserviceConfirmDTO) throws IllegalAccessException, UnsupportedEncodingException {
 
@@ -191,7 +191,7 @@ public class AiivhMakeVirtualmanTaskController {
      * https://cloud.tencent.com/document/product/1240/96070
      * @param task_id
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @GetMapping("/api/ai/ivh/getProgressOfVirtualmanTask")
     public Result getProgressOfVirtualmanTask(@NotEmpty(message = "task_id 不能为空")  String task_id) throws UnsupportedEncodingException {
         Map<String, Object> resp = sdkTencentAiVirtualmanService.getProgressOfVirtualmanTask(task_id);
@@ -200,7 +200,7 @@ public class AiivhMakeVirtualmanTaskController {
     /**
      * [腾讯-数智人] 查询形象定制队列
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @GetMapping("/api/ai/ivh/getQueueOfVirtualmanTask")
     public Result getQueueOfVirtualmanTask(@NotEmpty(message = "task_id 不能为空")  String task_id) throws UnsupportedEncodingException {
         return Result.success(sdkTencentAiVirtualmanService.getQueueOfVirtualmanTask(task_id));
@@ -213,7 +213,7 @@ public class AiivhMakeVirtualmanTaskController {
      * @param tencentCustomserviceDTO
      * @return
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @PostMapping("/api/ai/ivh/makeVirtualman")
     public Result makeVirtualTask(@Validated @RequestBody TencentCustomserviceDTO tencentCustomserviceDTO) throws IllegalAccessException, UnsupportedEncodingException {
         Map<String, Object> resp = sdkTencentAiVirtualmanService.makeVirtualTask(tencentCustomserviceDTO);
@@ -230,7 +230,7 @@ public class AiivhMakeVirtualmanTaskController {
     /**
      * 发起任务 (填写 腾讯订单、备注,同时发起任务)
      */
-    @PreAuthorize("@ss.hasPermi('33.1')")
+    @PreAuthorize("@sr.hasPermission('33.1')")
     @PostMapping("/api/ai/ivh/launchVirtualmanTask")
     public Result launchVirtualmanTask(@Validated @RequestBody VirtualmanLaunchDTO virtualmanLaunchDTO) {
         return Result.success(sdkTencentAiVirtualmanService.launchVirtualTaskQueue(virtualmanLaunchDTO));

+ 6 - 6
src/main/java/com/backendsys/controller/Ai/AiivhQuotaController.java

@@ -39,7 +39,7 @@ public class AiivhQuotaController {
     /**
      * 积分兑换配额 (AI数字人形象)
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @PostMapping("/api/ai/ivh/quota/pointToVirtualmanQuota")
     public Result pointToVirtualmanQuota(@Validated @RequestBody AiivhQuotaOrderDTO aiivhQuotaOrderDTO) {
         return Result.success(aiivhQuotaService.pointToVirtualmanQuota(aiivhQuotaOrderDTO));
@@ -48,7 +48,7 @@ public class AiivhQuotaController {
     /**
      * 获取配额积分 (AI数智人形象)
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @GetMapping("/api/ai/ivh/quota/getResourceOfQuota")
     public Result getResourceOfQuoa(SysResourcePointsDTO sysResourcePointsDTO) {
         return Result.success(aiivhQuotaService.getResourceOfQuoa(sysResourcePointsDTO));
@@ -57,7 +57,7 @@ public class AiivhQuotaController {
     /**
      * 我的积分兑换记录
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @GetMapping("/api/ai/ivh/quota/getMyQuotaOrder")
     public Result getMyQuotaOrder(@Validated PageDTO pageDTO, @Validated AiivhQuotaOrderDTO aiivhQuotaOrderDTO) {
         // [查询] 自身 UserId
@@ -68,7 +68,7 @@ public class AiivhQuotaController {
     /**
      * 全部积分兑换记录
      */
-    @PreAuthorize("@ss.hasPermi('33.1')")
+    @PreAuthorize("@sr.hasPermission('33.1')")
     @GetMapping("/api/ai/ivh/quota/getQuotaOrder")
     public Result getQuotaOrder(@Validated PageDTO pageDTO, @Validated AiivhQuotaOrderDTO aiivhQuotaOrderDTO) {
         return Result.success(aiivhQuotaOrderService.getQuotaOrderList(pageDTO.getPage_num(), pageDTO.getPage_size(), aiivhQuotaOrderDTO));
@@ -77,7 +77,7 @@ public class AiivhQuotaController {
     /**
      * 我的配额操作记录
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @GetMapping("/api/ai/ivh/quota/getMyQuotaHistory")
     public Result getMyQuotaHistory(@Validated PageDTO pageDTO, @Validated AiivhQuotaHistoryDTO aiivhQuotaHistoryDTO) {
         // [查询] 自身 UserId
@@ -88,7 +88,7 @@ public class AiivhQuotaController {
     /**
      * 我的配额
      */
-    @PreAuthorize("@ss.hasPermi('33')")
+    @PreAuthorize("@sr.hasPermission('33')")
     @GetMapping("/api/ai/ivh/quota/getMyQuota")
     public Result getMyQuota(@Validated PageDTO pageDTO, @Validated AiivhQuotaDTO aiivhQuotaDTO) {
         // [查询] 自身 UserId

+ 4 - 4
src/main/java/com/backendsys/controller/Ai/AiznGoodController.java

@@ -28,7 +28,7 @@ public class AiznGoodController {
     /**
      * [紫鸟] AI模特 - 商品合成 (发起任务)
      */
-    @PreAuthorize("@ss.hasPermi('32')")
+    @PreAuthorize("@sr.hasPermission('32')")
     @PostMapping("/api/ai/zn/makeGoodCompoundTask")
     public Result makeGoodCompoundTask(@Validated @RequestBody AiznGoodCompoundTaskDTO aiznGoodCompoundTaskDTO) {
         return Result.success(aiznGoodService.makeGoodCompoundTask(aiznGoodCompoundTaskDTO));
@@ -37,7 +37,7 @@ public class AiznGoodController {
     /**
      * [紫鸟] AI模特 - 商品合成 (查询任务)
      */
-    @PreAuthorize("@ss.hasPermi('32')")
+    @PreAuthorize("@sr.hasPermission('32')")
     @GetMapping("/api/ai/zn/getProgressOfGoodCompoundTask")
     public Result getProgressOfGoodCompoundTask(@NotEmpty(message = "任务ID 不能为空") String id) throws IOException {
         return Result.success(aiznImageTaskService.getProgressOfTask(id, 11));
@@ -46,7 +46,7 @@ public class AiznGoodController {
     /**
      * [紫鸟] AI模特 - 商品替换(发起任务)
      */
-    @PreAuthorize("@ss.hasPermi('32')")
+    @PreAuthorize("@sr.hasPermission('32')")
     @PostMapping("/api/ai/zn/makeGoodReplaceTask")
     public Result makeGoodReplaceTask(@Validated @RequestBody AiznGoodReplaceTaskDTO aiznGoodReplaceTaskDTO) {
         return Result.success(aiznGoodService.makeGoodReplaceTask(aiznGoodReplaceTaskDTO));
@@ -55,7 +55,7 @@ public class AiznGoodController {
     /**
      * [紫鸟] AI模特 - 商品合成 (查询任务)
      */
-    @PreAuthorize("@ss.hasPermi('32')")
+    @PreAuthorize("@sr.hasPermission('32')")
     @GetMapping("/api/ai/zn/getProgressOfGoodReplaceTask")
     public Result getProgressOfGoodReplaceTask(@NotEmpty(message = "任务ID 不能为空") String id) throws IOException {
         return Result.success(aiznImageTaskService.getProgressOfTask(id, 12));

+ 7 - 7
src/main/java/com/backendsys/controller/Ai/AiznModelController.java

@@ -38,7 +38,7 @@ public class AiznModelController {
     /**
      * [紫鸟] AI模特 - 获得风格/场景配置数据
      */
-    @PreAuthorize("@ss.hasPermi('35')")
+    @PreAuthorize("@sr.hasPermission('35')")
     @GetMapping("/api/ai/zn/getImageStyle")
     public Result getImageStyle(AiznImageStyleDTO aiznImageStyleDTO) {
         return Result.success(aiznModelService.getImageStyle(aiznImageStyleDTO));
@@ -47,7 +47,7 @@ public class AiznModelController {
     /**
      * [紫鸟] AI模特 - 获得积分单价 (AI模特)
      */
-    @PreAuthorize("@ss.hasPermi('35')")
+    @PreAuthorize("@sr.hasPermission('35')")
     @GetMapping("/api/ai/zn/getResourceOfZnModel")
     public Result getImageStyle() {
         SysResourcePointsDTO sysResourcePointsDTO = new SysResourcePointsDTO();
@@ -59,7 +59,7 @@ public class AiznModelController {
     /**
      * [紫鸟] AI模特 - 智能抠图 (发起任务)
      */
-    @PreAuthorize("@ss.hasPermi('35')")
+    @PreAuthorize("@sr.hasPermission('35')")
     @PostMapping("/api/ai/zn/makeIntelligentClipTask")
     public Result makeIntelligentClipTask(@Validated @RequestBody AiznIntelligentClipTaskDTO aiznIntelligentClipTaskDTO) {
         return Result.success(aiznModelService.makeIntelligentClipTask(aiznIntelligentClipTaskDTO));
@@ -68,7 +68,7 @@ public class AiznModelController {
     /**
      * [紫鸟] AI模特 - 智能抠图 (查询任务)
      */
-    @PreAuthorize("@ss.hasPermi('35')")
+    @PreAuthorize("@sr.hasPermission('35')")
     @GetMapping("/api/ai/zn/getProgressOfIntelligentClipTask")
     public Result getProgressOfIntelligentClipTask(@NotEmpty(message = "任务ID 不能为空") String id) throws IOException {
         return Result.success(aiznImageTaskService.getProgressOfTask(id, 3));
@@ -77,7 +77,7 @@ public class AiznModelController {
     /**
      * [紫鸟] AI模特 - 交互抠图 (直接返回结果)
      */
-    @PreAuthorize("@ss.hasPermi('35')")
+    @PreAuthorize("@sr.hasPermission('35')")
     @PostMapping("/api/ai/zn/makeInteractClipTask")
     public Result makeInteractClipTask(@Validated @RequestBody AiznInteractClipTaskDTO aiznInteractClipTaskDTO) {
         return Result.success(aiznModelService.makeInteractClipTask(aiznInteractClipTaskDTO));
@@ -88,7 +88,7 @@ public class AiznModelController {
     /**
      * [紫鸟] AI换模特 (发起任务)
      */
-    @PreAuthorize("@ss.hasPermi('35')")
+    @PreAuthorize("@sr.hasPermission('35')")
     @PostMapping("/api/ai/zn/makeModelTask")
     public Result makeModelTask(@Validated @RequestBody AiznModelTaskDTO aiznModelTaskDTO) {
         return Result.success(aiznModelService.makeModelTask(aiznModelTaskDTO));
@@ -97,7 +97,7 @@ public class AiznModelController {
     /**
      * [紫鸟] AI换模特 (查询任务)
      */
-    @PreAuthorize("@ss.hasPermi('35')")
+    @PreAuthorize("@sr.hasPermission('35')")
     @GetMapping("/api/ai/zn/getProgressOfModelTask")
     public Result getProgressOfModelTask(
             @RequestParam(value = "id", required = false) String id,

+ 2 - 2
src/main/java/com/backendsys/controller/Ali/AliDashscopeController.java

@@ -31,7 +31,7 @@ public class AliDashscopeController {
      * 通义万相 - 查询任务生成结果
      * @param task_id
      */
-    @PreAuthorize("@ss.hasPermi('32')")
+    @PreAuthorize("@sr.hasPermission('32')")
     @GetMapping("getTask/{task_id}")
     public Result aliDashscopeGetTask(@PathVariable("task_id") String task_id) {
 
@@ -50,7 +50,7 @@ public class AliDashscopeController {
      * 阿里 - 通义万相 - 图像背景生成API (https://help.aliyun.com/zh/dashscope/developer-reference/tongyi-wanxiang-api-for-generating-backgrounds?spm=a2c4g.11186623.0.0.2a3866efOS1LTz)
      * @param aliDashscopeBackgroundDTO
      */
-    @PreAuthorize("@ss.hasPermi('32')")
+    @PreAuthorize("@sr.hasPermission('32')")
     @PostMapping("backgroundGeneration")
     public Result aliDashscopeBackgroundGeneration(@Validated @RequestBody AliDashscopeBackgroundDTO aliDashscopeBackgroundDTO){
 

+ 2 - 2
src/main/java/com/backendsys/controller/Ali/AliDashscopeTaskController.java

@@ -20,13 +20,13 @@ public class AliDashscopeTaskController {
     @Autowired
     private AliDashscopeTaskService aliDashscopeTaskService;
 
-    @PreAuthorize("@ss.hasPermi('32')")
+    @PreAuthorize("@sr.hasPermission('32')")
     @GetMapping("getTaskList")
     public Result aliDashscopeGetTask(@Validated PageDTO pageDTO, @Validated AliDashscopeTaskDTO aliDashscopeTaskDTO) {
         return Result.success(aliDashscopeTaskService.getTaskList(pageDTO.getPage_num(), pageDTO.getPage_size(), aliDashscopeTaskDTO));
     }
 
-    @PreAuthorize("@ss.hasPermi('32')")
+    @PreAuthorize("@sr.hasPermission('32')")
     @GetMapping("getTaskDetail")
     public Result getArticleCategoryDetail(@Validated(AliDashscopeTaskDTO.Detail.class) AliDashscopeTaskDTO aliDashscopeTaskDTO) {
 

+ 5 - 5
src/main/java/com/backendsys/controller/B2c/B2cGoodBrandController.java

@@ -21,33 +21,33 @@ public class B2cGoodBrandController {
     @Autowired
     private B2cGoodBrandService b2cGoodBrandService;
 
-    @PreAuthorize("@ss.hasPermi('11.3')")
+    @PreAuthorize("@sr.hasPermission('11.3')")
     @GetMapping("/api/b2c/good/getGoodBrand")
     public Result getGoodBrand(@Validated PageDTO pageDTO, @Validated B2cGoodBrandDTO b2cGoodBrandDTO) {
         return Result.success(b2cGoodBrandService.queryGoodBrandList(pageDTO.getPage_num(), pageDTO.getPage_size(), b2cGoodBrandDTO));
     }
 
-    @PreAuthorize("@ss.hasPermi('11.3.1')")
+    @PreAuthorize("@sr.hasPermission('11.3.1')")
     @QueryNullCheck(serviceClass = B2cGoodBrandService.class, serviceMethod = "queryGoodBrandDetail", argField = "good_brand_id", message = "商品品牌不存在")
     @GetMapping("/api/b2c/good/getGoodBrandDetail")
     public Result getGoodBrandDetail(@Validated(B2cGoodBrandDTO.Detail.class) B2cGoodBrandDTO b2cGoodBrandDTO) {
         return Result.success(QueryNullCheckAspect.getQueryResult());
     }
 
-    @PreAuthorize("@ss.hasPermi('11.3.2')")
+    @PreAuthorize("@sr.hasPermission('11.3.2')")
     @PostMapping("/api/b2c/good/createGoodBrand")
     public Result createGoodBrand(@Validated(B2cGoodBrandDTO.Create.class) @RequestBody B2cGoodBrandDTO b2cGoodBrandDTO) {
         return Result.success(b2cGoodBrandService.insertGoodBrand(b2cGoodBrandDTO), "创建成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('11.3.3')")
+    @PreAuthorize("@sr.hasPermission('11.3.3')")
     @QueryNullCheck(serviceClass = B2cGoodBrandService.class, serviceMethod = "queryGoodBrandDetail", argField = "good_brand_id", message = "商品品牌不存在")
     @PutMapping("/api/b2c/good/updateGoodBrand")
     public Result updateGoodBrand(@Validated(B2cGoodBrandDTO.Update.class) @RequestBody B2cGoodBrandDTO b2cGoodBrandDTO) {
         return Result.success(b2cGoodBrandService.updateGoodBrand(b2cGoodBrandDTO), "更新成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('11.3.4')")
+    @PreAuthorize("@sr.hasPermission('11.3.4')")
     @QueryNullCheck(serviceClass = B2cGoodBrandService.class, serviceMethod = "queryGoodBrandDetail", argField = "good_brand_id", message = "商品品牌不存在")
     @DeleteMapping("/api/b2c/good/deleteGoodBrand")
     public Result deleteGoodBrand(@Validated(B2cGoodBrandDTO.Delete.class) @RequestBody B2cGoodBrandDTO b2cGoodBrandDTO) {

+ 5 - 5
src/main/java/com/backendsys/controller/B2c/B2cGoodCategoryController.java

@@ -21,33 +21,33 @@ public class B2cGoodCategoryController {
     @Autowired
     private B2cGoodCategoryService b2cGoodCategoryService;
 
-    @PreAuthorize("@ss.hasPermi('11.2')")
+    @PreAuthorize("@sr.hasPermission('11.2')")
     @GetMapping("/api/b2c/good/getGoodCategory")
     public Result getGoodCategory(@Validated PageDTO pageDTO, @Validated B2cGoodCategoryDTO b2cGoodCategoryDTO) {
         return Result.success(b2cGoodCategoryService.queryGoodCategoryList(pageDTO.getPage_num(), pageDTO.getPage_size(), b2cGoodCategoryDTO));
     }
 
-    @PreAuthorize("@ss.hasPermi('11.2.1')")
+    @PreAuthorize("@sr.hasPermission('11.2.1')")
     @QueryNullCheck(serviceClass = B2cGoodCategoryService.class, serviceMethod = "queryGoodCategoryDetail", argField = "good_category_id", message = "商品分类不存在")
     @GetMapping("/api/b2c/good/getGoodCategoryDetail")
     public Result getGoodCategoryDetail(@Validated(B2cGoodCategoryDTO.Detail.class) B2cGoodCategoryDTO b2cGoodCategoryDTO) {
         return Result.success(QueryNullCheckAspect.getQueryResult());
     }
 
-    @PreAuthorize("@ss.hasPermi('11.2.2')")
+    @PreAuthorize("@sr.hasPermission('11.2.2')")
     @PostMapping("/api/b2c/good/createGoodCategory")
     public Result createGoodCategory(@Validated(B2cGoodCategoryDTO.Create.class) @RequestBody B2cGoodCategoryDTO b2cGoodCategoryDTO) {
         return Result.success(b2cGoodCategoryService.insertGoodCategory(b2cGoodCategoryDTO), "创建成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('11.2.3')")
+    @PreAuthorize("@sr.hasPermission('11.2.3')")
     @QueryNullCheck(serviceClass = B2cGoodCategoryService.class, serviceMethod = "queryGoodCategoryDetail", argField = "good_category_id", message = "商品分类不存在")
     @PutMapping("/api/b2c/good/updateGoodCategory")
     public Result updateGoodCategory(@Validated(B2cGoodCategoryDTO.Update.class) @RequestBody B2cGoodCategoryDTO b2cGoodCategoryDTO) {
         return Result.success(b2cGoodCategoryService.updateGoodCategory(b2cGoodCategoryDTO), "更新成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('11.2.4')")
+    @PreAuthorize("@sr.hasPermission('11.2.4')")
     @QueryNullCheck(serviceClass = B2cGoodCategoryService.class, serviceMethod = "queryGoodCategoryDetail", argField = "good_category_id", message = "商品分类不存在")
     @DeleteMapping("/api/b2c/good/deleteGoodCategory")
     public Result deleteGoodCategory(@Validated(B2cGoodCategoryDTO.Delete.class) @RequestBody B2cGoodCategoryDTO b2cGoodCategoryDTO) {

+ 5 - 5
src/main/java/com/backendsys/controller/B2c/B2cGoodController.java

@@ -21,7 +21,7 @@ public class B2cGoodController {
     @Autowired
     private B2cGoodService b2cGoodService;
 
-    @PreAuthorize("@ss.hasPermi('11.1')")
+    @PreAuthorize("@sr.hasPermission('11.1')")
     @GetMapping("/api/b2c/good/getGood")
     public Result getGood(@Validated PageDTO pageDTO, @Validated B2cGoodDTO b2cGoodDTO) {
         return Result.success(b2cGoodService.queryGoodList(pageDTO.getPage_num(), pageDTO.getPage_size(), b2cGoodDTO));
@@ -34,27 +34,27 @@ public class B2cGoodController {
     }
     // 现有一个接口路径:/api/b2c/good/getGood,是用于后台系统获取商品列表的,想另外做一个用于前台H5或小程序调用的接口,应该怎么命名比较优雅
 
-    @PreAuthorize("@ss.hasPermi('11.1.1')")
+    @PreAuthorize("@sr.hasPermission('11.1.1')")
     @QueryNullCheck(serviceClass = B2cGoodService.class, serviceMethod = "queryGoodDetail", argField = "good_id", message = "商品不存在")
     @GetMapping("/api/b2c/good/getGoodDetail")
     public Result getGoodDetail(@Validated(B2cGoodDTO.Detail.class) B2cGoodDTO b2cGoodDTO) {
         return Result.success(QueryNullCheckAspect.getQueryResult());
     }
 
-    @PreAuthorize("@ss.hasPermi('11.1.2')")
+    @PreAuthorize("@sr.hasPermission('11.1.2')")
     @PostMapping("/api/b2c/good/createGood")
     public Result createGood(@Validated(B2cGoodDTO.Create.class) @RequestBody B2cGoodDTO b2cGoodDTO) {
         return Result.success(b2cGoodService.insertGood(b2cGoodDTO), "创建成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('11.1.3')")
+    @PreAuthorize("@sr.hasPermission('11.1.3')")
     @QueryNullCheck(serviceClass = B2cGoodService.class, serviceMethod = "queryGoodDetail", argField = "good_id", message = "商品不存在")
     @PutMapping("/api/b2c/good/updateGood")
     public Result updateGood(@Validated(B2cGoodDTO.Update.class) @RequestBody B2cGoodDTO b2cGoodDTO) {
         return Result.success(b2cGoodService.updateGood(b2cGoodDTO), "更新成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('11.1.4')")
+    @PreAuthorize("@sr.hasPermission('11.1.4')")
     @QueryNullCheck(serviceClass = B2cGoodService.class, serviceMethod = "queryGoodDetail", argField = "good_id", message = "商品不存在")
     @DeleteMapping("/api/b2c/good/deleteGood")
     public Result deleteGood(@Validated(B2cGoodDTO.Delete.class) @RequestBody B2cGoodDTO b2cGoodDTO) {

+ 5 - 5
src/main/java/com/backendsys/controller/B2c/B2cGoodSpecController.java

@@ -21,33 +21,33 @@ public class B2cGoodSpecController {
     @Autowired
     private B2cGoodSpecService b2cGoodSpecService;
 
-    @PreAuthorize("@ss.hasPermi('11.5')")
+    @PreAuthorize("@sr.hasPermission('11.5')")
     @GetMapping("/api/b2c/good/getGoodSpec")
     public Result getGoodSpec(@Validated PageDTO pageDTO, @Validated B2cGoodSpecDTO b2cGoodSpecDTO) {
         return Result.success(b2cGoodSpecService.queryGoodSpecList(pageDTO.getPage_num(), pageDTO.getPage_size(), b2cGoodSpecDTO));
     }
 
-    @PreAuthorize("@ss.hasPermi('11.5.1')")
+    @PreAuthorize("@sr.hasPermission('11.5.1')")
     @QueryNullCheck(serviceClass = B2cGoodSpecService.class, serviceMethod = "queryGoodSpecDetail", argField = "good_spec_id", message = "商品规格不存在")
     @GetMapping("/api/b2c/good/getGoodSpecDetail")
     public Result getGoodSpecDetail(@Validated(B2cGoodSpecDTO.Detail.class) B2cGoodSpecDTO b2cGoodSpecDTO) {
         return Result.success(QueryNullCheckAspect.getQueryResult());
     }
 
-    @PreAuthorize("@ss.hasPermi('11.5.2')")
+    @PreAuthorize("@sr.hasPermission('11.5.2')")
     @PostMapping("/api/b2c/good/createGoodSpec")
     public Result createGoodSpec(@Validated(B2cGoodSpecDTO.Create.class) @RequestBody B2cGoodSpecDTO b2cGoodSpecDTO) {
         return Result.success(b2cGoodSpecService.insertGoodSpec(b2cGoodSpecDTO), "创建成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('11.5.3')")
+    @PreAuthorize("@sr.hasPermission('11.5.3')")
     @QueryNullCheck(serviceClass = B2cGoodSpecService.class, serviceMethod = "queryGoodSpecDetail", argField = "good_spec_id", message = "商品规格不存在")
     @PutMapping("/api/b2c/good/updateGoodSpec")
     public Result updateGoodSpec(@Validated(B2cGoodSpecDTO.Update.class) @RequestBody B2cGoodSpecDTO b2cGoodSpecDTO) {
         return Result.success(b2cGoodSpecService.updateGoodSpec(b2cGoodSpecDTO), "更新成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('11.5.4')")
+    @PreAuthorize("@sr.hasPermission('11.5.4')")
     @QueryNullCheck(serviceClass = B2cGoodSpecService.class, serviceMethod = "queryGoodSpecDetail", argField = "good_spec_id", message = "商品规格不存在")
     @DeleteMapping("/api/b2c/good/deleteGoodSpec")
     public Result deleteGoodSpec(@Validated(B2cGoodSpecDTO.Delete.class) @RequestBody B2cGoodSpecDTO b2cGoodSpecDTO) {

+ 5 - 5
src/main/java/com/backendsys/controller/B2c/B2cGoodSpecSkuController.java

@@ -22,7 +22,7 @@ public class B2cGoodSpecSkuController {
     @Autowired
     private B2cGoodSpecSkuService b2cGoodSpecSkuService;
 
-    @PreAuthorize("@ss.hasPermi('11.6')")
+    @PreAuthorize("@sr.hasPermission('11.6')")
     @GetMapping("/api/b2c/good/getGoodSpecSku")
     public Result getGoodSpecSku(@Validated PageDTO pageDTO, @Validated B2cGoodSpecSkuDTO b2cGoodSpecSkuDTO) {
         if (b2cGoodSpecSkuDTO.getGood_id() == null) {
@@ -31,27 +31,27 @@ public class B2cGoodSpecSkuController {
         return Result.success(b2cGoodSpecSkuService.queryGoodSpecSkuList(pageDTO.getPage_num(), pageDTO.getPage_size(), b2cGoodSpecSkuDTO));
     }
 
-    @PreAuthorize("@ss.hasPermi('11.6.1')")
+    @PreAuthorize("@sr.hasPermission('11.6.1')")
     @QueryNullCheck(serviceClass = B2cGoodSpecSkuService.class, serviceMethod = "queryGoodSpecSkuDetail", argField = "good_spec_sku_id", message = "商品规格SKU不存在")
     @GetMapping("/api/b2c/good/getGoodSpecSkuDetail")
     public Result getGoodSpecSkuDetail(@Validated(B2cGoodSpecSkuDTO.Detail.class) B2cGoodSpecSkuDTO b2cGoodSpecSkuDTO) {
         return Result.success(QueryNullCheckAspect.getQueryResult());
     }
 
-    @PreAuthorize("@ss.hasPermi('11.6.2')")
+    @PreAuthorize("@sr.hasPermission('11.6.2')")
     @PostMapping("/api/b2c/good/createGoodSpecSku")
     public Result createGoodSpecSku(@Validated(B2cGoodSpecSkuDTO.Create.class) @RequestBody B2cGoodSpecSkuDTO b2cGoodSpecSkuDTO) {
         return Result.success(b2cGoodSpecSkuService.insertGoodSpecSku(b2cGoodSpecSkuDTO), "创建成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('11.6.3')")
+    @PreAuthorize("@sr.hasPermission('11.6.3')")
     @QueryNullCheck(serviceClass = B2cGoodSpecSkuService.class, serviceMethod = "queryGoodSpecSkuDetail", argField = "good_spec_sku_id", message = "商品规格SKU不存在")
     @PutMapping("/api/b2c/good/updateGoodSpecSku")
     public Result updateGoodSpecSku(@Validated(B2cGoodSpecSkuDTO.Update.class) @RequestBody B2cGoodSpecSkuDTO b2cGoodSpecSkuDTO) {
         return Result.success(b2cGoodSpecSkuService.updateGoodSpecSku(b2cGoodSpecSkuDTO), "更新成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('11.6.4')")
+    @PreAuthorize("@sr.hasPermission('11.6.4')")
     @QueryNullCheck(serviceClass = B2cGoodSpecSkuService.class, serviceMethod = "queryGoodSpecSkuDetail", argField = "good_spec_sku_id", message = "商品规格SKU不存在")
     @DeleteMapping("/api/b2c/good/deleteGoodSpecSku")
     public Result deleteGoodSpecSku(@Validated(B2cGoodSpecSkuDTO.Delete.class) @RequestBody B2cGoodSpecSkuDTO b2cGoodSpecSkuDTO) {

+ 5 - 5
src/main/java/com/backendsys/controller/B2c/B2cGoodUnitController.java

@@ -21,33 +21,33 @@ public class B2cGoodUnitController {
     @Autowired
     private B2cGoodUnitService b2cGoodUnitService;
 
-    @PreAuthorize("@ss.hasPermi('11.4')")
+    @PreAuthorize("@sr.hasPermission('11.4')")
     @GetMapping("/api/b2c/good/getGoodUnit")
     public Result getGoodUnit(@Validated PageDTO pageDTO, @Validated B2cGoodUnitDTO b2cGoodUnitDTO) {
         return Result.success(b2cGoodUnitService.queryGoodUnitList(pageDTO.getPage_num(), pageDTO.getPage_size(), b2cGoodUnitDTO));
     }
 
-    @PreAuthorize("@ss.hasPermi('11.4.1')")
+    @PreAuthorize("@sr.hasPermission('11.4.1')")
     @QueryNullCheck(serviceClass = B2cGoodUnitService.class, serviceMethod = "queryGoodUnitDetail", argField = "good_unit_id", message = "商品单位不存在")
     @GetMapping("/api/b2c/good/getGoodUnitDetail")
     public Result getGoodUnitDetail(@Validated(B2cGoodUnitDTO.Detail.class) B2cGoodUnitDTO b2cGoodUnitDTO) {
         return Result.success(QueryNullCheckAspect.getQueryResult());
     }
 
-    @PreAuthorize("@ss.hasPermi('11.4.2')")
+    @PreAuthorize("@sr.hasPermission('11.4.2')")
     @PostMapping("/api/b2c/good/createGoodUnit")
     public Result createGoodUnit(@Validated(B2cGoodUnitDTO.Create.class) @RequestBody B2cGoodUnitDTO b2cGoodUnitDTO) {
         return Result.success(b2cGoodUnitService.insertGoodUnit(b2cGoodUnitDTO), "创建成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('11.4.3')")
+    @PreAuthorize("@sr.hasPermission('11.4.3')")
     @QueryNullCheck(serviceClass = B2cGoodUnitService.class, serviceMethod = "queryGoodUnitDetail", argField = "good_unit_id", message = "商品单位不存在")
     @PutMapping("/api/b2c/good/updateGoodUnit")
     public Result updateGoodUnit(@Validated(B2cGoodUnitDTO.Update.class) @RequestBody B2cGoodUnitDTO b2cGoodUnitDTO) {
         return Result.success(b2cGoodUnitService.updateGoodUnit(b2cGoodUnitDTO), "更新成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('11.4.4')")
+    @PreAuthorize("@sr.hasPermission('11.4.4')")
     @QueryNullCheck(serviceClass = B2cGoodUnitService.class, serviceMethod = "queryGoodUnitDetail", argField = "good_unit_id", message = "商品单位不存在")
     @DeleteMapping("/api/b2c/good/deleteGoodUnit")
     public Result deleteGoodUnit(@Validated(B2cGoodUnitDTO.Delete.class) @RequestBody B2cGoodUnitDTO b2cGoodUnitDTO) {

+ 6 - 6
src/main/java/com/backendsys/controller/B2c/B2cMemberController.java

@@ -22,40 +22,40 @@ public class B2cMemberController {
     @Autowired
     private B2cMemberService b2cMemberService;
 
-    @PreAuthorize("@ss.hasPermi('3.3')")
+    @PreAuthorize("@sr.hasPermission('3.3')")
     @GetMapping("/api/b2c/member/getMember")
     public Result getMember(@Validated PageDTO pageDTO, @Validated B2cMemberDTO b2cMemberDTO) {
         return Result.success(b2cMemberService.queryMemberList(pageDTO.getPage_num(), pageDTO.getPage_size(), b2cMemberDTO));
     }
 
-    @PreAuthorize("@ss.hasPermi('3.3.1')")
+    @PreAuthorize("@sr.hasPermission('3.3.1')")
     @QueryNullCheck(serviceClass = B2cMemberService.class, serviceMethod = "queryMemberDetail", argField = "member_id", message = "会员不存在")
     @GetMapping("/api/b2c/member/getMemberDetail")
     public Result getMemberDetail(@Validated(B2cMemberDTO.Detail.class) B2cMemberDTO b2cMemberDTO) {
         return Result.success(QueryNullCheckAspect.getQueryResult());
     }
 
-    @PreAuthorize("@ss.hasPermi('3.3.2')")
+    @PreAuthorize("@sr.hasPermission('3.3.2')")
     @PostMapping("/api/b2c/createMember")
     public Result createMember(@Validated(B2cMemberDTO.Create.class) @RequestBody B2cMemberDTO b2cMemberDTO) {
         return Result.success(b2cMemberService.insertMember(b2cMemberDTO), "创建成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('3.3.3')")
+    @PreAuthorize("@sr.hasPermission('3.3.3')")
     @QueryNullCheck(serviceClass = B2cMemberService.class, serviceMethod = "queryMemberDetail", argField = "member_id", message = "会员不存在")
     @PutMapping("/api/b2c/member/updateMember")
     public Result updateMember(@Validated(B2cMemberDTO.Update.class) @RequestBody B2cMemberDTO b2cMemberDTO) {
         return Result.success(b2cMemberService.updateMember(b2cMemberDTO), "更新成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('3.3.4')")
+    @PreAuthorize("@sr.hasPermission('3.3.4')")
     @QueryNullCheck(serviceClass = B2cMemberService.class, serviceMethod = "queryMemberDetail", argField = "member_id", message = "会员不存在")
     @DeleteMapping("/api/b2c/member/deleteMember")
     public Result deleteMember(@Validated(B2cMemberDTO.Delete.class) @RequestBody B2cMemberDTO b2cMemberDTO) {
         return Result.success(b2cMemberService.deleteMember(b2cMemberDTO), "删除成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('3.3.6')")
+    @PreAuthorize("@sr.hasPermission('3.3.6')")
     @GetMapping("/api/b2c/member/getMemberLogined")
     public Result getMemberLogined(@Validated PageDTO pageDTO, @Validated B2cMemberDTO b2cMemberDTO) {
         return Result.success(b2cMemberService.queryMemberWithLogined(pageDTO.getPage_num(), pageDTO.getPage_size(), b2cMemberDTO));

+ 3 - 3
src/main/java/com/backendsys/controller/B2c/B2cOrderController.java

@@ -44,20 +44,20 @@ public class B2cOrderController {
     @Autowired
     private B2cShoppingCartService b2cShoppingCartService;
 
-    @PreAuthorize("@ss.hasPermi('6.3')")
+    @PreAuthorize("@sr.hasPermission('6.3')")
     @GetMapping("/api/b2c/order/getOrder")
     public Result getOrder(@Validated PageDTO pageDTO, @Validated B2cOrderDTO b2cOrderDTO) {
         return Result.success(b2cOrderService.queryOrderList(pageDTO.getPage_num(), pageDTO.getPage_size(), b2cOrderDTO));
     }
     
-    @PreAuthorize("@ss.hasPermi('6.3.1')")
+    @PreAuthorize("@sr.hasPermission('6.3.1')")
     @QueryNullCheck(serviceClass = B2cOrderService.class, serviceMethod = "queryOrderDetail", argField = "order_id", message = "订单不存在")
     @GetMapping("/api/b2c/order/getOrderDetail")
     public Result getOrderDetail(@Validated(B2cOrderDTO.Detail.class) B2cOrderDTO b2cOrderDTO) {
         return Result.success(QueryNullCheckAspect.getQueryResult());
     }
 
-    @PreAuthorize("@ss.hasPermi('6.3.3')")
+    @PreAuthorize("@sr.hasPermission('6.3.3')")
     @QueryNullCheck(serviceClass = B2cOrderService.class, serviceMethod = "queryOrderDetail", argField = "order_id", message = "订单不存在")
     @PutMapping("/api/b2c/order/updateOrder")
     public Result updateOrder(@Validated(B2cOrderDTO.Update.class) @RequestBody B2cOrderDTO b2cOrderDTO) {

+ 5 - 5
src/main/java/com/backendsys/controller/Cms/CmsArticleCategoryController.java

@@ -20,33 +20,33 @@ public class CmsArticleCategoryController {
     @Autowired
     private CmsArticleCategoryService cmsArticleCategoryService;
 
-    @PreAuthorize("@ss.hasPermi('10.2')")
+    @PreAuthorize("@sr.hasPermission('10.2')")
     @GetMapping("/api/cms/article/getArticleCategory")
     public Result getArticleCategory(@Validated PageDTO pageDTO, @Validated CmsArticleCategoryDTO cmsArticleCategoryDTO) {
         return Result.success(cmsArticleCategoryService.queryArticleCategory(pageDTO.getPage_num(), pageDTO.getPage_size(), cmsArticleCategoryDTO));
     }
 
-    @PreAuthorize("@ss.hasPermi('10.2.1')")
+    @PreAuthorize("@sr.hasPermission('10.2.1')")
     @QueryNullCheck(serviceClass = CmsArticleCategoryService.class, serviceMethod = "queryArticleCategoryDetail", argField = "article_category_id", message = "资讯分类不存在")
     @GetMapping("/api/cms/article/getArticleCategoryDetail")
     public Result getArticleCategoryDetail(@Validated(CmsArticleCategoryDTO.Detail.class) CmsArticleCategoryDTO cmsArticleCategoryDTO) {
         return Result.success(QueryNullCheckAspect.getQueryResult());
     }
 
-    @PreAuthorize("@ss.hasPermi('10.2.2')")
+    @PreAuthorize("@sr.hasPermission('10.2.2')")
     @PostMapping("/api/cms/article/createArticleCategory")
     public Result createArticleCategory(@Validated(CmsArticleCategoryDTO.Create.class) @RequestBody CmsArticleCategoryDTO cmsArticleCategoryDTO) {
         return Result.success(cmsArticleCategoryService.insertArticleCategory(cmsArticleCategoryDTO), "创建成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('10.2.3')")
+    @PreAuthorize("@sr.hasPermission('10.2.3')")
     @QueryNullCheck(serviceClass = CmsArticleCategoryService.class, serviceMethod = "queryArticleCategoryDetail", argField = "article_category_id", message = "资讯分类不存在")
     @PutMapping("/api/cms/article/updateArticleCategory")
     public Result updateArticleCategory(@Validated(CmsArticleCategoryDTO.Update.class) @RequestBody CmsArticleCategoryDTO cmsArticleCategoryDTO) {
         return Result.success(cmsArticleCategoryService.updateArticleCategory(cmsArticleCategoryDTO), "更新成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('10.2.4')")
+    @PreAuthorize("@sr.hasPermission('10.2.4')")
     @QueryNullCheck(serviceClass = CmsArticleCategoryService.class, serviceMethod = "queryArticleCategoryDetail", argField = "article_category_id", message = "资讯分类不存在")
     @DeleteMapping("/api/cms/article/deleteArticleCategory")
     public Result deleteArticleCategory(@Validated(CmsArticleCategoryDTO.Delete.class) @RequestBody CmsArticleCategoryDTO cmsArticleCategoryDTO) {

+ 7 - 7
src/main/java/com/backendsys/controller/Cms/CmsArticleController.java

@@ -28,25 +28,25 @@ public class CmsArticleController {
     // @Validated @Translate CmsArticleDTO cmsArticleDTO
     // 使用这个写法,让实体类自动添加 lang 参数,这个参数来自于 Cookie
 
-    @PreAuthorize("@ss.hasPermi('10.3')")
+    @PreAuthorize("@sr.hasPermission('10.3')")
     @GetMapping("/api/cms/article/getArticle")
     public Result getArticle(@Validated PageDTO pageDTO, @Validated CmsArticleDTO cmsArticleDTO) {
         return Result.success(cmsArticleService.queryArticle(pageDTO.getPage_num(), pageDTO.getPage_size(), cmsArticleDTO));
     }
 
-    @PreAuthorize("@ss.hasPermi('10.3.1')")
+    @PreAuthorize("@sr.hasPermission('10.3.1')")
     @GetMapping("/api/cms/article/getArticleDetail")
     public Result getArticleDetail(@Validated(CmsArticleDTO.Detail.class) CmsArticleDTO cmsArticleDTO) {
         return Result.success(cmsArticleService.queryArticleDetail(cmsArticleDTO));
     }
 
-    // @PreAuthorize("@ss.hasPermi('5.3.1')")
+    // @PreAuthorize("@sr.hasPermission('5.3.1')")
     // @GetMapping("/api/cms/article/getArticleTranslation")
     // public Result getArticleTranslation(@Validated(CmsArticleDTO.Detail.class) CmsArticleDTO cmsArticleDTO) {
     //     return Result.success(cmsArticleService.queryArticleTranslation(cmsArticleDTO));
     // }
 
-    @PreAuthorize("@ss.hasPermi('10.3.2')")
+    @PreAuthorize("@sr.hasPermission('10.3.2')")
     @PostMapping("/api/cms/article/createArticle")
     public Result createArticle(@Validated(CmsArticleDTO.Create.class) @RequestBody CmsArticleDTO cmsArticleDTO) {
         // [查询] 自身 UserId
@@ -55,21 +55,21 @@ public class CmsArticleController {
         return Result.success(cmsArticleService.insertArticle(cmsArticleDTO), "创建成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('10.3.3')")
+    @PreAuthorize("@sr.hasPermission('10.3.3')")
     // @QueryNullCheck(serviceClass = CmsArticleService.class, serviceMethod = "queryArticleDetail", argField = "article_id", message = "资讯不存在")
     @PutMapping("/api/cms/article/updateArticle")
     public Result updateArticle(@Validated(CmsArticleDTO.Update.class) @RequestBody CmsArticleDTO cmsArticleDTO) {
         return Result.success(cmsArticleService.updateArticle(cmsArticleDTO), "更新成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('10.3.4')")
+    @PreAuthorize("@sr.hasPermission('10.3.4')")
     // @QueryNullCheck(serviceClass = CmsArticleService.class, serviceMethod = "queryArticleDetail", argField = "article_id", message = "资讯不存在")
     @DeleteMapping("/api/cms/article/deleteArticle")
     public Result deleteArticle(@Validated(CmsArticleDTO.Delete.class) @RequestBody CmsArticleDTO cmsArticleDTO) {
         return Result.success(cmsArticleService.deleteArticle(cmsArticleDTO), "删除成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('10.3.4')")
+    @PreAuthorize("@sr.hasPermission('10.3.4')")
     @DeleteMapping("/api/cms/article/deleteArticleBatch")
     public Result deleteArticleBatch(@Validated(CmsArticleDTO.Delete.class) @RequestBody CmsArticleDTO cmsArticleDTO) {
         return Result.success(cmsArticleService.deleteArticleBatch(cmsArticleDTO.getArticle_ids()), "删除成功");

+ 5 - 5
src/main/java/com/backendsys/controller/Cms/CmsBannerController.java

@@ -20,33 +20,33 @@ public class CmsBannerController {
     @Autowired
     private CmsBannerService cmsBannerService;
 
-    @PreAuthorize("@ss.hasPermi('10.1')")
+    @PreAuthorize("@sr.hasPermission('10.1')")
     @GetMapping("/api/cms/banner/getBanner")
     public Result getBanner(@Validated PageDTO pageDTO, @Validated CmsBannerDTO cmsBannerDTO) {
         return Result.success(cmsBannerService.queryBanner(pageDTO.getPage_num(), pageDTO.getPage_size(), cmsBannerDTO));
     }
 
-    @PreAuthorize("@ss.hasPermi('10.1.1')")
+    @PreAuthorize("@sr.hasPermission('10.1.1')")
     @QueryNullCheck(serviceClass = CmsBannerService.class, serviceMethod = "queryBannerDetail", argField = "banner_id", message = "幻灯片不存在")
     @GetMapping("/api/cms/banner/getBannerDetail")
     public Result getBannerDetail(@Validated(CmsBannerDTO.Detail.class) CmsBannerDTO cmsBannerDTO) {
         return Result.success(QueryNullCheckAspect.getQueryResult());
     }
 
-    @PreAuthorize("@ss.hasPermi('10.1.2')")
+    @PreAuthorize("@sr.hasPermission('10.1.2')")
     @PostMapping("/api/cms/banner/createBanner")
     public Result createBanner(@Validated(CmsBannerDTO.Create.class) @RequestBody CmsBannerDTO cmsBannerDTO) {
         return Result.success(cmsBannerService.insertBanner(cmsBannerDTO), "创建成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('10.1.3')")
+    @PreAuthorize("@sr.hasPermission('10.1.3')")
     @QueryNullCheck(serviceClass = CmsBannerService.class, serviceMethod = "queryBannerDetail", argField = "banner_id", message = "幻灯片不存在")
     @PutMapping("/api/cms/banner/updateBanner")
     public Result updateBanner(@Validated(CmsBannerDTO.Update.class) @RequestBody CmsBannerDTO cmsBannerDTO) {
         return Result.success(cmsBannerService.updateBanner(cmsBannerDTO), "更新成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('10.1.4')")
+    @PreAuthorize("@sr.hasPermission('10.1.4')")
     @QueryNullCheck(serviceClass = CmsBannerService.class, serviceMethod = "queryBannerDetail", argField = "banner_id", message = "幻灯片不存在")
     @DeleteMapping("/api/cms/banner/deleteBanner")
     public Result deleteBanner(@Validated(CmsBannerDTO.Delete.class) @RequestBody CmsBannerDTO cmsBannerDTO) {

+ 3 - 3
src/main/java/com/backendsys/controller/Cms/CmsPageController.java

@@ -25,7 +25,7 @@ public class CmsPageController {
     // 使用这个写法,让实体类自动添加 lang 参数,这个参数来自于 Cookie
 
 
-    @PreAuthorize("@ss.hasPermi('12.1')")
+    @PreAuthorize("@sr.hasPermission('12.1')")
     @GetMapping("/api/cms/page/getPage")
     public Result getPage(@Validated PageDTO pageDTO, @Validated CmsPageDTO cmsPageDTO) {
         return Result.success(cmsPageService.queryPage(pageDTO.getPage_num(), pageDTO.getPage_size(), cmsPageDTO));
@@ -34,7 +34,7 @@ public class CmsPageController {
     /**
      * 详情
      */
-    @PreAuthorize("@ss.hasPermi('12.2')")
+    @PreAuthorize("@sr.hasPermission('12.2')")
     @GetMapping("/api/cms/page/getPageDetail")
     public Result getPageDetail(@Validated CmsPageDTO cmsPageDTO) {
 
@@ -48,7 +48,7 @@ public class CmsPageController {
         return Result.success(cmsPageService.queryPageDetail(cmsPageDTO));
     }
 
-    @PreAuthorize("@ss.hasPermi('12.3')")
+    @PreAuthorize("@sr.hasPermission('12.3')")
     // @QueryNullCheck(serviceClass = CmsPageService.class, serviceMethod = "queryPageDetail", argField = "page_id", message = "资讯不存在")
     @PutMapping("/api/cms/page/updatePage")
     public Result updatePage(@Validated(CmsPageDTO.Update.class) @RequestBody CmsPageDTO cmsPageDTO) {

+ 2 - 2
src/main/java/com/backendsys/controller/Cms/CmsSiteInfoController.java

@@ -18,7 +18,7 @@ public class CmsSiteInfoController {
     @Autowired
     private CmsSiteInfoService cmsSiteInfoService;
 
-    @PreAuthorize("@ss.hasPermi('13')")
+    @PreAuthorize("@sr.hasPermission('13')")
     @GetMapping("/api/cms/site/getSiteInfo")
     public Result getSiteInfo(@Validated CmsSiteInfoDTO cmsSiteInfoDTO) {
         return Result.success(cmsSiteInfoService.querySiteInfo(cmsSiteInfoDTO));
@@ -29,7 +29,7 @@ public class CmsSiteInfoController {
         return Result.success(cmsSiteInfoService.querySiteInfo(cmsSiteInfoDTO));
     }
 
-    @PreAuthorize("@ss.hasPermi('13.1')")
+    @PreAuthorize("@sr.hasPermission('13.1')")
     @PutMapping("/api/cms/site/updateSiteInfo")
     public Result updateSiteInfo(@Validated(CmsSiteInfoDTO.Update.class) @RequestBody CmsSiteInfoDTO cmsSiteInfoDTO) {
         cmsSiteInfoDTO.setId(Long.valueOf(1));

+ 5 - 5
src/main/java/com/backendsys/controller/Med/MedMaterialCategoryController.java

@@ -20,33 +20,33 @@ public class MedMaterialCategoryController {
     @Autowired
     private MedMaterialCategoryService medMaterialCategoryService;
 
-    @PreAuthorize("@ss.hasPermi('20.2')")
+    @PreAuthorize("@sr.hasPermission('20.2')")
     @GetMapping("/api/med/material/getMaterialCategory")
     public Result getMaterialCategory(@Validated PageDTO pageDTO, @Validated MedMaterialCategoryDTO medMaterialCategoryDTO) {
         return Result.success(medMaterialCategoryService.queryMaterialCategory(pageDTO.getPage_num(), pageDTO.getPage_size(), medMaterialCategoryDTO));
     }
 
-    @PreAuthorize("@ss.hasPermi('20.2.1')")
+    @PreAuthorize("@sr.hasPermission('20.2.1')")
     @QueryNullCheck(serviceClass = MedMaterialCategoryService.class, serviceMethod = "queryMaterialCategoryDetail", argField = "material_category_id", message = "素材分类不存在")
     @GetMapping("/api/med/material/getMaterialCategoryDetail")
     public Result getMaterialCategoryDetail(@Validated(MedMaterialCategoryDTO.Detail.class) MedMaterialCategoryDTO medMaterialCategoryDTO) {
         return Result.success(QueryNullCheckAspect.getQueryResult());
     }
 
-    @PreAuthorize("@ss.hasPermi('20.2.2')")
+    @PreAuthorize("@sr.hasPermission('20.2.2')")
     @PostMapping("/api/med/material/createMaterialCategory")
     public Result createMaterialCategory(@Validated(MedMaterialCategoryDTO.Create.class) @RequestBody MedMaterialCategoryDTO medMaterialCategoryDTO) {
         return Result.success(medMaterialCategoryService.insertMaterialCategory(medMaterialCategoryDTO), "创建成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('20.2.3')")
+    @PreAuthorize("@sr.hasPermission('20.2.3')")
     @QueryNullCheck(serviceClass = MedMaterialCategoryService.class, serviceMethod = "queryMaterialCategoryDetail", argField = "material_category_id", message = "素材分类不存在")
     @PutMapping("/api/med/material/updateMaterialCategory")
     public Result updateMaterialCategory(@Validated(MedMaterialCategoryDTO.Update.class) @RequestBody MedMaterialCategoryDTO medMaterialCategoryDTO) {
         return Result.success(medMaterialCategoryService.updateMaterialCategory(medMaterialCategoryDTO), "更新成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('20.2.4')")
+    @PreAuthorize("@sr.hasPermission('20.2.4')")
     @QueryNullCheck(serviceClass = MedMaterialCategoryService.class, serviceMethod = "queryMaterialCategoryDetail", argField = "material_category_id", message = "素材分类不存在")
     @DeleteMapping("/api/med/material/deleteMaterialCategory")
     public Result deleteMaterialCategory(@Validated(MedMaterialCategoryDTO.Delete.class) @RequestBody MedMaterialCategoryDTO medMaterialCategoryDTO) {

+ 8 - 8
src/main/java/com/backendsys/controller/Med/MedMaterialController.java

@@ -25,20 +25,20 @@ public class MedMaterialController {
     private MedMaterialService medMaterialService;
 
     // 素材列表
-    @PreAuthorize("@ss.hasPermi('20.1')")
+    @PreAuthorize("@sr.hasPermission('20.1')")
     @GetMapping("/api/med/material/getMaterial")
     public Result getMaterial(@Validated PageDTO pageDTO, @Validated MedMaterialDTO medMaterialDTO) {
         return Result.success(medMaterialService.queryMaterial(pageDTO.getPage_num(), pageDTO.getPage_size(), medMaterialDTO));
     }
 
     // 素材中心 (仅显示启用/审核通过的)
-    @PreAuthorize("@ss.hasPermi('20.1.1')")
+    @PreAuthorize("@sr.hasPermission('20.1.1')")
     @GetMapping("/api/med/material/getMaterialPublish")
     public Result getMaterialPublish(@Validated PageDTO pageDTO, @Validated MedMaterialDTO medMaterialDTO) {
         return Result.success(medMaterialService.queryMaterialPublish(pageDTO.getPage_num(), pageDTO.getPage_size(), medMaterialDTO));
     }
 
-    @PreAuthorize("@ss.hasPermi('20.1.2')")
+    @PreAuthorize("@sr.hasPermission('20.1.2')")
     @GetMapping("/api/med/material/getMaterialDetail")
     public Result getMaterialDetail(@Validated(MedMaterialDTO.Detail.class) MedMaterialDTO medMaterialDTO) {
         return Result.success(medMaterialService.queryMaterialDetail(medMaterialDTO));
@@ -65,7 +65,7 @@ public class MedMaterialController {
         return null;
     }
 
-    @PreAuthorize("@ss.hasPermi('20.1.3')")
+    @PreAuthorize("@sr.hasPermission('20.1.3')")
     @PostMapping("/api/med/material/createMaterial")
     public Result createMaterial(@Validated(MedMaterialDTO.Create.class) @RequestBody MedMaterialDTO medMaterialDTO) {
 
@@ -84,7 +84,7 @@ public class MedMaterialController {
 
 
 
-    @PreAuthorize("@ss.hasPermi('20.1.4')")
+    @PreAuthorize("@sr.hasPermission('20.1.4')")
     @PutMapping("/api/med/material/updateMaterial")
     public Result updateMaterial(@Validated(MedMaterialDTO.Update.class) @RequestBody MedMaterialDTO medMaterialDTO) {
 
@@ -97,20 +97,20 @@ public class MedMaterialController {
     }
 
 
-    @PreAuthorize("@ss.hasPermi('20.1.5')")
+    @PreAuthorize("@sr.hasPermission('20.1.5')")
     @QueryNullCheck(serviceClass = MedMaterialService.class, serviceMethod = "queryMaterialById", argField = "material_id", message = "素材不存在")
     @PutMapping("/api/med/material/auditMaterial")
     public Result auditMaterial(@Validated(MedMaterialDTO.Audit.class) @RequestBody MedMaterialDTO medMaterialDTO) {
         return Result.success(medMaterialService.auditMaterial(medMaterialDTO), "审核成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('20.1.6')")
+    @PreAuthorize("@sr.hasPermission('20.1.6')")
     @DeleteMapping("/api/med/material/deleteMaterial")
     public Result deleteMaterial(@Validated(MedMaterialDTO.Delete.class) @RequestBody MedMaterialDTO medMaterialDTO) {
         return Result.success(medMaterialService.deleteMaterial(medMaterialDTO), "删除成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('20.1.6')")
+    @PreAuthorize("@sr.hasPermission('20.1.6')")
     @DeleteMapping("/api/med/material/deleteMaterialBatch")
     public Result deleteMaterialBatch(@Validated(MedMaterialDTO.Delete.class) @RequestBody MedMaterialDTO medMaterialDTO) {
         return Result.success(medMaterialService.deleteMaterialBatch(medMaterialDTO.getMaterial_ids()), "删除成功");

+ 8 - 8
src/main/java/com/backendsys/controller/Med/MedMyMaterialController.java

@@ -38,7 +38,7 @@ public class MedMyMaterialController {
     @Autowired
     private MedMaterialMapper medMaterialMapper;
 
-    @PreAuthorize("@ss.hasPermi('21.1')")
+    @PreAuthorize("@sr.hasPermission('21.1')")
     @GetMapping("/api/med/material/getMyMaterial")
     public Result getMyMaterial(@Validated PageDTO pageDTO, @Validated MedMyMaterialDTO medMyMaterialDTO) {
 
@@ -49,7 +49,7 @@ public class MedMyMaterialController {
         return Result.success(medMyMaterialService.queryMyMaterial(pageDTO.getPage_num(), pageDTO.getPage_size(), medMyMaterialDTO));
     }
 
-    @PreAuthorize("@ss.hasPermi('21.1.1')")
+    @PreAuthorize("@sr.hasPermission('21.1.1')")
     @GetMapping("/api/med/material/getMyMaterialDetail")
     public Result getMyMaterialDetail(@Validated(MedMyMaterialDTO.Detail.class) MedMyMaterialDTO medMyMaterialDTO) {
 
@@ -69,7 +69,7 @@ public class MedMyMaterialController {
      * @param medMyMaterialDTO
      * @return
      */
-    @PreAuthorize("@ss.hasPermi('21.1.2')")
+    @PreAuthorize("@sr.hasPermission('21.1.2')")
     @PostMapping("/api/med/material/addToMyMaterial")
     public Result addToMyMaterial(@Validated(MedMyMaterialDTO.Create.class) @RequestBody MedMyMaterialDTO medMyMaterialDTO) {
 
@@ -102,7 +102,7 @@ public class MedMyMaterialController {
      * @param medMyMaterialDTO
      * @return
      */
-    @PreAuthorize("@ss.hasPermi('21.1.3')")
+    @PreAuthorize("@sr.hasPermission('21.1.3')")
     @PostMapping("/api/med/material/shareToMaterial")
     public Result shareToMaterial(@Validated(MedMyMaterialDTO.Detail.class) @RequestBody MedMyMaterialDTO medMyMaterialDTO) {
 
@@ -154,7 +154,7 @@ public class MedMyMaterialController {
      * @param medMyMaterialDTO
      * @return
      */
-    @PreAuthorize("@ss.hasPermi('21.1.4')")
+    @PreAuthorize("@sr.hasPermission('21.1.4')")
     @PostMapping("/api/med/material/createMyMaterial")
     public Result createMyMaterial(@Validated(MedMyMaterialDTO.Create.class) @RequestBody MedMyMaterialDTO medMyMaterialDTO) {
 
@@ -171,7 +171,7 @@ public class MedMyMaterialController {
         return Result.success(medMyMaterialService.insertMyMaterial(medMyMaterialDTO), "创建成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('21.1.5')")
+    @PreAuthorize("@sr.hasPermission('21.1.5')")
     @PutMapping("/api/med/material/updateMyMaterial")
     public Result updateMyMaterial(@Validated(MedMaterialDTO.Update.class) @RequestBody MedMyMaterialDTO medMyMaterialDTO) {
 
@@ -186,7 +186,7 @@ public class MedMyMaterialController {
 
 
 
-    @PreAuthorize("@ss.hasPermi('21.1.6')")
+    @PreAuthorize("@sr.hasPermission('21.1.6')")
     @DeleteMapping("/api/med/material/deleteMyMaterial")
     public Result deleteMyMaterial(@Validated(MedMyMaterialDTO.Delete.class) @RequestBody MedMyMaterialDTO medMyMaterialDTO) {
         
@@ -207,7 +207,7 @@ public class MedMyMaterialController {
         return Result.success(medMyMaterialService.deleteMyMaterial(medMyMaterialDTO), "删除成功");
     }
 
-    @PreAuthorize("@ss.hasPermi('21.1.6')")
+    @PreAuthorize("@sr.hasPermission('21.1.6')")
     @DeleteMapping("/api/med/material/deleteMyMaterialBatch")
     public Result deleteMyMaterialBatch(@Validated(MedMyMaterialDTO.Delete.class) @RequestBody MedMyMaterialDTO medMyMaterialDTO) {
 

+ 4 - 4
src/main/java/com/backendsys/controller/Systems/SysMenuController.java

@@ -20,7 +20,7 @@
 //    @Autowired
 //    private SysMenuService sysMenuService;
 //
-//    // @PreAuthorize("@ss.hasPermi('1.3')")
+//    // @PreAuthorize("@sr.hasPermission('1.3')")
 //    // 由于动态路由需要提前加载,在 /login 时就必须调用,所以此处设置为公共
 //    @GetMapping("/api/public/system/menu/getMenu")
 //    public Result getMenu(@Validated SysMenuDTO sysMenuDTO) {
@@ -32,20 +32,20 @@
 //        return null;
 //    }
 //
-//    @PreAuthorize("@ss.hasPermi('1.3.1')")
+//    @PreAuthorize("@sr.hasPermission('1.3.1')")
 //    @PostMapping("/api/system/menu/createMenu")
 //    public Result createMenu(@Validated(SysMenuDTO.Create.class) @RequestBody SysMenuDTO sysMenuDTO) {
 //        return Result.success(sysMenuService.insertMenu(sysMenuDTO), "创建成功");
 //    }
 //
-//    @PreAuthorize("@ss.hasPermi('1.3.2')")
+//    @PreAuthorize("@sr.hasPermission('1.3.2')")
 //    @QueryNullCheck(serviceClass = SysMenuService.class, serviceMethod = "queryMenuDetail", argField = "menu_id", message = "系统菜单不存在")
 //    @PutMapping("/api/system/menu/updateMenu")
 //    public Result updateMenu(@Validated(SysMenuDTO.Update.class) @RequestBody SysMenuDTO sysMenuDTO) {
 //        return Result.success(sysMenuService.updateMenu(sysMenuDTO), "更新成功");
 //    }
 //
-//    @PreAuthorize("@ss.hasPermi('1.3.3')")
+//    @PreAuthorize("@sr.hasPermission('1.3.3')")
 //    @QueryNullCheck(serviceClass = SysMenuService.class, serviceMethod = "queryMenuDetail", argField = "menu_id", message = "系统菜单不存在")
 //    @DeleteMapping("/api/system/menu/deleteMenu")
 //    public Result deleteMenu(@Validated(SysMenuDTO.Delete.class) @RequestBody SysMenuDTO sysMenuDTO) {

+ 10 - 10
src/main/java/com/backendsys/controller/Systems/SysUserController.java

@@ -54,13 +54,13 @@
 //        return true;
 //    }
 //
-////    @PreAuthorize("@ss.hasPermi('3.1')")
+////    @PreAuthorize("@sr.hasPermission('3.1')")
 ////    @GetMapping("/api/system/user/getUserLogined")
 ////    public Result getUserLogined(@Validated PageDTO pageDTO, @Validated SysUserDTO sysUserDTO) {
 ////        return Result.success(sysUserService.queryUserWithLogined(pageDTO.getPage_num(), pageDTO.getPage_size(), sysUserDTO));
 ////    }
 //
-////    @PreAuthorize("@ss.hasPermi('3.2')")
+////    @PreAuthorize("@sr.hasPermission('3.2')")
 ////    @GetMapping("/api/system/user/getUser")
 ////    public Result getUser(@Validated PageDTO pageDTO, @Validated SysUserDTO sysUserDTO) {
 ////        return Result.success(sysUserService.queryUserList(pageDTO.getPage_num(), pageDTO.getPage_size(), sysUserDTO));
@@ -89,13 +89,13 @@
 ////        return Result.success(sysUserService.queryUserById(sysUserDTO.getUser_id()));
 ////    }
 //
-////    @PreAuthorize("@ss.hasPermi('3.2.2')")
+////    @PreAuthorize("@sr.hasPermission('3.2.2')")
 ////    @PostMapping("/api/system/user/createUser")
 ////    public Result createUser(@Validated(SysUserDTO.Create.class) @RequestBody SysUserDTO sysUserDTO) {
 ////        return Result.success(sysUserService.insertUser(sysUserDTO), "创建成功");
 ////    }
 //
-////    @PreAuthorize("@ss.hasPermi('3.2.3')")
+////    @PreAuthorize("@sr.hasPermission('3.2.3')")
 ////    @QueryNullCheck(serviceClass = SysUserService.class, serviceMethod = "queryUserById", argField = "user_id", message = "用户不存在")
 ////    @PutMapping("/api/system/user/updateUserInfo")
 ////    public Result updateUser(@Validated(SysUserDTO.Update.class) @RequestBody SysUserDTO sysUserDTO) {
@@ -112,7 +112,7 @@
 ////        return Result.success(sysUserService.updateUserInfo(sysUserDTO), "更新成功");
 ////    }
 //
-////    @PreAuthorize("@ss.hasPermi('3.2.6')")
+////    @PreAuthorize("@sr.hasPermission('3.2.6')")
 ////    @QueryNullCheck(serviceClass = SysUserService.class, serviceMethod = "queryUserById", argField = "user_id", message = "用户不存在")
 ////    @PutMapping("/api/system/user/auditUser")
 ////    public Result auditUser(@Validated(SysUserDTO.Audit.class) @RequestBody SysUserDTO sysUserDTO) {
@@ -126,7 +126,7 @@
 ////        return Result.success(sysUserService.auditUser(sysUserDTO), "审核成功");
 ////    }
 //
-////    @PreAuthorize("@ss.hasPermi('3.2.3')")
+////    @PreAuthorize("@sr.hasPermission('3.2.3')")
 ////    @PutMapping("/api/system/user/updateUserPasswordSelf")
 ////    public Result updateUserPassword(@Validated(SysUserDTO.UpdatePasswordSelf.class) @RequestBody SysUserDTO sysUserDTO, HttpServletRequest request) {
 ////
@@ -151,7 +151,7 @@
 ////        return Result.success(sysUserService.updateUserPasswordSelf(sysUserDTO), "更新成功");
 ////    }
 //
-////    @PreAuthorize("@ss.hasPermi('3.2.3') && @ss.isSuper()")
+////    @PreAuthorize("@sr.hasPermission('3.2.3') && @ss.isSuper()")
 ////    @QueryNullCheck(serviceClass = SysUserService.class, serviceMethod = "queryUserById", argField = "user_id", message = "用户不存在")
 ////    @PutMapping("/api/system/user/resetUserPassword")
 ////    public Result resetUserPassword(@Validated(SysUserDTO.ResetPassword.class) @RequestBody SysUserDTO sysUserDTO, HttpServletRequest request) throws NoSuchAlgorithmException {
@@ -172,7 +172,7 @@
 ////    }
 //
 //
-////    @PreAuthorize("@ss.hasPermi('3.2.4')")
+////    @PreAuthorize("@sr.hasPermission('3.2.4')")
 ////    @QueryNullCheck(serviceClass = SysUserService.class, serviceMethod = "queryUserById", argField = "user_id", message = "用户不存在")
 ////    @DeleteMapping("/api/system/user/deleteUser")
 ////    public Result deleteUser(@Validated(SysUserDTO.Delete.class) @RequestBody SysUserDTO sysUserDTO) {
@@ -195,7 +195,7 @@
 ////        // return Result.success(sysUserService.deactivateUser(user_id), "删除成功 (flag)");
 ////    }
 //
-////    @PreAuthorize("@ss.hasPermi('3.2.5')")
+////    @PreAuthorize("@sr.hasPermission('3.2.5')")
 ////    @DeleteMapping("/api/system/user/deleteUserBatch")
 ////    public Result deleteUserBatch(@Validated(SysUserDTO.Delete.class) @RequestBody SysUserDTO sysUserDTO) {
 ////
@@ -214,7 +214,7 @@
 ////        return Result.success(sysUserService.deleteUserBatch(sysUserDTO.getUser_ids()), "删除成功 (批量)");
 ////    }
 //
-////    @PreAuthorize("@ss.hasPermi('3.2.7')")
+////    @PreAuthorize("@sr.hasPermission('3.2.7')")
 ////    @PostMapping("/api/system/user/kickUser")
 ////    public Result kickUser(@Validated(SysUserDTO.Delete.class) @RequestBody SysUserDTO sysUserDTO) {
 ////

+ 5 - 8
src/main/java/com/backendsys/controller/Systems/SysUserPointController.java

@@ -2,12 +2,12 @@ package com.backendsys.controller.Systems;
 
 import com.backendsys.aspect.HttpRequestAspect;
 import com.backendsys.exception.CustException;
-import com.backendsys.modules.common.config.security.utils.PermissionUtil;
 import com.backendsys.entity.PageDTO;
 import com.backendsys.entity.System.SysUserPointsDTO;
 import com.backendsys.enums.UserPointActivityType;
 import com.backendsys.enums.UserPointOperatorType;
 import com.backendsys.mapper.System.SysUserPointsHistoryMapper;
+import com.backendsys.modules.common.config.security.utils.SecurityUtil;
 import com.backendsys.service.System.SysUserPointHistoryService;
 import com.backendsys.service.System.SysUserService;
 import com.backendsys.utils.response.Result;
@@ -29,9 +29,6 @@ public class SysUserPointController {
     @Autowired
     private HttpRequestAspect httpRequestAspect;
 
-    @Autowired
-    private PermissionUtil permissionUtil;
-
     @Autowired
     private SysUserService sysUserService;
 
@@ -54,7 +51,7 @@ public class SysUserPointController {
             sysUserPointsDTO.setTarget_user_id(user_id);
         }
         // 检查是否为超级管理员
-        boolean isSuper = permissionUtil.isSuper();
+        boolean isSuper = SecurityUtil.isSuper();
         // 如果非超级管理员且目标用户ID与当前用户ID不匹配,则抛出权限异常
         if (!isSuper && sysUserPointsDTO.getTarget_user_id() != null && !sysUserPointsDTO.getTarget_user_id().equals(user_id)) {
             throw new CustException("当前用户没有权限查看或操作其他用户积分");
@@ -65,7 +62,7 @@ public class SysUserPointController {
      * 操作用户积分 (增加/减少)
      */
     @Transactional
-    @PreAuthorize("@ss.hasPermi('3.3.8')")
+    @PreAuthorize("@sr.hasPermission('3.3.8')")
     @PutMapping("/api/system/user/adjustmentUserPoint")
     public Result adjustmentUserPoint(@Validated(SysUserPointsDTO.Adjustment.class) @RequestBody SysUserPointsDTO sysUserPointsDTO) {
 
@@ -96,7 +93,7 @@ public class SysUserPointController {
     /**
      * 查询单个用户积分 (超级管理员可查看其他人)
      */
-    @PreAuthorize("@ss.hasPermi('3.3.9')")
+    @PreAuthorize("@sr.hasPermission('3.3.9')")
     @GetMapping("/api/system/user/getUserPoint")
     public Result getUserPoint(@Validated(SysUserPointsDTO.Detail.class) SysUserPointsDTO sysUserPointsDTO) {
         // 检查积分操作
@@ -107,7 +104,7 @@ public class SysUserPointController {
     /**
      * 查询用户积分操作记录列表
      */
-    @PreAuthorize("@ss.hasPermi('3.3.10')")
+    @PreAuthorize("@sr.hasPermission('3.3.10')")
     @GetMapping("/api/system/user/getUserPointHistory")
     public Result getUserPointHistory(@Validated PageDTO pageDTO, @Validated SysUserPointsDTO sysUserPointsDTO) {
         // 检查积分操作

+ 6 - 6
src/main/java/com/backendsys/controller/Systems/SysUserRoleV1Controller.java

@@ -36,14 +36,14 @@
 //    }
 //
 ////    // @Operation(summary = "系统用户角色列表")
-////    @PreAuthorize("@ss.hasPermi('4.1')")
+////    @PreAuthorize("@sr.hasPermission('4.1')")
 ////    @GetMapping("/api/system/user/getUserRole")
 ////    public Result getUserRole(@Validated PageDTO pageDTO, @Validated SysUserRoleDTO sysUserRoleDTO) {
 ////        return Result.success(sysUserRoleService.queryUserRole(pageDTO.getPage_num(), pageDTO.getPage_size(), sysUserRoleDTO));
 ////    }
 //
 //    //@Operation(summary = "系统用户角色详情")
-////    @PreAuthorize("@ss.hasPermi('4.1.1')")
+////    @PreAuthorize("@sr.hasPermission('4.1.1')")
 ////    @QueryNullCheck(serviceClass = SysUserRoleService.class, serviceMethod = "queryUserRoleDetail", argField = "role_id", message = "用户角色不存在")
 ////    @GetMapping("/api/v1/system/user/getUserRoleDetail")
 ////    public Result getUserRoleDetail(@Validated(SysUserRoleDTO.Detail.class) SysUserRoleDTO sysUserRoleDTO) {
@@ -51,7 +51,7 @@
 ////    }
 //
 ////    //@Operation(summary = "创建系统用户角色")
-////    @PreAuthorize("@ss.hasPermi('4.1.2')")
+////    @PreAuthorize("@sr.hasPermission('4.1.2')")
 ////    @PostMapping("/api/system/user/createUserRole")
 ////    public Result createUserRole(@Validated(SysUserRoleDTO.Create.class) @RequestBody SysUserRoleDTO sysUserRoleDTO) {
 ////        // 判断 role.modules 是否重复
@@ -63,7 +63,7 @@
 ////    }
 //
 ////    //@Operation(summary = "更新系统用户角色")
-////    @PreAuthorize("@ss.hasPermi('4.1.3')")
+////    @PreAuthorize("@sr.hasPermission('4.1.3')")
 ////    @QueryNullCheck(serviceClass = SysUserRoleService.class, serviceMethod = "queryUserRoleDetail", argField = "role_id", message = "用户角色不存在")
 ////    @PutMapping("/api/system/user/updateUserRole")
 ////    public Result updateUserRole(@Validated(SysUserRoleDTO.Update.class) @RequestBody SysUserRoleDTO sysUserRoleDTO) {
@@ -76,7 +76,7 @@
 ////    }
 //
 ////    //@Operation(summary = "删除系统用户角色")
-////    @PreAuthorize("@ss.hasPermi('4.1.4')")
+////    @PreAuthorize("@sr.hasPermission('4.1.4')")
 ////    @QueryNullCheck(serviceClass = SysUserRoleService.class, serviceMethod = "queryUserRoleDetail", argField = "role_id", message = "用户角色不存在")
 ////    @DeleteMapping("/api/system/user/deleteUserRole")
 ////    public Result deleteUserRole(@Validated(SysUserRoleDTO.Delete.class) @RequestBody SysUserRoleDTO sysUserRoleDTO) {
@@ -98,7 +98,7 @@
 ////        return Result.success(sysUserRoleService.deleteUserRole(sysUserRoleDTO), "删除成功");
 ////    }
 ////
-////    @PreAuthorize("@ss.hasPermi('4.1.5')")
+////    @PreAuthorize("@sr.hasPermission('4.1.5')")
 ////    @GetMapping("/api/system/user/getUserRoleModule")
 ////    public Result getUserRoleModule() {
 ////        return Result.success(sysUserRoleModuleService.queryUserRoleModule());

+ 1 - 1
src/main/java/com/backendsys/controller/Upload/UploadAliOSSController.java

@@ -53,7 +53,7 @@ public class UploadAliOSSController {
     /**
      * 阿里云 OSS
      */
-    @PreAuthorize("@ss.hasPermi(1.1)")
+    @PreAuthorize("@sr.hasPermission(1.1)")
     @PostMapping("/api/ali/ossUpload")
     public Result upload(@RequestParam("file") MultipartFile file) throws ClientException {
 

+ 1 - 1
src/main/java/com/backendsys/controller/Upload/UploadLocalController.java

@@ -32,7 +32,7 @@ public class UploadLocalController {
     @Value("${file.upload.max-size}")
     private long maxSize;
 
-    @PreAuthorize("@ss.hasPermi(1)")
+    @PreAuthorize("@sr.hasPermission(1)")
     @PostMapping("/api/upload")
     public Result uploadLocal(@RequestParam("file") MultipartFile file) {
 

+ 7 - 7
src/main/java/com/backendsys/controller/Upload/UploadTencentCOSController.java

@@ -80,7 +80,7 @@ public class UploadTencentCOSController {
     /**
      * 上传文件 (旧)
      */
-    @PreAuthorize("@ss.hasPermi(1.1)")
+    @PreAuthorize("@sr.hasPermission(1.1)")
     @PostMapping("/api/tencent/cosUpload")
     public Result uploadTencentCOS(@RequestParam("file") MultipartFile file) {
 
@@ -162,7 +162,7 @@ public class UploadTencentCOSController {
     /**
      * 简单上传文件
      */
-    @PreAuthorize("@ss.hasPermi(1.1)")
+    @PreAuthorize("@sr.hasPermission(1.1)")
     @PostMapping("/api/upload/simpleUpload")
     public Result simpleUpload(@RequestParam("file") MultipartFile file) {
         return Result.success(sdkTencentCOSService.simpleUpload(file));
@@ -172,7 +172,7 @@ public class UploadTencentCOSController {
     /**
      * 大文件分块上传
      */
-    @PreAuthorize("@ss.hasPermi(1.1)")
+    @PreAuthorize("@sr.hasPermission(1.1)")
     @PostMapping("/api/upload/multipartUpload")
     public Result multipartUpload(@Validated(MultipartUploadDTO.Upload.class) MultipartUploadDTO multipartUploadDTO) {
         return Result.success(sdkTencentCOSService.multipartUpload(multipartUploadDTO));
@@ -181,7 +181,7 @@ public class UploadTencentCOSController {
     /**
      * 查询已上传分块
      */
-    @PreAuthorize("@ss.hasPermi(1.1)")
+    @PreAuthorize("@sr.hasPermission(1.1)")
     @GetMapping("/api/upload/listParts")
     public Result listParts(@NotEmpty(message="upload_id 不能为空") String upload_id, @NotEmpty(message="key 不能为空") String key) {
         return Result.success(sdkTencentCOSService.listParts(upload_id, key));
@@ -190,7 +190,7 @@ public class UploadTencentCOSController {
     /**
      * 查询分块上传任务ID
      */
-    @PreAuthorize("@ss.hasPermi(1.1)")
+    @PreAuthorize("@sr.hasPermission(1.1)")
     @GetMapping("/api/upload/getMultipartUploadIds")
     public Result getMultipartUploadIds(@NotEmpty(message="key 不能为空") String key) {
         return Result.success(sdkTencentCOSService.listMultipartUploads(key));
@@ -199,7 +199,7 @@ public class UploadTencentCOSController {
     /**
      * 终止分块上传任务
      */
-    @PreAuthorize("@ss.hasPermi(1.1)")
+    @PreAuthorize("@sr.hasPermission(1.1)")
     @PostMapping("/api/upload/abortMultipartUpload")
     public Result abortMultipartUpload(@Validated(MultipartUploadDTO.Abort.class) @RequestBody MultipartUploadDTO multipartUploadDTO) {
         return Result.success(sdkTencentCOSService.abortMultipartUpload(multipartUploadDTO));
@@ -208,7 +208,7 @@ public class UploadTencentCOSController {
     /**
      * 删除文件
      */
-    @PreAuthorize("@ss.hasPermi(1.1)")
+    @PreAuthorize("@sr.hasPermission(1.1)")
     @DeleteMapping("/api/upload/removeUploadFile")
     public Result removeUploadFile(@Validated(SysFileDTO.Remove.class) @RequestBody SysFileDTO sysFileDTO) {
         return Result.success(sdkTencentCOSService.removeUploadFile(sysFileDTO));

+ 5 - 5
src/main/java/com/backendsys/modules/cms/article/controller/ArticleCategoryController.java

@@ -19,35 +19,35 @@ public class ArticleCategoryController {
     private ArticleCategoryService articleCategoryService;
 
     @Operation(summary = "获取资讯分类列表")
-    @PreAuthorize("@ss.hasPermi('10')")
+    @PreAuthorize("@sr.hasPermission('10')")
     @GetMapping("/api/v2/cms/article/getArticleCategory")
     public Result getArticleCategory(@Validated ArticleCategory articleCategory) {
         return Result.success().put("data", articleCategoryService.selectArticleCategoryList(articleCategory));
     }
 
     @Operation(summary = "获取资讯分类详情")
-    @PreAuthorize("@ss.hasPermi('10.2.1')")
+    @PreAuthorize("@sr.hasPermission('10.2.1')")
     @GetMapping("/api/v2/cms/article/getArticleCategoryDetail")
     public Result getArticleCategoryDetail(@Validated(ArticleCategory.Detail.class) ArticleCategory articleCategory) {
         return Result.success().put("data", articleCategoryService.selectArticleCategoryDetail(articleCategory));
     }
 
     @Operation(summary = "创建资讯分类")
-    @PreAuthorize("@ss.hasPermi('10.2.2')")
+    @PreAuthorize("@sr.hasPermission('10.2.2')")
     @PostMapping("/api/v2/cms/article/createArticleCategory")
     public Result createArticleCategory(@Validated(ArticleCategory.Create.class) @RequestBody ArticleCategory articleCategory) {
         return Result.success().put("data", articleCategoryService.insertArticleCategory(articleCategory));
     }
 
     @Operation(summary = "编辑资讯分类")
-    @PreAuthorize("@ss.hasPermi('10.2.3')")
+    @PreAuthorize("@sr.hasPermission('10.2.3')")
     @PutMapping("/api/v2/cms/article/updateArticleCategory")
     public Result updateArticleCategory(@Validated(ArticleCategory.Update.class) @RequestBody ArticleCategory articleCategory) {
         return Result.success().put("data", articleCategoryService.updateArticleCategory(articleCategory));
     }
 
     @Operation(summary = "删除资讯分类")
-    @PreAuthorize("@ss.hasPermi('10.2.4')")
+    @PreAuthorize("@sr.hasPermission('10.2.4')")
     @DeleteMapping("/api/v2/cms/article/deleteArticleCategory")
     public Result deleteArticleCategory(@Validated(ArticleCategory.Delete.class) @RequestBody ArticleCategory articleCategory) {
         return Result.success().put("data", articleCategoryService.deleteArticleCategory(articleCategory));

+ 6 - 6
src/main/java/com/backendsys/modules/cms/article/controller/ArticleController.java

@@ -19,42 +19,42 @@ public class ArticleController {
     private ArticleService articleService;
 
     @Operation(summary = "获取资讯列表")
-    @PreAuthorize("@ss.hasPermi('10.3')")
+    @PreAuthorize("@sr.hasPermission('10.3')")
     @GetMapping("/api/v2/cms/article/getArticle")
     public Result getArticle(@Validated Article article) {
         return Result.success().put("data", articleService.selectArticleList(article));
     }
 
     @Operation(summary = "获取资讯详情")
-    @PreAuthorize("@ss.hasPermi('10.3.1')")
+    @PreAuthorize("@sr.hasPermission('10.3.1')")
     @GetMapping("/api/v2/cms/article/getArticleDetail")
     public Result getArticleDetail(@Validated(Article.Detail.class) Article article) {
         return Result.success().put("data", articleService.selectArticleDetail(article));
     }
 
     @Operation(summary = "创建资讯")
-    @PreAuthorize("@ss.hasPermi('10.3.2')")
+    @PreAuthorize("@sr.hasPermission('10.3.2')")
     @PostMapping("/api/v2/cms/article/createArticle")
     public Result createArticle(@Validated(Article.Create.class) @RequestBody Article article) {
         return Result.success().put("data", articleService.insertArticle(article));
     }
 
     @Operation(summary = "编辑资讯")
-    @PreAuthorize("@ss.hasPermi('10.3.3')")
+    @PreAuthorize("@sr.hasPermission('10.3.3')")
     @PutMapping("/api/v2/cms/article/updateArticle")
     public Result updateArticle(@Validated(Article.Update.class) @RequestBody Article article) {
         return Result.success().put("data", articleService.updateArticle(article));
     }
 
     @Operation(summary = "删除资讯")
-    @PreAuthorize("@ss.hasPermi('10.3.4')")
+    @PreAuthorize("@sr.hasPermission('10.3.4')")
     @DeleteMapping("/api/v2/cms/article/deleteArticle")
     public Result deleteArticle(@Validated(Article.Delete.class) @RequestBody Article article) {
         return Result.success().put("data", articleService.deleteArticle(article));
     }
 
     @Operation(summary = "删除资讯 (批量)")
-    @PreAuthorize("@ss.hasPermi('10.3.4')")
+    @PreAuthorize("@sr.hasPermission('10.3.4')")
     @DeleteMapping("/api/v2/cms/article/deleteArticleBatch")
     public Result deleteArticleBatch(@Validated(Article.DeleteBatch.class) @RequestBody Article article) {
         return Result.success().put("data", articleService.deleteArticleBatch(article));

+ 6 - 6
src/main/java/com/backendsys/modules/cms/navigation/controller/NavigationController.java

@@ -20,42 +20,42 @@ public class NavigationController {
     private NavigationService navigationService;
 
     @Operation(summary = "获取导航列表")
-    @PreAuthorize("@ss.hasPermi('14.3')")
+    @PreAuthorize("@sr.hasPermission('14.3')")
     @GetMapping("/api/cms/navigation/getNavigationList")
     public Result getNavigation(@Validated Navigation navigation) {
         return Result.success().put("data", navigationService.selectNavigationList(navigation));
     }
 
     @Operation(summary = "获取导航详情")
-    @PreAuthorize("@ss.hasPermi('14.3.1')")
+    @PreAuthorize("@sr.hasPermission('14.3.1')")
     @GetMapping("/api/cms/navigation/getNavigationDetail")
     public Result getNavigationDetail(@Validated(Navigation.Detail.class) Navigation navigation) {
         return Result.success().put("data", navigationService.selectNavigationDetail(navigation));
     }
 
     @Operation(summary = "创建导航")
-    @PreAuthorize("@ss.hasPermi('14.3.2')")
+    @PreAuthorize("@sr.hasPermission('14.3.2')")
     @PostMapping("/api/cms/navigation/createNavigation")
     public Result createNavigation(@Validated(Navigation.Create.class) @RequestBody Navigation navigation) {
         return Result.success().put("data", navigationService.insertNavigation(navigation));
     }
 
     @Operation(summary = "编辑导航")
-    @PreAuthorize("@ss.hasPermi('14.3.3')")
+    @PreAuthorize("@sr.hasPermission('14.3.3')")
     @PutMapping("/api/cms/navigation/updateNavigation")
     public Result updateNavigation(@Validated(Navigation.Update.class) @RequestBody Navigation navigation) {
         return Result.success().put("data", navigationService.updateNavigation(navigation));
     }
 
     @Operation(summary = "删除导航")
-    @PreAuthorize("@ss.hasPermi('14.3.4')")
+    @PreAuthorize("@sr.hasPermission('14.3.4')")
     @DeleteMapping("/api/cms/navigation/deleteNavigation")
     public Result deleteNavigation(@Validated(Navigation.Delete.class) @RequestBody Navigation navigation) {
         return Result.success().put("data", navigationService.deleteNavigation(navigation));
     }
 
     @Operation(summary = "删除导航 (批量)")
-    @PreAuthorize("@ss.hasPermi('14.3.4')")
+    @PreAuthorize("@sr.hasPermission('14.3.4')")
     @DeleteMapping("/api/cms/navigation/deleteNavigationBatch")
     public Result deleteNavigationBatch(@Validated(Navigation.DeleteBatch.class) @RequestBody Navigation navigation) {
         return Result.success().put("data", navigationService.deleteNavigationBatch(navigation));

+ 2 - 2
src/main/java/com/backendsys/modules/cms/siteinfo/controller/SiteInfoController.java

@@ -22,13 +22,13 @@ public class SiteInfoController {
     private SiteInfoService siteInfoService;
 
     @Operation(summary = "获取站点信息")
-    @PreAuthorize("@ss.hasPermi('13')")
+    @PreAuthorize("@sr.hasPermission('13')")
     @GetMapping("/api/v2/cms/site/getSiteInfo")
     public Result getSiteInfo() {
         return Result.success().put("data", siteInfoService.selectSiteInfo());
     }
 
-    @PreAuthorize("@ss.hasPermi('13.1')")
+    @PreAuthorize("@sr.hasPermission('13.1')")
     @PutMapping("/api/v2/cms/site/updateSiteInfo")
     public Result updateSiteInfo(@Validated(SiteInfo.Update.class) @RequestBody SiteInfo siteInfo) {
         siteInfo.setId(1L);

+ 4 - 11
src/main/java/com/backendsys/modules/common/config/redis/RedisConfig.java

@@ -7,18 +7,11 @@ import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.serializer.StringRedisSerializer;
 
 /**
- * TODO Redis配置
- *
- * @author ss_419
- * @version 1.0
- * @date 2023/3/3 10:24
+ * Redis配置
  */
 @Configuration
-//@Conditional(RedisCondition.class)
 public class RedisConfig {
-    /**
-     * Redis配置
-     */
+
     @Bean
     @SuppressWarnings(value = {"unchecked", "rawtypes"})
     public RedisTemplate<Object,Object> redisTemplate(RedisConnectionFactory connectionFactory) {
@@ -26,11 +19,11 @@ public class RedisConfig {
         template.setConnectionFactory(connectionFactory);
         FastJsonRedisSerializer<Object> serializer = new FastJsonRedisSerializer<>(Object.class);
 
-        // 使用StringRedisSerializer来序列化和反序列化redis的key值
+        // 使用 StringRedisSerializer 来序列化和反序列化 redis  key 
         template.setKeySerializer(new StringRedisSerializer());
         template.setValueSerializer(serializer);
 
-        // Hash的key也采用StringRedisSerializer的序列化方式
+        // Hash  key 也采用 StringRedisSerializer 的序列化方式
         template.setHashKeySerializer(new StringRedisSerializer());
         template.setHashValueSerializer(serializer);
 

+ 0 - 3
src/main/java/com/backendsys/modules/common/config/security/entity/SecurityUserInfo.java

@@ -10,12 +10,9 @@ public class SecurityUserInfo {
     private Long id;
     private Long user_id;
     private String username;
-//    private String last_login_ip;
     private String last_login_uuid;
-//    private String last_login_time;
     private Integer is_super;
     private String token_expiration;
-//    private String create_time;
     private String target;
     private List<Map<String, Object>> roles;
     private List<String> permission_ids;

+ 3 - 3
src/main/java/com/backendsys/modules/common/config/security/filter/JwtAuthenticationFilter.java

@@ -60,8 +60,8 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
     @Value("#{'${whitelist.jwt}'.split(',')}")
     private final String[] JWT_WHITELIST;
 
-    @Value("${REDIS_LOGIN_KEY}")
-    private String REDIS_LOGIN_KEY;
+    @Value("${REDIS_LOGIN_TOKEN_PREFIX}")
+    private String REDIS_LOGIN_TOKEN_PREFIX;
 
     @Autowired
     private AnonymousProperties anonymousProperties;
@@ -137,7 +137,7 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
                 // String tokenRedisKey = redisTag + userId;
 
                 // 判断 Redis Token 是否存在
-                String redisKey = REDIS_LOGIN_KEY + userDetails.getUsername();
+                String redisKey = REDIS_LOGIN_TOKEN_PREFIX + userDetails.getUsername();
                 Boolean isTokenValid = (stringRedisTemplate.opsForValue().get(redisKey) != null);
                 if (!isTokenValid) {
                     // [TOKEN_INVALID: Token已失效,请重新登录]

+ 122 - 105
src/main/java/com/backendsys/modules/common/config/security/utils/PermissionUtil.java

@@ -1,105 +1,122 @@
-package com.backendsys.modules.common.config.security.utils;
-
-import com.backendsys.exception.CustException;
-import com.backendsys.modules.common.config.security.entity.SecurityUserInfo;
-import com.backendsys.utils.response.ResultEnum;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
-
-import java.util.*;
-
-/**
- * 自定义权限 @PreAuthorize("@ss.hasPermi('3.2.3') && @ss.isSuper()")
- */
-@Service("ss")
-public class PermissionUtil {
-    //private static final String ALL_PERMISSION = "*:*:*";
-    @Autowired
-    private TokenUtil tokenUtil;
-    /**
-     * 验证用户是否具备权限
-     * @param permi 权限字符串
-     * @return boolean
-     */
-//    public boolean hasPermi(String permi) {
-    public boolean hasPermi(Collection<String> permi) {
-
-        if (CollectionUtils.isEmpty(permi)) return false;
-
-        SecurityUserInfo securityUserInfo = SecurityUtil.getUserInfo();
-        // 如果是超级管理员,则直接通过
-        if (securityUserInfo.getIs_super() == 1) return true;
-
-        // 没有 permission_ids 即不是系统用户,即没有访问后台的权限
-        if (securityUserInfo != null) {
-            List<String> permission_ids = securityUserInfo.getPermission_ids();
-            if (permission_ids != null && !permission_ids.isEmpty()) {
-                Set<String> dataSet = new HashSet<>();
-                for (String permission_id : permission_ids) {
-                    dataSet.add(permission_id);
-                }
-                for (String permission : permi) {
-                    if (hasPermissions(dataSet, permission)) {
-                        return true;
-                    }
-                }
-                // return hasPermissions(modulesSet, permission);
-            }
-        }
-        return false;
-    }
-    public boolean hasPermissions(Set<String> permi, String permission) {
-        return permi.contains(StringUtils.trimAllWhitespace(permission));
-    }
-
-    // 是否超级管理员
-    public boolean isSuper() {
-        SecurityUserInfo securityUserInfo = SecurityUtil.getUserInfo();
-        return securityUserInfo.getIs_super() == 1;
-    }
-
-    // 是否超级管理员 (首位)
-    public boolean isFirstSuper() {
-        SecurityUserInfo securityUserInfo = SecurityUtil.getUserInfo();
-        return securityUserInfo.getUser_id() == 1;
-    }
-
-    // 是否会员
-    public boolean isMember() {
-        SecurityUserInfo securityUserInfo = SecurityUtil.getUserInfo();
-        return "Member".equals(securityUserInfo.getTarget());
-    }
-
-
-    /**
-     * 判断是否匹配当前 {用户ID} 与 {用户权限},不是则抛出错误
-     * - 匹配,通过
-     * - 不匹配,再次检查权限
-     *    - 匹配,通过
-     *    - 不匹配,抛出错误
-     * permissionService.checkUserIdAndPermission(sysUserDTO.getUser_id(), "3.2.1");
-     */
-    public void checkUserIdAndPermission(long user_id, Collection<String> permis) {
-        SecurityUserInfo securityUserInfo = SecurityUtil.getUserInfo();
-        if (securityUserInfo.getUser_id() != user_id) {
-            if (!hasPermi(permis)) {
-                throw new CustException(ResultEnum.AUTH_ROLE_ERROR.getMessage(), ResultEnum.AUTH_ROLE_ERROR.getCode());
-            }
-        }
-    }
-
-    /**
-     * 判断是否 首位超级管理员 (id:1),不是则抛出错误
-     */
-    public void checkSuperAdminOfFirst(long user_id) {
-        if (user_id == 1) {
-            SecurityUserInfo securityUserInfo = SecurityUtil.getUserInfo();
-            if (securityUserInfo.getUser_id() != 1) {
-                throw new CustException(ResultEnum.AUTH_USER_ERROR.getMessage(), ResultEnum.AUTH_USER_ERROR.getCode());
-            }
-        }
-    }
-
-}
+//package com.backendsys.modules.common.config.security.utils;
+//
+//import com.backendsys.exception.CustException;
+//import com.backendsys.modules.common.config.redis.utils.RedisUtil;
+//import com.backendsys.modules.common.config.security.entity.SecurityUserInfo;
+//import com.backendsys.utils.response.ResultEnum;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.stereotype.Service;
+//import org.springframework.util.CollectionUtils;
+//import org.springframework.util.StringUtils;
+//
+//import java.util.*;
+//
+///**
+// * 即将弃用
+// * 自定义权限 @PreAuthorize("@sr.hasPermission('3.2.3') && @ss.isSuper()")
+// */
+//@Service("ss")
+//public class PermissionUtil {
+//    //private static final String ALL_PERMISSION = "*:*:*";
+//
+//    @Value("${REDIS_LOGIN_TOKEN_PREFIX}")
+//    private String REDIS_LOGIN_TOKEN_PREFIX;
+//    @Value("${REDIS_LOGIN_PERMISSION_PREFIX}")
+//    private String REDIS_LOGIN_PERMISSION_PREFIX;
+//
+//    @Autowired
+//    private RedisUtil redisUtil;
+//
+//    /**
+//     * 验证用户是否具备权限
+//     * @param permi 权限字符串
+//     * @return boolean
+//     */
+////    public boolean hasPermi(String permi) {
+//    public boolean hasPermi(Collection<String> permi) {
+//
+//        if (CollectionUtils.isEmpty(permi)) return false;
+//
+//        SecurityUserInfo securityUserInfo = SecurityUtil.getUserInfo();
+//        // 如果是超级管理员,则直接通过
+//        if (securityUserInfo.getIs_super() == 1) return true;
+//
+//        // 没有 permission_ids 即不是系统用户,即没有访问后台的权限
+//        if (securityUserInfo != null) {
+//
+////            String uuid = securityUserInfo.getLast_login_uuid();
+////            String redis_key = REDIS_LOGIN_PERMISSION_PREFIX + uuid;
+////            String permission_ids_str = redisUtil.getCacheObject(redis_key);
+////            List<String> permission_ids = Arrays.asList(permission_ids_str.split(","));
+//
+//            List<String> permission_ids = securityUserInfo.getPermission_ids();
+//
+//            if (permission_ids != null && !permission_ids.isEmpty()) {
+//                Set<String> dataSet = new HashSet<>();
+//                for (String permission_id : permission_ids) {
+//                    dataSet.add(permission_id);
+//                }
+//                for (String permission : permi) {
+//                    if (hasPermissions(dataSet, permission)) {
+//                        return true;
+//                    }
+//                }
+//                // return hasPermissions(modulesSet, permission);
+//            }
+//        }
+//        return false;
+//    }
+//    public boolean hasPermissions(Set<String> permi, String permission) {
+//        return permi.contains(StringUtils.trimAllWhitespace(permission));
+//    }
+//
+//    // 是否超级管理员
+//    public boolean isSuper() {
+//        SecurityUserInfo securityUserInfo = SecurityUtil.getUserInfo();
+//        return securityUserInfo.getIs_super() == 1;
+//    }
+//
+//    // 是否超级管理员 (首位)
+//    public boolean isFirstSuper() {
+//        SecurityUserInfo securityUserInfo = SecurityUtil.getUserInfo();
+//        return securityUserInfo.getUser_id() == 1;
+//    }
+//
+//    // 是否会员
+//    public boolean isMember() {
+//        SecurityUserInfo securityUserInfo = SecurityUtil.getUserInfo();
+//        return "Member".equals(securityUserInfo.getTarget());
+//    }
+//
+//
+//    /**
+//     * 判断是否匹配当前 {用户ID} 与 {用户权限},不是则抛出错误
+//     * - 匹配,通过
+//     * - 不匹配,再次检查权限
+//     *    - 匹配,通过
+//     *    - 不匹配,抛出错误
+//     * permissionService.checkUserIdAndPermission(sysUserDTO.getUser_id(), "3.2.1");
+//     */
+//    public void checkUserIdAndPermission(long user_id, Collection<String> permis) {
+//        SecurityUserInfo securityUserInfo = SecurityUtil.getUserInfo();
+//        if (securityUserInfo.getUser_id() != user_id) {
+//            if (!hasPermi(permis)) {
+//                throw new CustException(ResultEnum.AUTH_ROLE_ERROR.getMessage(), ResultEnum.AUTH_ROLE_ERROR.getCode());
+//            }
+//        }
+//    }
+//
+//    /**
+//     * 判断是否 首位超级管理员 (id:1),不是则抛出错误
+//     */
+//    public void checkSuperAdminOfFirst(long user_id) {
+//        if (user_id == 1) {
+//            SecurityUserInfo securityUserInfo = SecurityUtil.getUserInfo();
+//            if (securityUserInfo.getUser_id() != 1) {
+//                throw new CustException(ResultEnum.AUTH_USER_ERROR.getMessage(), ResultEnum.AUTH_USER_ERROR.getCode());
+//            }
+//        }
+//    }
+//
+//}

+ 20 - 0
src/main/java/com/backendsys/modules/common/config/security/utils/SecurityUtil.java

@@ -5,10 +5,13 @@ import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.backendsys.exception.CustException;
+import com.backendsys.modules.common.config.redis.utils.RedisUtil;
 import com.backendsys.modules.common.config.security.entity.SecurityUserInfo;
 import com.backendsys.modules.common.enums.MatchType;
 import io.jsonwebtoken.Claims;
 import io.jsonwebtoken.Jwts;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Service;
@@ -16,6 +19,7 @@ import org.springframework.stereotype.Service;
 import javax.crypto.SecretKey;
 import javax.crypto.spec.SecretKeySpec;
 import java.nio.charset.StandardCharsets;
+import java.util.Arrays;
 import java.util.Base64;
 import java.util.List;
 
@@ -34,6 +38,14 @@ import java.util.List;
 @Service("sr")
 public class SecurityUtil {
 
+    @Value("${REDIS_LOGIN_TOKEN_PREFIX}")
+    private String REDIS_LOGIN_TOKEN_PREFIX;
+    @Value("${REDIS_LOGIN_PERMISSION_PREFIX}")
+    private String REDIS_LOGIN_PERMISSION_PREFIX;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
     private static final String SECRET_KEY = "452948404D635166546A576E5A7134743777217A25432A462D4A614E64526755";
     private static SecretKey getSignInKey() {
         byte[] bytes = Base64.getDecoder().decode(SECRET_KEY.getBytes(StandardCharsets.UTF_8));
@@ -82,6 +94,14 @@ public class SecurityUtil {
      */
     public static Boolean hasPermission(String permission) {
         SecurityUserInfo userInfo = getUserInfo();
+
+//        String uuid = securityUserInfo.getLast_login_uuid();
+//        String redis_key = REDIS_LOGIN_PERMISSION_PREFIX + uuid;
+//        String permission_ids = redisUtil.getCacheObject(redis_key);
+//        List<String> permission_ids_list = Arrays.asList(permission_ids.split(","));
+//
+//        return permission_ids_list.contains(permission);
+
         List<String> permission_ids = userInfo.getPermission_ids();
         return permission_ids.contains(permission);
     }

+ 4 - 4
src/main/java/com/backendsys/modules/common/config/security/utils/TokenUtil.java

@@ -21,8 +21,8 @@ public class TokenUtil {
     private StringRedisTemplate stringRedisTemplate;
 
 
-    @Value("${REDIS_LOGIN_KEY}")
-    private String REDIS_LOGIN_KEY;
+    @Value("${REDIS_LOGIN_TOKEN_PREFIX}")
+    private String REDIS_LOGIN_TOKEN_PREFIX;
 
     public Long getUserId() {
         Claims tokenInfo = getRedisTokenInfo();
@@ -34,7 +34,7 @@ public class TokenUtil {
      * @return
      */
     public Claims getRedisTokenInfo() {
-        String token = stringRedisTemplate.opsForValue().get(REDIS_LOGIN_KEY + getLoginUUID());
+        String token = stringRedisTemplate.opsForValue().get(REDIS_LOGIN_TOKEN_PREFIX + getLoginUUID());
         if (token != null && !token.isEmpty()) {
             Claims tokenInfo = jwtUtil.extractAllClaims(token);
             return tokenInfo;
@@ -46,7 +46,7 @@ public class TokenUtil {
      * 删除 Redis 中的 Token 信息 (退出登录)
      */
     public void deleteRedisToken() {
-        stringRedisTemplate.delete(REDIS_LOGIN_KEY + getLoginUUID());
+        stringRedisTemplate.delete(REDIS_LOGIN_TOKEN_PREFIX + getLoginUUID());
     }
 
     /**

+ 7 - 7
src/main/java/com/backendsys/modules/system/controller/SysUserController.java

@@ -39,7 +39,7 @@ public class SysUserController {
     }
 
     @Operation(summary = "获取系统用户列表 (在线的)")
-    @PreAuthorize("@ss.hasPermi('3.1')")
+    @PreAuthorize("@sr.hasPermission('3.1')")
     @GetMapping("/api/system/user/getUserOnlineList")
     public Result getUserOnlineList(SysUserDTO sysUserDTO) {
         return Result.success().put("data", sysUserV2Service.selectUserOnlineList(sysUserDTO));
@@ -69,7 +69,7 @@ public class SysUserController {
 
     @SysLog("创建系统用户")
     @Operation(summary = "创建系统用户")
-    @PreAuthorize("@ss.hasPermi('3.2.2')")
+    @PreAuthorize("@sr.hasPermission('3.2.2')")
     @PostMapping("/api/system/user/createUser")
     public Result createUser(@Validated(SysUserDTO.Create.class) @RequestBody SysUserDTO sysUserDTO) {
         return Result.success().put("data", sysUserV2Service.insertUser(sysUserDTO));
@@ -81,7 +81,7 @@ public class SysUserController {
      * - 编辑他人用户信息权限 (3.2.3.2)
      */
     @Operation(summary = "编辑系统用户信息")
-    @PreAuthorize("@ss.hasPermi('3.2.3')")
+    @PreAuthorize("@sr.hasPermission('3.2.3')")
     @PutMapping("/api/system/user/updateUserInfo")
     public Result updateUserInfo(@Validated(SysUserDTO.Update.class) @RequestBody SysUserDTO sysUserDTO) {
 
@@ -107,7 +107,7 @@ public class SysUserController {
     }
 
     @Operation(summary = "编辑系统用户密码")
-    @PreAuthorize("@ss.hasPermi('3.2.3.3')")
+    @PreAuthorize("@sr.hasPermission('3.2.3.3')")
     @PutMapping("/api/system/user/updateUserPassword")
     public Result updateUserPassword(@Validated(SysUserDTO.UpdatePassword.class) @RequestBody SysUserDTO sysUserDTO) {
 
@@ -130,7 +130,7 @@ public class SysUserController {
     }
 
     @Operation(summary = "重置系统用户密码")
-    @PreAuthorize("@ss.hasPermi('3.2.3.4')")
+    @PreAuthorize("@sr.hasPermission('3.2.3.4')")
     @PutMapping("/api/system/user/resetUserPassword")
     public Result resetUserPassword(@Validated(SysUserDTO.ResetPassword.class) @RequestBody SysUserDTO sysUserDTO) {
 
@@ -151,7 +151,7 @@ public class SysUserController {
     }
 
     @Operation(summary = "删除系统用户")
-    @PreAuthorize("@ss.hasPermi('3.2.4')")
+    @PreAuthorize("@sr.hasPermission('3.2.4')")
     @DeleteMapping("/api/system/user/deleteUser")
     public Result deleteUser(@Validated(SysUserDTO.Delete.class) @RequestBody SysUserDTO sysUserDTO) {
 
@@ -165,7 +165,7 @@ public class SysUserController {
     }
 
     @Operation(summary = "踢出系统用户")
-    @PreAuthorize("@ss.hasPermi('3.2.7')")
+    @PreAuthorize("@sr.hasPermission('3.2.7')")
     @PostMapping("/api/system/user/kickUser")
     public Result kickUser(@Validated(SysUserDTO.Kick.class) @RequestBody SysUserDTO sysUserDTO) {
 

+ 5 - 5
src/main/java/com/backendsys/modules/system/controller/SysUserRoleController.java

@@ -21,35 +21,35 @@ public class SysUserRoleController {
     private SysUserRoleV2Service sysUserRoleV2Service;
 
     @Operation(summary = "获取系统用户角色列表")
-    @PreAuthorize("@ss.hasPermi('4.1')")
+    @PreAuthorize("@sr.hasPermission('4.1')")
     @GetMapping("/api/system/user/getUserRoleList")
     public Result getUserRoleList(@Validated SysUserRole sysUserRole) {
         return Result.success().put("data", sysUserRoleV2Service.selectUserRoleList(sysUserRole));
     }
 
     @Operation(summary = "获取系统用户角色详情")
-    @PreAuthorize("@ss.hasPermi('4.1.1')")
+    @PreAuthorize("@sr.hasPermission('4.1.1')")
     @GetMapping("/api/system/user/getUserRoleDetail")
     public Result getUserRoleDetail(@Validated(SysUserRole.Detail.class) SysUserRole sysUserRole) {
         return Result.success().put("data", sysUserRoleV2Service.selectUserRoleDetail(sysUserRole));
     }
 
     @Operation(summary = "创建系统用户角色")
-    @PreAuthorize("@ss.hasPermi('4.1.2')")
+    @PreAuthorize("@sr.hasPermission('4.1.2')")
     @PostMapping("/api/system/user/createUserRole")
     public Result createUserRole(@Validated(SysUserRole.Create.class) @RequestBody SysUserRole sysUserRole) {
         return Result.success().put("data", sysUserRoleV2Service.insertUserRole(sysUserRole));
     }
 
     @Operation(summary = "更新系统用户角色")
-    @PreAuthorize("@ss.hasPermi('4.1.3')")
+    @PreAuthorize("@sr.hasPermission('4.1.3')")
     @PutMapping("/api/system/user/updateUserRole")
     public Result updateUserRole(@Validated(SysUserRole.Update.class) @RequestBody SysUserRole sysUserRole) {
         return Result.success().put("data", sysUserRoleV2Service.updateUserRole(sysUserRole));
     }
 
     @Operation(summary = "删除系统用户角色")
-    @PreAuthorize("@ss.hasPermi('4.1.4')")
+    @PreAuthorize("@sr.hasPermission('4.1.4')")
     @DeleteMapping("/api/system/user/deleteUserRole")
     public Result deleteUserRole(@Validated(SysUserRole.Delete.class) @RequestBody SysUserRole sysUserRole) {
         // 不可删除 角色ID: (1管理员, 2游客)

+ 5 - 5
src/main/java/com/backendsys/modules/system/controller/SysUserRoleMenuController.java

@@ -24,35 +24,35 @@ public class SysUserRoleMenuController {
     private SysUserRoleMenuService sysUserRoleMenuService;
 
     @Operation(summary = "获取系统用户角色菜单列表")
-    @PreAuthorize("@ss.hasPermi('4.3')")
+    @PreAuthorize("@sr.hasPermission('4.3')")
     @GetMapping("/api/system/user/getUserRoleMenu")
     public Result getUserRoleMenu() {
         return Result.success().put("data", Map.of("list", sysUserRoleMenuService.selectUserRoleMenuList(null)));
     }
 
     @Operation(summary = "获取系统用户菜单详情")
-    @PreAuthorize("@ss.hasPermi('4.3.1')")
+    @PreAuthorize("@sr.hasPermission('4.3.1')")
     @GetMapping("/api/system/user/getUserRoleMenuDetail")
     public Result getUserRoleMenuDetail(@Validated(SysUserRoleMenu.Detail.class) SysUserRoleMenu sysUserRoleMenu) {
         return Result.success().put("data", sysUserRoleMenuService.selectUserRoleMenuDetail(sysUserRoleMenu));
     }
 
     @Operation(summary = "创建系统用户角色菜单")
-    @PreAuthorize("@ss.hasPermi('4.3.2')")
+    @PreAuthorize("@sr.hasPermission('4.3.2')")
     @PostMapping("/api/system/user/createUserRoleMenu")
     public Result createUserRoleMenu(@Validated(SysUserRoleMenu.Create.class) @RequestBody SysUserRoleMenu sysUserRoleMenu) {
         return Result.success().put("data", sysUserRoleMenuService.insertUserRoleMenu(sysUserRoleMenu));
     }
 
     @Operation(summary = "更新系统用户角色菜单")
-    @PreAuthorize("@ss.hasPermi('4.3.3')")
+    @PreAuthorize("@sr.hasPermission('4.3.3')")
     @PutMapping("/api/system/user/updateUserRoleMenu")
     public Result updateUserRoleMenu(@Validated(SysUserRoleMenu.Update.class) @RequestBody SysUserRoleMenu sysUserRoleMenu) {
         return Result.success().put("data", sysUserRoleMenuService.updateUserRoleMenu(sysUserRoleMenu));
     }
 
     @Operation(summary = "删除系统用户角色菜单")
-    @PreAuthorize("@ss.hasPermi('4.3.4')")
+    @PreAuthorize("@sr.hasPermission('4.3.4')")
     @DeleteMapping("/api/system/user/deleteUserRoleMenu")
     public Result deleteUserRoleMenu(@Validated(SysUserRoleMenu.Delete.class) @RequestBody SysUserRoleMenu sysUserRoleMenu) {
         return Result.success().put("data", sysUserRoleMenuService.deleteUserRoleMenu(sysUserRoleMenu));

+ 1 - 1
src/main/java/com/backendsys/modules/system/controller/SysUserRolePermissionController.java

@@ -19,7 +19,7 @@ public class SysUserRolePermissionController {
     private SysUserRolePermissionV2Service sysUserRolePermissionV2Service;
 
     @Operation(summary = "获取系统用户角色权限列表")
-    @PreAuthorize("@ss.hasPermi('4.1.5')")
+    @PreAuthorize("@sr.hasPermission('4.1.5')")
     @GetMapping("/api/system/user/getUserRolePermission")
     public Result getUserRolePermission(Long role_id) {
         return Result.success().put("data", sysUserRolePermissionV2Service.getUserRolePermission(role_id));

+ 39 - 12
src/main/java/com/backendsys/modules/system/service/impl/SysAuthV2ServiceImpl.java

@@ -2,7 +2,6 @@ package com.backendsys.modules.system.service.impl;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.json.JSONUtil;
-import com.backendsys.config.Kaptcha.KaptchaUtil;
 import com.backendsys.exception.CustException;
 import com.backendsys.modules.common.config.redis.utils.RedisUtil;
 import com.backendsys.modules.common.config.security.entity.SecurityUserInfo;
@@ -66,12 +65,20 @@ public class SysAuthV2ServiceImpl implements SysAuthV2Service {
     @Value("${TOKEN_DURATION_SYSTEM}")
     private Integer TOKEN_DURATION_SYSTEM;
 
+
+    @Value("${REDIS_LOGIN_TOKEN_PREFIX}")
+    private String REDIS_LOGIN_TOKEN_PREFIX;
+    @Value("${REDIS_LOGIN_PERMISSION_PREFIX}")
+    private String REDIS_LOGIN_PERMISSION_PREFIX;
+
     @Value("${spring.application.name}")
     private String APPLICATION_NAME;
     private String redisKeyOfLogin = APPLICATION_NAME + "-sms-login";
     private String redisKeyOfRegister = APPLICATION_NAME + "-sms-register";
     private String redisKeyOfLoginFail = APPLICATION_NAME + "-login-error";
     private String redisKeyOfRegisterFail = APPLICATION_NAME + "-register-error";
+    
+    
 
     @Override
     public void renderCaptcha(HttpServletResponse response) throws IOException {
@@ -123,20 +130,20 @@ public class SysAuthV2ServiceImpl implements SysAuthV2Service {
 
         // 清除缓存
         redisUtil.delete(httpRequestUtil.getKaptchaKey());                       // 删除图形验证码
-        redisUtil.delete("token:id:" + sysUserInfo.getLast_login_uuid());   // 删除旧的登录缓存 (Redis)
+        redisUtil.delete(REDIS_LOGIN_TOKEN_PREFIX + sysUserInfo.getLast_login_uuid());   // 删除旧的登录缓存 (Redis)
 
         // 判断用户是否审核
-        Integer auditStatus = sysUserInfo.getAudit_status();
-        if (auditStatus != null && auditStatus.equals(1)) throw new CustException("请等待管理员审核");
-        if (auditStatus != null && auditStatus.equals(-1)) throw new CustException("审核未通过,请与客服联系");
+        Integer audit_status = sysUserInfo.getAudit_status();
+        if (audit_status != null && audit_status.equals(1)) throw new CustException("请等待管理员审核");
+        if (audit_status != null && audit_status.equals(-1)) throw new CustException("审核未通过,请与客服联系");
 
         // 判断用户是否启用
         Integer status = sysUserInfo.getStatus();
         if (status != null && status.equals(-1)) throw new CustException("该用户已被禁用,请与客服联系");
 
         // 判断用户是否已删除
-        Integer delFlag = sysUserInfo.getDel_flag();
-        if (delFlag != null && delFlag.equals(1)) throw new CustException("用户状态异常,请与客服联系");
+        Integer del_flag = sysUserInfo.getDel_flag();
+        if (del_flag != null && del_flag.equals(1)) throw new CustException("用户处于预删除状态,请与客服联系");
 
         // 设置 最后一次的登录信息 (uuid, ip, 登录时间)
         String uuid = String.valueOf(UUID.randomUUID());
@@ -146,17 +153,37 @@ public class SysAuthV2ServiceImpl implements SysAuthV2Service {
         sysUserInfoDao.updateById(sysUserInfo);
 
         // 设置 Token 过期时间
-        Integer tokenDuration = (is_remember != null && is_remember.equals(1)) ? TOKEN_DURATION_SYSTEM * 7 : TOKEN_DURATION_SYSTEM;
-        Date tokenExpiration = new Date((new Date()).getTime() + tokenDuration);
-        sysUserInfo.setToken_expiration(DateUtil.format(tokenExpiration, "yyyy-MM-dd HH:mm:ss"));
+        Integer token_duration = (is_remember != null && is_remember.equals(1)) ? TOKEN_DURATION_SYSTEM * 7 : TOKEN_DURATION_SYSTEM;
+        Date token_expiration = new Date((new Date()).getTime() + token_duration);
+        sysUserInfo.setToken_expiration(DateUtil.format(token_expiration, "yyyy-MM-dd HH:mm:ss"));
 
         // 生成 Token
         SecurityUserInfo securityUserInfo = JSONUtil.toBean(JSONUtil.parseObj(sysUserInfo), SecurityUserInfo.class);
+
+
+
+
+        // (Permission 导致 Token 太长了)
+//        securityUserInfo.setPermission_ids(new ArrayList<>());
+
+
+
+
+
         String token = jwtUtil.createSystemJwtToken(securityUserInfo);
-        String tokenRedisKey = "token:id:" + uuid;
-        redisUtil.setCacheObject(tokenRedisKey, token, tokenDuration, TimeUnit.MILLISECONDS);
+        String token_redis_key = REDIS_LOGIN_TOKEN_PREFIX + uuid;
         sysUserInfo.setToken(token);
 
+        // [Redis] 将 Token 存入缓存
+        redisUtil.setCacheObject(token_redis_key, token, token_duration, TimeUnit.MILLISECONDS);
+
+
+//        // [Redis] 将 Permission 存入存存
+//        List<String> permission_ids_list = sysUserInfo.getPermission_ids();
+//        String permission_ids = String.join(",", permission_ids_list);
+//        String permission_redis_key = REDIS_LOGIN_PERMISSION_PREFIX + uuid;
+//        redisUtil.setCacheObject(permission_redis_key, permission_ids, token_duration, TimeUnit.MILLISECONDS);
+
         return sysUserInfo;
     }
 

+ 8 - 4
src/main/java/com/backendsys/modules/system/service/impl/SysUserV2ServiceImpl.java

@@ -22,6 +22,7 @@ import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
@@ -35,6 +36,9 @@ import java.util.stream.Collectors;
 @Service
 public class SysUserV2ServiceImpl extends ServiceImpl<SysUserDao, SysUser> implements SysUserV2Service {
 
+    @Value("${REDIS_LOGIN_TOKEN_PREFIX}")
+    private String REDIS_LOGIN_TOKEN_PREFIX;
+
     @Lazy
     @Autowired
     RedissonClient redissonClient;
@@ -71,8 +75,8 @@ public class SysUserV2ServiceImpl extends ServiceImpl<SysUserDao, SysUser> imple
     public PageEntity selectUserOnlineList(SysUserDTO sysUserDTO) {
         PageUtils.startPage();  // 分页
         // 获得 用户最后登录的 tokenUUID
-        Collection<String> redisKeys = redisUtil.keys("token:*");
-        List<String> last_login_uuids = redisKeys.stream().map(e -> String.valueOf(e).replace("token:id:", "")).collect(Collectors.toList());
+        Collection<String> redisKeys = redisUtil.keys(REDIS_LOGIN_TOKEN_PREFIX + "*");
+        List<String> last_login_uuids = redisKeys.stream().map(e -> String.valueOf(e).replace(REDIS_LOGIN_TOKEN_PREFIX, "")).collect(Collectors.toList());
         List<SysUserInfo> list = sysUserInfoDao.selectUserByLastLoginUuids(last_login_uuids);
         return new PageInfoResult(list).toEntity();
     }
@@ -253,7 +257,7 @@ public class SysUserV2ServiceImpl extends ServiceImpl<SysUserDao, SysUser> imple
             Integer status = sysUserDTO.getStatus();
             if (status != null && status == -1) {
                 String last_login_uuid = sysUserDTO.getLast_login_uuid();
-                redisUtil.delete("token:id:" + last_login_uuid);
+                redisUtil.delete(REDIS_LOGIN_TOKEN_PREFIX + last_login_uuid);
                 sysUserDTO.setLast_login_uuid("");
             }
 
@@ -393,7 +397,7 @@ public class SysUserV2ServiceImpl extends ServiceImpl<SysUserDao, SysUser> imple
             if (sysUserInfo != null) {
                 // 清除缓存
                 String last_login_uuid = Convert.toStr(sysUserInfo.getLast_login_uuid());
-                if (StrUtil.isNotEmpty(last_login_uuid)) redisUtil.delete("token:id:" + last_login_uuid);
+                if (StrUtil.isNotEmpty(last_login_uuid)) redisUtil.delete(REDIS_LOGIN_TOKEN_PREFIX + last_login_uuid);
                 // 更新用户信息 (查询最后登录uuid,并清除)
                 Wrapper updateWrapper = new UpdateWrapper<SysUserInfo>().lambda().set(SysUserInfo::getLast_login_uuid, "").eq(SysUserInfo::getUser_id, user_id);
                 sysUserInfoDao.update(null, updateWrapper);

+ 2 - 2
src/main/java/com/backendsys/modules/upload/controller/SysUploadController.java

@@ -39,7 +39,7 @@ public class SysUploadController {
     /**
      * 上传文件 (普通上传,单文件上传不超过 20MB)
      */
-    @PreAuthorize("@ss.hasPermi(1.1)")
+    @PreAuthorize("@sr.hasPermission(1.1)")
     @PostMapping("/api/upload/uploadSmall")
     public Result uploadSmall(@RequestParam("file") MultipartFile multipartFile, Long category_id) {
         return Result.success().put("data", sysUploadService.uploadSmall(multipartFile, category_id));
@@ -77,7 +77,7 @@ public class SysUploadController {
     /**
      * 删除上传文件
      */
-    @PreAuthorize("@ss.hasPermi(1.1)")
+    @PreAuthorize("@sr.hasPermission(1.1)")
     @DeleteMapping("/api/v2/upload/removeUploadFile")
     public Result removeUploadFile(@Validated(SysUpload.Delete.class) @RequestBody SysUpload sysUpload) {
         return Result.success().put("data", sysUploadService.removeUploadFile(sysUpload));

+ 3 - 3
src/main/java/com/backendsys/modules/upload/controller/SysUploadMultipartController.java

@@ -32,7 +32,7 @@ public class SysUploadMultipartController {
     /**
      * 初始化分块上传
      */
-    @PreAuthorize("@ss.hasPermi(1.1)")
+    @PreAuthorize("@sr.hasPermission(1.1)")
     @PostMapping("/api/upload/initiateMultipartUpload")
     public Result initiateMultipartUpload(@RequestParam("file") MultipartFile multipartFile, Long category_id) {
         return Result.success().put("data", sysUploadMultipartService.initiateMultipartUpload(multipartFile, category_id));
@@ -41,7 +41,7 @@ public class SysUploadMultipartController {
     /**
      * 上传分块
      */
-    @PreAuthorize("@ss.hasPermi(1.1)")
+    @PreAuthorize("@sr.hasPermission(1.1)")
     @PostMapping("/api/upload/uploadMultipart")
     public Result uploadMultipart(@RequestParam("file") MultipartFile multipartFile, String upload_id) {
         return Result.success().put("data", sysUploadMultipartService.uploadMultipart(multipartFile, upload_id));
@@ -50,7 +50,7 @@ public class SysUploadMultipartController {
     /**
      * 查询分块上传情况
      */
-    @PreAuthorize("@ss.hasPermi(1.1)")
+    @PreAuthorize("@sr.hasPermission(1.1)")
     @GetMapping("/api/upload/getListParts")
     public Result getListParts(String upload_id, String object_key) {
         return Result.success().put("data", sysUploadMultipartService.listParts(upload_id, object_key));

+ 6 - 4
src/main/java/com/backendsys/service/B2c/B2cMemberServiceImpl.java

@@ -30,6 +30,8 @@ public class B2cMemberServiceImpl implements B2cMemberService {
     @Autowired
     private RedisTemplate redisTemplate;
 
+    @Value("${REDIS_LOGIN_TOKEN_PREFIX}")
+    private String REDIS_LOGIN_TOKEN_PREFIX;
     @Value("${TOKEN_DURATION_MEMBER}")
     private Long TOKEN_DURATION_MEMBER;
 
@@ -115,7 +117,7 @@ public class B2cMemberServiceImpl implements B2cMemberService {
         Set redisKeys = redisTemplate.keys("token:*");
         // 获得UUID数组
         Set last_login_uuids = (Set) redisKeys.stream().map(
-                e -> String.valueOf(e).replace("token:id:", "")
+                e -> String.valueOf(e).replace(REDIS_LOGIN_TOKEN_PREFIX, "")
         ).collect(Collectors.toSet());
 
         return b2cMemberMapper.queryMemberWithLogined(last_login_uuids);
@@ -147,7 +149,7 @@ public class B2cMemberServiceImpl implements B2cMemberService {
         // [Redis] 删除旧 Redis Key
         String old_uuid = (String) b2cMemberDetail.get("last_login_uuid");
         if (old_uuid != null) {
-            stringRedisTemplate.delete("token:id:" + old_uuid);
+            stringRedisTemplate.delete(REDIS_LOGIN_TOKEN_PREFIX + old_uuid);
         }
 
         //System.out.println(b2cMemberDetail);
@@ -161,8 +163,8 @@ public class B2cMemberServiceImpl implements B2cMemberService {
         String token = jwtUtil.createMemberToken(b2cMemberDetail);
 
         // 存入 Redis:Token、Token过期时间
-        // String tokenRedisKey = "token:id:" + memberId;
-        String tokenRedisKey = "token:id:" + uuid;
+        // String tokenRedisKey = REDIS_LOGIN_TOKEN_PREFIX + memberId;
+        String tokenRedisKey = REDIS_LOGIN_TOKEN_PREFIX + uuid;
         stringRedisTemplate.opsForValue().set(tokenRedisKey, token, TOKEN_DURATION_MEMBER, TimeUnit.MILLISECONDS);
 
         // 6.[更新] 用户最后登录时间、登录IP

+ 3 - 1
src/main/java/com/backendsys/service/System/SysAuthServiceImpl.java

@@ -44,6 +44,8 @@ public class SysAuthServiceImpl implements SysAuthService {
     private Environment env;
     @Value("${tencent.sms.debug}")
     private String SMS_DEBUG;
+    @Value("${REDIS_LOGIN_TOKEN_PREFIX}")
+    private String REDIS_LOGIN_TOKEN_PREFIX;
 
     @Autowired
     private CountUtil countUtil;
@@ -192,7 +194,7 @@ public class SysAuthServiceImpl implements SysAuthService {
         String token = jwtUtil.createSystemJwtToken(securityUserInfo);
 
         // 存入 Redis:Token、Token过期时间
-        String tokenRedisKey = "token:id:" + uuid;
+        String tokenRedisKey = REDIS_LOGIN_TOKEN_PREFIX + uuid;
         stringRedisTemplate.opsForValue().set(tokenRedisKey, token, tokenDuration, TimeUnit.MILLISECONDS);
 
         // 6.[更新] 用户最后登录时间、登录IP

+ 10 - 8
src/main/java/com/backendsys/service/System/SysUserServiceImpl.java

@@ -11,6 +11,7 @@ import com.backendsys.utils.response.PageInfoResult;
 import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@@ -25,13 +26,14 @@ import java.util.stream.Collectors;
 @Service
 public class SysUserServiceImpl implements SysUserService {
 
+    @Value("${REDIS_LOGIN_TOKEN_PREFIX}")
+    private String REDIS_LOGIN_TOKEN_PREFIX;
+
     @Lazy
     @Autowired
     RedissonClient redissonClient;
-
     @Autowired
     private RedisTemplate redisTemplate;
-
     @Autowired
     private SysUserMapper sysUserMapper;
 
@@ -64,7 +66,7 @@ public class SysUserServiceImpl implements SysUserService {
         Set redisKeys = redisTemplate.keys("token:*");
         // 获得UUID数组
         Set last_login_uuids = (Set) redisKeys.stream().map(
-            e -> String.valueOf(e).replace("token:id:", "")
+            e -> String.valueOf(e).replace(REDIS_LOGIN_TOKEN_PREFIX, "")
         ).collect(Collectors.toSet());
 
         return sysUserMapper.queryUserWithLogined(last_login_uuids);
@@ -152,7 +154,7 @@ public class SysUserServiceImpl implements SysUserService {
             Integer status = sysUserDTO.getStatus();
             if (status != null && status == -1) {
                 String last_login_uuid = sysUserDTO.getLast_login_uuid();
-                redisTemplate.delete("token:id:" + last_login_uuid);
+                redisTemplate.delete(REDIS_LOGIN_TOKEN_PREFIX + last_login_uuid);
                 sysUserDTO.setLast_login_uuid("");
             }
 
@@ -212,7 +214,7 @@ public class SysUserServiceImpl implements SysUserService {
             Map<String, Object> sysUser = sysUserMapper.queryUserDetail(id);
 //            String last_login_uuid = (String) sysUser.get("last_login_uuid");
             String last_login_uuid = Convert.toStr(sysUser.get("last_login_uuid"));
-            redisTemplate.delete("token:id:" + last_login_uuid);
+            redisTemplate.delete(REDIS_LOGIN_TOKEN_PREFIX + last_login_uuid);
 
             sysUserMapper.deleteUser(id);
             return Map.of("user_id", id);
@@ -239,7 +241,7 @@ public class SysUserServiceImpl implements SysUserService {
                     String last_login_uuid = (String) uuidMap.get("last_login_uuid");
                     if (last_login_uuid != null && !last_login_uuid.isEmpty()) {
                         // 这里忽略清除 userInfo 的 last_login_uuid 字段,因为要删除了
-                        redisTemplate.delete("token:id:" + last_login_uuid);
+                        redisTemplate.delete(REDIS_LOGIN_TOKEN_PREFIX + last_login_uuid);
                     }
                 }
             }
@@ -267,7 +269,7 @@ public class SysUserServiceImpl implements SysUserService {
             Map<String, Object> sysUser = sysUserMapper.queryUserDetail(id);
 //            String last_login_uuid = (String) sysUser.get("last_login_uuid");
             String last_login_uuid = Convert.toStr(sysUser.get("last_login_uuid"));
-            redisTemplate.delete("token:id:" + last_login_uuid);
+            redisTemplate.delete(REDIS_LOGIN_TOKEN_PREFIX + last_login_uuid);
 
             sysUserMapper.deactivateUser(id);
             return Map.of("user_id", id);
@@ -364,7 +366,7 @@ public class SysUserServiceImpl implements SysUserService {
 //            String last_login_uuid = (String) sysUser.get("last_login_uuid");
             String last_login_uuid = Convert.toStr(sysUser.get("last_login_uuid"));
             if (!last_login_uuid.isEmpty()) {
-                redisTemplate.delete("token:id:" + last_login_uuid);
+                redisTemplate.delete(REDIS_LOGIN_TOKEN_PREFIX + last_login_uuid);
                 return Map.of("user_id", user_id);
             } else {
                 return Map.of("user_id", null);

+ 5 - 0
src/main/resources/application-local.yml

@@ -14,6 +14,11 @@ HTTP_ACTUATOR_URI: https://jsonplaceholder.typicode.com
 # 是否开启API日志 (true|false)
 API_LOG: true
 
+# [Redis] 缓存键值前缀
+REDIS_LOGIN_TOKEN_PREFIX: "backendsys:local:login:token:"
+REDIS_LOGIN_PERMISSION_PREFIX: "backendsys:local:login:permission:"
+
+
 log-stream:
   enable: true
   sign: 97e3ef8e-a8b9-46f3-b63a-f0504154efb7

+ 5 - 0
src/main/resources/application-prod.yml

@@ -14,6 +14,11 @@ HTTP_ACTUATOR_URI: http://43.128.1.201:48080
 # 是否开启API日志 (true|false)
 API_LOG: false
 
+# [Redis] 缓存键值前缀
+REDIS_LOGIN_TOKEN_PREFIX: "backendsys:prod:login:token:"
+REDIS_LOGIN_PERMISSION_PREFIX: "backendsys:prod:login:permission:"
+
+
 log-stream:
   enable: true
   sign: 97e3ef8e-a8b9-46f3-b63a-f0504154efb7

+ 0 - 4
src/main/resources/application.yml

@@ -155,10 +155,6 @@ TOKEN_DURATION_MEMBER: 604800000
 # (防止恶意用户同时使用多个会话进行非法操作)
 MAXIMUM_SESSIONS: -1
 
-# [Redis] 登录键
-REDIS_LOGIN_KEY: "token:id:"
-
-
 ##监控器 Actuator
 #management:
 #  # 端点开放控制