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.Repository; using Yi.Framework.WebCore; using Yi.Framework.WebCore.AttributeExtend; using Yi.Framework.WebCore.AuthorizationPolicy; namespace Yi.Framework.ApiMicroservice.Controllers { /// /// 用户管理 /// [ApiController] [Route("api/[controller]/[action]")] public class UserController : BaseSimpleCrudController { private IUserService _iUserService; public UserController(ILogger logger, IUserService iUserService) : base(logger, iUserService) { _iUserService = iUserService; } /// /// 动态条件分页查询 /// /// /// /// [HttpGet] public async Task PageList([FromQuery] UserEntity user, [FromQuery] PageParModel page) { return Result.Success().SetData(await _iUserService.SelctPageList(user, page)); } /// /// 更改用户状态 /// /// /// /// [HttpPut] public async Task UpdateStatus(long userId, bool isDel) { return Result.Success().SetData(await _iUserService._repository.UpdateIgnoreNullAsync(new UserEntity() { Id = userId, IsDeleted = isDel })); } /// /// 添加用户,去重,密码加密 /// /// /// [Permission($"{nameof(UserEntity)}:add")] [HttpPost] public override async Task Add(UserEntity entity) { if (!await _iUserService.Exist(entity.UserName)) { entity.BuildPassword(); return Result.Success().SetData(await _iUserService._repository.InsertReturnSnowflakeIdAsync(entity)); } return Result.SuccessError("用户已存在"); } /// /// 给多用户设置多角色 /// /// /// [HttpPut] public async Task GiveUserSetRole(GiveUserSetRoleDto giveUserSetRoleDto) { return Result.Success().SetStatus(await _iUserService.GiveUserSetRole(giveUserSetRoleDto.UserIds, giveUserSetRoleDto.RoleIds)); } /// /// 通过用户id得到用户信息关联部门、岗位、角色 /// /// [HttpGet] [Route("{id}")] public override async Task GetById(long id) { return Result.Success().SetData(await _iUserService.GetInfoById(id)); } /// /// 更新用户信息 /// /// [HttpPut] public async Task UpdateInfo(UserInfoDto userDto) { return Result.Success().SetStatus(await _iUserService.UpdateInfo(userDto)); } /// /// 添加用户 /// /// [HttpPost] public async Task AddInfo(UserInfoDto userDto) { return Result.Success().SetStatus(await _iUserService.AddInfo(userDto)); } [HttpPut] public async Task RestPassword(UserEntity user) { return Result.Success().SetStatus(await _iUserService.RestPassword(user.Id, user.Password)); } } }