Commit 5cc8b0af authored by 黄奎's avatar 黄奎

新增岗位菜单权限验证

parent b3d002f0
...@@ -55,6 +55,17 @@ namespace Edu.Module.System ...@@ -55,6 +55,17 @@ namespace Edu.Module.System
return menuRepository.GetMenuPageListRepository(pageIndex, pageSize, out rowsCount, query); return menuRepository.GetMenuPageListRepository(pageIndex, pageSize, out rowsCount, query);
} }
/// <summary>
/// 根据岗位编号获取岗位=>岗位角色列表=>角色列表=>角色菜单列表=>菜单列表
/// </summary>
/// <param name="postIds"></param>
/// <param name="MenuType">菜单类型</param>
/// <returns></returns>
public List<RB_Menu_ViewModel> GetPostMenuListModule(string postIds,int MenuType)
{
return menuRepository.GetPostMenuListRepository(postIds, MenuType);
}
/// <summary> /// <summary>
/// 新增修改菜单 /// 新增修改菜单
/// </summary> /// </summary>
...@@ -113,15 +124,31 @@ namespace Edu.Module.System ...@@ -113,15 +124,31 @@ namespace Edu.Module.System
return flag; return flag;
} }
/// <summary>
/// 获取岗位菜单树形列表
/// </summary>
/// <param name="query"></param>
/// <param name="postIds"></param>
/// <returns></returns>
public List<MenuTree_ViewModel> GetPostMenuTreeModule(RB_Menu_ViewModel query, string postIds = "")
{
List<RB_Menu_ViewModel> list = new List<RB_Menu_ViewModel>();
if (!string.IsNullOrEmpty(postIds))
{
list = GetPostMenuListModule(postIds,query.MenuType);
}
return GetMenuTreeModule(list);
}
/// <summary> /// <summary>
/// 获取树形菜单 /// 获取树形菜单
/// </summary> /// </summary>
/// <param name="query"></param> /// <param name="query"></param>
/// <param name="roleId">角色编号</param> /// <param name="roleId">角色编号</param>
/// <param name="postIds">岗位编号</param>
/// <returns></returns> /// <returns></returns>
public List<MenuTree_ViewModel> GetTreeMenuModule(RB_Menu_ViewModel query,int roleId=0) public List<MenuTree_ViewModel> GetTreeMenuModule(RB_Menu_ViewModel query, int roleId = 0)
{ {
List<MenuTree_ViewModel> treeList = new List<MenuTree_ViewModel>();
List<RB_Menu_ViewModel> list = new List<RB_Menu_ViewModel>(); List<RB_Menu_ViewModel> list = new List<RB_Menu_ViewModel>();
if (roleId <= 0) if (roleId <= 0)
{ {
...@@ -131,7 +158,17 @@ namespace Edu.Module.System ...@@ -131,7 +158,17 @@ namespace Edu.Module.System
{ {
list = GetRoleMenuListModule(query, roleId: roleId); list = GetRoleMenuListModule(query, roleId: roleId);
} }
return GetMenuTreeModule(list);
}
/// <summary>
/// 获取菜单树形列表
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
private List<MenuTree_ViewModel> GetMenuTreeModule(List<RB_Menu_ViewModel> list)
{
List<MenuTree_ViewModel> treeList = new List<MenuTree_ViewModel>();
if (list != null && list.Count > 0) if (list != null && list.Count > 0)
{ {
//一级菜单 //一级菜单
......
...@@ -117,5 +117,31 @@ WHERE 1=1 ...@@ -117,5 +117,31 @@ WHERE 1=1
builder.AppendFormat(" ORDER BY {0} DESC ", nameof(RB_Menu_ViewModel.MenuId)); builder.AppendFormat(" ORDER BY {0} DESC ", nameof(RB_Menu_ViewModel.MenuId));
return GetPage<RB_Menu_ViewModel>(pageIndex,pageSize,out rowsCount, builder.ToString(), parameters).ToList(); return GetPage<RB_Menu_ViewModel>(pageIndex,pageSize,out rowsCount, builder.ToString(), parameters).ToList();
} }
/// <summary>
/// 根据岗位编号获取岗位=>岗位角色列表=>角色列表=>角色菜单列表=>菜单列表
/// </summary>
/// <param name="postIds"></param>
/// <param name="menuType"></param>
/// <returns></returns>
public List<RB_Menu_ViewModel> GetPostMenuListRepository(string postIds,int menuType)
{
if (string.IsNullOrEmpty(postIds))
{
postIds = "0";
}
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT *
FROM rb_menu
WHERE Status=0 AND MenuType={0} AND MenuId IN
(
SELECT Menu_Id
FROM rb_role_permission
WHERE Role_Id IN(SELECT RoleId FROM rb_role WHERE Status=0 AND RoleId IN(SELECT RoleId FROM rb_post_role WHERE PostId IN({1})))
)
", menuType, postIds);
return Get<RB_Menu_ViewModel>(builder.ToString()).ToList();
}
} }
} }
\ No newline at end of file
...@@ -87,10 +87,10 @@ namespace Edu.WebApi.Controllers.User ...@@ -87,10 +87,10 @@ namespace Edu.WebApi.Controllers.User
string token = WebApiTokenHelper.CreateToken(Common.GlobalKey.JWT_User_Key, eduUserInfo); string token = WebApiTokenHelper.CreateToken(Common.GlobalKey.JWT_User_Key, eduUserInfo);
string erpToken = WebApiTokenHelper.CreateToken(Common.GlobalKey.JWT_ERP_User_Key, erpUserInfo); string erpToken = WebApiTokenHelper.CreateToken(Common.GlobalKey.JWT_ERP_User_Key, erpUserInfo);
var treeList = menuModule.GetTreeMenuModule(new Model.ViewModel.System.RB_Menu_ViewModel() var treeList = menuModule.GetPostMenuTreeModule(new Model.ViewModel.System.RB_Menu_ViewModel()
{ {
MenuType = accountType MenuType = accountType
}); }, postIds: model.Post_Id.ToString());
UserInfo obj = new UserInfo UserInfo obj = new UserInfo
{ {
Id = model.Id, Id = model.Id,
...@@ -138,10 +138,10 @@ namespace Edu.WebApi.Controllers.User ...@@ -138,10 +138,10 @@ namespace Edu.WebApi.Controllers.User
UserInfo userInfo = UserReidsCache.GetUserLoginInfo(Uid); UserInfo userInfo = UserReidsCache.GetUserLoginInfo(Uid);
if (userInfo != null) if (userInfo != null)
{ {
var treeList = menuModule.GetTreeMenuModule(new Model.ViewModel.System.RB_Menu_ViewModel() var treeList = menuModule.GetPostMenuTreeModule(new Model.ViewModel.System.RB_Menu_ViewModel()
{ {
MenuType =(int) userInfo.AccountType MenuType = (int)userInfo.AccountType
}); }, userInfo.PostId.ToString());
userInfo.MenuList = treeList; userInfo.MenuList = treeList;
} }
return ApiResult.Success(data: userInfo); return ApiResult.Success(data: userInfo);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment