mirror of
https://gitee.com/ccnetcore/Yi
synced 2026-03-03 08:10:51 +08:00
168 lines
5.5 KiB
C#
168 lines
5.5 KiB
C#
using Microsoft.AspNetCore.Authorization;
|
||
using Microsoft.AspNetCore.Mvc;
|
||
using Microsoft.Extensions.Logging;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Threading.Tasks;
|
||
using Yi.Framework.Common.Models;
|
||
using Yi.Framework.DTOModel;
|
||
using Yi.Framework.Interface;
|
||
using Yi.Framework.Model.Models;
|
||
using Yi.Framework.WebCore;
|
||
|
||
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;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 查
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
[HttpGet]
|
||
public async Task<Result> GetUser()
|
||
{
|
||
return Result.Success().SetData(await _userService.GetAllEntitiesTrueAsync());
|
||
}
|
||
|
||
/// <summary>
|
||
/// 更
|
||
/// </summary>
|
||
/// <param name="_user"></param>
|
||
/// <returns></returns>
|
||
[HttpPut]
|
||
public async Task<Result> UpdateUser(user _user)
|
||
{
|
||
await _userService.UpdateAsync(_user);
|
||
return Result.Success();
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 删
|
||
/// </summary>
|
||
/// <param name="_ids"></param>
|
||
/// <returns></returns>
|
||
[HttpDelete]
|
||
public async Task<Result> DelListUser(List<int> _ids)
|
||
{
|
||
await _userService.DelListByUpdateAsync(_ids);
|
||
return Result.Success();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 增
|
||
/// </summary>
|
||
/// <param name="_user"></param>
|
||
/// <returns></returns>
|
||
[HttpPost]
|
||
public async Task<Result> AddUser(user _user)
|
||
{
|
||
await _userService.AddAsync(_user);
|
||
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>
|
||
[Authorize]
|
||
[HttpGet]
|
||
public async Task<Result> GetUserInfoById()
|
||
{
|
||
var _user = HttpContext.GetCurrentUserInfo();
|
||
return Result.Success().SetData(await _userService.GetUserInfoById(_user.id));
|
||
}
|
||
[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();
|
||
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)
|
||
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);
|
||
}
|
||
|
||
}
|
||
}
|