获取当前登录的用户权限

This commit is contained in:
root
2021-06-29 17:28:16 +08:00
parent 33254d9248
commit c4a885922d
14 changed files with 148 additions and 2 deletions
@@ -58,4 +58,11 @@ public interface ISarMenuService extends IService<SarMenu> {
* @return ResponseMessage<Object>
*/
ResponseMessage<Object> delMenu(Integer menuId);
/**
* 通过Ids查询menu
* @param menuIds :菜单Ids
* @return List<Menu>
*/
List<SarMenu> getMenuByIds(List<String> menuIds);
}
@@ -237,6 +237,21 @@ public class SarMenuServiceImpl extends ServiceImpl<SarMenuDao, SarMenu> impleme
return Result.success();
}
/**
* 通过Ids查询menu
* @param menuIds :菜单Ids
* @return List<Menu>
*/
@Override
public List<SarMenu> getMenuByIds(List<String> menuIds) {
if(menuIds!=null&&menuIds.size()>0){
QueryWrapper<SarMenu> sarMenuQueryWrapper=new QueryWrapper<>();
sarMenuQueryWrapper.in("id",menuIds);
return dao.selectList(sarMenuQueryWrapper);
}
return new ArrayList<>();
}
/**
* 递归调用获取子节点
* @param parent:父节点
@@ -56,4 +56,11 @@ public interface TsPositionDao extends BaseMapper<TsPosition> {
* @return List<TsPosition>
*/
List<TsPosition> selectPositionAndRole(TsPosition tsPosition);
/**
* 通过岗位列表查询绑定的角色列表
* @param positionIds:岗位列表
* @return List<String>
*/
List<String> getRoleIdsByPositionIds(List<String> positionIds);
}
@@ -59,4 +59,11 @@ public interface ITsPositionService extends IService<TsPosition> {
* @return ResponseMessage<Object>
*/
ResponseMessage<Object> deletePosition(String positionId);
/**
* 通过岗位列表查询绑定的角色列表
* @param positionIds:岗位列表
* @return List<String>
*/
List<String> getRoleIdsByPositionIds(List<String> positionIds);
}
@@ -125,9 +125,26 @@ public class TsPositionServiceImpl extends ServiceImpl<TsPositionDao, TsPosition
return Result.error("该岗位不存在");
}
if(!oldPosition.getType().equals("2")){
return Result.error("该岗位不可修改");
return Result.error("该岗位不可删除");
}
List<String> roleIds=tsPositionDao.getRoleId(positionId);
if(roleIds!=null&&roleIds.size()>0){
return Result.error("该岗位已绑定角色,无法删除");
}
tsPositionDao.deleteById(positionId);
return Result.success();
}
/**
* 通过岗位列表查询绑定的角色列表
* @param positionIds:岗位列表
* @return List<String>
*/
@Override
public List<String> getRoleIdsByPositionIds(List<String> positionIds) {
if(positionIds!=null&&positionIds.size()>0){
return tsPositionDao.getRoleIdsByPositionIds(positionIds);
}
return null;
}
}
@@ -52,4 +52,11 @@ public interface TsRoleDao extends BaseMapper<TsRole> {
@Select("select menu_id from ts_role_menu where role_id=#{roleId}")
List<String> getMenuIdByRoleId(String roleId);
/**
* 通过角色Id列表查询菜单Id列表
* @param roleIds:角色ID列表
* @return List<String>
*/
List<String> getMenuIdsByRoleIds(List<String> roleIds);
}
@@ -64,4 +64,11 @@ public interface ITsRoleService extends IService<TsRole> {
* @return List<String>
*/
List<String> getMenu(String roleId);
/**
* 通过角色Id列表查询菜单Id列表
* @param roleIds:角色ID列表
* @return List<String>
*/
List<String> getMenuIdsByRoleIds(List<String> roleIds);
}
@@ -184,5 +184,18 @@ public class TsRoleServiceImpl extends ServiceImpl<TsRoleDao, TsRole> implements
return tsRoleDao.getMenuIdByRoleId(roleId);
}
/**
* 通过角色Id列表查询菜单Id列表
* @param roleIds:角色ID列表
* @return List<String>
*/
@Override
public List<String> getMenuIdsByRoleIds(List<String> roleIds) {
if(roleIds!=null&&roleIds.size()>0){
return tsRoleDao.getMenuIdsByRoleIds(roleIds);
}
return null;
}
}
@@ -3,6 +3,7 @@ package com.adc.da.slrs.sarUser.controller;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.slrs.sarMenu.entity.SarMenu;
import com.adc.da.slrs.sarUser.entity.UserPositionVO;
import com.adc.da.slrs.sarUser.service.ITsUserService;
import io.swagger.annotations.ApiOperation;
@@ -14,6 +15,7 @@ import io.swagger.annotations.Api;
import com.adc.da.base.web.BaseController;
import javax.validation.Valid;
import java.util.List;
/**
* <p>
@@ -46,6 +48,13 @@ public class TsUserController extends BaseController<TsUser> {
return tsUserService.setPosition(userPositionVO);
}
@ApiOperation("查询当前登录用户权限")
@GetMapping("/menu")
public ResponseMessage<List<SarMenu>> getMenu(){
List<SarMenu> menus=tsUserService.getMenu();
return Result.success(menus);
}
}
@@ -2,6 +2,7 @@ package com.adc.da.slrs.sarUser.dao;
import com.adc.da.slrs.sarUser.entity.TsUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
@@ -36,6 +37,7 @@ public interface TsUserDao extends BaseMapper<TsUser> {
* @param userId:用户ID
* @param positionId:岗位ID
*/
@Delete("delete from ts_user_position where user_id=#{userId} and position_id=#{positionId}")
void delPosition(String userId, String positionId);
/**
@@ -1,6 +1,7 @@
package com.adc.da.slrs.sarUser.service;
import com.adc.da.http.ResponseMessage;
import com.adc.da.slrs.sarMenu.entity.SarMenu;
import com.adc.da.slrs.sarUser.entity.TsUser;
import com.adc.da.slrs.sarUser.entity.UserPositionVO;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -38,4 +39,10 @@ public interface ITsUserService extends IService<TsUser> {
* @return ResponseMessage<Object>
*/
ResponseMessage<Object> setPosition(UserPositionVO userPositionVO);
/**
* 查询当前登录的用户权限
* @return List<SarMenu>
*/
List<SarMenu> getMenu();
}
@@ -2,10 +2,18 @@ package com.adc.da.slrs.sarUser.service.impl;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.login.util.UserUtils;
import com.adc.da.slrs.sarMenu.entity.SarMenu;
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.sarRole.service.ITsRoleService;
import com.adc.da.slrs.sarUser.entity.TsUser;
import com.adc.da.slrs.sarUser.dao.TsUserDao;
import com.adc.da.slrs.sarUser.entity.UserPositionVO;
import com.adc.da.slrs.sarUser.service.ITsUserService;
import com.adc.da.sys.entity.UserEO;
import com.adc.da.util.LoginUserUtil;
import com.adc.da.utils.util.ListUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -13,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.awt.*;
import java.util.List;
import java.util.Map;
@@ -28,6 +37,12 @@ import java.util.Map;
public class TsUserServiceImpl extends ServiceImpl<TsUserDao, TsUser> implements ITsUserService {
@Autowired
private TsUserDao tsUserDao;
@Autowired
private ITsPositionService tsPositionService;
@Autowired
private ITsRoleService tsRoleService;
@Autowired
private ISarMenuService sarMenuService;
/**
* 通过机构ID查询人员
@@ -95,4 +110,19 @@ public class TsUserServiceImpl extends ServiceImpl<TsUserDao, TsUser> implements
}
return Result.success();
}
/**
* 查询当前登录的用户权限
* @return List<SarMenu>
*/
@Override
public List<SarMenu> getMenu() {
UserEO userEO=UserUtils.getUser();
String userId= userEO.getUsid();
System.out.println(userId);
List<String> positionIds=tsUserDao.selectPositionIds(userId);
List<String> roleIds=tsPositionService.getRoleIdsByPositionIds(positionIds);
List<String> menuIds=tsRoleService.getMenuIdsByRoleIds(roleIds);
return sarMenuService.getMenuByIds(menuIds);
}
}
@@ -33,4 +33,14 @@
</if>
</where>
</select>
<select id="getRoleIdsByPositionIds" resultType="String">
select distinct role_id from ts_position_role
where position_id in
(
<foreach collection="list" item="positionId" separator=",">
#{positionId}
</foreach>
)
</select>
</mapper>
@@ -1,5 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.adc.da.slrs.sarRole.dao.TsRoleDao">
<select id="getMenuIdsByRoleIds" resultType="String">
select distinct menu_id from ts_role_menu
where role_id in
(
<foreach collection="list" separator="," item="roleId">
#{roleId}
</foreach>
)
</select>
</mapper>