用户权限调整 部门权限调整完成

yun-zuoyi
wei.peng 6 years ago
parent c5c650d7ce
commit 11736e79ba

@ -130,6 +130,10 @@ public interface ICoreMemTreeService {
@ApiOperation(value = "查询部门子节点",notes = "查询字节点部门ID")
List<Long> findChildSysDepartment(SysDepartment organize);
@ApiOperation(value = "查询部门子节点",notes = "查询字节点部门ID")
List<Long> findSysDepartmentChildIdList(Long id);
/********************************************* End SysDepartment Tree *********************************************/
/********************************************* Start SysMenu Tree *********************************************/

@ -111,12 +111,17 @@ public interface IPersonnelService {
@ApiOperation(value = "查询账号部门关系")
List<SysRefUserDepartment> findSysRefUserDepartmentByUserId(Long userId);
List<SysRefUserDepartment> findSysRefUserDepartmentByOrganizeIdList(List<Long> organizeIdList);
@ApiOperation(value = "查询账号部门关系")
List<SysRefUserDepartment> querySysRefUserDepartmentByUserDetailModel(UserDetailModel model);
@ApiOperation(value = "查询用户部门关系")
List<SysRefUserInfoDepartment> findSysRefUserInfoDepartmentById(Long infoId);
List<SysRefUserInfoDepartment> findSysRefUserInfoDepartmentByOrganizeIdList(List<Long> organizeIdList);
@ApiOperation(value = "查询用户部门关系")
List<SysDepartment> findSysUserInfoDepartmentByInfoId(Long infoId);
@ -124,7 +129,7 @@ public interface IPersonnelService {
List<SysDepartment> findSysUserDepartmentByInfoId(Long infoId);
@ApiOperation(value = "查询所有部门信息")
List<SysDepartment> findSysUserDepartmentList();
List<SysDepartment> findSysDepartmentList();
@ApiOperation(value = "查询用户部门关系")
List<SysOrganize> findSysUserInfoOrganize(Long infoId);

@ -79,7 +79,10 @@ public interface ISysDepartmentService {
ListPager<SysDepartment> findSysDepartmentByPager(SysDepartment department, Pager pager);
@ApiOperation(value = "查询部门信息",notes = "查询部门信息(分页、组织ID集合、组合)")
ListPager<SysDepartment> findSysDepartmentByPager(SysDepartment department,List<Long> organizeIdList, Pager pager);
ListPager<SysDepartment> findSysDepartmentPagerByOrganizeId(SysDepartment department, List<Long> organizeIdList, Pager pager);
@ApiOperation(value = "查询部门信息",notes = "查询部门信息(分页、组织ID集合、组合)")
ListPager<SysDepartment> findSysDepartmentPagerByIdList(SysDepartment department, List<Long> idList, Pager pager);
/**
*

@ -1,8 +1,6 @@
package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ICoreTreeService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysDepartmentService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysOrganizeService;
import cn.estsh.i3plus.core.api.iservice.busi.*;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
@ -13,6 +11,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import cn.estsh.i3plus.pojo.platform.bean.SysDepartment;
import cn.estsh.i3plus.pojo.platform.bean.SysOrganize;
import cn.estsh.i3plus.pojo.platform.bean.SysRefUserDepartment;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
@ -22,11 +21,14 @@ import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
@ -49,8 +51,14 @@ public class SysDepartmentController extends CoreBaseController {
private ICoreTreeService coreTreeService;
@Autowired
private ICoreMemTreeService memTreeService;
@Autowired
private ISysOrganizeService organizeService;
@Autowired
private IPersonnelService personnelService;
/**
*
* @param department
@ -171,20 +179,46 @@ public class SysDepartmentController extends CoreBaseController {
@ApiOperation(value = "查询部门", notes = "组合查询部门信息外加分页信息")
public ResultBean querySysDepartment(SysDepartment department, Pager pager) {
try {
ListPager list = null;
if(department.getOrganizeId() != null){
SysOrganize organize = organizeService.getSysOrganizeById(department.getOrganizeId());
if(organize != null){
coreTreeService.findSysOrganizeChildrenTreePack(organize,0);
List<Long> childIds = coreTreeService.findSysOrganizeChildIds(organize);
list = departmentService.findSysDepartmentByPager(department,childIds, pager);
}else {
return ResultBean.fail("不存在组织信息").setCode(ResourceEnumUtil.MESSAGE.EMPTY.getCode());
ListPager result = null;
List<Long> refIds = new ArrayList<>();
List<Long> refFilterIds = new ArrayList<>();
// 通过组织获取部门信息
if (department.getOrganizeId() != null && department.getOrganizeId() > 0) {
List<Long> organizeIdList = memTreeService.findSysOrganizeChildIdList(department.getOrganizeId());
List<SysRefUserDepartment> refUserDepartmentList = personnelService.findSysRefUserDepartmentByOrganizeIdList(organizeIdList);
if (refUserDepartmentList != null && refUserDepartmentList.size() > 0) {
for (SysRefUserDepartment ref : refUserDepartmentList) {
refIds.add(ref.getDepartmentId());
}
}
}
// 通过父节点查询部门信息
if (department.getParentId() != null && department.getParentId() > 0) {
List<Long> departmentIdList = memTreeService.findSysDepartmentChildIdList(department.getParentId());
if (departmentIdList != null && departmentIdList.size() > 0) {
refIds.addAll(departmentIdList);
}
}
// 用户所拥有的权限
if (!AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)) {
List<SysRefUserDepartment> refList = personnelService.findSysRefUserDepartmentByUserId(getSessionUser().getUser().getId());
if (refList != null && refList.size() > 0) {
refList.forEach(ref -> refFilterIds.add(ref.getDepartmentId()));
}
if(refIds.size() <= 0){
refIds = refFilterIds;
}else {
list = departmentService.findSysDepartmentByPager(department, pager);
// List 取交集
refIds = (ArrayList<Long>) CollectionUtils.intersection(refIds, refFilterIds);
}
return ResultBean.success("操作成功").setListPager(list).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
result = departmentService.findSysDepartmentPagerByIdList(department, new ArrayList<>(refIds), pager);
return ResultBean.success("操作成功").setListPager(result).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {

@ -4,10 +4,8 @@ import cn.estsh.i3plus.core.api.iservice.busi.ICoreMemTreeService;
import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ModelEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.model.platform.CommonTreeModel;
import cn.estsh.i3plus.pojo.platform.bean.*;
import cn.estsh.impp.framework.boot.util.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -288,7 +286,7 @@ public class CoreMemTreeService implements ICoreMemTreeService {
@Override
public List<CommonTreeModel> packTreeTreeModelRoot() {
List<SysOrganize> organizeList = personnelService.findSysOrganizeList();
List<SysDepartment> departmentList = personnelService.findSysUserDepartmentList();
List<SysDepartment> departmentList = personnelService.findSysDepartmentList();
organizeList = packTreeSysOrganize(organizeList, CommonEnumUtil.PARENT.DEFAULT.getValue());
departmentList = packTreeSysDepartment(departmentList, CommonEnumUtil.PARENT.DEFAULT.getValue());
@ -308,7 +306,7 @@ public class CoreMemTreeService implements ICoreMemTreeService {
// 分装组织树
List<SysOrganize> organizeList = personnelService.findSysOrganizeList();
// 分装部门树
List<SysDepartment> departmentList = personnelService.findSysUserDepartmentList();
List<SysDepartment> departmentList = personnelService.findSysDepartmentList();
// 分装组合树
result = packTreeTreeModelByRefUserDepartment(organizeList, departmentList, refList);
}
@ -464,6 +462,22 @@ public class CoreMemTreeService implements ICoreMemTreeService {
return result;
}
@Override
public List<Long> findSysDepartmentChildIdList(Long id) {
SysDepartment department = personnelService.getSysDepartmentById(id);
if(department != null){
List<SysDepartment> list = personnelService.findSysDepartmentList();
if(list != null && list.size() > 0){
SysDepartment treeDep = packTreeSysDepartmentById(list, department.getId());
List<Long> idList = findChildSysDepartment(treeDep);
idList.add(department.getId());
return idList;
}
}
return null;
}
/********************************************* End SysDepartment Tree *********************************************/
/********************************************* Start SysMenu Tree *********************************************/

@ -13,6 +13,7 @@ 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.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.tool.HqlPack;
import cn.estsh.i3plus.pojo.model.platform.UserDetailModel;
import cn.estsh.i3plus.pojo.platform.bean.*;
@ -345,6 +346,16 @@ public class PersonnelServiceService implements IPersonnelService {
}
@Override
public List<SysRefUserDepartment> findSysRefUserDepartmentByOrganizeIdList(List<Long> organizeIdList) {
LOGGER.info("平台账号部门 SysRefUserDepartment organizeIdList:{}", organizeIdList);
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getInPackList(organizeIdList,"organizeId",packBean);
return refUserDepartmentRDao.findByHqlWhere(packBean);
}
@Override
public List<SysRefUserDepartment> querySysRefUserDepartmentByUserDetailModel(UserDetailModel model) {
if(model != null){
StringBuffer userIdWhere = new StringBuffer();
@ -369,6 +380,16 @@ public class PersonnelServiceService implements IPersonnelService {
}
@Override
public List<SysRefUserInfoDepartment> findSysRefUserInfoDepartmentByOrganizeIdList(List<Long> organizeIdList) {
LOGGER.info("平台账号部门 SysRefUserDepartment organizeIdList:{}", organizeIdList);
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getInPackList(organizeIdList,"organizeId",packBean);
return refUserInfoDepartmentRDao.findByHqlWhere(packBean);
}
@Override
@ApiOperation(value = "查询用户部门关系")
public List<SysDepartment> findSysUserInfoDepartmentByInfoId(Long infoId) {
LOGGER.info("平台用户部门 SysDepartment infoId:{}", infoId);
@ -405,7 +426,7 @@ public class PersonnelServiceService implements IPersonnelService {
}
@Override
public List<SysDepartment> findSysUserDepartmentList() {
public List<SysDepartment> findSysDepartmentList() {
LOGGER.info("平台用户部门 SysOrganize Find All");
return departmentRDao.findByProperty(
new String[]{"isDeleted","isValid"},

@ -2,6 +2,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.ISysDepartmentService;
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;
@ -218,14 +219,13 @@ public class SysDepartmentService implements ISysDepartmentService {
}
@Override
public ListPager<SysDepartment> findSysDepartmentByPager(SysDepartment department, List<Long> organizeIdList, Pager pager) {
public ListPager<SysDepartment> findSysDepartmentPagerByOrganizeId(SysDepartment department, List<Long> organizeIdList, Pager pager) {
LOGGER.info("部门信息 DEPARTMENT department :{} organizeIdList:{}", department, organizeIdList);
if (department == null) {
pager = PagerHelper.getPager(pager, departmentRDao.listCount());
return new ListPager(departmentRDao.listPager(pager), pager);
} else {
String hqlPack = CoreHqlPack.packHqlSysDepartment(department);
hqlPack += CoreHqlPack.packHqlIds("organizeId", organizeIdList.toArray(new Long[organizeIdList.size()]));
@ -235,6 +235,13 @@ public class SysDepartmentService implements ISysDepartmentService {
}
@Override
public ListPager<SysDepartment> findSysDepartmentPagerByIdList(SysDepartment department, List<Long> idList, Pager pager) {
DdlPackBean packBean = CoreHqlPack.packDdlBeanSysDepartment(department, idList);
pager = PagerHelper.getPager(pager, departmentRDao.findByHqlWhereCount(packBean));
return new ListPager(departmentRDao.findByHqlWherePage(packBean , pager), pager);
}
@Override
public long getSysDepartmentCount() {
return departmentRDao.listCount();
}

Loading…
Cancel
Save