fetch:权限

This commit is contained in:
root
2021-07-01 10:50:56 +08:00
parent b543a9502d
commit 349737cd67
17 changed files with 139 additions and 31 deletions
@@ -99,7 +99,7 @@ public class SarMenuController extends BaseController<SarMenu> {
@ApiOperation("删除菜单") @ApiOperation("删除菜单")
@DeleteMapping @DeleteMapping
public ResponseMessage<Object> delMenu(@RequestParam Integer menuId){ public ResponseMessage<Object> delMenu(@RequestParam String menuId){
return sarMenuEOService.delMenu(menuId); return sarMenuEOService.delMenu(menuId);
} }
} }
@@ -54,10 +54,10 @@ public interface ISarMenuService extends IService<SarMenu> {
/** /**
* 删除菜单 * 删除菜单
* @param menuId:菜单ID * @param menuId :菜单ID
* @return ResponseMessage<Object> * @return ResponseMessage<Object>
*/ */
ResponseMessage<Object> delMenu(Integer menuId); ResponseMessage<Object> delMenu(String menuId);
/** /**
* 通过Ids查询menu * 通过Ids查询menu
@@ -222,11 +222,11 @@ public class SarMenuServiceImpl extends ServiceImpl<SarMenuDao, SarMenu> impleme
/** /**
* 删除菜单 * 删除菜单
* @param menuId:菜单ID * @param menuId :菜单ID
* @return ResponseMessage<Object> * @return ResponseMessage<Object>
*/ */
@Override @Override
public ResponseMessage<Object> delMenu(Integer menuId) { public ResponseMessage<Object> delMenu(String menuId) {
QueryWrapper<SarMenu> sarMenuQueryWrapper=new QueryWrapper<>(); QueryWrapper<SarMenu> sarMenuQueryWrapper=new QueryWrapper<>();
sarMenuQueryWrapper.eq("parent_id",menuId); sarMenuQueryWrapper.eq("parent_id",menuId);
List<SarMenu> children=dao.selectList(sarMenuQueryWrapper); List<SarMenu> children=dao.selectList(sarMenuQueryWrapper);
@@ -1,6 +1,8 @@
package com.adc.da.slrs.sarPersonalCenter.entity; package com.adc.da.slrs.sarPersonalCenter.entity;
import com.adc.da.base.entity.BaseEntity; import com.adc.da.base.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -21,6 +23,7 @@ import lombok.experimental.Accessors;
@ApiModel(value="SarUserPersonalMenu对象", description="") @ApiModel(value="SarUserPersonalMenu对象", description="")
public class SarUserPersonalMenu extends BaseEntity { public class SarUserPersonalMenu extends BaseEntity {
@TableId(type = IdType.UUID)
@ApiModelProperty("id") @ApiModelProperty("id")
private String id; private String id;
@@ -1,6 +1,7 @@
package com.adc.da.slrs.sarPersonalCenter.service; package com.adc.da.slrs.sarPersonalCenter.service;
import com.adc.da.http.ResponseMessage; import com.adc.da.http.ResponseMessage;
import com.adc.da.slrs.sarMenu.entity.SarMenu;
import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenu; import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenu;
import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenuEO; import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenuEO;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -22,8 +23,11 @@ public interface ISarUserPersonalMenuService extends IService<SarUserPersonalMen
public ResponseMessage<IPage<SarUserPersonalMenu>> updateUserPersonalMenu(SarUserPersonalMenuEO eo); public ResponseMessage<IPage<SarUserPersonalMenu>> updateUserPersonalMenu(SarUserPersonalMenuEO eo);
public void updateUserPersonalMenuForRole(List<SarUserPersonalMenu> menus,String userId); public void updateUserPersonalMenuForRole(List<SarMenu> menus, String userId);
/**
* 更新用户权限
* @param roleId:角色ID
*/
void setPersonalMenu(String roleId);
} }
@@ -2,14 +2,18 @@ package com.adc.da.slrs.sarPersonalCenter.service.impl;
import com.adc.da.http.ResponseMessage; import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result; import com.adc.da.http.Result;
import com.adc.da.slrs.sarMenu.entity.SarMenu;
import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenu; import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenu;
import com.adc.da.slrs.sarPersonalCenter.dao.SarUserPersonalMenuDao; import com.adc.da.slrs.sarPersonalCenter.dao.SarUserPersonalMenuDao;
import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenuEO; import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenuEO;
import com.adc.da.slrs.sarPersonalCenter.service.ISarUserPersonalMenuService; import com.adc.da.slrs.sarPersonalCenter.service.ISarUserPersonalMenuService;
import com.adc.da.slrs.sarUser.service.impl.TsUserServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
@@ -24,7 +28,8 @@ import java.util.*;
*/ */
@Service @Service
public class SarUserPersonalMenuServiceImpl extends ServiceImpl<SarUserPersonalMenuDao, SarUserPersonalMenu> implements ISarUserPersonalMenuService { public class SarUserPersonalMenuServiceImpl extends ServiceImpl<SarUserPersonalMenuDao, SarUserPersonalMenu> implements ISarUserPersonalMenuService {
@Autowired
private TsUserServiceImpl tsUserService;
@Override @Override
public ResponseMessage<IPage<SarUserPersonalMenu>> getUserPersonalMenu(SarUserPersonalMenuEO eo) { public ResponseMessage<IPage<SarUserPersonalMenu>> getUserPersonalMenu(SarUserPersonalMenuEO eo) {
@@ -68,16 +73,15 @@ public class SarUserPersonalMenuServiceImpl extends ServiceImpl<SarUserPersonalM
} }
@Override @Override
public void updateUserPersonalMenuForRole(List<SarUserPersonalMenu> menuList,String userId) { public void updateUserPersonalMenuForRole(List<SarMenu> menuList,String userId) {
Set<String> ids=new HashSet<>(); Set<String> ids=new HashSet<>();
for (SarUserPersonalMenu menu : menuList) { for (SarMenu menu : menuList) {
if(menu.getMenuId()!=null&&menu.getMenuId().trim().length()>0){ if(menu.getId()!=null&&menu.getId().trim().length()>0){
QueryWrapper<SarUserPersonalMenu> queryWrapper=new QueryWrapper<>(); QueryWrapper<SarUserPersonalMenu> queryWrapper=new QueryWrapper<>();
queryWrapper.eq("user_id",userId); queryWrapper.eq("user_id",userId);
queryWrapper.eq("menu_id",menu.getMenuId()); queryWrapper.eq("menu_id",menu.getId());
List<SarUserPersonalMenu> menus = getBaseMapper().selectList(queryWrapper); List<SarUserPersonalMenu> menus = getBaseMapper().selectList(queryWrapper);
if (menus.size()>0) { if (menus.size()>0) {
ids.add(menus.get(0).getId()); ids.add(menus.get(0).getId());
@@ -86,9 +90,9 @@ public class SarUserPersonalMenuServiceImpl extends ServiceImpl<SarUserPersonalM
SarUserPersonalMenu sarUserPersonalMenu=new SarUserPersonalMenu(); SarUserPersonalMenu sarUserPersonalMenu=new SarUserPersonalMenu();
sarUserPersonalMenu.setMenuName(menu.getMenuName()); sarUserPersonalMenu.setMenuName(menu.getMenuName());
sarUserPersonalMenu.setMenuUrl(menu.getMenuUrl()); sarUserPersonalMenu.setMenuUrl(menu.getHref());
sarUserPersonalMenu.setUserId(menu.getUserId()); sarUserPersonalMenu.setUserId(userId);
sarUserPersonalMenu.setMenuId(menu.getMenuId()); sarUserPersonalMenu.setMenuId(menu.getId());
sarUserPersonalMenu.setState(0); sarUserPersonalMenu.setState(0);
getBaseMapper().insert(sarUserPersonalMenu); getBaseMapper().insert(sarUserPersonalMenu);
@@ -101,4 +105,18 @@ public class SarUserPersonalMenuServiceImpl extends ServiceImpl<SarUserPersonalM
getBaseMapper().delete(queryWrapper); getBaseMapper().delete(queryWrapper);
} }
/**
* 更新用户权限
* @param roleId:角色ID
*/
@Async
@Override
public void setPersonalMenu(String roleId) {
List<String> userIds=tsUserService.getUserIdsByRoleId(roleId);
for(String userId:userIds){
List<SarMenu> menus=tsUserService.getMenusByUserId(userId);
updateUserPersonalMenuForRole(menus,userId);
}
}
} }
@@ -63,4 +63,12 @@ public interface TsPositionDao extends BaseMapper<TsPosition> {
* @return List<String> * @return List<String>
*/ */
List<String> getRoleIdsByPositionIds(List<String> positionIds); List<String> getRoleIdsByPositionIds(List<String> positionIds);
/**
* 通过roleId查询岗位ID列表
* @param roleId:角色ID
* @return List<String>
*/
@Select("select position_id from ts_position_role where role_id=#{roleId}")
List<String> getPositionIdsByRoleId(String roleId);
} }
@@ -66,4 +66,11 @@ public interface ITsPositionService extends IService<TsPosition> {
* @return List<String> * @return List<String>
*/ */
List<String> getRoleIdsByPositionIds(List<String> positionIds); List<String> getRoleIdsByPositionIds(List<String> positionIds);
/**
* 通过roleId查询岗位ID列表
* @param roleId:角色ID
* @return List<String>
*/
List<String> getPositionIdsByRoleId(String roleId);
} }
@@ -147,4 +147,14 @@ public class TsPositionServiceImpl extends ServiceImpl<TsPositionDao, TsPosition
} }
return null; return null;
} }
/**
* 通过roleId查询岗位ID列表
* @param roleId:角色ID
* @return List<String>
*/
@Override
public List<String> getPositionIdsByRoleId(String roleId) {
return tsPositionDao.getPositionIdsByRoleId(roleId);
}
} }
@@ -24,7 +24,7 @@ import java.util.List;
*/ */
@RestController @RestController
@Api(tags = "资源管理") @Api(tags = "资源管理")
@RequestMapping("/sarResource/ts-resource") @RequestMapping("/api/sarResource/ts-resource")
public class TsResourceController extends BaseController<TsResource> { public class TsResourceController extends BaseController<TsResource> {
@Autowired @Autowired
private ITsResourceService tsResourceService; private ITsResourceService tsResourceService;
@@ -50,7 +50,7 @@ public class TsResourceController extends BaseController<TsResource> {
@ApiOperation("删除资源") @ApiOperation("删除资源")
@DeleteMapping @DeleteMapping
public ResponseMessage<Object> delResource(@RequestParam Integer resourceId){ public ResponseMessage<Object> delResource(@RequestParam String resourceId){
return tsResourceService.delResource(resourceId); return tsResourceService.delResource(resourceId);
} }
@@ -22,7 +22,7 @@ public interface ITsResourceService extends IService<TsResource> {
ResponseMessage<Object> updateResource(TsResource tsResource); ResponseMessage<Object> updateResource(TsResource tsResource);
ResponseMessage<Object> delResource(Integer resourceId); ResponseMessage<Object> delResource(String resourceId);
/** /**
* 通过Ids查询menu * 通过Ids查询menu
@@ -84,7 +84,7 @@ public class TsResourceServiceImpl extends ServiceImpl<TsResourceDao, TsResource
* @return ResponseMessage<Object> * @return ResponseMessage<Object>
*/ */
@Override @Override
public ResponseMessage<Object> delResource(Integer ResourceId) { public ResponseMessage<Object> delResource(String ResourceId) {
QueryWrapper<TsResource> TsResourceQueryWrapper=new QueryWrapper<>(); QueryWrapper<TsResource> TsResourceQueryWrapper=new QueryWrapper<>();
TsResourceQueryWrapper.eq("parent_id",ResourceId); TsResourceQueryWrapper.eq("parent_id",ResourceId);
List<TsResource> children=dao.selectList(TsResourceQueryWrapper); List<TsResource> children=dao.selectList(TsResourceQueryWrapper);
@@ -5,15 +5,18 @@ import com.adc.da.http.Result;
import com.adc.da.slrs.sarMenu.dao.SarMenuDao; import com.adc.da.slrs.sarMenu.dao.SarMenuDao;
import com.adc.da.slrs.sarMenu.entity.SarMenu; import com.adc.da.slrs.sarMenu.entity.SarMenu;
import com.adc.da.slrs.sarMenu.service.ISarMenuService; import com.adc.da.slrs.sarMenu.service.ISarMenuService;
import com.adc.da.slrs.sarPersonalCenter.service.ISarUserPersonalMenuService;
import com.adc.da.slrs.sarRole.entity.TsRole; import com.adc.da.slrs.sarRole.entity.TsRole;
import com.adc.da.slrs.sarRole.dao.TsRoleDao; import com.adc.da.slrs.sarRole.dao.TsRoleDao;
import com.adc.da.slrs.sarRole.entity.TsRoleMenuVO; import com.adc.da.slrs.sarRole.entity.TsRoleMenuVO;
import com.adc.da.slrs.sarRole.entity.TsRoleResourceVO; import com.adc.da.slrs.sarRole.entity.TsRoleResourceVO;
import com.adc.da.slrs.sarRole.service.ITsRoleService; import com.adc.da.slrs.sarRole.service.ITsRoleService;
import com.adc.da.slrs.sarUser.service.ITsUserService;
import com.adc.da.utils.util.ListUtil; import com.adc.da.utils.util.ListUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -28,13 +31,15 @@ import java.util.Map;
* @author zyl * @author zyl
* @since 2021-06-22 * @since 2021-06-22
*/ */
@EnableAsync
@Service @Service
public class TsRoleServiceImpl extends ServiceImpl<TsRoleDao, TsRole> implements ITsRoleService { public class TsRoleServiceImpl extends ServiceImpl<TsRoleDao, TsRole> implements ITsRoleService {
@Autowired @Autowired
private TsRoleDao tsRoleDao; private TsRoleDao tsRoleDao;
@Autowired @Autowired
private ISarMenuService sarMenuService; private ISarMenuService sarMenuService;
@Autowired
private ISarUserPersonalMenuService sarUserPersonalMenuService;
/** /**
* 查询所有角色 * 查询所有角色
* @return List<TsRole> * @return List<TsRole>
@@ -170,8 +175,7 @@ public class TsRoleServiceImpl extends ServiceImpl<TsRoleDao, TsRole> implements
tsRoleDao.delMenu(tsRoleMenuVO.getRoleId(),menuId); tsRoleDao.delMenu(tsRoleMenuVO.getRoleId(),menuId);
} }
} }
//修改首页自定义目录 sarUserPersonalMenuService.setPersonalMenu(tsRoleMenuVO.getRoleId());
// List<SarMenu> menus=sarMenuService.getMenusByIds(tsRoleMenuVO.getMenuIds());
return Result.success(); return Result.success();
} }
@@ -223,8 +227,7 @@ public class TsRoleServiceImpl extends ServiceImpl<TsRoleDao, TsRole> implements
tsRoleDao.delResource(tsRoleResourceVO.getRoleId(),menuId); tsRoleDao.delResource(tsRoleResourceVO.getRoleId(),menuId);
} }
} }
//修改首页自定义目录
// List<SarMenu> menus=sarMenuService.getMenusByIds(tsRoleMenuVO.getMenuIds());
return Result.success(); return Result.success();
} }
@@ -252,4 +255,6 @@ public class TsRoleServiceImpl extends ServiceImpl<TsRoleDao, TsRole> implements
} }
} }
@@ -46,4 +46,11 @@ public interface TsUserDao extends BaseMapper<TsUser> {
* @return List<TsUser> * @return List<TsUser>
*/ */
List<TsUser> getUserAndPosition(String institutionId); List<TsUser> getUserAndPosition(String institutionId);
/**
* 通过岗位Id列表查询用户ID列表
* @param positionIds:岗位ID列表
* @return List<String>
*/
List<String> getUserIdsByPositionIds(List<String> positionIds);
} }
@@ -48,4 +48,19 @@ public interface ITsUserService extends IService<TsUser> {
List<SarMenu> getMenu(); List<SarMenu> getMenu();
List<TsResource> getResource(); List<TsResource> getResource();
/**
* 配置个人菜单
* @param roleId :角色ID
* @return List<String>
*/
public List<String> getUserIdsByRoleId(String roleId);
/**
* 通过用户ID查询菜单
* @param userId:用户ID
* @return List<SarMenu>
*/
public List<SarMenu> getMenusByUserId(String userId);
} }
@@ -5,7 +5,6 @@ import com.adc.da.http.Result;
import com.adc.da.login.util.UserUtils; import com.adc.da.login.util.UserUtils;
import com.adc.da.slrs.sarMenu.entity.SarMenu; import com.adc.da.slrs.sarMenu.entity.SarMenu;
import com.adc.da.slrs.sarMenu.service.ISarMenuService; import com.adc.da.slrs.sarMenu.service.ISarMenuService;
import com.adc.da.slrs.sarPosition.entity.TsPosition;
import com.adc.da.slrs.sarPosition.service.ITsPositionService; import com.adc.da.slrs.sarPosition.service.ITsPositionService;
import com.adc.da.slrs.sarResource.entity.TsResource; import com.adc.da.slrs.sarResource.entity.TsResource;
import com.adc.da.slrs.sarResource.service.ITsResourceService; import com.adc.da.slrs.sarResource.service.ITsResourceService;
@@ -15,15 +14,12 @@ import com.adc.da.slrs.sarUser.dao.TsUserDao;
import com.adc.da.slrs.sarUser.entity.UserPositionVO; import com.adc.da.slrs.sarUser.entity.UserPositionVO;
import com.adc.da.slrs.sarUser.service.ITsUserService; import com.adc.da.slrs.sarUser.service.ITsUserService;
import com.adc.da.sys.entity.UserEO; import com.adc.da.sys.entity.UserEO;
import com.adc.da.util.LoginUserUtil;
import com.adc.da.utils.util.ListUtil; import com.adc.da.utils.util.ListUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.awt.*;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -47,6 +43,8 @@ public class TsUserServiceImpl extends ServiceImpl<TsUserDao, TsUser> implements
private ISarMenuService sarMenuService; private ISarMenuService sarMenuService;
@Autowired @Autowired
private ITsResourceService tsResourceService; private ITsResourceService tsResourceService;
// @Autowired
// private ISarUserPersonalMenuService sarUserPersonalMenuService;
/** /**
* 通过机构ID查询人员 * 通过机构ID查询人员
@@ -123,7 +121,6 @@ public class TsUserServiceImpl extends ServiceImpl<TsUserDao, TsUser> implements
public List<SarMenu> getMenu() { public List<SarMenu> getMenu() {
UserEO userEO=UserUtils.getUser(); UserEO userEO=UserUtils.getUser();
String userId= userEO.getUsid(); String userId= userEO.getUsid();
System.out.println(userId);
List<String> positionIds=tsUserDao.selectPositionIds(userId); List<String> positionIds=tsUserDao.selectPositionIds(userId);
List<String> roleIds=tsPositionService.getRoleIdsByPositionIds(positionIds); List<String> roleIds=tsPositionService.getRoleIdsByPositionIds(positionIds);
List<String> menuIds=tsRoleService.getMenuIdsByRoleIds(roleIds); List<String> menuIds=tsRoleService.getMenuIdsByRoleIds(roleIds);
@@ -144,4 +141,28 @@ public class TsUserServiceImpl extends ServiceImpl<TsUserDao, TsUser> implements
List<String> resourceIds=tsRoleService.getResourceIdsByRoleIds(roleIds); List<String> resourceIds=tsRoleService.getResourceIdsByRoleIds(roleIds);
return tsResourceService.getResourceByIds(resourceIds); return tsResourceService.getResourceByIds(resourceIds);
} }
/**
* 配置个人菜单
* @param roleId :角色ID
* @return List<String>
*/
@Override
public List<String> getUserIdsByRoleId(String roleId) {
List<String> positionIds=tsPositionService.getPositionIdsByRoleId(roleId);
return tsUserDao.getUserIdsByPositionIds(positionIds);
}
/**
* 通过用户ID查询菜单
* @param userId:用户ID
* @return List<SarMenu>
*/
@Override
public List<SarMenu> getMenusByUserId(String userId){
List<String> positionIds=tsUserDao.selectPositionIds(userId);
List<String> roleIds=tsPositionService.getRoleIdsByPositionIds(positionIds);
List<String> menuIds=tsRoleService.getMenuIdsByRoleIds(roleIds);
return sarMenuService.getMenuByIds(menuIds);
}
} }
@@ -36,4 +36,14 @@
on up.position_id=p.id on up.position_id=p.id
where u.institution_id=#{institutionId} where u.institution_id=#{institutionId}
</select> </select>
<select id="getUserIdsByPositionIds" resultType="String">
select user_id from ts_user_position
where position_id in
(
<foreach collection="list" item="positionId" separator=",">
#{positionId}
</foreach>
)
</select>
</mapper> </mapper>