From 4ddfd502023662f6d25c4be416d88751e206d91a Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期二, 25 十月 2022 09:45:30 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/controller/sys/RoleMenuAuthController.java | 22 ++ src/main/resources/mapper/sys/OperateMapper.xml | 2 src/main/java/com/lf/server/controller/sys/RoleController.java | 19 ++ src/main/java/com/lf/server/interceptor/AuthInterceptor.java | 36 +++- src/main/java/com/lf/server/controller/sys/MenuController.java | 22 ++ src/main/resources/mapper/all/PermsMapper.xml | 8 src/main/java/com/lf/server/controller/sys/AuthController.java | 21 ++ src/main/java/com/lf/server/service/all/PermsService.java | 84 +++++++++- src/main/java/com/lf/server/mapper/all/PermsMapper.java | 6 src/main/java/com/lf/server/service/sys/TokenService.java | 14 + src/main/java/com/lf/server/controller/all/PermsController.java | 12 src/main/java/com/lf/server/controller/sys/MenuAuthController.java | 22 ++ src/main/java/com/lf/server/service/all/ScheduleService.java | 48 +---- src/main/java/com/lf/server/controller/sys/RoleResController.java | 22 ++ data/db_fn.sql | 9 + src/main/java/com/lf/server/controller/sys/ResController.java | 21 ++ src/main/java/com/lf/server/controller/sys/RoleUserController.java | 22 ++ src/main/java/com/lf/server/entity/all/RedisCacheKey.java | 46 +++- src/main/resources/mapper/sys/LoginMapper.xml | 4 19 files changed, 351 insertions(+), 89 deletions(-) diff --git a/data/db_fn.sql b/data/db_fn.sql index a1de102..3af94e6 100644 --- a/data/db_fn.sql +++ b/data/db_fn.sql @@ -207,6 +207,12 @@ select a.*,b.menuid,c.name from lf.sys_role_menu_auth a inner join lf.sys_menu_auth b on a.menu_auth_id = b.id inner join lf.sys_auth c on b.authid = c.id where a.roleid = 1 and b.menuid = 1 order by c.id; +----------------------------------------------------------------------------------------------------- +update lf.sys_operate set modular1='杩愮淮绠$悊',modular2='鑿滃崟绠$悊' where position('/Menu/select' in url)>0 and (modular1 is null or modular2 is null); +update lf.sys_operate set modular1='杩愮淮绠$悊',modular2='鐢ㄦ埛绠$悊' where position('/user/select' in url)>0 and (modular1 is null or modular2 is null); +update lf.sys_operate set modular1='杩愮淮绠$悊',modular2='璧勬簮绠$悊' where position('/res/select' in url)>0 and (modular1 is null or modular2 is null); + +delete from lf.sys_operate where modular1 is null or modular2 is null; ----------------------------------------------------------------------------------------------------- select gid,gb,name,st_astext(a.geom) from bd.dlg_agnp a; select * from lf.sys_menu; @@ -243,7 +249,10 @@ inner join lf.sys_auth f on d.authid = f.id where a.uid = 'admin'; +select modular2,count(*) from lf.sys_operate group by modular2; +select to_char(optime,'yyyy-mm-dd') as optime,count(*) from lf.sys_login where optime between (select optime - interval '30 day') +and optime group by to_char(optime, 'yyyy-mm-dd') order by to_char(optime, 'yyyy-mm-dd') asc; diff --git a/src/main/java/com/lf/server/controller/all/PermsController.java b/src/main/java/com/lf/server/controller/all/PermsController.java index 157b84a..defdde7 100644 --- a/src/main/java/com/lf/server/controller/all/PermsController.java +++ b/src/main/java/com/lf/server/controller/all/PermsController.java @@ -64,9 +64,9 @@ @ApiImplicitParam(name = "uid", value = "鐢ㄦ埛Uid", dataType = "String", paramType = "query", example = "admin") }) @GetMapping(value = "/selectPerms") - public ResponseMsg<List<PermsAuthEntity>> selectPerms(String uid) { + public ResponseMsg<List<String>> selectPerms(String uid) { try { - List<PermsAuthEntity> rs = permsService.selectPerms(uid); + List<String> rs = permsService.selectPerms(uid); return success(rs); } catch (Exception ex) { @@ -75,14 +75,14 @@ } @SysLog() - @ApiOperation(value = "鏍规嵁鐢ㄦ埛Uid鏌ヨ鏉冮檺鎺堟潈2") + @ApiOperation(value = "鏍规嵁鐢ㄦ埛Uid鏌ヨ鏉冮檺鎺堟潈瀹炰綋闆嗗悎") @ApiImplicitParams({ @ApiImplicitParam(name = "uid", value = "鐢ㄦ埛Uid", dataType = "String", paramType = "query", example = "admin") }) - @GetMapping(value = "/selectPerms2") - public ResponseMsg<List<String>> selectPerms2(String uid) { + @GetMapping(value = "/selectPermsEntity") + public ResponseMsg<List<PermsAuthEntity>> selectPermsEntity(String uid) { try { - List<String> rs = permsService.selectPerms2(uid); + List<PermsAuthEntity> rs = permsService.selectPermsEntity(uid); return success(rs); } catch (Exception ex) { diff --git a/src/main/java/com/lf/server/controller/sys/AuthController.java b/src/main/java/com/lf/server/controller/sys/AuthController.java index 425ebeb..c90be8b 100644 --- a/src/main/java/com/lf/server/controller/sys/AuthController.java +++ b/src/main/java/com/lf/server/controller/sys/AuthController.java @@ -5,6 +5,7 @@ import com.lf.server.entity.all.ResponseMsg; import com.lf.server.entity.sys.AuthEntity; import com.lf.server.entity.sys.UserEntity; +import com.lf.server.service.all.PermsService; import com.lf.server.service.sys.AuthService; import com.lf.server.service.sys.TokenService; import io.swagger.annotations.Api; @@ -31,6 +32,9 @@ @Autowired TokenService tokenService; + + @Autowired + PermsService permsService; @SysLog() @ApiOperation(value = "鏌ヨ璁板綍鏁�") @@ -136,6 +140,9 @@ } int count = authService.insertAuth(entity); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -159,6 +166,9 @@ } int count = authService.insertAuths(list); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -175,6 +185,9 @@ public ResponseMsg<Integer> deleteAuth(int id) { try { int count = authService.deleteAuth(id); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -193,7 +206,12 @@ if (ids == null || ids.isEmpty()) { return fail("id鏁扮粍涓嶈兘涓虹┖", -1); } + int count = authService.deleteAuths(ids); + if (count > 0) { + permsService.clearPermsCache(); + } + return success(count); } catch (Exception ex) { return fail(ex.getMessage(), -1); @@ -215,6 +233,9 @@ } int count = authService.updateAuth(entity); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { diff --git a/src/main/java/com/lf/server/controller/sys/MenuAuthController.java b/src/main/java/com/lf/server/controller/sys/MenuAuthController.java index a4e8631..de58702 100644 --- a/src/main/java/com/lf/server/controller/sys/MenuAuthController.java +++ b/src/main/java/com/lf/server/controller/sys/MenuAuthController.java @@ -5,6 +5,7 @@ import com.lf.server.entity.all.ResponseMsg; import com.lf.server.entity.sys.MenuAuthEntity; import com.lf.server.entity.sys.UserEntity; +import com.lf.server.service.all.PermsService; import com.lf.server.service.sys.MenuAuthService; import com.lf.server.service.sys.TokenService; import io.swagger.annotations.Api; @@ -30,6 +31,9 @@ @Autowired TokenService tokenService; + + @Autowired + PermsService permsService; @SysLog() @ApiOperation(value = "鏌ヨ璁板綍鏁�") @@ -165,6 +169,9 @@ } int count = menuAuthService.insert(entity); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -188,6 +195,9 @@ } int count = menuAuthService.inserts(list); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -204,6 +214,9 @@ public ResponseMsg<Integer> delete(int id) { try { int count = menuAuthService.delete(id); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -224,6 +237,9 @@ } int count = menuAuthService.deletes(ids); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -246,6 +262,9 @@ } int count = menuAuthService.update(entity); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -270,6 +289,9 @@ } int count = menuAuthService.updates(list); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { diff --git a/src/main/java/com/lf/server/controller/sys/MenuController.java b/src/main/java/com/lf/server/controller/sys/MenuController.java index 6d92046..23a652a 100644 --- a/src/main/java/com/lf/server/controller/sys/MenuController.java +++ b/src/main/java/com/lf/server/controller/sys/MenuController.java @@ -7,6 +7,7 @@ import com.lf.server.entity.sys.MenuEntity; import com.lf.server.entity.sys.UserEntity; import com.lf.server.helper.StringHelper; +import com.lf.server.service.all.PermsService; import com.lf.server.service.sys.MenuService; import com.lf.server.service.sys.TokenService; import io.swagger.annotations.Api; @@ -34,6 +35,9 @@ @Autowired TokenService tokenService; + @Autowired + PermsService permsService; + @SysLog() @ApiOperation(value = "鎻掑叆涓�鏉�") @ApiImplicitParams({ @@ -48,6 +52,9 @@ } int count = menuService.insertMenu(entity); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -71,6 +78,9 @@ } int count = menuService.insertMenus(list); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -87,6 +97,9 @@ public ResponseMsg<Integer> deleteMenu(int id) { try { int count = menuService.deleteMenu(id); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -107,6 +120,9 @@ } int count = menuService.deleteMenus(ids); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -129,6 +145,9 @@ } int count = menuService.updateMenu(entity); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -153,6 +172,9 @@ } int count = menuService.updateMenus(list); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { diff --git a/src/main/java/com/lf/server/controller/sys/ResController.java b/src/main/java/com/lf/server/controller/sys/ResController.java index 8fdf779..acafac1 100644 --- a/src/main/java/com/lf/server/controller/sys/ResController.java +++ b/src/main/java/com/lf/server/controller/sys/ResController.java @@ -5,6 +5,7 @@ import com.lf.server.entity.all.ResponseMsg; import com.lf.server.entity.sys.ResEntity; import com.lf.server.entity.sys.UserEntity; +import com.lf.server.service.all.PermsService; import com.lf.server.service.all.UploadService; import com.lf.server.service.sys.ResService; import com.lf.server.service.sys.TokenService; @@ -37,6 +38,9 @@ @Autowired UploadService uploadService; + + @Autowired + PermsService permsService; private final static String TAB_NAME = "sys_res"; @@ -144,6 +148,9 @@ } int count = resService.insertRes(entity); + if (count > 0) { + permsService.clearResCache(); + } return success(count); } catch (Exception ex) { @@ -167,6 +174,9 @@ } int count = resService.insertRess(list); + if (count > 0) { + permsService.clearResCache(); + } return success(count); } catch (Exception ex) { @@ -183,6 +193,9 @@ public ResponseMsg<Integer> deleteRes(int id) { try { int count = resService.deleteRes(id); + if (count > 0) { + permsService.clearResCache(); + } return success(count); } catch (Exception ex) { @@ -201,7 +214,12 @@ if (ids == null || ids.isEmpty()) { return fail("id鏁扮粍涓嶈兘涓虹┖", -1); } + int count = resService.deleteRess(ids); + if (count > 0) { + permsService.clearResCache(); + } + return success(count); } catch (Exception ex) { return fail(ex.getMessage(), -1); @@ -223,6 +241,9 @@ } int count = resService.updateRes(entity); + if (count > 0) { + permsService.clearResCache(); + } return success(count); } catch (Exception ex) { diff --git a/src/main/java/com/lf/server/controller/sys/RoleController.java b/src/main/java/com/lf/server/controller/sys/RoleController.java index 893cd95..21efa18 100644 --- a/src/main/java/com/lf/server/controller/sys/RoleController.java +++ b/src/main/java/com/lf/server/controller/sys/RoleController.java @@ -5,6 +5,7 @@ import com.lf.server.entity.all.ResponseMsg; import com.lf.server.entity.sys.RoleEntity; import com.lf.server.entity.sys.UserEntity; +import com.lf.server.service.all.PermsService; import com.lf.server.service.sys.RoleService; import com.lf.server.service.sys.TokenService; import io.swagger.annotations.Api; @@ -31,6 +32,9 @@ @Autowired TokenService tokenService; + + @Autowired + PermsService permsService; @SysLog() @ApiOperation(value = "鏌ヨ璁板綍鏁�") @@ -114,6 +118,9 @@ } int count = roleService.insertRole(entity); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -137,6 +144,9 @@ } int count = roleService.insertRoles(list); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -153,6 +163,9 @@ public ResponseMsg<Integer> deleteRole(int id) { try { int count = roleService.deleteRole(id); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -173,6 +186,9 @@ } int count = roleService.deleteRoles(ids); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -195,6 +211,9 @@ } int count = roleService.updateRole(entity); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { diff --git a/src/main/java/com/lf/server/controller/sys/RoleMenuAuthController.java b/src/main/java/com/lf/server/controller/sys/RoleMenuAuthController.java index b81321f..d284999 100644 --- a/src/main/java/com/lf/server/controller/sys/RoleMenuAuthController.java +++ b/src/main/java/com/lf/server/controller/sys/RoleMenuAuthController.java @@ -5,6 +5,7 @@ import com.lf.server.entity.all.ResponseMsg; import com.lf.server.entity.sys.RoleMenuAuthEntity; import com.lf.server.entity.sys.UserEntity; +import com.lf.server.service.all.PermsService; import com.lf.server.service.sys.RoleMenuAuthService; import com.lf.server.service.sys.TokenService; import io.swagger.annotations.Api; @@ -30,6 +31,9 @@ @Autowired TokenService tokenService; + + @Autowired + PermsService permsService; @SysLog() @ApiOperation(value = "鏌ヨ璁板綍鏁�") @@ -165,6 +169,9 @@ } int count = roleMenuAuthService.insert(entity); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -188,6 +195,9 @@ } int count = roleMenuAuthService.inserts(list); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -204,6 +214,9 @@ public ResponseMsg<Integer> delete(int id) { try { int count = roleMenuAuthService.delete(id); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -224,6 +237,9 @@ } int count = roleMenuAuthService.deletes(ids); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -246,6 +262,9 @@ } int count = roleMenuAuthService.update(entity); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -270,6 +289,9 @@ } int count = roleMenuAuthService.updates(list); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { diff --git a/src/main/java/com/lf/server/controller/sys/RoleResController.java b/src/main/java/com/lf/server/controller/sys/RoleResController.java index 3f1c4fa..2371076 100644 --- a/src/main/java/com/lf/server/controller/sys/RoleResController.java +++ b/src/main/java/com/lf/server/controller/sys/RoleResController.java @@ -5,6 +5,7 @@ import com.lf.server.entity.all.ResponseMsg; import com.lf.server.entity.sys.RoleResEntity; import com.lf.server.entity.sys.UserEntity; +import com.lf.server.service.all.PermsService; import com.lf.server.service.sys.RoleResService; import com.lf.server.service.sys.TokenService; import io.swagger.annotations.Api; @@ -30,6 +31,9 @@ @Autowired TokenService tokenService; + + @Autowired + PermsService permsService; @SysLog() @ApiOperation(value = "鏌ヨ璁板綍鏁�") @@ -137,6 +141,9 @@ } int count = roleResService.insert(entity); + if (count > 0) { + permsService.clearResCache(); + } return success(count); } catch (Exception ex) { @@ -160,6 +167,9 @@ } int count = roleResService.inserts(list); + if (count > 0) { + permsService.clearResCache(); + } return success(count); } catch (Exception ex) { @@ -176,6 +186,9 @@ public ResponseMsg<Integer> delete(int id) { try { int count = roleResService.delete(id); + if (count > 0) { + permsService.clearResCache(); + } return success(count); } catch (Exception ex) { @@ -196,6 +209,9 @@ } int count = roleResService.deletes(ids); + if (count > 0) { + permsService.clearResCache(); + } return success(count); } catch (Exception ex) { @@ -218,6 +234,9 @@ } int count = roleResService.update(entity); + if (count > 0) { + permsService.clearResCache(); + } return success(count); } catch (Exception ex) { @@ -242,6 +261,9 @@ } int count = roleResService.updates(list); + if (count > 0) { + permsService.clearResCache(); + } return success(count); } catch (Exception ex) { diff --git a/src/main/java/com/lf/server/controller/sys/RoleUserController.java b/src/main/java/com/lf/server/controller/sys/RoleUserController.java index 3243472..ac9f16c 100644 --- a/src/main/java/com/lf/server/controller/sys/RoleUserController.java +++ b/src/main/java/com/lf/server/controller/sys/RoleUserController.java @@ -5,6 +5,7 @@ import com.lf.server.entity.all.ResponseMsg; import com.lf.server.entity.sys.RoleUserEntity; import com.lf.server.entity.sys.UserEntity; +import com.lf.server.service.all.PermsService; import com.lf.server.service.sys.RoleUserService; import com.lf.server.service.sys.TokenService; import io.swagger.annotations.Api; @@ -30,6 +31,9 @@ @Autowired TokenService tokenService; + + @Autowired + PermsService permsService; @SysLog() @ApiOperation(value = "鏌ヨ璁板綍鏁�") @@ -137,6 +141,9 @@ } int count = roleUserService.insert(entity); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -160,6 +167,9 @@ } int count = roleUserService.inserts(list); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -176,6 +186,9 @@ public ResponseMsg<Integer> delete(int id) { try { int count = roleUserService.delete(id); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -196,6 +209,9 @@ } int count = roleUserService.deletes(ids); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -218,6 +234,9 @@ } int count = roleUserService.update(entity); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { @@ -242,6 +261,9 @@ } int count = roleUserService.updates(list); + if (count > 0) { + permsService.clearPermsCache(); + } return success(count); } catch (Exception ex) { diff --git a/src/main/java/com/lf/server/entity/all/RedisCacheKey.java b/src/main/java/com/lf/server/entity/all/RedisCacheKey.java index d54b416..74826b9 100644 --- a/src/main/java/com/lf/server/entity/all/RedisCacheKey.java +++ b/src/main/java/com/lf/server/entity/all/RedisCacheKey.java @@ -7,9 +7,6 @@ public class RedisCacheKey { /** * 鐧诲綍浠ょ墝閿� - * - * @param key - * @return */ public static String signTokenKey(String key) { return "sign:token:" + key; @@ -17,9 +14,6 @@ /** * 鐧诲綍鐢ㄦ埛閿� - * - * @param key - * @return */ public static String signUserKey(String key) { return "sign:user:" + key; @@ -27,21 +21,43 @@ /** * 瀵嗙爜閿欒閿� - * - * @param key - * @return */ public static String signPwdError(String key) { return "sign:pwdError:" + key; } /** - * 閿佸畾鐢ㄦ埛閿� - * - * @param key - * @return + * 鎺堟潈鏍归敭 */ - public static String signLockUser(String key) { - return "sso:lockUser:" + key; + public static String permsRootKey() { + return "sso:"; + } + + /** + * 璧勬簮鎺堟潈閿� + */ + public static String permsResKey(String key) { + return "perms:res:" + key; + } + + /** + * 鑿滃崟鎺堟潈閿� + */ + public static String permsMenusKey(String key) { + return "perms:menus:" + key; + } + + /** + * 鏉冮檺鎺堟潈閿� + */ + public static String permsPermsKey(String key) { + return "perms:perms:" + key; + } + + /** + * 鏉冮檺鎺堟潈瀹炰綋閿� + */ + public static String permsPermsEntityKey(String key) { + return "perms:permsEntity:" + key; } } diff --git a/src/main/java/com/lf/server/interceptor/AuthInterceptor.java b/src/main/java/com/lf/server/interceptor/AuthInterceptor.java index ba8612b..180f9bb 100644 --- a/src/main/java/com/lf/server/interceptor/AuthInterceptor.java +++ b/src/main/java/com/lf/server/interceptor/AuthInterceptor.java @@ -14,6 +14,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 韬唤璁よ瘉鎷︽埅鍣� @@ -31,22 +32,19 @@ private static final String USER_LOCK = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.USER_LOCK_ERROR, "鐢ㄦ埛ID宸茬鐢�")); + private static final String NO_AUTH = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.NO_AUTH_ERROR, "鏃犳潈闄愯闂�")); + public AuthInterceptor(TokenService tokenService) { this.tokenService = tokenService; } /** * Controller鎵ц涔嬪墠鎵ц锛屽鏋滆繑鍥炲�兼槸true鍒欎唬琛ㄦ斁琛岋紝杩斿洖false鍒欐嫤鎴� - * - * @param request - * @param response - * @param handler - * @return */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { + // noinspection AlibabaRemoveCommentedCode try { - System.out.println(request.getRequestURI().toLowerCase() + ", " + (handler instanceof HandlerMethod)); // 闈炴柟娉� 鎴� 鏃犻渶鎺堟潈锛屾棤闇�鎷︽埅 if (!(handler instanceof HandlerMethod) || noNeedAuth(request)) { return true; @@ -66,8 +64,10 @@ return WebHelper.write2Page(response, USER_LOCK); } - // noinspection AlibabaRemoveCommentedCode // 鏉冮檺鏍¢獙 + //if (!checkPerms(ue, request)) { + // return WebHelper.write2Page(response, NO_AUTH); + //} return true; } catch (Exception ex) { @@ -78,9 +78,6 @@ /** * 鏃犻渶鎺堟潈 - * - * @param request - * @return */ private static boolean noNeedAuth(HttpServletRequest request) { String uri = request.getRequestURI().toLowerCase(); @@ -92,4 +89,23 @@ return false; } + + /** + * 妫�鏌ユ潈闄� + */ + private boolean checkPerms(UserEntity ue, HttpServletRequest request) { + List<String> list = tokenService.permsService.selectPerms(ue.getUid()); + if (list == null || list.size() == 0) { + return false; + } + + String url = request.getRequestURI(); + for (String perm : list) { + if (url.startsWith(perm)) { + return true; + } + } + + return false; + } } diff --git a/src/main/java/com/lf/server/mapper/all/PermsMapper.java b/src/main/java/com/lf/server/mapper/all/PermsMapper.java index 04788fa..71a16d9 100644 --- a/src/main/java/com/lf/server/mapper/all/PermsMapper.java +++ b/src/main/java/com/lf/server/mapper/all/PermsMapper.java @@ -37,13 +37,13 @@ * @param uid * @return */ - public List<PermsAuthEntity> selectPerms(String uid); + public List<String> selectPerms(String uid); /** - * 鏍规嵁鐢ㄦ埛Uid鏌ヨ鏉冮檺鎺堟潈2 + * 鏍规嵁鐢ㄦ埛Uid鏌ヨ鏉冮檺鎺堟潈瀹炰綋闆嗗悎 * * @param uid * @return */ - public List<String> selectPerms2(String uid); + public List<PermsAuthEntity> selectPermsEntity(String uid); } diff --git a/src/main/java/com/lf/server/service/all/PermsService.java b/src/main/java/com/lf/server/service/all/PermsService.java index 682ed80..046e8b2 100644 --- a/src/main/java/com/lf/server/service/all/PermsService.java +++ b/src/main/java/com/lf/server/service/all/PermsService.java @@ -1,14 +1,13 @@ package com.lf.server.service.all; -import com.lf.server.entity.all.MenusAuthEntity; -import com.lf.server.entity.all.PermsAuthEntity; -import com.lf.server.entity.all.ResAuthEntity; +import com.lf.server.entity.all.*; import com.lf.server.helper.StringHelper; import com.lf.server.mapper.all.PermsMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.concurrent.TimeUnit; /** * 鎺堟潈鏈嶅姟 @@ -19,13 +18,27 @@ @Autowired PermsMapper permsMapper; + @Autowired + RedisService redisService; + @Override public List<ResAuthEntity> selectRes(String uid) { if (StringHelper.isEmpty(uid)) { return null; } - return permsMapper.selectRes(uid); + String key = RedisCacheKey.permsResKey(uid); + Object obj = redisService.get(key); + if (obj instanceof List<?>) { + return (List<ResAuthEntity>) obj; + } + + List<ResAuthEntity> list = permsMapper.selectRes(uid); + if (list != null && list.size() > 0) { + redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES); + } + + return list; } @Override @@ -34,24 +47,77 @@ return null; } - return permsMapper.selectMenus(uid); + String key = RedisCacheKey.permsMenusKey(uid); + Object obj = redisService.get(key); + if (obj instanceof List<?>) { + return (List<MenusAuthEntity>) obj; + } + + List<MenusAuthEntity> list = permsMapper.selectMenus(uid); + if (list != null && list.size() > 0) { + redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES); + } + + return list; } @Override - public List<PermsAuthEntity> selectPerms(String uid) { + public List<String> selectPerms(String uid) { if (StringHelper.isEmpty(uid)) { return null; } - return permsMapper.selectPerms(uid); + String key = RedisCacheKey.permsPermsKey(uid); + Object obj = redisService.get(key); + if (obj instanceof List<?>) { + return (List<String>) obj; + } + + List<String> list = permsMapper.selectPerms(uid); + if (list != null && list.size() > 0) { + redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES); + } + + return list; } @Override - public List<String> selectPerms2(String uid) { + public List<PermsAuthEntity> selectPermsEntity(String uid) { if (StringHelper.isEmpty(uid)) { return null; } - return permsMapper.selectPerms2(uid); + String key = RedisCacheKey.permsPermsEntityKey(uid); + Object obj = redisService.get(key); + if (obj instanceof List<?>) { + return (List<PermsAuthEntity>) obj; + } + + List<PermsAuthEntity> list = permsMapper.selectPermsEntity(uid); + if (list != null && list.size() > 0) { + redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES); + } + + return list; + } + + public void clearResCache() { + clearCache(RedisCacheKey.permsResKey("")); + } + + public void clearPermsCache() { + clearCache(RedisCacheKey.permsMenusKey("")); + clearCache(RedisCacheKey.permsPermsKey("")); + clearCache(RedisCacheKey.permsPermsEntityKey("")); + } + + public void clearAllCache() { + clearCache(RedisCacheKey.permsRootKey()); + } + + protected void clearCache(String key) { + if (redisService.hasKey(key)) { + redisService.clearKeys(key); + } } } diff --git a/src/main/java/com/lf/server/service/all/ScheduleService.java b/src/main/java/com/lf/server/service/all/ScheduleService.java index 03399cc..7f430f8 100644 --- a/src/main/java/com/lf/server/service/all/ScheduleService.java +++ b/src/main/java/com/lf/server/service/all/ScheduleService.java @@ -53,9 +53,6 @@ /** * 鏌ヨ鏈嶅姟鍣ㄧ姸鎬� - * - * @return - * @throws InterruptedException */ public JSONObject selectServerStatus() throws InterruptedException { JSONObject json = new JSONObject(); @@ -67,9 +64,6 @@ /** * 鏌ヨCpu淇℃伅 - * - * @return - * @throws InterruptedException */ public JSONObject selectCpuInfo() throws InterruptedException { SystemInfo systemInfo = new SystemInfo(); @@ -101,8 +95,6 @@ /** * 鏌ヨ鍐呭瓨淇℃伅 - * - * @return */ public JSONObject selectMemInfo() { JSONObject map = new JSONObject(); @@ -124,8 +116,6 @@ /** * 鏌ヨ鍦ㄧ嚎鐢ㄦ埛 - * - * @return */ public List<JSONObject> selectOnlineUsers() { List<JSONObject> list = new ArrayList<JSONObject>(); @@ -133,7 +123,7 @@ Set<String> keys = redisTemplate.keys(RedisCacheKey.signUserKey("*")); for (String key : keys) { Object obj = redisTemplate.opsForValue().get(key); - if (obj != null && obj instanceof UserEntity) { + if (obj instanceof UserEntity) { UserEntity ue = (UserEntity) obj; JSONObject map = new JSONObject(); @@ -150,8 +140,6 @@ /** * 鏌ヨ鏈嶅姟璧勬簮鐘舵�� - * - * @return */ public List<ResEntity> selectResStatus() { List<ResEntity> resList = resService.selectResAll(); @@ -191,8 +179,6 @@ /** * 缁熻鏈嶅姟璧勬簮鐘舵�� - * - * @return */ public JSONObject countResStatus() { List<ResEntity> resList = resService.selectResAll(); @@ -210,10 +196,7 @@ /** * 璧勬簮鎿嶄綔鐘舵�� - * - * @return */ - public JSONObject operateCount() { List<OperateEntity> list = operateService.operateCount(); JSONObject jsonObject = new JSONObject(); @@ -234,26 +217,23 @@ /** * 鐢ㄦ埛鐧诲綍鐘舵�� - * - * @return */ - public JSONObject userLoginCount() { List<LoginEntity> list = loginService.selectLoginCounts(); - JSONObject jsonObject = new JSONObject(); - if (list.isEmpty()) { + if (list == null || list.isEmpty()) { return null; - } else { - List<JSONObject> lister = new ArrayList<JSONObject>(); - for (LoginEntity key : list) { - JSONObject map = new JSONObject(); - map.put("count", key.getCount()); - map.put("optime", key.getOptime()); - lister.add(map); - } - jsonObject.put("userLoginCount", lister); - return jsonObject; } - } + JSONObject jsonObject = new JSONObject(); + List<JSONObject> lister = new ArrayList<JSONObject>(); + for (LoginEntity key : list) { + JSONObject map = new JSONObject(); + map.put("count", key.getCount()); + map.put("optime", key.getOptime()); + lister.add(map); + } + jsonObject.put("userLoginCount", lister); + + return jsonObject; + } } diff --git a/src/main/java/com/lf/server/service/sys/TokenService.java b/src/main/java/com/lf/server/service/sys/TokenService.java index 49965af..9d487f7 100644 --- a/src/main/java/com/lf/server/service/sys/TokenService.java +++ b/src/main/java/com/lf/server/service/sys/TokenService.java @@ -8,6 +8,7 @@ import com.lf.server.helper.StringHelper; import com.lf.server.helper.WebHelper; import com.lf.server.mapper.sys.TokenMapper; +import com.lf.server.service.all.PermsService; import com.lf.server.service.all.RedisService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -27,9 +28,6 @@ @Service public class TokenService implements TokenMapper { @Autowired - public RedisService redisService; - - @Autowired TokenMapper tokenMapper; @Autowired @@ -37,6 +35,12 @@ @Autowired LoginService loginService; + + @Autowired + public RedisService redisService; + + @Autowired + public PermsService permsService; @Override public Integer selectCount(String name, Integer type) { @@ -187,7 +191,7 @@ // redis Object obj = redisService.get(tokenKey); - if (obj != null && obj instanceof TokenEntity) { + if (obj instanceof TokenEntity) { return (TokenEntity) obj; } @@ -229,7 +233,7 @@ // redis Object obj = redisService.get(userKey); - if (obj != null && obj instanceof UserEntity) { + if (obj instanceof UserEntity) { return (UserEntity) obj; } diff --git a/src/main/resources/mapper/all/PermsMapper.xml b/src/main/resources/mapper/all/PermsMapper.xml index 034d1ce..f540cb0 100644 --- a/src/main/resources/mapper/all/PermsMapper.xml +++ b/src/main/resources/mapper/all/PermsMapper.xml @@ -17,8 +17,8 @@ where a.uid = #{uid} </select> - <select id="selectPerms" resultType="com.lf.server.entity.all.PermsAuthEntity"> - select distinct f.id,e.cn_name,f.name,e.perms,f.tag + <select id="selectPerms" resultType="java.lang.String"> + select distinct e.perms || f.tag as "perms" from lf.sys_user a inner join lf.sys_role_user b on a.id = b.userid inner join lf.sys_role_menu_auth c on b.roleid = c.roleid inner join lf.sys_menu_auth d on c.menu_auth_id = d.id @@ -27,8 +27,8 @@ where a.uid = #{uid} </select> - <select id="selectPerms2" resultType="java.lang.String"> - select distinct e.perms || f.tag as "perms" + <select id="selectPermsEntity" resultType="com.lf.server.entity.all.PermsAuthEntity"> + select distinct f.id,e.cn_name,f.name,e.perms,f.tag from lf.sys_user a inner join lf.sys_role_user b on a.id = b.userid inner join lf.sys_role_menu_auth c on b.roleid = c.roleid inner join lf.sys_menu_auth d on c.menu_auth_id = d.id diff --git a/src/main/resources/mapper/sys/LoginMapper.xml b/src/main/resources/mapper/sys/LoginMapper.xml index 076fed1..c13c328 100644 --- a/src/main/resources/mapper/sys/LoginMapper.xml +++ b/src/main/resources/mapper/sys/LoginMapper.xml @@ -85,7 +85,7 @@ </update> <select id="selectLoginCounts" resultType="com.lf.server.entity.sys.LoginEntity"> - select to_char(optime,'yyyy-mm-dd') as optime ,count(*) from lf.sys_login where optime between (select optime - interval '30 day') - and optime group by to_char(optime,'yyyy-mm-dd') order by to_char(optime,'yyyy-mm-dd') desc; + select to_char(optime,'yyyy-mm-dd') as optime,count(*) from lf.sys_login where optime between (select optime - interval '30 day') + and optime group by to_char(optime, 'yyyy-mm-dd') order by to_char(optime, 'yyyy-mm-dd') asc </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/sys/OperateMapper.xml b/src/main/resources/mapper/sys/OperateMapper.xml index 92c98ad..01866f3 100644 --- a/src/main/resources/mapper/sys/OperateMapper.xml +++ b/src/main/resources/mapper/sys/OperateMapper.xml @@ -80,6 +80,6 @@ </update> <select id="operateCount" resultType="com.lf.server.entity.sys.OperateEntity"> - select modular2, count(*) from lf.sys_operate group by modular2 ; + select modular2,count(*) from lf.sys_operate group by modular2 </select> </mapper> \ No newline at end of file -- Gitblit v1.9.3