用户权限调整

yun-zuoyi
wei.peng 6 years ago
parent bd08a64e27
commit d798139565

@ -87,7 +87,13 @@ public interface ICoreMemTreeService {
/********************************************* Start CommonTreeModel Tree *********************************************/
@ApiOperation(value = "组织树转TreeModel",notes = "根据帐号ID 分装TreeModel")
List<CommonTreeModel> packTreeTreeModelUser(List<SysOrganize> organizeList,List<SysDepartment> departmentList,List<SysRefUserDepartment> refList);
List<CommonTreeModel> packTreeTreeModelByRefUserDepartment(List<SysOrganize> organizeList, List<SysDepartment> departmentList, List<SysRefUserDepartment> refList);
@ApiOperation(value = "组织树转TreeModel",notes = "根据帐号ID 分装TreeModel")
List<CommonTreeModel> packTreeTreeModelRoot();
@ApiOperation(value = "组织树转TreeModel",notes = "根据帐号ID 分装TreeModel")
List<CommonTreeModel> packTreeTreeModelByUserId(Long userId);
@ApiOperation(value = "组织树转TreeModel",notes = "使用分装好的树转为TreeMode")
List<CommonTreeModel> packTreeTreeModelSysOrganize(List<SysOrganize> list);
@ -120,4 +126,28 @@ public interface ICoreMemTreeService {
List<Long> findChildSysDepartment(SysDepartment organize);
/********************************************* End SysDepartment Tree *********************************************/
/********************************************* Start SysMenu Tree *********************************************/
@ApiOperation(value = "分装功能树",notes = "分装功能树")
List<SysMenu> packTreeSysMenu(List<SysMenu> list,Long parentId);
@ApiOperation(value = "分装功能树",notes = "根据用户功能关系分装功能树")
List<SysMenu> packTreeSysMenuBySysRefUserOrganize(List<SysMenu> list, List<SysRefRoleMenu> refList);
@ApiOperation(value = "分装功能树",notes = "根据制定IDS分装功能树")
List<SysMenu> packTreeSysMenuByIds(List<SysMenu> list, List<Long> ids);
@ApiOperation(value = "分装功能树",notes = "根据制定ID分装功能树")
SysMenu packTreeSysMenuById(List<SysMenu> list, Long id);
@ApiOperation(value = "查询功能子节点",notes = "查询字节点功能ID")
List<Long> findChildSysMenu(SysMenu organize);
@ApiOperation(value = "查询功能子节点",notes = "根据用户ID 查询功能树")
List<SysMenu> packTreeSysMenuByUserId(Long userId);
@ApiOperation(value = "查询功能子节点",notes = "根据用户ID 查询功能树")
List<SysMenu> packTreeSysMenu();
/********************************************* End SysMenu Tree *********************************************/
}

@ -78,11 +78,35 @@ public interface IPersonnelService {
@ApiOperation(value = "查询用户信息")
List<SysUserInfo> findSysUserInfoByIds(Long[] ids);
@ApiOperation(value = "查询角色",notes = "查询制定用户的角色信息")
List<SysRole> findSysRoleByUserId(Long userId);
@ApiOperation(value = "查询角色",notes = "查询所有角色信息")
List<SysRole> findSysRoleList();
@ApiOperation(value = "查询权限",notes = "查询所有权限")
List<SysMenu> findSysMenuList();
@ApiOperation(value = "查询权限",notes = "查询所有权限")
List<SysMenu> findSysMenuByUserId(Long userId);
@ApiOperation(value = "查询权限",notes = "查询所有权限")
List<SysMenu> findSysMenuByIdList(List<Long> ids);
@ApiOperation(value = "查询权限",notes = "查询所有权限")
List<SysMenu> findSysMenuByRefRoleMenu(List<SysRefRoleMenu> refList);
@ApiOperation(value = "查询账号角色关系")
List<SysRefUserRole> findSysRefUserRoleById(Long userId);
@ApiOperation(value = "查询角色",notes = "查询制定用户的角色信息")
List<SysRole> findSysRoleByUserId(Long userId);
@ApiOperation(value = "角色权限关系",notes = "根据角色ID 查询权限")
List<SysRefRoleMenu> findSysRefRoleMenuByRoleIds(List<Long> roleIdList);
@ApiOperation(value = "角色权限关系",notes = "根据角色ID 查询权限")
List<SysRefRoleMenu> findSysRefRoleMenuByRole(List<SysRole> roleList);
@ApiOperation(value = "角色权限关系",notes = "根据角色ID 查询权限")
List<SysRefRoleMenu> findSysRefRoleMenuByRefUserRole(List<SysRefUserRole> refList);
@ApiOperation(value = "查询账号部门关系")
List<SysRefUserDepartment> findSysRefUserDepartmentByUserId(Long userId);

@ -8,8 +8,8 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
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.i3plus.pojo.platform.repository.SysRefUserPositionRepository;
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.ResultBean;
@ -17,7 +17,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -184,16 +183,33 @@ public class SysMemTreeController extends CoreBaseController {
@ApiOperation(value="查询岗位树",notes="通过部门主键获取岗位树,-1为根节点")
public ResultBean findTreeModelUser() {
try {
List<SysRefUserDepartment> refList = personnelService.findSysRefUserDepartmentByUserId(getSessionUser().getUser().getId());
if(refList != null && refList.size()> 0){
List<SysOrganize> organizeList = personnelService.findSysOrganizeList();
List<SysDepartment> departmentList = personnelService.findSysUserDepartmentList();
List<CommonTreeModel> result = null;
List<CommonTreeModel> result = memTreeService.packTreeTreeModelUser(organizeList, departmentList, refList);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result);
if(AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)){
result = memTreeService.packTreeTreeModelRoot();
}else {
result = memTreeService.packTreeTreeModelByUserId(getSessionUser().getUser().getId());
}
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
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);
}
}
@GetMapping(value="/menu/user")
@ApiOperation(value="查询岗位树",notes="通过部门主键获取岗位树,-1为根节点")
public ResultBean findTreeMenuUser() {
try {
List<SysMenu> result = null;
if(AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)){
result = memTreeService.packTreeSysMenu();
}else{
result = memTreeService.packTreeSysMenuByUserId(getSessionUser().getUser().getId());
}
return ResultBean.success("操作成功").setResultList(result).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
}catch(Exception e){

@ -151,7 +151,12 @@ public class SysRoleController extends CoreBaseController{
@ApiOperation(value = "查询角色", notes = "查询用户所拥有的角色信息")
public ResultBean findSysRoleByUser() {
try {
List<SysRole> result = personnelService.findSysRoleByUserId(getSessionUser().getUser().getId());
List<SysRole> result = null;
if(AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)){
result = personnelService.findSysRoleList();
}else{
result = personnelService.findSysRoleByUserId(getSessionUser().getUser().getId());
}
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
@ -210,16 +215,19 @@ public class SysRoleController extends CoreBaseController{
@ApiOperation(value="查询角色",notes="组合查询角色,外带分页功能")
public ResultBean querySysRole(SysRole role, Pager pager){
try{
ListPager result = null;
if(AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)){
result = sysRoleService.querySysRole(role,pager);
}else {
List<SysRefUserRole> refList = personnelService.findSysRefUserRoleById(getSessionUser().getUser().getId());
if(refList != null && refList.size() > 0){
List<Long> 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());
result = sysRoleService.querySysRole(role, idList, pager);
}
return ResultBean.success("操作成功").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){

@ -4,9 +4,10 @@ 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 io.swagger.annotations.ApiOperation;
import cn.estsh.impp.framework.boot.util.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -219,7 +220,7 @@ public class CoreMemTreeService implements ICoreMemTreeService {
/********************************************* Start CommonTreeModel Tree *********************************************/
@Override
public List<CommonTreeModel> packTreeTreeModelUser(List<SysOrganize> organizeList, List<SysDepartment> departmentList, List<SysRefUserDepartment> refList) {
public List<CommonTreeModel> packTreeTreeModelByRefUserDepartment(List<SysOrganize> organizeList, List<SysDepartment> departmentList, List<SysRefUserDepartment> refList) {
if(refList != null && organizeList != null && departmentList != null){
List<Long> organizeIdList = new ArrayList<>();
List<Long> departmentIdList = new ArrayList<>();
@ -248,6 +249,37 @@ public class CoreMemTreeService implements ICoreMemTreeService {
}
@Override
public List<CommonTreeModel> packTreeTreeModelRoot() {
List<SysOrganize> organizeList = personnelService.findSysOrganizeList();
List<SysDepartment> departmentList = personnelService.findSysUserDepartmentList();
organizeList = packTreeSysOrganize(organizeList, CommonEnumUtil.PARENT.DEFAULT.getValue());
departmentList = packTreeSysDepartment(departmentList, CommonEnumUtil.PARENT.DEFAULT.getValue());
List<CommonTreeModel> modelList = packTreeTreeModelSysOrganize(organizeList);
List<CommonTreeModel> result = packTreeTreeModel(modelList, departmentList);
return result;
}
@Override
public List<CommonTreeModel> packTreeTreeModelByUserId(Long userId) {
List<CommonTreeModel> result = null;
// 查出用户权限
List<SysRefUserDepartment> refList = personnelService.findSysRefUserDepartmentByUserId(userId);
if (refList != null && refList.size() > 0) {
// 分装组织树
List<SysOrganize> organizeList = personnelService.findSysOrganizeList();
// 分装部门树
List<SysDepartment> departmentList = personnelService.findSysUserDepartmentList();
// 分装组合树
result = packTreeTreeModelByRefUserDepartment(organizeList, departmentList, refList);
}
return result;
}
@Override
public List<CommonTreeModel> packTreeTreeModelSysOrganize(List<SysOrganize> list) {
List<CommonTreeModel> result = new ArrayList<>();
@ -397,6 +429,107 @@ public class CoreMemTreeService implements ICoreMemTreeService {
}
/********************************************* End SysDepartment Tree *********************************************/
/********************************************* Start SysMenu Tree *********************************************/
@Override
public List<SysMenu> packTreeSysMenu(List<SysMenu> list, Long parentId) {
List<SysMenu> result = new ArrayList<>();
if(list != null && list.size() > 0){
List<SysMenu> copyList = new ArrayList<>(list);
list.forEach(menu -> {
if(menu.getParentId() != null && menu.getParentId().equals(parentId)){
result.add(menu);
copyList.remove(menu);
menu.setChildList(packTreeSysMenu(copyList, menu.getId()));
}
});
}
return result;
}
@Override
public List<SysMenu> packTreeSysMenuBySysRefUserOrganize(List<SysMenu> list, List<SysRefRoleMenu> refList) {
List<Long> ids = new ArrayList<>(refList.size());
if(refList != null && refList.size() > 0){
refList.forEach(ref -> ids.add(ref.getMenuId()));
}
return packTreeSysMenuByIds(list, ids);
}
@Override
public List<SysMenu> packTreeSysMenuByIds(List<SysMenu> list, List<Long> ids) {
List<SysMenu> result = new ArrayList<>();
if(list != null && list.size() > 0){
list.forEach(menu -> {
if(menu.getChildList() == null || menu.getChildList().size() <= 0){
if(ids.contains(menu.getId())){
result.add(menu);
}
}else{
List<SysMenu> childList = packTreeSysMenuByIds(menu.getChildList(), ids);
if(ids.contains(menu.getId()) || childList != null && childList.size() > 0){
menu.setChildList(childList);
result.add(menu);
}
}
});
}
return result;
}
@Override
public SysMenu packTreeSysMenuById(List<SysMenu> list, Long id) {
if(list != null && list.size() > 0){
for (SysMenu menu : list) {
if(menu.getId().equals(id)){
menu.setChildList(packTreeSysMenu(list, menu.getId()));
return menu;
}
}
}
return null;
}
@Override
public List<Long> findChildSysMenu(SysMenu menu) {
List<Long> result = new ArrayList<>();
if(menu != null && menu.getChildList() != null && menu.getChildList().size() > 0){
for (SysMenu sp : menu.getChildList()) {
result.add(sp.getId());
result.addAll(findChildSysMenu(sp));
}
}
return result;
}
@Override
public List<SysMenu> packTreeSysMenuByUserId(Long userId) {
List<SysRefUserRole> roleList = personnelService.findSysRefUserRoleById(userId);
if(roleList != null && roleList.size() > 0){
List<SysRefRoleMenu> refRoleMenuList = personnelService.findSysRefRoleMenuByRefUserRole(roleList);
if(refRoleMenuList != null && refRoleMenuList.size() > 0){
List<SysMenu> menuList = personnelService.findSysMenuList();
List<SysMenu> menuRootTree = packTreeSysMenu(menuList, CommonEnumUtil.PARENT.DEFAULT.getValue());
return packTreeSysMenuBySysRefUserOrganize(menuRootTree, refRoleMenuList);
}
}
return null;
}
@Override
public List<SysMenu> packTreeSysMenu() {
List<SysMenu> menuList = personnelService.findSysMenuList();
return packTreeSysMenu(menuList, CommonEnumUtil.PARENT.DEFAULT.getValue());
}
/********************************************* End SysMenu Tree *********************************************/
}

@ -220,11 +220,6 @@ public class PersonnelServiceService implements IPersonnelService {
return userInfoRDao.findByHqlWhere(infoWhere);
}
@Override
public List<SysRefUserRole> findSysRefUserRoleById(Long userId) {
LOGGER.info("平台账号角色 SysRefUserRole userId:{}", userId);
return refUserRoleRDao.findByProperty("userId",userId);
}
@Override
public List<SysRole> findSysRoleByUserId(Long userId) {
@ -247,6 +242,103 @@ public class PersonnelServiceService implements IPersonnelService {
}
@Override
public List<SysRole> findSysRoleList() {
return roleRDao.findByProperty(
new String[]{"roleStatus","isDeleted","isValid"},
new Object[]{
CommonEnumUtil.DATA_STATUS.ENABLE.getValue(),
CommonEnumUtil.IS_DEAL.NO.getValue(),
CommonEnumUtil.IS_VAILD.VAILD.getValue(),});
}
@Override
public List<SysMenu> findSysMenuList() {
LOGGER.info("平台账号权限 SysMenu ");
return menuRDao.findByProperty(
new String[]{"menuStatus","isDeleted","isValid"},
new Object[]{
CommonEnumUtil.DATA_STATUS.ENABLE.getValue(),
CommonEnumUtil.IS_DEAL.NO.getValue(),
CommonEnumUtil.IS_VAILD.VAILD.getValue()});
}
@Override
public List<SysMenu> findSysMenuByUserId(Long userId) {
LOGGER.info("平台账号权限 SysMenu userId:{}",userId);
List<SysRefUserRole> refUserRoleList = findSysRefUserRoleById(userId);
List<SysRefRoleMenu> refRoleMenuList = findSysRefRoleMenuByRefUserRole(refUserRoleList);
return findSysMenuByRefRoleMenu(refRoleMenuList);
}
@Override
public List<SysMenu> findSysMenuByIdList(List<Long> ids) {
LOGGER.info("平台账号角色 SysMenu ids:{}", ids);
if(ids != null){
StringBuffer findWhere = new StringBuffer();
HqlPack.getInPack(StringUtils.join(ids,","),"id",findWhere);
HqlPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),"isDeleted",findWhere);
HqlPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(),"isValid",findWhere);
return menuRDao.findByHqlWhere(findWhere.toString());
}
return null;
}
@Override
public List<SysMenu> findSysMenuByRefRoleMenu(List<SysRefRoleMenu> refList) {
LOGGER.info("平台账号角色 SysRefRoleMenu refList:{}", refList);
if(refList != null && refList.size() > 0){
List<Long> idList = new ArrayList<>(refList.size());
refList.forEach(ref -> idList.add(ref.getMenuId()));
return findSysMenuByIdList(idList);
}
return null;
}
@Override
public List<SysRefUserRole> findSysRefUserRoleById(Long userId) {
LOGGER.info("平台账号角色 SysRefUserRole userId:{}", userId);
return refUserRoleRDao.findByProperty("userId",userId);
}
@Override
public List<SysRefRoleMenu> findSysRefRoleMenuByRoleIds(List<Long> roleIdList) {
LOGGER.info("平台账号角色 SysRefRoleMenu roleIdList:{}", roleIdList);
if(roleIdList != null){
StringBuffer findWhere = new StringBuffer();
HqlPack.getInPack(StringUtils.join(roleIdList,","),"id",findWhere);
HqlPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),"isDeleted",findWhere);
HqlPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(),"isValid",findWhere);
return refRoleMenuRDao.findByHqlWhere(findWhere.toString());
}
return null;
}
@Override
public List<SysRefRoleMenu> findSysRefRoleMenuByRole(List<SysRole> roleList) {
LOGGER.info("平台账号角色 SysRefRoleMenu roleList:{}", roleList);
if(roleList != null && roleList.size() > 0){
List<Long> idList = new ArrayList<>(roleList.size());
roleList.forEach(ref -> idList.add(ref.getId()));
return findSysRefRoleMenuByRoleIds(idList);
}
return null;
}
@Override
public List<SysRefRoleMenu> findSysRefRoleMenuByRefUserRole(List<SysRefUserRole> refList) {
LOGGER.info("平台账号角色 SysRefRoleMenu refList:{}", refList);
if(refList != null && refList.size() > 0){
List<Long> idList = new ArrayList<>(refList.size());
refList.forEach(ref -> idList.add(ref.getRoleId()));
return findSysRefRoleMenuByRoleIds(idList);
}
return null;
}
@Override
public List<SysRefUserDepartment> findSysRefUserDepartmentByUserId(Long userId) {
LOGGER.info("平台账号部门 SysRefUserDepartment userId:{}", userId);
return refUserDepartmentRDao.findByProperty("userId",userId);

Loading…
Cancel
Save