From 70b206cdedab660b9599d319268d86e2833ba70c Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期六, 24 八月 2024 21:22:32 +0800 Subject: [PATCH] 1 --- se-modules/se-system/src/main/java/com/se/system/service/impl/SysPermissionServiceImpl.java | 58 ++++++++++++++++------------ docker-compose/mysql/initdb/se_config_20231204.sql | 2 se-modules/se-system/src/main/java/com/se/system/controller/SysUserController.java | 6 ++- se-modules/se-system/src/main/java/com/se/system/service/ISysPermissionService.java | 16 ++++++-- 4 files changed, 50 insertions(+), 32 deletions(-) diff --git a/docker-compose/mysql/initdb/se_config_20231204.sql b/docker-compose/mysql/initdb/se_config_20231204.sql index 6b1b9e1..04e7dcc 100644 --- a/docker-compose/mysql/initdb/se_config_20231204.sql +++ b/docker-compose/mysql/initdb/se_config_20231204.sql @@ -34,7 +34,7 @@ insert into config_info(id, data_id, group_id, content, md5, gmt_create, gmt_modified, src_user, src_ip, app_name, tenant_id, c_desc, c_use, effect, type, c_schema, encrypted_data_key) values (1,'application-dev.yml','DEFAULT_GROUP','spring:\n autoconfigure:\n exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure\n mvc:\n pathmatch:\n matching-strategy: ant_path_matcher\n\n# feign 閰嶇疆\nfeign:\n sentinel:\n enabled: true\n okhttp:\n enabled: true\n httpclient:\n enabled: false\n client:\n config:\n default:\n connectTimeout: 10000\n readTimeout: 10000\n compression:\n request:\n enabled: true\n min-request-size: 8192\n response:\n enabled: true\n\n# 鏆撮湶鐩戞帶绔偣\nmanagement:\n endpoints:\n web:\n exposure:\n include: \'*\'\n','58dde4e3760499d3bac2d77a3a1e9018','2020-05-20 12:00:00','2023-12-04 08:08:23','nacos','0:0:0:0:0:0:0:1','','','閫氱敤閰嶇疆','null','null','yaml','',''), -(2,'se-gateway-dev.yml','DEFAULT_GROUP','spring:\n redis:\n host: se-redis\n port: 6379\n password: Redis_s!E_6.2.6\n cloud:\n gateway:\n discovery:\n locator:\n lowerCaseServiceId: true\n enabled: true\n routes:\n # 璁よ瘉涓績\n - id: se-auth\n uri: lb://se-auth\n predicates:\n - Path=/auth/**\n filters:\n # 楠岃瘉鐮佸鐞哱n - CacheRequestFilter\n - ValidateCodeFilter\n - StripPrefix=1\n # 浠g爜鐢熸垚\n - id: se-gen\n uri: lb://se-gen\n predicates:\n - Path=/code/**\n filters:\n - StripPrefix=1\n # 瀹氭椂浠诲姟\n - id: se-job\n uri: lb://se-job\n predicates:\n - Path=/schedule/**\n filters:\n - StripPrefix=1\n # 绯荤粺妯″潡\n - id: se-system\n uri: lb://se-system\n predicates:\n - Path=/system/**\n filters:\n - StripPrefix=1\n # 鏂囦欢鏈嶅姟\n - id: se-file\n uri: lb://se-file\n predicates:\n - Path=/file/**\n filters:\n - StripPrefix=1\n\n# 瀹夊叏閰嶇疆\nsecurity:\n # 楠岃瘉鐮� math,char\n captcha:\n enabled: false\n type: math\n # 闃叉XSS鏀诲嚮\n xss:\n enabled: true\n excludeUrls:\n - /system/notice\n # 涓嶆牎楠岀櫧鍚嶅崟\n ignore:\n whites:\n - /auth/logout\n - /auth/login\n - /auth/register\n - /*/v2/api-docs\n - /csrf\n','57cec5abd0e0a6b77d853750344a9dc0','2020-05-14 14:17:55','2022-09-29 02:48:32','nacos','0:0:0:0:0:0:0:1','','','缃戝叧妯″潡','null','null','yaml','',''), +(2,'se-gateway-dev.yml','DEFAULT_GROUP','spring:\n redis:\n host: se-redis\n port: 6379\n password: Redis_s!E_6.2.6\n cloud:\n gateway:\n discovery:\n locator:\n lowerCaseServiceId: true\n enabled: true\n routes:\n # 璁よ瘉涓績\n - id: se-auth\n uri: lb://se-auth\n predicates:\n - Path=/auth/**\n filters:\n # 楠岃瘉鐮佸鐞哱n - CacheRequestFilter\n - ValidateCodeFilter\n - StripPrefix=1\n # 浠g爜鐢熸垚\n - id: se-gen\n uri: lb://se-gen\n predicates:\n - Path=/code/**\n filters:\n - StripPrefix=1\n # 瀹氭椂浠诲姟\n - id: se-job\n uri: lb://se-job\n predicates:\n - Path=/schedule/**\n filters:\n - StripPrefix=1\n # 绯荤粺妯″潡\n - id: se-system\n uri: lb://se-system\n predicates:\n - Path=/system/**\n filters:\n - StripPrefix=1\n # 鏂囦欢鏈嶅姟\n - id: se-file\n uri: lb://se-file\n predicates:\n - Path=/file/**\n filters:\n - StripPrefix=1\n\n# 瀹夊叏閰嶇疆\nsecurity:\n # 楠岃瘉鐮� math,char\n captcha:\n enabled: false\n type: math\n # 闃叉XSS鏀诲嚮\n xss:\n enabled: true\n excludeUrls:\n - /system/notice\n # 涓嶆牎楠岀櫧鍚嶅崟\n ignore:\n whites:\n - /*/health\n - /auth/logout\n - /auth/login\n - /auth/register\n - /*/v2/api-docs\n - /csrf\n','57cec5abd0e0a6b77d853750344a9dc0','2020-05-14 14:17:55','2022-09-29 02:48:32','nacos','0:0:0:0:0:0:0:1','','','缃戝叧妯″潡','null','null','yaml','',''), (3,'se-auth-dev.yml','DEFAULT_GROUP','spring:\n redis:\n host: se-redis\n port: 6379\n password: Redis_s!E_6.2.6\n','8bd9dada9a94822feeab40de55efced6','2020-11-20 00:00:00','2022-09-29 02:48:42','nacos','0:0:0:0:0:0:0:1','','','璁よ瘉涓績','null','null','yaml','',''), (4,'se-monitor-dev.yml','DEFAULT_GROUP','# spring\nspring:\n security:\n user:\n name: se\n password: 123456\n boot:\n admin:\n ui:\n title: 鏈嶅姟鐘舵�佺洃鎺n','6f122fd2bfb8d45f858e7d6529a9cd44','2020-11-20 00:00:00','2022-09-29 02:48:54','nacos','0:0:0:0:0:0:0:1','','','鐩戞帶涓績','null','null','yaml','',''), (5,'se-system-dev.yml','DEFAULT_GROUP','# spring閰嶇疆\nspring:\n redis:\n host: se-redis\n port: 6379\n password: Redis_s!E_6.2.6\n datasource:\n druid:\n stat-view-servlet:\n enabled: false\n loginUsername: admin\n loginPassword: 123456\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n connectTimeout: 30000\n socketTimeout: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n # 涓诲簱鏁版嵁婧怽n master:\n driver-class-name: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://se-mysql:3306/se-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8\n username: root\n password: My_Sql_s!E_v5.7\n # 浠庡簱鏁版嵁婧怽n # slave:\n # username: \n # password: \n # url: \n # driver-class-name: \n\n# mybatis閰嶇疆\nmybatis:\n # 鎼滅储鎸囧畾鍖呭埆鍚峔n typeAliasesPackage: com.se.system\n # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢\n mapperLocations: classpath:mapper/**/*.xml\n\n# swagger閰嶇疆\nswagger:\n title: 绯荤粺妯″潡鎺ュ彛鏂囨。\n license: Powered By se','00678c89684ec0b825cb9b71e032db64','2020-11-20 00:00:00','2023-12-04 07:51:28','nacos','0:0:0:0:0:0:0:1','','','绯荤粺妯″潡','null','null','yaml','',''), diff --git a/se-modules/se-system/src/main/java/com/se/system/controller/SysUserController.java b/se-modules/se-system/src/main/java/com/se/system/controller/SysUserController.java index 3b9d05d..b6d3ea3 100644 --- a/se-modules/se-system/src/main/java/com/se/system/controller/SysUserController.java +++ b/se-modules/se-system/src/main/java/com/se/system/controller/SysUserController.java @@ -165,16 +165,18 @@ * @return 鐢ㄦ埛淇℃伅 */ @GetMapping("getInfo") - public AjaxResult getInfo() - { + public AjaxResult getInfo() { SysUser user = userService.selectUserById(SecurityUtils.getUserId()); // 瑙掕壊闆嗗悎 Set<String> roles = permissionService.getRolePermission(user); // 鏉冮檺闆嗗悎 Set<String> permissions = permissionService.getMenuPermission(user); + // 宀椾綅闆嗗悎 + List<String> posts = permissionService.getPostPermission(user); AjaxResult ajax = AjaxResult.success(); ajax.put("user", user); ajax.put("roles", roles); + ajax.put("posts", posts); ajax.put("permissions", permissions); return ajax; } diff --git a/se-modules/se-system/src/main/java/com/se/system/service/ISysPermissionService.java b/se-modules/se-system/src/main/java/com/se/system/service/ISysPermissionService.java index e2fe76f..5a0ab43 100644 --- a/se-modules/se-system/src/main/java/com/se/system/service/ISysPermissionService.java +++ b/se-modules/se-system/src/main/java/com/se/system/service/ISysPermissionService.java @@ -1,5 +1,6 @@ package com.se.system.service; +import java.util.List; import java.util.Set; import com.se.system.api.domain.SysUser; @@ -9,11 +10,10 @@ * * @author admin */ -public interface ISysPermissionService -{ +public interface ISysPermissionService { /** * 鑾峰彇瑙掕壊鏁版嵁鏉冮檺 - * + * * @param userId 鐢ㄦ埛Id * @return 瑙掕壊鏉冮檺淇℃伅 */ @@ -21,9 +21,17 @@ /** * 鑾峰彇鑿滃崟鏁版嵁鏉冮檺 - * + * * @param userId 鐢ㄦ埛Id * @return 鑿滃崟鏉冮檺淇℃伅 */ public Set<String> getMenuPermission(SysUser user); + + /** + * 鑾峰彇鑿滃崟鏁版嵁鏉冮檺 + * + * @param userId 鐢ㄦ埛Id + * @return 鑿滃崟鏉冮檺淇℃伅 + */ + public List<String> getPostPermission(SysUser user); } diff --git a/se-modules/se-system/src/main/java/com/se/system/service/impl/SysPermissionServiceImpl.java b/se-modules/se-system/src/main/java/com/se/system/service/impl/SysPermissionServiceImpl.java index 3950578..24387c8 100644 --- a/se-modules/se-system/src/main/java/com/se/system/service/impl/SysPermissionServiceImpl.java +++ b/se-modules/se-system/src/main/java/com/se/system/service/impl/SysPermissionServiceImpl.java @@ -1,8 +1,14 @@ package com.se.system.service.impl; +import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; + +import com.se.common.core.utils.StringUtils; +import com.se.system.domain.SysPost; +import com.se.system.mapper.SysPostMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -12,37 +18,37 @@ import com.se.system.service.ISysPermissionService; import com.se.system.service.ISysRoleService; +import javax.annotation.Resource; + /** * 鐢ㄦ埛鏉冮檺澶勭悊 * * @author admin */ @Service -public class SysPermissionServiceImpl implements ISysPermissionService -{ +public class SysPermissionServiceImpl implements ISysPermissionService { @Autowired private ISysRoleService roleService; @Autowired private ISysMenuService menuService; + @Resource + private SysPostMapper postMapper; + /** * 鑾峰彇瑙掕壊鏁版嵁鏉冮檺 - * + * * @param userId 鐢ㄦ埛Id * @return 瑙掕壊鏉冮檺淇℃伅 */ @Override - public Set<String> getRolePermission(SysUser user) - { + public Set<String> getRolePermission(SysUser user) { Set<String> roles = new HashSet<String>(); // 绠$悊鍛樻嫢鏈夋墍鏈夋潈闄� - if (user.isAdmin()) - { + if (user.isAdmin()) { roles.add("admin"); - } - else - { + } else { roles.addAll(roleService.selectRolePermissionByUserId(user.getUserId())); } return roles; @@ -50,37 +56,39 @@ /** * 鑾峰彇鑿滃崟鏁版嵁鏉冮檺 - * + * * @param userId 鐢ㄦ埛Id * @return 鑿滃崟鏉冮檺淇℃伅 */ @Override - public Set<String> getMenuPermission(SysUser user) - { + public Set<String> getMenuPermission(SysUser user) { Set<String> perms = new HashSet<String>(); // 绠$悊鍛樻嫢鏈夋墍鏈夋潈闄� - if (user.isAdmin()) - { + if (user.isAdmin()) { perms.add("*:*:*"); - } - else - { + } else { List<SysRole> roles = user.getRoles(); - if (!CollectionUtils.isEmpty(roles)) - { + if (!CollectionUtils.isEmpty(roles)) { // 澶氳鑹茶缃畃ermissions灞炴�э紝浠ヤ究鏁版嵁鏉冮檺鍖归厤鏉冮檺 - for (SysRole role : roles) - { + for (SysRole role : roles) { Set<String> rolePerms = menuService.selectMenuPermsByRoleId(role.getRoleId()); role.setPermissions(rolePerms); perms.addAll(rolePerms); } - } - else - { + } else { perms.addAll(menuService.selectMenuPermsByUserId(user.getUserId())); } } return perms; } + + @Override + public List<String> getPostPermission(SysUser user) { + List<SysPost> list = postMapper.selectPostsByUserName(user.getUserName()); + if (CollectionUtils.isEmpty(list)) { + return null; + } + + return list.stream().map(SysPost::getPostName).collect(Collectors.toList()); + } } -- Gitblit v1.9.3