From 7587ebdab919f681433fa769cd49974fe509fb98 Mon Sep 17 00:00:00 2001 From: nies Date: Thu, 4 Nov 2021 11:00:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=BA=E5=91=98=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E8=A7=92=E8=89=B2=E7=9B=B8=E5=85=B3=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/api/iservice/busi/IPersonnelService.java | 3 ++ .../controller/busi/SysRoleController.java | 58 +++++++++++++++++----- .../controller/busi/SysUserInfoController.java | 11 +++- .../serviceimpl/busi/PersonnelServiceService.java | 12 +++++ 4 files changed, 69 insertions(+), 15 deletions(-) diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IPersonnelService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IPersonnelService.java index 3c512df..2513378 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IPersonnelService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IPersonnelService.java @@ -117,6 +117,9 @@ public interface IPersonnelService { @ApiOperation(value = "角色权限关系",notes = "根据角色ID 查询权限") List findSysRefRoleMenuByUserId(Long userId); + @ApiOperation(value = "查询角色账号关系",notes = "查询角色账号关系") + ListPager findSysRefUserRoleByRoleIds(List roleIdList,Pager pager); + @ApiOperation(value = "角色权限关系",notes = "根据角色ID 查询权限") List findSysRefRoleMenuByRoleIds(List roleIdList); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java index ca8378b..8773eb2 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java @@ -10,13 +10,13 @@ import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.platform.common.util.FileContentTypeTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; -import cn.estsh.i3plus.pojo.platform.bean.SysRefRoleMenu; -import cn.estsh.i3plus.pojo.platform.bean.SysRefUserRole; -import cn.estsh.i3plus.pojo.platform.bean.SysRole; +import cn.estsh.i3plus.pojo.model.platform.SysRoleModel; +import cn.estsh.i3plus.pojo.platform.bean.*; import cn.estsh.impp.framework.base.controller.CrudBaseController; import cn.estsh.impp.framework.base.service.ICrudService; import cn.estsh.impp.framework.boot.auth.AuthUtil; @@ -30,14 +30,11 @@ import io.swagger.annotations.ApiOperation; import org.apache.commons.collections.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanWrapper; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.http.MediaType; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.persistence.EntityManager; @@ -47,9 +44,7 @@ import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.OutputStream; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -246,6 +241,43 @@ public class SysRoleController extends CrudBaseController { } } + @PostMapping(value = "/queryRoleRefUser",consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) + @ApiOperation(value = "查询角色及关联的人员信息", notes = "查询角色及关联的人员信息") + public BaseResultBean queryRoleRefUser(@RequestBody SysRoleModel sysRoleModel) { + try { + ListPager result = null; + SysRole sysRole = sysRoleModel.getSysRole(); + Pager pager = sysRoleModel.getPager(); + if (ObjectUtils.isEmpty(sysRole)){ + sysRole = new SysRole(); + } + if (ObjectUtils.isEmpty(pager)){ + pager = new Pager(); + } + List refList = personnelService.findSysRefUserRole(getSessionUser().getUser().getId()); + if (refList != null && refList.size() > 0) { + List idList = new ArrayList<>(refList.size()); + Map refMap = new HashMap<>(); + refList.forEach(ref -> { + idList.add(ref.getRoleId()); + refMap.put(ref.getRoleId(), ref); + }); + + result = sysRoleService.querySysRole(sysRole, idList, pager); + List roleList = result.getObjectList(); + //过滤SysRefUserRole + + List roleIdList = roleList.stream().map(el -> el.getId()).collect(Collectors.toList()); + result = personnelService.findSysRefUserRoleByRoleIds(roleIdList,pager); + } + return ResultBean.success("操作成功").setListPager(result).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + /** * 修改角色状态 * diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java index 4c2d6db..773973c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java @@ -426,8 +426,15 @@ public class SysUserInfoController extends CoreBaseController { userInfo = new SysUserInfo(); } try { - ListPager result = sysUserInfoService.querySysUserInfo(userInfo, packUserInfo(userInfo), pager); - List list = result.getObjectList(); + ListPager result = null; + List list = null; + if (ObjectUtils.isEmpty(pager)|| pager.getPageSize() == 0) { + list = sysUserInfoService.querySysUserInfoList(userInfo, packUserInfo(userInfo)); + } else { + result = sysUserInfoService.querySysUserInfo(userInfo, packUserInfo(userInfo), pager); + list = result.getObjectList(); + } + Map sysUserMap = sysUserService.list().stream() .collect(Collectors.toMap(SysUser::getId, Function.identity())); List exportModelList = new ArrayList<>(); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java index ef0f0ce..a24d66d 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java @@ -33,6 +33,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; import javax.annotation.Resource; import java.util.*; @@ -408,6 +409,17 @@ public class PersonnelServiceService implements IPersonnelService { } @Override + public ListPager findSysRefUserRoleByRoleIds(List roleIdList,Pager pager) { + if (ObjectUtils.isEmpty(roleIdList)){ + return null; + } + DdlPackBean packBean = DdlPackBean.getDdlPackBean(); + DdlPreparedPack.getInPackList(roleIdList,"roleId",packBean); + pager = PagerHelper.getPager(pager,refUserRoleRDao.findByHqlWhereCount(packBean)); + return new ListPager<>(refUserRoleRDao.findByHqlWherePage(packBean, pager), pager); + } + + @Override public List findSysRefRoleMenuByRoleIds(List roleIdList) { LOGGER.info("平台账号角色 SysRefRoleMenu roleIdList:{}", roleIdList); if(roleIdList != null){