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]")]
|
2021-10-26 00:59:06 +08:00
|
|
|
|
[Authorize]
|
2021-10-11 21:50:50 +08:00
|
|
|
|
public class UserController : ControllerBase
|
|
|
|
|
|
{
|
|
|
|
|
|
private readonly ILogger<UserController> _logger;
|
|
|
|
|
|
|
|
|
|
|
|
private IUserService _userService;
|
2021-11-01 22:00:09 +08:00
|
|
|
|
private IMenuService _menuService;
|
|
|
|
|
|
public UserController(ILogger<UserController> logger, IUserService userService, IMenuService menuService)
|
2021-10-11 21:50:50 +08:00
|
|
|
|
{
|
|
|
|
|
|
_logger = logger;
|
|
|
|
|
|
_userService = userService;
|
2021-11-01 22:00:09 +08:00
|
|
|
|
_menuService = menuService;
|
2021-10-11 21:50:50 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
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
|
|
|
|
|
2021-10-14 13:15:00 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2021-10-15 17:50:56 +08:00
|
|
|
|
/// 给多个用户设置多个角色,ids有用户id与 角色列表ids,多对多,ids1用户,ids2为角色
|
2021-10-27 18:01:09 +08:00
|
|
|
|
/// 用户设置给用户设置角色
|
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-27 23:03:56 +08:00
|
|
|
|
await _userService.SetRoleByUser(idsListDto.ids2, idsListDto.ids1);
|
|
|
|
|
|
return Result.Success();
|
2021-10-18 16:46:40 +08:00
|
|
|
|
}
|
2021-10-27 18:01:09 +08:00
|
|
|
|
|
2021-10-19 14:50:26 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 根据http上下文的用户得到该用户信息,关联角色
|
2021-10-27 18:01:09 +08:00
|
|
|
|
/// 用于显示账号信息页中的用户信息和角色信息
|
2021-10-19 14:50:26 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpGet]
|
2021-10-27 18:01:09 +08:00
|
|
|
|
public async Task<Result> GetUserInRolesByHttpUser()
|
2021-10-19 14:50:26 +08:00
|
|
|
|
{
|
2021-10-27 23:03:56 +08:00
|
|
|
|
var _user = HttpContext.GetCurrentUserInfo();
|
|
|
|
|
|
return Result.Success().SetData( await _userService.GetUserInRolesByHttpUser(_user.id));
|
2021-10-19 14:50:26 +08:00
|
|
|
|
}
|
2021-10-27 18:01:09 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 得到登录用户的递归菜单,放到导航栏
|
|
|
|
|
|
/// 用户放到导航栏中
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
2021-10-23 15:47:15 +08:00
|
|
|
|
[HttpGet]
|
2021-10-27 18:01:09 +08:00
|
|
|
|
public async Task<Result> GetMenuByHttpUser()
|
2021-10-23 15:47:15 +08:00
|
|
|
|
{
|
2021-10-27 23:03:56 +08:00
|
|
|
|
var _user = HttpContext.GetCurrentUserInfo();
|
|
|
|
|
|
return Result.Success().SetData(await _userService.GetMenuByHttpUser(_user.id));
|
2021-10-23 15:47:15 +08:00
|
|
|
|
}
|
2021-10-27 18:01:09 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 得到请求模型
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="router"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2021-10-24 14:33:04 +08:00
|
|
|
|
[HttpGet]
|
2021-10-27 18:01:09 +08:00
|
|
|
|
public async Task<Result> GetAxiosByRouter(string router)
|
2021-10-23 15:47:15 +08:00
|
|
|
|
{
|
2021-11-01 22:00:09 +08:00
|
|
|
|
var _user = HttpContext.GetCurrentUserInfo();
|
|
|
|
|
|
var menuList = await _menuService.GetTopMenuByUserId(_user.id);
|
|
|
|
|
|
if (menuList == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return Result.Error();
|
|
|
|
|
|
}
|
|
|
|
|
|
List<int> menuIds = new();
|
|
|
|
|
|
menuList.ForEach(u =>
|
|
|
|
|
|
{
|
|
|
|
|
|
var id = u.id;
|
|
|
|
|
|
menuIds.Add(id);
|
|
|
|
|
|
});
|
|
|
|
|
|
var childrenList = await _userService.GetAxiosByRouter(router, _user.id, menuIds);
|
2021-10-27 23:03:56 +08:00
|
|
|
|
AxiosUrlsModel urlsModel = new();
|
|
|
|
|
|
menuList.ForEach(u =>
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (u.menu_name)
|
|
|
|
|
|
{
|
|
|
|
|
|
case "get":urlsModel.get = u.mould.url;break;
|
|
|
|
|
|
case "del": urlsModel.del = u.mould.url; break;
|
|
|
|
|
|
case "add": urlsModel.add = u.mould.url; break;
|
|
|
|
|
|
case "update": urlsModel.update = u.mould.url; break;
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
return Result.Success().SetData(urlsModel);
|
2021-10-23 15:47:15 +08:00
|
|
|
|
}
|
2021-10-18 16:46:40 +08:00
|
|
|
|
|
2021-10-11 21:50:50 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|