From 237f79a56fbdf2ec9852c4be35eb5a98dd4fca75 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 14 Jul 2025 15:14:24 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8B=B1=E6=96=87=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/constant/RedisKeyConstant.java | 2 ++ .../user/api/vo/req/QueryPermissionReqVo.java | 4 ++++ .../user/controller/PermissionController.java | 3 ++- .../ho/user/controller/UserController.java | 3 ++- .../ho/user/mapper/SysPermissionMapper.java | 2 +- .../ho/user/service/PermissionService.java | 4 ++-- .../java/com/ho/user/service/UserService.java | 2 +- .../service/impl/PermissionServiceImpl.java | 15 ++++++------ .../ho/user/service/impl/UserServiceImpl.java | 6 ++--- .../resources/mapper/SysPermissionMapper.xml | 24 +++++++++++++++++-- 10 files changed, 47 insertions(+), 18 deletions(-) diff --git a/common-tools/src/main/java/com/ho/common/tools/constant/RedisKeyConstant.java b/common-tools/src/main/java/com/ho/common/tools/constant/RedisKeyConstant.java index a03b936..40c69be 100644 --- a/common-tools/src/main/java/com/ho/common/tools/constant/RedisKeyConstant.java +++ b/common-tools/src/main/java/com/ho/common/tools/constant/RedisKeyConstant.java @@ -221,6 +221,8 @@ public interface RedisKeyConstant { String LOGIN_TYPE_ACCOUNT = "account"; //登陆方式 phone 手机号 String LOGIN_TYPE_PHONE = "phone"; + // 语言切换 + String LANG="lang"; } //设备相关 diff --git a/user-service-api/src/main/java/com/ho/user/api/vo/req/QueryPermissionReqVo.java b/user-service-api/src/main/java/com/ho/user/api/vo/req/QueryPermissionReqVo.java index 8e07c72..1c82026 100644 --- a/user-service-api/src/main/java/com/ho/user/api/vo/req/QueryPermissionReqVo.java +++ b/user-service-api/src/main/java/com/ho/user/api/vo/req/QueryPermissionReqVo.java @@ -19,4 +19,8 @@ public class QueryPermissionReqVo { @ApiModelProperty(value = "状态") @ApiParam Integer status; + + @ApiModelProperty(value = "语言切换") + @ApiParam + String lang; } diff --git a/user-service/src/main/java/com/ho/user/controller/PermissionController.java b/user-service/src/main/java/com/ho/user/controller/PermissionController.java index 3c2bf71..c5d9821 100644 --- a/user-service/src/main/java/com/ho/user/controller/PermissionController.java +++ b/user-service/src/main/java/com/ho/user/controller/PermissionController.java @@ -294,9 +294,10 @@ public class PermissionController { public DataResult> getStationPer(@RequestBody PermStationRelation permStationRelation, HttpServletRequest request) { String token = request.getHeader(RedisKeyConstant.User.ACCESS_TOKEN); String userTokenKey = RedisKeyConstant.User.TOKEN + token; + String lang=request.getHeader(RedisKeyConstant.User.LANG); UserDetailRespVO user = (UserDetailRespVO) redisService.get(userTokenKey); DataResult> result = DataResult.success(); - result.setData(permissionService.getStationPer(permStationRelation.getStationId(),user)); + result.setData(permissionService.getStationPer(permStationRelation.getStationId(),user,lang)); return result; } } diff --git a/user-service/src/main/java/com/ho/user/controller/UserController.java b/user-service/src/main/java/com/ho/user/controller/UserController.java index 80bceb7..0b2f0e1 100644 --- a/user-service/src/main/java/com/ho/user/controller/UserController.java +++ b/user-service/src/main/java/com/ho/user/controller/UserController.java @@ -96,6 +96,7 @@ public class UserController { public DataResult yourSelfInfo(@RequestParam(required = false) String type,HttpServletRequest request) { String token = request.getHeader(RedisKeyConstant.User.ACCESS_TOKEN); String userTokenKey = RedisKeyConstant.User.TOKEN + token; + String lang =request.getHeader(RedisKeyConstant.User.LANG); //根据用户的登陆方式(账号还是手机号),延长对应缓存 if (redisService.hasKey(userTokenKey)) { //每次获取用户信息,都会进行过期时间的延长 @@ -105,7 +106,7 @@ public class UserController { if(null != type){ user.setConfigType(type); } - UserDetailRespVO vo = userService.yourSelfInfo(user, simpleUser.getPlatSuper()); + UserDetailRespVO vo = userService.yourSelfInfo(user, simpleUser.getPlatSuper(),lang); //延长token时间 //redisCommon.extendKeyTime(userTokenKey, null); //String userNameKey = RedisKeyConstant.User.USER_NAME + user.getUsername(); diff --git a/user-service/src/main/java/com/ho/user/mapper/SysPermissionMapper.java b/user-service/src/main/java/com/ho/user/mapper/SysPermissionMapper.java index 5f7bf3d..ee8f650 100644 --- a/user-service/src/main/java/com/ho/user/mapper/SysPermissionMapper.java +++ b/user-service/src/main/java/com/ho/user/mapper/SysPermissionMapper.java @@ -50,5 +50,5 @@ public interface SysPermissionMapper { List selectByScope(); - List selectByIds(@Param("ids") List perIds); + List selectByIds(@Param("ids") List perIds,@Param("lang") String lang); } \ No newline at end of file diff --git a/user-service/src/main/java/com/ho/user/service/PermissionService.java b/user-service/src/main/java/com/ho/user/service/PermissionService.java index 1190051..2cda66c 100644 --- a/user-service/src/main/java/com/ho/user/service/PermissionService.java +++ b/user-service/src/main/java/com/ho/user/service/PermissionService.java @@ -25,7 +25,7 @@ public interface PermissionService { List getPermission(String userId); - List getPermissionByRoleIds(List roleIds); + List getPermissionByRoleIds(List roleIds,String lang); List getPermissionByTop(); @@ -66,7 +66,7 @@ public interface PermissionService { List getSysMangeMenus(List list, List queryIds); - List getStationPer(Integer stationId, UserDetailRespVO user); + List getStationPer(Integer stationId, UserDetailRespVO user,String lang); List getAll(QueryPermissionReqVo query); } diff --git a/user-service/src/main/java/com/ho/user/service/UserService.java b/user-service/src/main/java/com/ho/user/service/UserService.java index e1cc7bb..5ce84be 100644 --- a/user-service/src/main/java/com/ho/user/service/UserService.java +++ b/user-service/src/main/java/com/ho/user/service/UserService.java @@ -75,7 +75,7 @@ public interface UserService { List selectIds(List userIds); - UserDetailRespVO yourSelfInfo(UserDetailRespVO user, boolean platSuper); + UserDetailRespVO yourSelfInfo(UserDetailRespVO user, boolean platSuper,String lang); //清除用户缓存 void removeUserCache(String username, String loginChannel); diff --git a/user-service/src/main/java/com/ho/user/service/impl/PermissionServiceImpl.java b/user-service/src/main/java/com/ho/user/service/impl/PermissionServiceImpl.java index e278656..2f0c62e 100644 --- a/user-service/src/main/java/com/ho/user/service/impl/PermissionServiceImpl.java +++ b/user-service/src/main/java/com/ho/user/service/impl/PermissionServiceImpl.java @@ -91,12 +91,13 @@ public class PermissionServiceImpl implements PermissionService { //根据roleIds查询菜单 @Override - public List getPermissionByRoleIds(List roleIds) { + public List getPermissionByRoleIds(List roleIds,String lang) { List permissionIds = rolePermissionService.getPermissionIdsByRoles(roleIds); if (permissionIds.isEmpty()) { return new ArrayList<>(); } QueryPermissionReqVo query = new QueryPermissionReqVo(); + query.setLang(lang); List result = sysPermissionMapper.selectInfoByIds(query, permissionIds); return result; } @@ -1120,21 +1121,21 @@ public class PermissionServiceImpl implements PermissionService { } @Override - public List getStationPer(Integer stationId, UserDetailRespVO user) { + public List getStationPer(Integer stationId, UserDetailRespVO user,String lang) { List list = new ArrayList<>(); //查询当前登录人所拥有的菜单 List roleIds = user.getRoleIds(); List userPermissions = new ArrayList<>(); if (!roleIds.isEmpty()) { //到关联表中根据角色id 拿到对应的菜单id - List result = getPermissionByRoleIds(roleIds); + List result = getPermissionByRoleIds(roleIds,lang); List perIds = result.stream().map(s -> { return s.getId(); } ).collect(Collectors.toList()); // List permissionIdsByRoles = rolePermissionService.getPermissionIdsByRoles(roleIds); //根据菜单Id拿到菜单列表 - List sysPermissions = selectByIds(perIds); + List sysPermissions = selectByIds(perIds,lang); //过滤掉按钮类型的数据 userPermissions = sysPermissions.stream().filter(s -> !s.getType().equals(CommonConstant.THREE)).collect(Collectors.toList()); } @@ -1147,7 +1148,7 @@ public class PermissionServiceImpl implements PermissionService { } ).collect(Collectors.toList()); if (!perIds.isEmpty()) { - permissions = selectByIds(perIds); + permissions = selectByIds(perIds,lang); } if (permissions.isEmpty()) { list = userPermissions; @@ -1178,8 +1179,8 @@ public class PermissionServiceImpl implements PermissionService { return tree; } - private List selectByIds(List perIds){ - List sysPermissions = sysPermissionMapper.selectByIds(perIds); + private List selectByIds(List perIds,String lang){ + List sysPermissions = sysPermissionMapper.selectByIds(perIds,lang); return sysPermissions; } } diff --git a/user-service/src/main/java/com/ho/user/service/impl/UserServiceImpl.java b/user-service/src/main/java/com/ho/user/service/impl/UserServiceImpl.java index 8a42eb9..3793e45 100644 --- a/user-service/src/main/java/com/ho/user/service/impl/UserServiceImpl.java +++ b/user-service/src/main/java/com/ho/user/service/impl/UserServiceImpl.java @@ -115,13 +115,13 @@ public class UserServiceImpl implements UserService { private String env; @Override - public UserDetailRespVO yourSelfInfo(UserDetailRespVO user, boolean platSuper) { + public UserDetailRespVO yourSelfInfo(UserDetailRespVO user, boolean platSuper,String lang) { if (user.getRoleIds() == null) { //该用户无有效角色 throw new BusinessException(BaseResponseCode.USER_DOES_NOT_VALID_ROLE); } //根据RoleIds在sys_role_permission关联表中拿到 permission_id,在根据permission_id拿到菜单 - List result = permissionService.getPermissionByRoleIds(user.getRoleIds()); + List result = permissionService.getPermissionByRoleIds(user.getRoleIds(),lang); //将其组成树结构返回 //全量的菜单集合 List permissions = new ArrayList<>(); @@ -890,7 +890,7 @@ public class UserServiceImpl implements UserService { } //非超管,查询角色该有的 else { - permissions = permissionService.getPermissionByRoleIds(roleIds); + permissions = permissionService.getPermissionByRoleIds(roleIds,null); } if (permissions.isEmpty()) { userDetail.setMenuList(new ArrayList<>()); diff --git a/user-service/src/main/resources/mapper/SysPermissionMapper.xml b/user-service/src/main/resources/mapper/SysPermissionMapper.xml index 8d429a5..63274fb 100644 --- a/user-service/src/main/resources/mapper/SysPermissionMapper.xml +++ b/user-service/src/main/resources/mapper/SysPermissionMapper.xml @@ -8,6 +8,12 @@ update_time, deleted, `scope`,is_config ,component, menu_name + + id + , code, name_en name, perms, url,url_app, icon, icon_app,`method`, pid, order_num, `type`,`show`, color, `status`, create_time, + update_time, deleted, `scope`,is_config ,component, menu_name + + select - + + + + + + + + from sys_permission and deleted = 1 @@ -408,7 +421,14 @@