重构控制器
This commit is contained in:
@@ -25,11 +25,13 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
||||
_menuService = menuService;
|
||||
_userService =userService;
|
||||
}
|
||||
/// <summary>
|
||||
/// 这个是要递归的,但是要过滤掉删除的,所以,可以写一个通用过滤掉删除的方法
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<Result> GetMenu()
|
||||
{
|
||||
|
||||
return Result.Success().SetData(await _menuService.GetTopMenu());
|
||||
public async Task<Result> GetMenuInMould()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -59,44 +61,26 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
||||
|
||||
/// <summary>
|
||||
/// 增
|
||||
/// 现在,top菜单只允许为一个
|
||||
/// </summary>
|
||||
/// <param name="_menu"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<Result> AddMenu(menu _menu)
|
||||
public async Task<Result> AddTopMenu(menu _menu)
|
||||
{
|
||||
_menu.is_top = (short)Common.Enum.TopFlagEnum.Top;
|
||||
await _menuService.AddAsync(_menu);
|
||||
return Result.Success();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 给一个菜单设置一个接口,Id1为菜单id,Id2为接口id
|
||||
/// 用于给菜单设置接口
|
||||
/// </summary>
|
||||
/// <param name="idDto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<Result> SetMouldByMenu(IdDto<int> idDto)
|
||||
{
|
||||
if (await _menuService.SetMouldByMenu(idDto.id2,idDto.id1))
|
||||
{
|
||||
return Result.Success();
|
||||
}
|
||||
return Result.Error();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 得到该用户有哪些菜单,关联mould
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<Result> GetMenuByUser()
|
||||
{
|
||||
var _user = this.HttpContext.GetCurrentUserInfo();
|
||||
var menuList= await _userService.GetMenusByUser(_user);
|
||||
return Result.Success().SetData(menuList);
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 给一个菜单添加子节点(注意:添加,不是覆盖)
|
||||
@@ -106,19 +90,16 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
||||
[HttpPost]
|
||||
public async Task<Result> AddChildrenMenu(ChildrenDto<menu> childrenDto)
|
||||
{
|
||||
await _menuService.AddChildrenMenu(childrenDto.parentId, childrenDto.data);
|
||||
return Result.Success();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取用户的目录菜单,不包含接口
|
||||
/// 用于账户信息页面,显示这个用户有哪些菜单,需要并列
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<Result> GeTopMenuByUser()
|
||||
public async Task<Result> GetTopMenusByHttpUser()
|
||||
{
|
||||
var _user = this.HttpContext.GetCurrentUserInfo();
|
||||
var menuList =await _userService.GetMenuByUser(_user);
|
||||
return Result.Success().SetData(menuList);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,20 +67,22 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
||||
|
||||
/// <summary>
|
||||
/// 给角色设置菜单,多个角色与多个菜单,让每一个角色都设置,ids1为角色,ids2为菜单
|
||||
/// 用于设置角色
|
||||
/// </summary>
|
||||
/// <param name="idsListDto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<Result> SetMenuByRole(IdsListDto<int> idsListDto)
|
||||
{
|
||||
await _roleService.SetMenusByRolesId(idsListDto.ids2, idsListDto.ids1);
|
||||
return Result.Success();
|
||||
}
|
||||
/// <summary>
|
||||
/// 用于给角色设置菜单的时候,点击一个角色,显示这个角色拥有的并列的菜单
|
||||
/// </summary>
|
||||
/// <param name="roleId"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<Result> GetMenuByRloe(int roleId)
|
||||
public async Task<Result> GetTopMenusByRoleId(int roleId)
|
||||
{
|
||||
var menuList =await _roleService.GetMenusByRoleId(roleId);
|
||||
return Result.Success().SetData(menuList);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,86 +74,55 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
||||
return Result.Success();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 通过上下文对象获取user(注意,_user下只有userId),返回值为该用户下所有的menu,(注意子类递归)并且需要关联mould
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<Result> GetMenuMould()
|
||||
{
|
||||
var _user= this.HttpContext.GetCurrentUserInfo();
|
||||
var menu_data = await _userService.GetMenusByUser(_user);
|
||||
return Result.Success().SetData(menu_data);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 给多个用户设置多个角色,ids有用户id与 角色列表ids,多对多,ids1用户,ids2为角色
|
||||
/// 用户设置给用户设置角色
|
||||
/// </summary>
|
||||
/// <param name="idsListDto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<Result> SetRoleByUser(IdsListDto<int> idsListDto)
|
||||
{
|
||||
|
||||
await _userService.SetRolesByUser(idsListDto.ids2, idsListDto.ids1);
|
||||
return Result.Success();
|
||||
}
|
||||
/// <summary>
|
||||
/// 根据http上下文的用户得到该用户有哪些角色
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<Result> GetRolesByUser()
|
||||
{
|
||||
var _user = HttpContext.GetCurrentUserInfo();
|
||||
var roleList = await _userService.GetRolesByUser(_user);
|
||||
return Result.Success().SetData(roleList);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 根据用户id得到该用户有哪些角色
|
||||
/// 用于显示用户详情中的角色说明
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<Result> GetRolesByUserId(int userId)
|
||||
{
|
||||
var roleList = await _userService.GetRolesByUser(new user() { id=userId});
|
||||
return Result.Success().SetData(roleList);
|
||||
}
|
||||
/// <summary>
|
||||
/// 根据http上下文的用户得到该用户信息,关联角色
|
||||
/// 用于显示账号信息页中的用户信息和角色信息
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
|
||||
[HttpGet]
|
||||
public async Task<Result> GetUserInfoById()
|
||||
public async Task<Result> GetUserInRolesByHttpUser()
|
||||
{
|
||||
var _user = HttpContext.GetCurrentUserInfo();
|
||||
return Result.Success().SetData(await _userService.GetUserInfoById(_user.id));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 得到登录用户的递归菜单,放到导航栏
|
||||
/// 用户放到导航栏中
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<Result> GetMenuByUserId()
|
||||
public async Task<Result> GetMenuByHttpUser()
|
||||
{
|
||||
var _user = HttpContext.GetCurrentUserInfo();
|
||||
return Result.Success().SetData(await _userService.GetMenuById(_user.id));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 得到请求模型
|
||||
/// </summary>
|
||||
/// <param name="router"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<Result> GetRouterByUserId(string router)
|
||||
public async Task<Result> GetAxiosByRouter(string router)
|
||||
{
|
||||
var _user = HttpContext.GetCurrentUserInfo(out List<int> menuIds);
|
||||
var menu_data = await _userService.GetMenuByUserId(router,_user.id, menuIds);
|
||||
AxiosUrlsModel urlsModel = new();
|
||||
foreach (var _menu in menu_data)
|
||||
{
|
||||
var mould_name = _menu.mould.mould_name;
|
||||
switch (mould_name)
|
||||
{
|
||||
case "get":urlsModel.get= _menu.mould.url;break;
|
||||
case "add": urlsModel.add = _menu.mould.url; break;
|
||||
case "del": urlsModel.del = _menu.mould.url; break;
|
||||
case "update": urlsModel.update = _menu.mould.url; break;
|
||||
}
|
||||
}
|
||||
return Result.Success().SetData(urlsModel);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -221,7 +221,7 @@ namespace Yi.Framework.Service
|
||||
{
|
||||
if (menu_data[i].children.Count() == 0)
|
||||
{
|
||||
menu_data[i].children = null;
|
||||
menu_data[i].children = null;f
|
||||
}
|
||||
else if (menu_data[i].children != null)
|
||||
{
|
||||
|
||||
@@ -41,9 +41,9 @@ export default {
|
||||
data: { id1: menuId, id2: mouldId }
|
||||
})
|
||||
},
|
||||
geTopMenuByUser() {
|
||||
GetTopMenusByHttpUser() {
|
||||
return myaxios({
|
||||
url: '/Menu/geTopMenuByUser',
|
||||
url: '/Menu/GetTopMenusByHttpUser',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
@@ -8,9 +8,9 @@ export default {
|
||||
})
|
||||
},
|
||||
|
||||
GetRolesByUser() {
|
||||
GetRolesByHttpUser() {
|
||||
return myaxios({
|
||||
url: '/User/GetRolesByUser',
|
||||
url: '/User/GetRolesByHttpUser',
|
||||
method: 'get'
|
||||
})
|
||||
},
|
||||
@@ -20,19 +20,19 @@ export default {
|
||||
method: 'get'
|
||||
})
|
||||
},
|
||||
GetUserInfoById() {
|
||||
GetUserInRolesByHttpUser() {
|
||||
return myaxios({
|
||||
url: `/User/GetUserInfoById`,
|
||||
url: `/User/GetUserInRolesByHttpUser`,
|
||||
method: 'get'
|
||||
})
|
||||
},
|
||||
GetMenuByUserId() {
|
||||
GetMenuByHttpUser() {
|
||||
return myaxios({
|
||||
url: `/User/GetMenuByUserId`,
|
||||
url: `/User/GetMenuByHttpUser`,
|
||||
method: 'get'
|
||||
})
|
||||
},
|
||||
GetRouterByUserId(router) {
|
||||
GetAxiosByRouter(router) {
|
||||
return myaxios({
|
||||
url: `/User/GetRouterByUserId?router=${router}`,
|
||||
method: 'get'
|
||||
|
||||
Reference in New Issue
Block a user