Files
Yi.Admin/Yi.Framework/Yi.Framework.ApiMicroservice/Controllers/UserController.cs

168 lines
5.5 KiB
C#
Raw Normal View History

2021-10-17 18:37:07 +08:00
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
2021-10-11 21:50:50 +08:00
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Yi.Framework.Common.Models;
2021-10-14 13:15:00 +08:00
using Yi.Framework.DTOModel;
2021-10-11 21:50:50 +08:00
using Yi.Framework.Interface;
using Yi.Framework.Model.Models;
2021-10-13 16:44:15 +08:00
using Yi.Framework.WebCore;
2021-10-11 21:50:50 +08:00
namespace Yi.Framework.ApiMicroservice.Controllers
{
[ApiController]
[Route("api/[controller]/[action]")]
public class UserController : ControllerBase
{
private readonly ILogger<UserController> _logger;
private IUserService _userService;
public UserController(ILogger<UserController> logger, IUserService userService)
{
_logger = logger;
_userService = userService;
}
2021-10-12 16:52:28 +08:00
/// <summary>
/// 查
/// </summary>
/// <returns></returns>
2021-10-11 21:50:50 +08:00
[HttpGet]
public async Task<Result> GetUser()
{
return Result.Success().SetData(await _userService.GetAllEntitiesTrueAsync());
}
2021-10-12 16:52:28 +08:00
/// <summary>
/// 更
/// </summary>
/// <param name="_user"></param>
/// <returns></returns>
2021-10-11 21:50:50 +08:00
[HttpPut]
public async Task<Result> UpdateUser(user _user)
{
await _userService.UpdateAsync(_user);
return Result.Success();
}
2021-10-12 16:52:28 +08:00
/// <summary>
/// 删
/// </summary>
/// <param name="_ids"></param>
/// <returns></returns>
2021-10-11 21:50:50 +08:00
[HttpDelete]
public async Task<Result> DelListUser(List<int> _ids)
{
await _userService.DelListByUpdateAsync(_ids);
return Result.Success();
}
2021-10-12 16:52:28 +08:00
/// <summary>
/// 增
/// </summary>
/// <param name="_user"></param>
/// <returns></returns>
2021-10-11 21:50:50 +08:00
[HttpPost]
public async Task<Result> AddUser(user _user)
{
await _userService.AddAsync(_user);
return Result.Success();
}
2021-10-13 16:44:15 +08:00
/// <summary>
/// 通过上下文对象获取user注意_user下只有userId返回值为该用户下所有的menu(注意子类递归)并且需要关联mould
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<Result> GetMenuMould()
{
2021-10-13 23:08:42 +08:00
var _user= this.HttpContext.GetCurrentUserInfo();
var menu_data = await _userService.GetMenusByUser(_user);
return Result.Success().SetData(menu_data);
2021-10-13 16:44:15 +08:00
}
2021-10-14 13:15:00 +08:00
/// <summary>
2021-10-15 17:50:56 +08:00
/// 给多个用户设置多个角色ids有用户id与 角色列表ids多对多,ids1用户,ids2为角色
2021-10-14 13:15:00 +08:00
/// </summary>
2021-10-15 17:50:56 +08:00
/// <param name="idsListDto"></param>
2021-10-14 13:15:00 +08:00
/// <returns></returns>
[HttpPost]
2021-10-15 17:50:56 +08:00
public async Task<Result> SetRoleByUser(IdsListDto<int> idsListDto)
2021-10-15 14:45:16 +08:00
{
2021-10-15 21:50:42 +08:00
2021-10-15 17:50:56 +08:00
await _userService.SetRolesByUser(idsListDto.ids2, idsListDto.ids1);
2021-10-15 14:45:16 +08:00
return Result.Success();
2021-10-14 13:15:00 +08:00
}
2021-10-18 16:46:40 +08:00
/// <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);
}
2021-10-19 14:50:26 +08:00
/// <summary>
/// 根据用户id得到该用户有哪些角色
/// </summary>
/// <returns></returns>
2021-10-19 17:44:00 +08:00
[HttpGet]
public async Task<Result> GetRolesByUserId(int userId)
2021-10-19 17:33:55 +08:00
{
2021-10-19 17:44:00 +08:00
var roleList = await _userService.GetRolesByUser(new user() { id=userId});
2021-10-19 14:50:26 +08:00
return Result.Success().SetData(roleList);
}
/// <summary>
/// 根据http上下文的用户得到该用户信息关联角色
/// </summary>
/// <returns></returns>
2021-10-20 16:38:39 +08:00
[Authorize]
2021-10-19 14:50:26 +08:00
[HttpGet]
public async Task<Result> GetUserInfoById()
{
var _user = HttpContext.GetCurrentUserInfo();
return Result.Success().SetData(await _userService.GetUserInfoById(_user.id));
}
2021-10-23 15:47:15 +08:00
[HttpGet]
public async Task<Result> GetMenuByUserId()
{
var _user = HttpContext.GetCurrentUserInfo();
return Result.Success().SetData(await _userService.GetMenuById(_user.id));
}
[HttpPost]
public async Task<Result> GetRouterByUserId( AxiosUrlsModel urlsModel,string router)
{
var _user = HttpContext.GetCurrentUserInfo();
2021-10-23 18:46:07 +08:00
var menuList = await _userService.GetMenuById(_user.id);
//var menu_data= await _userService.GetMenuByUserId(router);
var menu_data =menuList.Where(u=>u.router==router).FirstOrDefault();
foreach (var _menu in menu_data.children)
2021-10-23 15:47:15 +08:00
if (_menu.mould.mould_name == "get")
{
urlsModel.get= _menu.mould.url;
}
else if (_menu.mould.mould_name == "del")
{
urlsModel.del= _menu.mould.url ;
}
else if (_menu.mould.mould_name == "update")
{
urlsModel.update= _menu.mould.url ;
}
else if (_menu.mould.mould_name == "add")
{
urlsModel.add = _menu.mould.url ;
}
return Result.Success().SetData(urlsModel);
}
2021-10-18 16:46:40 +08:00
2021-10-11 21:50:50 +08:00
}
}