From 6dab7bcb5b45faff1ac7f8b5e2b015a9403e1d3a Mon Sep 17 00:00:00 2001 From: smallchill Date: Sun, 12 May 2019 10:37:52 +0800 Subject: [PATCH] =?UTF-8?q?:zap:=20=E4=BC=98=E5=8C=96=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E8=A7=84=E5=88=99=E3=80=81wrapper=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springblade/system/cache/SysCache.java | 45 +++++++++++++++++++ .../springblade/system/feign/ISysClient.java | 32 +++++++++++++ .../system/feign/ISysClientFallback.java | 17 +++++++ .../springblade/system/feign/SysClient.java | 20 +++++++++ .../springblade/system/mapper/DeptMapper.java | 8 ++++ .../springblade/system/mapper/DeptMapper.xml | 13 ++++++ .../springblade/system/mapper/RoleMapper.java | 16 +++++++ .../springblade/system/mapper/RoleMapper.xml | 26 +++++++++++ .../system/service/IDeptService.java | 8 ++++ .../system/service/IRoleService.java | 16 +++++++ .../system/service/impl/DeptServiceImpl.java | 6 +++ .../system/service/impl/RoleServiceImpl.java | 10 +++++ .../user/controller/UserController.java | 6 +-- .../system/user/mapper/UserMapper.xml | 40 ----------------- .../system/user/service/IUserService.java | 18 -------- .../user/service/impl/UserServiceImpl.java | 13 +----- .../system/user/wrapper/UserWrapper.java | 12 ++--- 17 files changed, 227 insertions(+), 79 deletions(-) diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/cache/SysCache.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/cache/SysCache.java index 57feeb2c..68fad448 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/cache/SysCache.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/cache/SysCache.java @@ -24,6 +24,8 @@ import org.springblade.system.entity.Menu; import org.springblade.system.entity.Role; import org.springblade.system.feign.ISysClient; +import java.util.List; + import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE; /** @@ -35,9 +37,12 @@ public class SysCache { private static final String MENU_ID = "menu:id:"; private static final String DEPT_ID = "dept:id:"; private static final String DEPT_NAME_ID = "deptName:id:"; + private static final String DEPT_NAMES_ID = "deptNames:id:"; private static final String ROLE_ID = "role:id:"; private static final String ROLE_NAME_ID = "roleName:id:"; + private static final String ROLE_NAMES_ID = "roleNames:id:"; private static final String ROLE_ALIAS_ID = "roleAlias:id:"; + private static final String ROLE_ALIASES_ID = "roleAliases:id:"; private static ISysClient sysClient; @@ -123,4 +128,44 @@ public class SysCache { }); } + + /** + * 获取部门名集合 + * + * @param deptIds 主键集合 + * @return 部门名 + */ + public static List getDeptNames(String deptIds) { + return CacheUtil.get(SYS_CACHE, DEPT_NAMES_ID + deptIds, () -> { + R> result = sysClient.getDeptNames(deptIds); + return result.getData(); + }); + } + + /** + * 获取角色名集合 + * + * @param roleIds 主键集合 + * @return 角色名 + */ + public static List getRoleNames(String roleIds) { + return CacheUtil.get(SYS_CACHE, ROLE_NAMES_ID + roleIds, () -> { + R> result = sysClient.getRoleNames(roleIds); + return result.getData(); + }); + } + + /** + * 获取角色别名集合 + * + * @param roleIds 主键集合 + * @return 角色别名 + */ + public static List getRoleAliases(String roleIds) { + return CacheUtil.get(SYS_CACHE, ROLE_ALIASES_ID + roleIds, () -> { + R> result = sysClient.getRoleAliases(roleIds); + return result.getData(); + }); + } + } diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java index 1e78c3cc..3cbabc30 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java @@ -25,6 +25,8 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; +import java.util.List; + /** * Feign接口类 * @@ -40,9 +42,12 @@ public interface ISysClient { String MENU = API_PREFIX + "/menu"; String DEPT = API_PREFIX + "/dept"; String DEPT_NAME = API_PREFIX + "/dept-name"; + String DEPT_NAMES = API_PREFIX + "/dept-names"; String ROLE = API_PREFIX + "/role"; String ROLE_NAME = API_PREFIX + "/role-name"; + String ROLE_NAMES = API_PREFIX + "/role-names"; String ROLE_ALIAS = API_PREFIX + "/role-alias"; + String ROLE_ALIASES = API_PREFIX + "/role-aliases"; /** * 获取菜单 @@ -98,4 +103,31 @@ public interface ISysClient { @GetMapping(ROLE_ALIAS) R getRoleAlias(@RequestParam("id") Long id); + /** + * 获取部门名 + * + * @param deptIds 主键 + * @return + */ + @GetMapping(DEPT_NAMES) + R> getDeptNames(@RequestParam("deptIds") String deptIds); + + /** + * 获取角色名 + * + * @param roleIds 主键 + * @return + */ + @GetMapping(ROLE_NAMES) + R> getRoleNames(@RequestParam("roleIds") String roleIds); + + /** + * 获取角色别名 + * + * @param roleIds 主键 + * @return 角色别名 + */ + @GetMapping(ROLE_ALIASES) + R> getRoleAliases(@RequestParam("roleIds") String roleIds); + } diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java index aa0a71fa..6fe53cc1 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java @@ -22,6 +22,8 @@ import org.springblade.system.entity.Menu; import org.springblade.system.entity.Role; import org.springframework.stereotype.Component; +import java.util.List; + /** * Feign失败配置 * @@ -59,4 +61,19 @@ public class ISysClientFallback implements ISysClient { public R getRoleAlias(Long id) { return R.fail("获取数据失败"); } + + @Override + public R> getDeptNames(String deptIds) { + return R.fail("获取数据失败"); + } + + @Override + public R> getRoleNames(String roleIds) { + return R.fail("获取数据失败"); + } + + @Override + public R> getRoleAliases(String roleIds) { + return R.fail("获取数据失败"); + } } diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java b/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java index 0623177b..21cb9079 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java @@ -28,6 +28,8 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; +import java.util.List; + /** * 系统服务Feign实现类 * @@ -80,4 +82,22 @@ public class SysClient implements ISysClient { return R.data(roleService.getById(id).getRoleAlias()); } + @Override + @GetMapping(DEPT_NAMES) + public R> getDeptNames(String deptIds) { + return R.data(deptService.getDeptNames(deptIds)); + } + + @Override + @GetMapping(ROLE_NAMES) + public R> getRoleNames(String roleIds) { + return R.data(roleService.getRoleNames(roleIds)); + } + + @Override + @GetMapping(ROLE_ALIASES) + public R> getRoleAliases(String roleIds) { + return R.data(roleService.getRoleAliases(roleIds)); + } + } diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.java index b5eef8ab..c4ccec87 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.java @@ -47,4 +47,12 @@ public interface DeptMapper extends BaseMapper { */ List tree(String tenantCode); + /** + * 获取部门名 + * + * @param ids + * @return + */ + List getDeptNames(String[] ids); + } diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.xml b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.xml index 6458be5a..afb3e5d2 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.xml +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.xml @@ -38,4 +38,17 @@ + + diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.java index 834b5678..ab4d880d 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.java @@ -48,4 +48,20 @@ public interface RoleMapper extends BaseMapper { */ List tree(String tenantCode, String excludeRole); + /** + * 获取角色名 + * + * @param ids + * @return + */ + List getRoleNames(String[] ids); + + /** + * 获取角色名 + * + * @param ids + * @return + */ + List getRoleAliases(String[] ids); + } diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.xml b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.xml index 2a497cbb..898ffd59 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.xml +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.xml @@ -40,4 +40,30 @@ + + + + diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java index 2a8e8511..1eed7638 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java @@ -47,4 +47,12 @@ public interface IDeptService extends IService { */ List tree(String tenantCode); + /** + * 获取部门名 + * + * @param deptIds + * @return + */ + List getDeptNames(String deptIds); + } diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleService.java index 1b78479c..a697a160 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleService.java @@ -57,4 +57,20 @@ public interface IRoleService extends IService { */ boolean grant(@NotEmpty List roleIds, @NotEmpty List menuIds); + /** + * 获取角色名 + * + * @param roleIds + * @return + */ + List getRoleNames(String roleIds); + + /** + * 获取角色名 + * + * @param roleIds + * @return + */ + List getRoleAliases(String roleIds); + } diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java index c5985578..5a77414a 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java @@ -19,6 +19,7 @@ package org.springblade.system.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.core.tool.node.ForestNodeMerger; +import org.springblade.core.tool.utils.Func; import org.springblade.system.entity.Dept; import org.springblade.system.mapper.DeptMapper; import org.springblade.system.service.IDeptService; @@ -45,4 +46,9 @@ public class DeptServiceImpl extends ServiceImpl implements ID return ForestNodeMerger.merge(baseMapper.tree(tenantCode)); } + @Override + public List getDeptNames(String deptIds) { + return baseMapper.getDeptNames(Func.toStrArray(deptIds)); + } + } diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java index 6a71d779..967a4b9d 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java @@ -81,4 +81,14 @@ public class RoleServiceImpl extends ServiceImpl implements IR return roleMenuService.saveBatch(roleMenus); } + @Override + public List getRoleNames(String roleIds) { + return baseMapper.getRoleNames(Func.toStrArray(roleIds)); + } + + @Override + public List getRoleAliases(String roleIds) { + return baseMapper.getRoleAliases(Func.toStrArray(roleIds)); + } + } diff --git a/blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java b/blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java index 90f2ebcf..cf779eb3 100644 --- a/blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java +++ b/blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java @@ -66,8 +66,7 @@ public class UserController { @PreAuth(RoleConstant.HAS_ROLE_ADMIN) public R detail(User user) { User detail = userService.getOne(Condition.getQueryWrapper(user)); - UserWrapper userWrapper = new UserWrapper(userService); - return R.data(userWrapper.entityVO(detail)); + return R.data(UserWrapper.build().entityVO(detail)); } /** @@ -83,8 +82,7 @@ public class UserController { public R> list(@ApiIgnore @RequestParam Map user, Query query, BladeUser bladeUser) { QueryWrapper queryWrapper = Condition.getQueryWrapper(user, User.class); IPage pages = userService.page(Condition.getPage(query), (!bladeUser.getTenantCode().equals(BladeConstant.ADMIN_TENANT_CODE)) ? queryWrapper.lambda().eq(User::getTenantCode, bladeUser.getTenantCode()) : queryWrapper); - UserWrapper userWrapper = new UserWrapper(userService); - return R.data(userWrapper.pageVO(pages)); + return R.data(UserWrapper.build().pageVO(pages)); } /** diff --git a/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml b/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml index 046a9e30..2f3f56bb 100644 --- a/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml +++ b/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml @@ -48,44 +48,4 @@ WHERE tenant_code = #{param1} and account = #{param2} and is_deleted = 0 - - - - - - - diff --git a/blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserService.java b/blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserService.java index 56f3401b..245131e1 100644 --- a/blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserService.java +++ b/blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserService.java @@ -22,8 +22,6 @@ import org.springblade.core.mp.base.BaseService; import org.springblade.system.user.entity.User; import org.springblade.system.user.entity.UserInfo; -import java.util.List; - /** * 服务类 * @@ -72,20 +70,4 @@ public interface IUserService extends BaseService { * @return */ boolean resetPassword(String userIds); - - /** - * 获取角色名 - * - * @param roleIds - * @return - */ - List getRoleName(String roleIds); - - /** - * 获取部门名 - * - * @param deptIds - * @return - */ - List getDeptName(String deptIds); } diff --git a/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java b/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java index 75cd3aec..4713b5c2 100644 --- a/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java +++ b/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java @@ -25,6 +25,7 @@ import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.utils.DigestUtil; import org.springblade.core.tool.utils.Func; +import org.springblade.system.cache.SysCache; import org.springblade.system.user.entity.User; import org.springblade.system.user.entity.UserInfo; import org.springblade.system.user.mapper.UserMapper; @@ -65,7 +66,7 @@ public class UserServiceImpl extends BaseServiceImpl implement User user = baseMapper.getUser(tenantCode, account); userInfo.setUser(user); if (Func.isNotEmpty(user)) { - List roleAlias = baseMapper.getRoleAlias(Func.toStrArray(user.getRoleId())); + List roleAlias = SysCache.getRoleAliases(user.getRoleId()); userInfo.setRoles(roleAlias); } return userInfo; @@ -86,14 +87,4 @@ public class UserServiceImpl extends BaseServiceImpl implement return this.update(user, Wrappers.update().lambda().in(User::getId, Func.toLongList(userIds))); } - @Override - public List getRoleName(String roleIds) { - return baseMapper.getRoleName(Func.toStrArray(roleIds)); - } - - @Override - public List getDeptName(String deptIds) { - return baseMapper.getDeptName(Func.toStrArray(deptIds)); - } - } diff --git a/blade-service/blade-user/src/main/java/org/springblade/system/user/wrapper/UserWrapper.java b/blade-service/blade-user/src/main/java/org/springblade/system/user/wrapper/UserWrapper.java index 88529b87..58adb382 100644 --- a/blade-service/blade-user/src/main/java/org/springblade/system/user/wrapper/UserWrapper.java +++ b/blade-service/blade-user/src/main/java/org/springblade/system/user/wrapper/UserWrapper.java @@ -16,13 +16,12 @@ */ package org.springblade.system.user.wrapper; -import lombok.AllArgsConstructor; import org.springblade.core.mp.support.BaseEntityWrapper; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; import org.springblade.system.cache.DictCache; +import org.springblade.system.cache.SysCache; import org.springblade.system.user.entity.User; -import org.springblade.system.user.service.IUserService; import org.springblade.system.user.vo.UserVO; import java.util.List; @@ -32,17 +31,18 @@ import java.util.List; * * @author Chill */ -@AllArgsConstructor public class UserWrapper extends BaseEntityWrapper { - private IUserService userService; + public static UserWrapper build() { + return new UserWrapper(); + } @Override public UserVO entityVO(User user) { UserVO userVO = BeanUtil.copy(user, UserVO.class); assert userVO != null; - List roleName = userService.getRoleName(user.getRoleId()); - List deptName = userService.getDeptName(user.getDeptId()); + List roleName = SysCache.getRoleNames(user.getRoleId()); + List deptName = SysCache.getDeptNames(user.getDeptId()); userVO.setRoleName(Func.join(roleName)); userVO.setDeptName(Func.join(deptName)); String sex = DictCache.getValue("sex", Func.toInt(user.getSex()));