用户权限调整

yun-zuoyi
wei.peng 6 years ago
parent 9ebc618a92
commit bb415e5299

@ -113,7 +113,6 @@ public interface ICoreMemTreeService {
@ApiOperation(value = "获取部门ID 集合",notes = "使用分装好的树转为TreeMode")
List<Long> findDepartmentIdListByOrganizeIdAndDepartmentIdAndUserId(Long organizeId, Long departmentId, Long userId);
List<Long> findDepartmentIdListByOrganizeIdAndDepartmentId(Long organizeId, Long departmentId);
/********************************************* End CommonTreeModel Tree *********************************************/

@ -106,6 +106,9 @@ public interface IPersonnelService {
List<SysRefUserRole> findSysRefUserRole(Long userId,Long roleId,String organizeCode);
@ApiOperation(value = "角色权限关系",notes = "根据角色ID 查询权限")
List<SysRefRoleMenu> findSysRefRoleMenuByUserId(Long userId);
@ApiOperation(value = "角色权限关系",notes = "根据角色ID 查询权限")
List<SysRefRoleMenu> findSysRefRoleMenuByRoleIds(List<Long> roleIdList);
@ApiOperation(value = "角色权限关系",notes = "根据角色ID 查询权限")
@ -119,6 +122,8 @@ public interface IPersonnelService {
List<SysRefUserDepartment> findSysRefUserDepartmentByOrganizeIdList(List<Long> organizeIdList);
List<SysRefUserDepartment> findSysRefUserDepartmentByOrganizeCode(String organizeCode);
List<SysRefUserDepartment> findSysRefUserDepartmentByDepartmentIdList(List<Long> departmentIdList);
@ApiOperation(value = "查询账号部门关系")
@ -129,6 +134,8 @@ public interface IPersonnelService {
List<SysRefUserInfoDepartment> findSysRefUserInfoDepartmentByOrganizeIdList(List<Long> organizeIdList);
List<SysRefUserInfoDepartment> findSysRefUserInfoDepartmentByDepartmentIdList(List<Long> departmentIdList);
@ApiOperation(value = "查询用户部门关系")
List<SysDepartment> findSysUserInfoDepartmentByInfoId(Long infoId);
@ -149,10 +156,9 @@ public interface IPersonnelService {
List<SysPosition> findSysPositionList();
@ApiOperation(value = "查询用户岗位关系")
List<SysRefUserPosition> findSysRefUserPositionById(Long infoId);
List<SysRefUserPosition> findSysRefUserPositionByUserInfoId(Long infoId);
@ApiOperation(value = "封装用户信息",notes = "封装登录完成后的用户信息(角色、权限、部门、操作部门、组织、岗位)")
SessionUser packSessionUser(SessionUser sessionUser, SysUser user, Integer userType, String languageCode);
List<SysRefUserPosition> findSysRefUserPositionByIdList(List<Long> idList);
@ApiOperation(value = "账号唯一检查")
void checkSysUserOnly(SysUser user);

@ -50,7 +50,9 @@ public interface ISysDepartmentService {
* @return
*/
@ApiOperation(value = "查询部门信息",notes = "查询所有部门信息")
List<SysDepartment> listSysDepartment();
List<SysDepartment> findSysDepartmentList();
List<SysDepartment> findSysDepartmentListByIdList(List<Long> idList);
/**
*

@ -102,6 +102,8 @@ public interface ISysMenuService {
@ApiOperation(value = "查询菜单信息",notes = "查询菜单信息(分页、组合)")
ListPager<SysMenu> querySysMenu(SysMenu menu, Pager pager);
ListPager<SysMenu> querySysMenu(SysMenu menu,List<Long> idList, Pager pager);
}

@ -109,6 +109,8 @@ public interface ISysUserInfoService {
@ApiOperation(value = "查询用户信息",notes = "根据复杂查询条件查询用户信息(分页信息)")
ListPager<SysUserInfo> querySysUserInfo(SysUserInfo userInfo, Pager pager);
ListPager<SysUserInfo> querySysUserInfo(SysUserInfo userInfo,List<Long> idList, Pager pager);
/**
*
* @param userInfo

@ -682,7 +682,7 @@ public class DemoTestingController {
public void testUserDetailModel() {
List<SysRole> roleList = roleService.findSysRoleAll();
List<SysPosition> positionList = positionService.findSysPositionAll();
List<SysDepartment> departmentList = departmentService.listSysDepartment();
List<SysDepartment> departmentList = departmentService.findSysDepartmentList();
for (int l = 0; l < 100; l++) {
UserDetailModel model = new UserDetailModel();
@ -799,7 +799,7 @@ public class DemoTestingController {
String PATH = new String(File.separator + "C:\\test\\user");
List<SysRole> roleList = roleService.findSysRoleAll();
List<SysPosition> positionList = positionService.findSysPositionAll();
List<SysDepartment> departmentList = departmentService.listSysDepartment();
List<SysDepartment> departmentList = departmentService.findSysDepartmentList();
List<SysUser> userList = new ArrayList<>();
List<SysUserInfo> userInfoList = new ArrayList<>();

@ -296,7 +296,7 @@ public class PersonnelController extends CoreBaseController {
ValidatorBean.checkNotNull(user, "账号不存在");
List<SysRefUserInfoDepartment> refUserInfoDepartmentList = personnelService.findSysRefUserInfoDepartmentById(info.getId());
List<SysRefUserPosition> refUserPositionList = personnelService.findSysRefUserPositionById(info.getId());
List<SysRefUserPosition> refUserPositionList = personnelService.findSysRefUserPositionByUserInfoId(info.getId());
List<SysRefUserDepartment> refUserDepartmentList = personnelService.findSysRefUserDepartmentByUserId(user.getId());
List<SysRefUserRole> refUserRoleList = personnelService.findSysRefUserRole(user.getId());
SysFile image = info.getUserImageId() != null ? fileService.getSysFileById(info.getUserImageId()) : null;

@ -9,6 +9,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
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.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;
@ -23,6 +24,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;
/**
@ -129,7 +131,7 @@ public class SysDepartmentController extends CoreBaseController {
@ApiOperation(value = "查询所有部门", notes = "查询所有部门")
public ResultBean findSysDepartmentAll() {
try {
List<SysDepartment> departmentList = departmentService.listSysDepartment();
List<SysDepartment> departmentList = departmentService.findSysDepartmentList();
return ResultBean.success("操作成功").setResultList(departmentList).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
@ -138,6 +140,30 @@ public class SysDepartmentController extends CoreBaseController {
}
}
@GetMapping(value = "/list-user")
@ApiOperation(value = "查询所有部门", notes = "查询所有部门")
public ResultBean findSysDepartmentList() {
try {
List<SysDepartment> result = null;
if(AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)){
result = departmentService.findSysDepartmentList();
}else {
List<SysRefUserDepartment> refList = personnelService.findSysRefUserDepartmentByOrganizeCode(AuthUtil.getOrganize().getOrganizeCode());
if(refList != null && refList.size() > 0){
List<Long> idList = new ArrayList<>(refList.size());
refList.forEach(ref -> idList.add(ref.getDepartmentId()));
result = departmentService.findSysDepartmentListByIdList(idList);
}
}
return ResultBean.success("操作成功").setResultList(result).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
* id
* @param id id

@ -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.ISysMenuService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
@ -11,7 +12,9 @@ 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.SysMenu;
import cn.estsh.i3plus.pojo.platform.bean.SysRefRoleMenu;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ImppRedis;
@ -29,6 +32,7 @@ import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -56,6 +60,9 @@ public class SysMenuController extends CoreBaseController {
@Resource(name="redisRes")
private ImppRedis redisRes;
@Autowired
private IPersonnelService personnelService;
/**
*
* @param menu
@ -174,9 +181,19 @@ public class SysMenuController extends CoreBaseController {
@ApiOperation(value = "查询权限", notes = "组合查询权限,外带分页功能")
public ResultBean querySysMenu(SysMenu menu, Pager pager) {
try {
ListPager<SysMenu> listPager = sysMenuService.querySysMenu(menu, pager);
ListPager<SysMenu> result = null;
if(AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)){
result = sysMenuService.querySysMenu(menu, pager);
}else {
List<SysRefRoleMenu> refList = personnelService.findSysRefRoleMenuByUserId(getSessionUser().getUser().getId());
if(refList != null && refList.size() > 0){
List<Long> idList = new ArrayList<>(refList.size());
refList.forEach(ref -> idList.add(ref.getMenuId()));
result = sysMenuService.querySysMenu(menu,idList,pager);
}
}
return ResultBean.success("操作成功").setListPager(listPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
return ResultBean.success("操作成功").setListPager(result).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {

@ -23,8 +23,6 @@ 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.compress.archivers.zip.ZipUtil;
import org.aspectj.util.FileUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -58,7 +56,7 @@ public class SysUserInfoController extends CoreBaseController{
private ISysDepartmentService departmentService;
@Autowired
private ISysPositionService sysPositionService;
private ISysPositionService positionService;
@Autowired
private ISysConfigService sysConfigService;
@ -72,6 +70,12 @@ public class SysUserInfoController extends CoreBaseController{
@Autowired
private EntityManager entityManager;
@Autowired
private ICoreMemTreeService memTreeService;
@Autowired
private IPersonnelService personnelService;
@Resource(name="redisRes")
private ImppRedis redisRes;
/**
@ -189,8 +193,37 @@ public class SysUserInfoController extends CoreBaseController{
@ApiOperation(value="查询用户信息",notes="复杂查询用户信息带分页")
public ResultBean querySysUserInfo(SysUserInfo userInfo, Pager pager){
try{
ListPager<SysUserInfo> listPager = sysUserInfoService.querySysUserInfo(userInfo, pager);
return ResultBean.success("操作成功").setListPager(listPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
List<Long> idList = new ArrayList<>();
if(userInfo.getOrganizeId() == null || userInfo.getOrganizeId() <= 0) {
if (AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)) {
userInfo.setOrganizeCode(null);
userInfo.setOrganizeId(null);
} else {
userInfo.setOrganizeId(AuthUtil.getOrganize().getId());
userInfo.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode());
}
}
List<Long> departmentIdList = memTreeService.findDepartmentIdListByOrganizeIdAndDepartmentId(userInfo.getOrganizeId(), userInfo.getDepartmentId());
if(departmentIdList != null && departmentIdList.size() > 0){
List<SysRefUserInfoDepartment> refList = personnelService.findSysRefUserInfoDepartmentByDepartmentIdList(departmentIdList);
if(refList != null && refList.size() > 0){
refList.forEach(ref -> idList.add(ref.getUserId()));
}
}
if(userInfo.getPositionId() != null && userInfo.getPositionId() > 0){
List<Long> refList = memTreeService.findSysPositionChildIdList(userInfo.getPositionId());
if(refList != null && refList.size() > 0){
List<SysRefUserPosition> refUserPositionList = personnelService.findSysRefUserPositionByIdList(refList);
if(refUserPositionList != null && refUserPositionList.size() > 0){
refUserPositionList.forEach(ref -> idList.add(ref.getUserId()));
}
}
}
ListPager<SysUserInfo> result = sysUserInfoService.querySysUserInfo(userInfo,idList, pager);
return ResultBean.success("操作成功").setListPager(result).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
}catch(Exception e){
@ -350,7 +383,7 @@ public class SysUserInfoController extends CoreBaseController{
.build();
}
SysPosition position = sysPositionService.getSysPositionById(userInfo.getPositionId());
SysPosition position = positionService.getSysPositionById(userInfo.getPositionId());
if(position == null){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())

@ -314,6 +314,21 @@ public class PersonnelServiceService implements IPersonnelService {
}
@Override
public List<SysRefRoleMenu> findSysRefRoleMenuByUserId(Long userId) {
LOGGER.info("平台账号角色 SysRefRoleMenu userId:{}", userId);
if(userId != null){
List<SysRefUserRole> refRoleList = findSysRefUserRole(userId);
if(refRoleList != null && refRoleList.size() > 0){
List<Long> idList = new ArrayList<>(refRoleList.size());
refRoleList.forEach(ref -> idList.add(ref.getRoleId()));
return findSysRefRoleMenuByRoleIds( idList);
}
}
return null;
}
@Override
public List<SysRefRoleMenu> findSysRefRoleMenuByRoleIds(List<Long> roleIdList) {
LOGGER.info("平台账号角色 SysRefRoleMenu roleIdList:{}", roleIdList);
if(roleIdList != null){
@ -366,6 +381,16 @@ public class PersonnelServiceService implements IPersonnelService {
}
@Override
public List<SysRefUserDepartment> findSysRefUserDepartmentByOrganizeCode(String organizeCode) {
LOGGER.info("平台账号部门 SysRefUserDepartment organizeCode:{}", organizeCode);
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getStringEqualPack(organizeCode,"organizeCode",packBean);
return refUserDepartmentRDao.findByHqlWhere(packBean);
}
@Override
public List<SysRefUserDepartment> findSysRefUserDepartmentByDepartmentIdList(List<Long> departmentIdList) {
LOGGER.info("平台账号部门 SysRefUserDepartment departmentIdList:{}", departmentIdList);
@ -410,6 +435,16 @@ public class PersonnelServiceService implements IPersonnelService {
}
@Override
public List<SysRefUserInfoDepartment> findSysRefUserInfoDepartmentByDepartmentIdList(List<Long> departmentIdList) {
LOGGER.info("平台账号部门 SysRefUserInfoDepartment departmentIdList:{}", departmentIdList);
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getInPackList(departmentIdList,"departmentId",packBean);
return refUserInfoDepartmentRDao.findByHqlWhere(packBean);
}
@Override
@ApiOperation(value = "查询用户部门关系")
public List<SysDepartment> findSysUserInfoDepartmentByInfoId(Long infoId) {
LOGGER.info("平台用户部门 SysDepartment infoId:{}", infoId);
@ -506,13 +541,18 @@ public class PersonnelServiceService implements IPersonnelService {
}
@Override
public List<SysRefUserPosition> findSysRefUserPositionById(Long infoId) {
public List<SysRefUserPosition> findSysRefUserPositionByUserInfoId(Long infoId) {
LOGGER.info("平台用户岗位 SysRefUserPosition infoId:{}", infoId);
return refUserPositionRDao.findByProperty("userId",infoId);
}
@Override
public SessionUser packSessionUser(SessionUser sessionUser, SysUser user, Integer userType, String languageCode) {
public List<SysRefUserPosition> findSysRefUserPositionByIdList(List<Long> idList) {
if(idList != null && idList.size() > 0){
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getInPackList(idList,"positionId",packBean);
return refUserPositionRDao.findByHqlWhere(packBean);
}
return null;
}
@ -964,6 +1004,7 @@ public class PersonnelServiceService implements IPersonnelService {
refUserRole.setUserId(user.getId());
refUserRole.setUserNameRdd(user.getUserName());
refUserRole.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue());
refUserRole.setIsDeleted(CommonEnumUtil.IS_DEAL.NO.getValue());
refUserRoles.add(refUserRole);
}
refUserRoleRDao.saveAll(refUserRoles);

@ -7,6 +7,7 @@ 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.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.platform.bean.SysDepartment;
import cn.estsh.i3plus.pojo.platform.bean.SysOrganize;
import cn.estsh.i3plus.pojo.platform.repository.SysDepartmentRepository;
@ -172,12 +173,19 @@ public class SysDepartmentService implements ISysDepartmentService {
@Override
@ApiOperation(value = "查询部门信息", notes = "查询所有部门信息")
public List<SysDepartment> listSysDepartment() {
public List<SysDepartment> findSysDepartmentList() {
LOGGER.info("部门信息 DEPARTMENT list");
return departmentRDao.list();
}
@Override
public List<SysDepartment> findSysDepartmentListByIdList(List<Long> idList) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getInPackList(idList,"id",packBean);
return departmentRDao.findByHqlWhere(packBean);
}
@Override
@ApiOperation(value = "查询部门信息", notes = "查询部门信息(分页、组合)")
public ListPager<SysDepartment> querySysDepartment(SysDepartment department, Pager pager) {
LOGGER.info("部门 SysDepartment find department :{} page:{}", department, pager);

@ -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.ISysMenuService;
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;
@ -219,4 +220,11 @@ public class SysMenuService implements ISysMenuService {
return new ListPager(sysMenuRDao.findByHqlWherePage(hqlPack + menu.orderBy(), pager), pager);
}
}
@Override
public ListPager<SysMenu> querySysMenu(SysMenu menu, List<Long> idList, Pager pager) {
DdlPackBean packBean = CoreHqlPack.packDdlBeanSysMenu(menu, idList);
pager = PagerHelper.getPager(pager, sysMenuRDao.findByHqlWhereCount(packBean));
return new ListPager(sysMenuRDao.findByHqlWherePage(packBean, pager), pager);
}
}

@ -4,6 +4,7 @@ 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;
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;
@ -301,6 +302,13 @@ public class SysUserInfoService implements ISysUserInfoService {
}
@Override
public ListPager<SysUserInfo> querySysUserInfo(SysUserInfo userInfo, List<Long> idList, Pager pager) {
DdlPackBean packBean = CoreHqlPack.packDdlBeanSysUserInfo(userInfo, idList);
pager = PagerHelper.getPager(pager, sysUserInfoRDao.findByHqlWhereCount(packBean));
return new ListPager(sysUserInfoRDao.findByHqlWherePage(packBean, pager), pager);
}
@Override
@ApiOperation(value = "关系查询-用户部门",notes = "查询用户部门关系")
public List<SysRefUserDepartment> findRefUserDepartmentByUserId(Long userId) {
return refUserDepartmentRDao.findByProperty("userId",userId);

@ -273,6 +273,8 @@ public class SysUserService implements ISysUserService {
refUserRole.setCreateDatetime(TimeTool.getNowTime(true));
refUserRole.setModifyUser(userName);
refUserRole.setModifyDatetime(TimeTool.getNowTime(true));
refUserRole.setIsDeleted(CommonEnumUtil.IS_DEAL.NO.getValue());
refUserRole.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue());
refUserRoles.add(refUserRole);
}

Loading…
Cancel
Save