重构控制器

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; _menuService = menuService;
_userService =userService; _userService =userService;
} }
/// <summary>
/// 这个是要递归的,但是要过滤掉删除的,所以,可以写一个通用过滤掉删除的方法
/// </summary>
/// <returns></returns>
[HttpGet] [HttpGet]
public async Task<Result> GetMenu() public async Task<Result> GetMenuInMould()
{ {
return Result.Success().SetData(await _menuService.GetTopMenu());
} }
/// <summary> /// <summary>
@@ -59,44 +61,26 @@ namespace Yi.Framework.ApiMicroservice.Controllers
/// <summary> /// <summary>
/// 增 /// 增
/// 现在top菜单只允许为一个
/// </summary> /// </summary>
/// <param name="_menu"></param> /// <param name="_menu"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [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> /// <summary>
/// 给一个菜单设置一个接口,Id1为菜单id,Id2为接口id /// 给一个菜单设置一个接口,Id1为菜单id,Id2为接口id
/// 用于给菜单设置接口
/// </summary> /// </summary>
/// <param name="idDto"></param> /// <param name="idDto"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public async Task<Result> SetMouldByMenu(IdDto<int> idDto) 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> /// <summary>
/// 给一个菜单添加子节点(注意:添加,不是覆盖) /// 给一个菜单添加子节点(注意:添加,不是覆盖)
@@ -106,19 +90,16 @@ namespace Yi.Framework.ApiMicroservice.Controllers
[HttpPost] [HttpPost]
public async Task<Result> AddChildrenMenu(ChildrenDto<menu> childrenDto) public async Task<Result> AddChildrenMenu(ChildrenDto<menu> childrenDto)
{ {
await _menuService.AddChildrenMenu(childrenDto.parentId, childrenDto.data);
return Result.Success();
} }
/// <summary> /// <summary>
/// 获取用户的目录菜单,不包含接口 /// 获取用户的目录菜单,不包含接口
/// 用于账户信息页面,显示这个用户有哪些菜单,需要并列
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpGet] [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> /// <summary>
/// 给角色设置菜单多个角色与多个菜单让每一个角色都设置ids1为角色ids2为菜单 /// 给角色设置菜单多个角色与多个菜单让每一个角色都设置ids1为角色ids2为菜单
/// 用于设置角色
/// </summary> /// </summary>
/// <param name="idsListDto"></param> /// <param name="idsListDto"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public async Task<Result> SetMenuByRole(IdsListDto<int> idsListDto) 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] [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(); 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> /// <summary>
/// 给多个用户设置多个角色ids有用户id与 角色列表ids多对多,ids1用户,ids2为角色 /// 给多个用户设置多个角色ids有用户id与 角色列表ids多对多,ids1用户,ids2为角色
/// 用户设置给用户设置角色
/// </summary> /// </summary>
/// <param name="idsListDto"></param> /// <param name="idsListDto"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public async Task<Result> SetRoleByUser(IdsListDto<int> idsListDto) 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> /// <summary>
/// 根据用户id得到该用户有哪些角色 /// 根据用户id得到该用户有哪些角色
/// 用于显示用户详情中的角色说明
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpGet] [HttpGet]
public async Task<Result> GetRolesByUserId(int userId) public async Task<Result> GetRolesByUserId(int userId)
{ {
var roleList = await _userService.GetRolesByUser(new user() { id=userId});
return Result.Success().SetData(roleList);
} }
/// <summary> /// <summary>
/// 根据http上下文的用户得到该用户信息关联角色 /// 根据http上下文的用户得到该用户信息关联角色
/// 用于显示账号信息页中的用户信息和角色信息
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpGet]
public async Task<Result> GetUserInRolesByHttpUser()
{
}
/// <summary>
/// 得到登录用户的递归菜单,放到导航栏
/// 用户放到导航栏中
/// </summary>
/// <returns></returns>
[HttpGet] [HttpGet]
public async Task<Result> GetUserInfoById() public async Task<Result> GetMenuByHttpUser()
{ {
var _user = HttpContext.GetCurrentUserInfo();
return Result.Success().SetData(await _userService.GetUserInfoById(_user.id));
} }
/// <summary>
/// 得到请求模型
/// </summary>
/// <param name="router"></param>
/// <returns></returns>
[HttpGet] [HttpGet]
public async Task<Result> GetMenuByUserId() public async Task<Result> GetAxiosByRouter(string router)
{ {
var _user = HttpContext.GetCurrentUserInfo();
return Result.Success().SetData(await _userService.GetMenuById(_user.id));
}
[HttpGet]
public async Task<Result> GetRouterByUserId(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) 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) else if (menu_data[i].children != null)
{ {

View File

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

View File

@@ -8,9 +8,9 @@ export default {
}) })
}, },
GetRolesByUser() { GetRolesByHttpUser() {
return myaxios({ return myaxios({
url: '/User/GetRolesByUser', url: '/User/GetRolesByHttpUser',
method: 'get' method: 'get'
}) })
}, },
@@ -20,19 +20,19 @@ export default {
method: 'get' method: 'get'
}) })
}, },
GetUserInfoById() { GetUserInRolesByHttpUser() {
return myaxios({ return myaxios({
url: `/User/GetUserInfoById`, url: `/User/GetUserInRolesByHttpUser`,
method: 'get' method: 'get'
}) })
}, },
GetMenuByUserId() { GetMenuByHttpUser() {
return myaxios({ return myaxios({
url: `/User/GetMenuByUserId`, url: `/User/GetMenuByHttpUser`,
method: 'get' method: 'get'
}) })
}, },
GetRouterByUserId(router) { GetAxiosByRouter(router) {
return myaxios({ return myaxios({
url: `/User/GetRouterByUserId?router=${router}`, url: `/User/GetRouterByUserId?router=${router}`,
method: 'get' method: 'get'