diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java index 8e6a7af..c108d34 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java @@ -67,6 +67,12 @@ public interface ICoreTreeService { @ApiOperation(value = "获取部门树",notes = "根据父节点获取部门树") SysDepartment getSysDepartmentTreeById(long id); + @ApiOperation(value = "获取部门ID集合",notes = "根据组织ID获取部门子集ID集合") + List findSysDepartmentIdByOrganizeId(long id); + + @ApiOperation(value = "获取部门ID集合",notes = "获取部门子集ID集合") + List findSysDepartmentChildIds(SysDepartment department); + /** * 生成子集树递归方法 * @param parent 父类对象 diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java index 455f5fe..7f3ce33 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java @@ -120,6 +120,9 @@ public interface ISysUserService { @ApiOperation(value = "查询用户ID 集合",notes = "根据角色Id 查询用户ID集合") List findSysUserIdListByRoleId(Long roleId); + @ApiOperation(value = "查询用户ID 集合",notes = "根据部门Id 查询用户ID集合") + List findSysUserIdListByDepartmentId(List idList); + /** * 复杂查询 * @param user diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrganizeController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrganizeController.java index fff26a4..94ac971 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrganizeController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrganizeController.java @@ -115,9 +115,7 @@ public class SysOrganizeController extends CoreBaseController{ public ResultBean findSysOrganizeAll() { try { List list = organizeService.listSysOrganize(); - return ResultBean.success("操作成功") - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) - .setResultList(list); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(list); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); } catch (Exception e) { @@ -130,9 +128,7 @@ public class SysOrganizeController extends CoreBaseController{ public ResultBean queryPosition(SysOrganize organize, Pager pager){ try{ ListPager listPager = organizeService.querySysOrganize(organize, pager); - return ResultBean.success("操作成功") - .setListPager(listPager) - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + return ResultBean.success("操作成功").setListPager(listPager).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 78283f4..a641a81 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 @@ -177,7 +177,7 @@ public class SysRoleController extends CoreBaseController{ ValidatorBean.checkNotZero(status, "角色状态不能为空"); sysRoleService.updateSysRoleStatus(Long.parseLong(id), status, AuthUtil.getSessionUser()); - return new ResultBean(true); + 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/SysUserController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java index ff76e3d..4cddce5 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java @@ -252,20 +252,8 @@ public class SysUserController extends CoreBaseController{ @ApiOperation(value="查询系统用户",notes="组合查询用户,外带分页查询(isValid = 1)") public ResultBean querySysUserByPager(SysUser user, Pager pager){ try{ - // 初始化用户查询讯息 - if(null == user) { - user = new SysUser(); - } - - if(user.getRoleId() != null){ - List ids = sysUserService.findSysUserIdListByRoleId(Long.parseLong(user.getRoleId())); - user.setRoleIdList(ids); - } - ListPager listPager = sysUserService.querySysUserByPager(user, pager); - - return ResultBean.success("操作成功").setListPager(listPager) - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + return ResultBean.success("操作成功").setListPager(listPager).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/SysUserInfoController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java index 53a3766..809d38f 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 @@ -140,8 +140,7 @@ public class SysUserInfoController extends CoreBaseController{ public ResultBean querySysUserInfo(SysUserInfo SysUserInfo, Pager pager){ try{ ListPager listPager = sysUserInfoService.querySysUserInfo(SysUserInfo, pager); - return ResultBean.success("操作成功").setListPager(listPager) - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + return ResultBean.success("操作成功").setListPager(listPager).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/CoreTreeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java index b93ad5c..1630acd 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java @@ -146,6 +146,37 @@ public class CoreTreeService implements ICoreTreeService { } @Override + @ApiOperation(value = "获取部门ID集合",notes = "根据组织ID获取部门子集ID集合") + public List findSysDepartmentIdByOrganizeId(long id) { + List result = new ArrayList<>(); + if(id > 0){ + List list = departmentRDao.findByProperty("organizeId", id); + if(list != null && list.size()> 0){ + for (SysDepartment department : list) { + findSysDepartmentChildrenTreePack(department,0); + result.addAll(findSysDepartmentChildIds(department)); + } + } + } + return result; + } + + @Override + @ApiOperation(value = "获取部门ID集合",notes = "获取部门子集ID集合") + public List findSysDepartmentChildIds(SysDepartment department) { + List result = new ArrayList<>(); + if(null != department){ + if(department.getChildList() != null && department.getChildList().size() > 0){ + for (SysDepartment dep : department.getChildList()) { + result.addAll(findSysDepartmentChildIds(dep)); + } + } + result.add(department.getId()); + } + return result; + } + + @Override @ApiOperation(value = "封装部门树",notes = "封装当前部门树") public void findSysDepartmentChildrenTreePack(SysDepartment parent, int step) { ++step; diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java index 13e9628..958fdd7 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java @@ -167,6 +167,12 @@ public class SysOrganizeService implements ISysOrganizeService { pager = PagerHelper.getPager(pager,count); return new ListPager(organizeRDao.listPager(pager),pager); }else { + if(organize.getParentId() != null){ + SysOrganize parent = coreTreeService.getSysOrganizeTreeById(organize.getParentId()); + List childIds = coreTreeService.findSysOrganizeChildIds(parent); + organize.setChildIdList(childIds); + } + //生成hql查询语句 String hqlPack = CoreHqlPack.packHqlSysOrganize(organize); pager = PagerHelper.getPager(pager,organizeRDao.findByHqlWhereCount(hqlPack)); 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 1473a86..e96bd8a 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 @@ -161,10 +161,9 @@ public class SysRoleService implements ISysRoleService { ref.setRoleNameRdd(role.getName()); ref.setMenuNameRdd(menu.getName()); ref.setMenuId(menu.getId()); + ref.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue()); ref.setMenuTypeRdd(menu.getMenuType()); -// ConvertBean.serviceModelInitialize(ref,userName); - refs.add(ref); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java index 07e5183..1f36122 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; +import cn.estsh.i3plus.core.api.iservice.busi.ICoreTreeService; import cn.estsh.i3plus.core.api.iservice.busi.ISysUserInfoService; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.tool.TimeTool; @@ -58,6 +59,9 @@ public class SysUserInfoService implements ISysUserInfoService { @Autowired private SysOrganizeRepository organizeRDao; + @Autowired + private ICoreTreeService coreTreeService; + /*** * @param userInfo * @return @@ -257,6 +261,29 @@ public class SysUserInfoService implements ISysUserInfoService { pager = PagerHelper.getPager(pager, sysUserInfoRDao.listCount()); return new ListPager(sysUserInfoRDao.listPager(pager),pager); }else { + List departmentIdList = new ArrayList<>(); + if(userInfo.getOrganizeId() != null){ + + // 查出所有组织 ID 集合 + SysOrganize parent = coreTreeService.getSysOrganizeTreeById(userInfo.getOrganizeId()); + List childIds = coreTreeService.findSysOrganizeChildIds(parent); + + // 查询所有部门 ID 集合 + if(childIds != null && childIds.size() > 0){ + for (Long organizeId : childIds) { + departmentIdList.addAll(coreTreeService.findSysDepartmentIdByOrganizeId(organizeId)); + } + } + } + + // 封装部门 ID 信息 + if(userInfo.getDepartmentId() != null){ + SysDepartment department = departmentRDao.getById(userInfo.getDepartmentId()); + departmentIdList.addAll(coreTreeService.findSysDepartmentChildIds(department)); + } + + userInfo.setDepartmentIdList(StringTool.getListString(departmentIdList)); + String hqlPack = CoreHqlPack.packHqlSysUserInfo(userInfo); pager = PagerHelper.getPager(pager, sysUserInfoRDao.findByHqlWhereCount(hqlPack)); return new ListPager(sysUserInfoRDao.findByHqlWherePage(hqlPack + userInfo.orderBy(),pager),pager); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java index 3a3dcc2..521ddd8 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java @@ -7,12 +7,12 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService; import cn.estsh.i3plus.core.apiservice.dao.IUserPermissionDao; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.EncryptTool; +import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.base.shirotoken.UserToken; import cn.estsh.i3plus.pojo.base.tool.HqlPack; import cn.estsh.i3plus.pojo.platform.bean.*; @@ -22,6 +22,9 @@ import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import io.swagger.annotations.ApiOperation; +import org.apache.commons.collections.ListUtils; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.CredentialsException; import org.apache.shiro.authc.UnknownAccountException; @@ -72,7 +75,7 @@ public class SysUserService implements ISysUserService { private SysFileRepository sysFileRDao; @Autowired - private SysDepartmentRepository sysDepartmentRDao; + private SysDepartmentRepository departmentRDao; @Autowired private SysPositionRepository sysPositionRDao; @@ -315,10 +318,58 @@ public class SysUserService implements ISysUserService { } @Override + @ApiOperation(value = "查询用户ID 集合",notes = "根据部门Id 查询用户ID集合") + public List findSysUserIdListByDepartmentId(List idList) { + List result = new ArrayList<>(); + if(idList != null){ + StringBuffer hqlWhere = new StringBuffer(); + HqlPack.getInPack(StringUtils.join(idList, ","), "departmentId", hqlWhere); + List list = refUserDepartmentRDao.findByHqlWhere(hqlWhere.toString()); + if(list != null && list.size() > 0){ + for (SysRefUserDepartment ref : list) { + result.add(ref.getUserId()); + } + } + } + return result; + } + + @Override @ApiOperation(value = "账号分页查询", notes = "组合查询") public ListPager querySysUserByPager(SysUser user, Pager pager) { LOGGER.debug("系统用户 SysUser find user :{} page :{}", user, pager); + // 角色查询 + if(user.getRoleId() != null){ + List ids = findSysUserIdListByRoleId(Long.parseLong(user.getRoleId())); + user.setRoleIdList(StringTool.getListString(ids)); + } + + List departmentIdList = new ArrayList<>(); + if(user.getOrganizeId() != null){ + + // 查出所有组织 ID 集合 + SysOrganize parent = coreTreeService.getSysOrganizeTreeById(user.getOrganizeId()); + List childIds = coreTreeService.findSysOrganizeChildIds(parent); + + // 查询所有部门 ID 集合 + if(childIds != null && childIds.size() > 0){ + for (Long organizeId : childIds) { + List ids = coreTreeService.findSysDepartmentIdByOrganizeId(organizeId); + departmentIdList.addAll(ids); + } + } + } + + // 封装部门 ID 信息 + if(user.getDepartmentId() != null){ + SysDepartment department = departmentRDao.getById(user.getDepartmentId()); + departmentIdList.addAll(coreTreeService.findSysDepartmentChildIds(department)); + } + + List idList = findSysUserIdListByDepartmentId(departmentIdList); + user.setDepartmentIdList(StringTool.getListString(idList)); + //生成hql查询语句 String hqlPack = CoreHqlPack.packHqlSysUser(user); pager = PagerHelper.getPager(pager, sysUserRDao.findByHqlWhereCount(hqlPack)); @@ -626,7 +677,7 @@ public class SysUserService implements ISysUserService { personnelService.findSysRefUserInfoDepartmentById(userInfo.id); - userInfo.setDepartment(sysDepartmentRDao.getById(userInfo.getDepartmentId())); + userInfo.setDepartment(departmentRDao.getById(userInfo.getDepartmentId())); userInfo.setDepartmentList(personnelService.findSysUserInfoDepartmentByInfoId(userInfo.getId())); }catch (Exception e){ LOGGER.error(" SysUser Peck Department information Error userId : {} Exception Message : {} " ,userInfo.getId(),e.getMessage()); @@ -643,7 +694,7 @@ public class SysUserService implements ISysUserService { try { LOGGER.debug("平台用户 SYS_USER user id :{}", user.getId()); - user.setDepartment(sysDepartmentRDao.getById(user.getDepartmentId())); + user.setDepartment(departmentRDao.getById(user.getDepartmentId())); user.setDepartmentList(personnelService.findSysUserDepartmentByInfoId(user.id)); }catch (Exception e){ LOGGER.error(" SysUser Peck Department information Error userId : {} Exception Message : {} " ,user.getId(),e.getMessage());