From 14e54dee62e0507daa870dccfd6dd0d37a543fc3 Mon Sep 17 00:00:00 2001 From: yitonglei Date: Wed, 22 Feb 2023 11:15:26 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=B7=A5=E4=BD=9C=E6=B5=81=E4=B8=AD=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E5=AE=A1=E6=89=B9=E4=BA=BA=E6=8E=A5=E5=8F=A3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=EF=BC=8C=E6=94=B9=E4=B8=BA=E6=9F=A5=E8=AF=A2=E5=BD=93?= =?UTF-8?q?=E5=89=8D=E7=94=A8=E6=88=B7=E7=9A=84=E4=B8=8A=E4=B8=80=E7=BA=A7?= =?UTF-8?q?=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/HomePageController.java | 26 +++++++++--------- .../service/impl/HomePageServiceImpl.java | 14 ++++++---- .../system/controller/RoleController.java | 11 ++++++-- .../system/service/IRoleService.java | 2 ++ .../system/service/impl/RoleServiceImpl.java | 19 +++++++++++++ .../system/user/feign/IRoleClient.java | 24 +++++++++++++++++ .../system/user/mapper/UserAppMapper.java | 4 +++ .../system/user/mapper/UserAppMapper.xml | 1 - .../user/service/impl/UserServiceImpl.java | 27 +++++++++++++++---- 9 files changed, 102 insertions(+), 26 deletions(-) create mode 100644 lab-service/lab-user/src/main/java/org/springblade/system/user/feign/IRoleClient.java diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/controller/HomePageController.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/controller/HomePageController.java index 4d815c2..7a8485e 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/controller/HomePageController.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/controller/HomePageController.java @@ -42,19 +42,19 @@ public class HomePageController extends BladeController { @ApiOperation(value = "我的相关", notes = "首页的“到期提醒”、“我的待办”、“今日新增”、“今日完成”的统计") public R aboutMy() throws Exception{ - JSONObject result = new JSONObject(); - Future expireNum = homePageService.expireNum(); - Future needDoNum = homePageService.needDoNum(); - Future todayAddNum = homePageService.todayAddNum(); - Future todayFinishNum = homePageService.todayFinishNum(); - - result.put("needDoNum", needDoNum.get()); - result.put("expireNum", expireNum.get()); - result.put("todayAddNum" , todayAddNum.get()); - result.put("todayFinishNum", todayFinishNum.get()); - - return R.data(result); -// return homePageService.aboutMy(); +// Future expireNum = homePageService.expireNum(); +// Future needDoNum = homePageService.needDoNum(); +// Future todayAddNum = homePageService.todayAddNum(); +// Future todayFinishNum = homePageService.todayFinishNum(); +// +// JSONObject result = new JSONObject(); +// result.put("needDoNum", needDoNum.get()); +// result.put("expireNum", expireNum.get()); +// result.put("todayAddNum" , todayAddNum.get()); +// result.put("todayFinishNum", todayFinishNum.get()); +// +// return R.data(result); + return homePageService.aboutMy(); } diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/service/impl/HomePageServiceImpl.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/service/impl/HomePageServiceImpl.java index 85e0d6c..14bd69b 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/service/impl/HomePageServiceImpl.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/service/impl/HomePageServiceImpl.java @@ -165,10 +165,12 @@ public class HomePageServiceImpl implements IHomePageService { .orderByTaskCreateTime() .desc() .taskTenantId(WfTaskUtil.getTenantId()) + .taskCandidateOrAssigned(taskUser) + .taskCandidateGroupIn(Func.toStrList(taskGroup)) .active(); - taskQuery.taskCandidateOrAssigned(taskUser) - //.taskCandidateGroupIn(Func.toStrList(taskGroup)) - ; +// taskQuery.taskCandidateOrAssigned(taskUser) +// .taskCandidateGroupIn(Func.toStrList(taskGroup)) +// ; List listNeedDo = taskQuery.list(); @@ -205,9 +207,11 @@ public class HomePageServiceImpl implements IHomePageService { .orderByTaskCreateTime() .desc() .taskTenantId(WfTaskUtil.getTenantId()) + .taskCandidateOrAssigned(taskUser) + .taskCandidateGroupIn(Func.toStrList(taskGroup)) .active(); - taskQuery.taskCandidateOrAssigned(taskUser) - //.taskCandidateGroupIn(Func.toStrList(taskGroup)) +// taskQuery.taskCandidateOrAssigned(taskUser) +// .taskCandidateGroupIn(Func.toStrList(taskGroup)) ; List listNeedDo = taskQuery.list(); diff --git a/lab-service/lab-system/src/main/java/org/springblade/system/controller/RoleController.java b/lab-service/lab-system/src/main/java/org/springblade/system/controller/RoleController.java index 5712520..588d7f0 100644 --- a/lab-service/lab-system/src/main/java/org/springblade/system/controller/RoleController.java +++ b/lab-service/lab-system/src/main/java/org/springblade/system/controller/RoleController.java @@ -10,11 +10,9 @@ import org.springblade.core.cache.utils.CacheUtil; import org.springblade.core.log.annotation.ApiLog; import org.springblade.core.mp.support.Condition; import org.springblade.core.secure.BladeUser; -import org.springblade.core.secure.annotation.PreAuth; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; import org.springblade.core.tool.constant.BladeConstant; -import org.springblade.core.tool.constant.RoleConstant; import org.springblade.core.tool.utils.Func; import org.springblade.system.cache.SysCache; import org.springblade.system.entity.Role; @@ -135,4 +133,13 @@ public class RoleController extends BladeController { return R.status(temp); } + /** + * 根据角色id获取父级角色id + */ + @GetMapping("/parentRoleIds") + @ApiOperationSupport(order = 8) + @ApiOperation(value = "根据角色id获取父级角色id", notes = "根据角色id获取父级角色id") + public List parentRoleIds(@RequestParam String roleids){ + return roleService.parentRoleIds(roleids); + } } diff --git a/lab-service/lab-system/src/main/java/org/springblade/system/service/IRoleService.java b/lab-service/lab-system/src/main/java/org/springblade/system/service/IRoleService.java index 72eda96..c8a4b80 100644 --- a/lab-service/lab-system/src/main/java/org/springblade/system/service/IRoleService.java +++ b/lab-service/lab-system/src/main/java/org/springblade/system/service/IRoleService.java @@ -97,4 +97,6 @@ public interface IRoleService extends IService { List search(String roleName, Long parentId); List getRoleName(String alias); + + List parentRoleIds(String roleids); } diff --git a/lab-service/lab-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java b/lab-service/lab-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java index f0263bc..279520a 100644 --- a/lab-service/lab-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java +++ b/lab-service/lab-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java @@ -13,6 +13,7 @@ import org.springblade.core.tool.constant.RoleConstant; import org.springblade.core.tool.node.ForestNodeMerger; import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; import org.springblade.system.entity.Role; import org.springblade.system.entity.RoleMenu; import org.springblade.system.entity.RoleScope; @@ -20,6 +21,8 @@ import org.springblade.system.mapper.RoleMapper; import org.springblade.system.service.IRoleMenuService; import org.springblade.system.service.IRoleScopeService; import org.springblade.system.service.IRoleService; +import org.springblade.system.user.entity.User; +import org.springblade.system.user.feign.IUserClient; import org.springblade.system.vo.RoleVO; import org.springblade.system.wrapper.RoleWrapper; import org.springframework.stereotype.Service; @@ -222,4 +225,20 @@ public class RoleServiceImpl extends ServiceImpl implements IR return lists; } + //根据当前用户查询到该用户所属部门的上一级角色id + @Override + public List parentRoleIds(String roleids){ + List pIds = new ArrayList<>(); + //查询当前用户角色的上级角色 + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.in(Role::getId,roleids); + List list = baseMapper.selectList(wrapper); + if(list.size() > 0){ + for(Role r : list){ + pIds.add(r.getParentId().toString()); + } + } + return pIds; + } + } diff --git a/lab-service/lab-user/src/main/java/org/springblade/system/user/feign/IRoleClient.java b/lab-service/lab-user/src/main/java/org/springblade/system/user/feign/IRoleClient.java new file mode 100644 index 0000000..690c70e --- /dev/null +++ b/lab-service/lab-user/src/main/java/org/springblade/system/user/feign/IRoleClient.java @@ -0,0 +1,24 @@ +package org.springblade.system.user.feign; + +import org.springblade.core.tool.api.R; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +/** + * @Description + * @Author ytl + * @Date 2023/2/22 0022 10:36 + */ +@FeignClient( + value = "blade-system" +) +public interface IRoleClient { + String API_PREFIX = "/role"; + String API_PREFIX_PARENT_ROLE_IDS = API_PREFIX + "/parentRoleIds"; + + @GetMapping(API_PREFIX_PARENT_ROLE_IDS) + List parentRoleIds(@RequestParam String roleids); +} diff --git a/lab-service/lab-user/src/main/java/org/springblade/system/user/mapper/UserAppMapper.java b/lab-service/lab-user/src/main/java/org/springblade/system/user/mapper/UserAppMapper.java index bffc36d..efe6972 100644 --- a/lab-service/lab-user/src/main/java/org/springblade/system/user/mapper/UserAppMapper.java +++ b/lab-service/lab-user/src/main/java/org/springblade/system/user/mapper/UserAppMapper.java @@ -2,7 +2,11 @@ package org.springblade.system.user.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.system.user.entity.User; import org.springblade.system.user.entity.UserApp; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; /** * Mapper 接口 diff --git a/lab-service/lab-user/src/main/java/org/springblade/system/user/mapper/UserAppMapper.xml b/lab-service/lab-user/src/main/java/org/springblade/system/user/mapper/UserAppMapper.xml index 321d2df..9f3d3ef 100644 --- a/lab-service/lab-user/src/main/java/org/springblade/system/user/mapper/UserAppMapper.xml +++ b/lab-service/lab-user/src/main/java/org/springblade/system/user/mapper/UserAppMapper.xml @@ -1,5 +1,4 @@ - diff --git a/lab-service/lab-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java b/lab-service/lab-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java index b419a1f..7ff8a77 100644 --- a/lab-service/lab-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java +++ b/lab-service/lab-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java @@ -5,6 +5,7 @@ package org.springblade.system.user.service.impl; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.AllArgsConstructor; import org.springblade.common.constant.CommonConstant; @@ -33,6 +34,7 @@ import org.springblade.system.user.cache.UserCache; import org.springblade.system.user.entity.*; import org.springblade.system.user.enums.UserEnum; import org.springblade.system.user.excel.UserExcel; +import org.springblade.system.user.feign.IRoleClient; import org.springblade.system.user.mapper.UserMapper; import org.springblade.system.user.service.IUserDeptService; import org.springblade.system.user.service.IUserOauthService; @@ -63,6 +65,7 @@ public class UserServiceImpl extends BaseServiceImpl implement private final IUserOauthService userOauthService; private final ISysClient sysClient; private final BladeTenantProperties tenantProperties; + private final IRoleClient roleClient; @Override @Transactional(rollbackFor = Exception.class) @@ -254,17 +257,26 @@ public class UserServiceImpl extends BaseServiceImpl implement return UserWrapper.build().pageVO(pages); } + /** + * 根据当前用户查询到该用户所属部门的上一级用户 + * @param user + * @param query + * @return + */ @Override public IPage selectUserSearchToProcess(UserVO user, Query query) { BladeUser bladeUser = AuthUtil.getUser(); String deptIdS = bladeUser.getDeptId(); + String roleId = bladeUser.getRoleId(); + List pRoleIDS = roleClient.parentRoleIds(roleId); - LambdaQueryWrapper queryWrapper = Wrappers.query().lambda(); - if (StringUtil.isNotBlank(user.getName())) { - queryWrapper.like(User::getName, user.getName()); - } - +// + LambdaQueryWrapper queryWrapper = Wrappers.query().lambda(); +// if (StringUtil.isNotBlank(user.getName())) { +// queryWrapper.like(User::getName, user.getName()); +// } +// if (StringUtil.isNotBlank(deptIdS)) { queryWrapper.and(wrapper -> { List ids = Func.toStrList(deptIdS); @@ -272,6 +284,11 @@ public class UserServiceImpl extends BaseServiceImpl implement }); } + if (pRoleIDS.size() > 0) { + queryWrapper.and(wrapper -> { + pRoleIDS.forEach(id -> wrapper.like(User::getRoleId, id).or()); + }); + } // if (StringUtil.isNotBlank(user.getDeptName())) {