diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreMemTreeService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreMemTreeService.java index 662ff68..02654cf 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreMemTreeService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreMemTreeService.java @@ -51,12 +51,5 @@ public interface ICoreMemTreeService { @ApiOperation(value = "分装岗位树",notes = "根据制定ID分装岗位树") SysPosition packTreeSysPositionById(List list, Long id); - /** - * 获取制定树的所有叶子节点ID - * @param position - * @return - */ - @ApiOperation(value = "查询岗位子节点",notes = "查询字节点岗位ID") - List findChildSysPosition(SysPosition position); } 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 f72c8ba..b7bb4e1 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 @@ -81,6 +81,9 @@ public interface IPersonnelService { @ApiOperation(value = "查询账号角色关系") List findSysRefUserRoleById(Long userId); + @ApiOperation(value = "查询角色",notes = "查询制定用户的角色信息") + List findSysRoleByUserId(Long userId); + @ApiOperation(value = "查询账号部门关系") List findSysRefUserDepartmentById(Long userId); diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysPositionService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysPositionService.java index 18d232b..bd1f216 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysPositionService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysPositionService.java @@ -59,13 +59,18 @@ public interface ISysPositionService { /** * 复杂查询 + * 不建议使用, 没有数据权限 * @param position * @param pager * @return */ + @Deprecated @ApiOperation(value = "查询岗位信息",notes = "查询岗位信息 (分页,组合)") ListPager querySysPosition(SysPosition position, Pager pager); + @ApiOperation(value = "查询岗位信息",notes = "查询岗位信息 (分页,组合)") + ListPager querySysPosition(SysPosition position,List idList, Pager pager); + /** * 根据Key 数据 * diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java index 82b84be..b72259d 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java @@ -144,6 +144,9 @@ public interface ISysRoleService { @ApiOperation(value = "查信角色信息",notes = "查询角色信息(分页/组合)") ListPager querySysRole(SysRole role, Pager pager); + @ApiOperation(value = "查信角色信息",notes = "查询角色信息(分页/组合)") + ListPager querySysRole(SysRole role,List idList, Pager pager); + /*** * 检查角色唯一性 * @param role 角色信息 diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMemTreeController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMemTreeController.java index 2c05c45..dd51e35 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMemTreeController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMemTreeController.java @@ -68,12 +68,11 @@ public class SysMemTreeController extends CoreBaseController { /** * 根据用户ID 获取用户组织树 - * @param userId * @return */ @GetMapping(value="/position/user") @ApiOperation(value="查询岗位树",notes="通过部门主键获取岗位树,-1为根节点") - public ResultBean listSysPositionParentId(Long userId) { + public ResultBean listSysPositionParentId() { try { List list = positionService.listSysPosition(); List listTree = memTreeService.packTreeSysPosition(list, CommonEnumUtil.PARENT.DEFAULT.getValue()); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysPositionController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysPositionController.java index 493a310..5b8e13a 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysPositionController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysPositionController.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; +import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService; import cn.estsh.i3plus.core.api.iservice.busi.ISysPositionService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.StringTool; @@ -10,6 +11,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.platform.bean.SysPosition; import cn.estsh.i3plus.pojo.platform.bean.SessionUser; +import cn.estsh.i3plus.pojo.platform.bean.SysRefUserPosition; import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; @@ -24,6 +26,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; /** @@ -42,6 +45,9 @@ public class SysPositionController extends CoreBaseController { @Autowired private ISysPositionService positionService; + @Autowired + private IPersonnelService personnelService; + /** * 返回内容添加岗位 * @@ -139,10 +145,16 @@ public class SysPositionController extends CoreBaseController { @ApiOperation(value = "查询岗位", notes = "复杂查询岗位带分页") public ResultBean querySysPosition(SysPosition position, Pager pager) { try { - position.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode()); - ListPager listPager = positionService.querySysPosition(position, pager); - return ResultBean.success("操作成功").setListPager(listPager) - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + List refList = personnelService.findSysRefUserPositionById(getSessionUser().getUserInfo().getId()); + if(refList != null && refList.size() > 0){ + List idList = new ArrayList<>(); + refList.forEach(ref -> idList.add(ref.getPositionId())); + + ListPager listPager = positionService.querySysPosition(position,idList, pager); + return ResultBean.success("操作成功").setListPager(listPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } + + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); } catch (Exception e) { 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 3e657ee..68445e9 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 @@ -1,5 +1,6 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; +import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService; import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.StringTool; @@ -9,6 +10,7 @@ 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.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.auth.AuthUtil; @@ -24,6 +26,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; /** @@ -43,6 +46,9 @@ public class SysRoleController extends CoreBaseController{ @Autowired private ISysRoleService sysRoleService; + @Autowired + private IPersonnelService personnelService; + /** * 新增系统角色 * @param role 角色信息 @@ -141,6 +147,19 @@ public class SysRoleController extends CoreBaseController{ } } + @GetMapping(value = "/list-user") + @ApiOperation(value = "查询角色", notes = "查询用户所拥有的角色信息") + public ResultBean findSysRoleByUser() { + try { + List result = personnelService.findSysRoleByUserId(getSessionUser().getUser().getId()); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + /** * 查询所有角色 * @param ids 角色id数组 @@ -191,10 +210,16 @@ public class SysRoleController extends CoreBaseController{ @ApiOperation(value="查询角色",notes="组合查询角色,外带分页功能") public ResultBean querySysRole(SysRole role, Pager pager){ try{ - ListPager listPager = sysRoleService.querySysRole(role, pager); + List refList = personnelService.findSysRefUserRoleById(getSessionUser().getUser().getId()); - return ResultBean.success("操作成功").setListPager(listPager) - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + if(refList != null && refList.size() > 0){ + List idList = new ArrayList<>(refList.size()); + refList.forEach(ref -> idList.add(ref.getRoleId())); + + return ResultBean.success("操作成功").setListPager(sysRoleService.querySysRole(role, idList, pager)) + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); }catch(Exception e){ 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 bf7fb6f..e4791df 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 @@ -6,6 +6,7 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; import cn.estsh.i3plus.core.apiservice.util.HqlModelPack; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; @@ -227,6 +228,26 @@ public class PersonnelServiceService implements IPersonnelService { } @Override + public List findSysRoleByUserId(Long userId) { + LOGGER.debug("平台账号角色 SysRole userId:{}", userId); + + List refList = findSysRefUserRoleById(userId); + if(refList != null && refList.size() > 0){ + List idList = new ArrayList<>(); + StringBuffer findWhere = new StringBuffer(); + refList.forEach(ref -> idList.add(ref.getRoleId())); + + HqlPack.getInPack(StringUtils.join(idList,","),"id",findWhere); + HqlPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),"isDeleted",findWhere); + HqlPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(),"isValid",findWhere); + + return roleRDao.findByHqlWhere(findWhere.toString()); + } + + return null; + } + + @Override public List findSysRefUserDepartmentById(Long userId) { LOGGER.debug("平台账号部门 SysRefUserDepartment userId:{}", userId); return refUserDepartmentRDao.findByProperty("userId",userId); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysPositionService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysPositionService.java index 9226218..ae5f0af 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysPositionService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysPositionService.java @@ -155,18 +155,14 @@ public class SysPositionService implements ISysPositionService { @ApiOperation(value = "查询岗位信息", notes = "查询岗位信息 (分页,组合)") public ListPager querySysPosition(SysPosition position, Pager pager) { LOGGER.info("岗位信息 SysPosition find SysPosition page"); + return querySysPosition(position, null, pager); + } - if (position == null) { - //不传入实体对象,查询所有 - int count = positionRDao.listCount(); - pager = PagerHelper.getPager(pager, count); - return new ListPager(positionRDao.listPager(pager), pager); - } else { - //生成hql查询语句 - DdlPackBean ddlPackBean = CoreHqlPack.packHqlSysPosition(position); - pager = PagerHelper.getPager(pager, positionRDao.findByHqlWhereCount(ddlPackBean)); - return new ListPager(positionRDao.findByHqlWherePage(ddlPackBean, pager), pager); - } + @Override + public ListPager querySysPosition(SysPosition position, List idList, Pager pager) { + DdlPackBean ddlPackBean = CoreHqlPack.packHqlSysPosition(position,idList); + pager = PagerHelper.getPager(pager, positionRDao.findByHqlWhereCount(ddlPackBean)); + return new ListPager(positionRDao.findByHqlWherePage(ddlPackBean, pager), pager); } @Override diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java index 4b1aad3..be301f1 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService; import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; import cn.estsh.i3plus.core.apiservice.dao.IUserPermissionDao; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; @@ -238,18 +239,14 @@ public class SysRoleService implements ISysRoleService { @ApiOperation(value = "查信角色信息",notes = "查询角色信息(分页/组合)") public ListPager querySysRole(SysRole role, Pager pager) { LOGGER.info("系统角色 SysRole find role :{} page :{}", role, pager); + return querySysRole(role, null, pager); + } - if (role == null) { - //不传入实体对象,查询所有 - int count = roleRDao.listCount(); - pager = PagerHelper.getPager(pager, count); - return new ListPager(roleRDao.listPager(pager), pager); - } else { - //生成hql查询语句 - String hqlPack = CoreHqlPack.packHqlSysRole(role); - pager = PagerHelper.getPager(pager, roleRDao.findByHqlWhereCount(hqlPack)); - return new ListPager(roleRDao.findByHqlWherePage(hqlPack + role.orderBy(), pager), pager); - } + @Override + public ListPager querySysRole(SysRole role, List idList, Pager pager) { + DdlPackBean packBean = CoreHqlPack.packDdlBeanSysRole(role,idList); + pager = PagerHelper.getPager(pager, roleRDao.findByHqlWhereCount(packBean)); + return new ListPager(roleRDao.findByHqlWherePage(packBean , pager), pager); } @Override