重构控制器

This commit is contained in:
橙子
2021-10-27 18:01:09 +08:00
parent 3c200cc614
commit 7c255f383a
6 changed files with 48 additions and 96 deletions

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}

View File

@@ -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)
{

View File

@@ -41,9 +41,9 @@ export default {
data: { id1: menuId, id2: mouldId }
})
},
geTopMenuByUser() {
GetTopMenusByHttpUser() {
return myaxios({
url: '/Menu/geTopMenuByUser',
url: '/Menu/GetTopMenusByHttpUser',
method: 'get'
})
}

View File

@@ -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'