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

新增岗位菜单权限验证

parent b3d002f0
......@@ -55,6 +55,17 @@ namespace Edu.Module.System
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>
......@@ -113,15 +124,31 @@ namespace Edu.Module.System
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>
/// <param name="query"></param>
/// <param name="roleId">角色编号</param>
/// <param name="postIds">岗位编号</param>
/// <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>();
if (roleId <= 0)
{
......@@ -131,7 +158,17 @@ namespace Edu.Module.System
{
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)
{
//一级菜单
......
......@@ -117,5 +117,31 @@ WHERE 1=1
builder.AppendFormat(" ORDER BY {0} DESC ", nameof(RB_Menu_ViewModel.MenuId));
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
string token = WebApiTokenHelper.CreateToken(Common.GlobalKey.JWT_User_Key, eduUserInfo);
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
});
}, postIds: model.Post_Id.ToString());
UserInfo obj = new UserInfo
{
Id = model.Id,
......@@ -138,10 +138,10 @@ namespace Edu.WebApi.Controllers.User
UserInfo userInfo = UserReidsCache.GetUserLoginInfo(Uid);
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;
}
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