using AutoMapper; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.JsonPatch; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using Ropin.Inspection.Api.Common; using Ropin.Inspection.Model; using Ropin.Inspection.Model.SearchModel; using Ropin.Inspection.Model.ViewModel; using Ropin.Inspection.Service.Interface; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Ropin.Inspection.Api.Controllers { /// /// 系统用户 /// public class TsysUserController : BaseController { public ILogger _logger { get; } private readonly ITsysUserService _tsysUserService; /// /// 构造函数 /// /// /// public TsysUserController(ITsysUserService tsysUserService, ILogger logger) { _tsysUserService = tsysUserService; _logger = logger; } /// /// 通过用户ID获取用户信息 /// /// /// [HttpGet("GetUserAsync/{userId}")] public async Task GetUserAsync(Guid userId) { if (Guid.Empty == userId) { return new ApiResult(ReturnCode.GeneralError); } try { var user = await _tsysUserService.GetByIdAsync(userId); return new ApiResult(user); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 通过用户ID获取用户详细信息,包含角色,组织架构 /// /// /// [AllowAnonymous] [HttpGet("GetByUserIdAsync/{userId}")] public async Task GetByUserIdAsync(Guid userId) { if (Guid.Empty == userId) { return new ApiResult(ReturnCode.GeneralError); } try { var user = await _tsysUserService.GetByUserIdAsync(userId); return new ApiResult(user); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 获取所有用户 /// /// [HttpGet("GetUsersAsync")] public async Task GetUsersAsync() { try { var userList = await _tsysUserService.GetAllAsync(); return new ApiResult>(userList); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 创建用户 /// /// /// [Route("CreateUserAsync")] [HttpPost] public async Task CreateUserAsync([FromBody] TsysUserCreateViewModel user) { if (user == null) { return new ApiResult(ReturnCode.ArgsError); } try { await _tsysUserService.CreateOneAsync(user); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError,ex.Message); } return new ApiResult(ReturnCode.Success); } /// /// 删除用户 /// /// /// [HttpDelete("DeleteUserAsync/{userId}")] public async Task DeleteUserAsync(Guid userId) { if (Guid.Empty == userId) { return new ApiResult(ReturnCode.GeneralError); } try { await _tsysUserService.DeleteAsync(userId); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } return new ApiResult(ReturnCode.Success); } /// /// 更新用户 /// /// /// /// [HttpPut("UpdateUserAsync/{userId}")] public async Task UpdateUserAsync(Guid userId, TsysUserUpdateViewModel updateUser) { if (Guid.Empty == userId) { return new ApiResult(ReturnCode.GeneralError); } try { await _tsysUserService.UpdateUserAsync(userId, updateUser); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } return new ApiResult(ReturnCode.Success); } ///// ///// 部分更新用户 ///// ///// ///// ///// //[HttpPatch("ParticallyUpdateUserAsync/{userId}")] //public async Task ParticallyUpdateUserAsync(Guid userId, JsonPatchDocument patchDocument) //{ // if (Guid.Empty == userId) // { // return new ApiResult(ReturnCode.GeneralError); // } // try // { // await _tsysUserService.UpdateUserAsync(userId, patchDocument); // } // catch (Exception ex) // { // return new ApiResult(ReturnCode.GeneralError, ex.Message); // } //} /// /// 条件查询用户 /// /// /// [Route("GetUsersByAsync")] [HttpPost] public async Task GetByAsync(TsysUserSearchModel searchViewModel) { try { var list = await _tsysUserService.GetByAsync(searchViewModel); return new ApiResult>(new PagesModel(list, searchViewModel)); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 根据用户名等信息查询用户 /// /// /// [Route("GetByNameAsync")] [HttpPost] public async Task GetByNameAsync(TsysUserSearchByNameModel searchModel) { try { var list = await _tsysUserService.GetByNameAsync(searchModel); return new ApiResult>(new PagesModel(list, searchModel)); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 通过网点Code取关联的用户 /// /// /// [Route("GetByStoreCodeAsync/{storeCode}")] [HttpPost] public async Task GetByStoreCodeAsync(string storeCode) { if (string.IsNullOrEmpty(storeCode)) { return new ApiResult(ReturnCode.ArgsError); } try { var list = await _tsysUserService.GetByStoreCodeAsync(storeCode); return new ApiResult>(list); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 修改自己的密码 /// /// 修改用户ID /// 密码Model /// [HttpPut("ChangePasswordAsync/{userId}")] public async Task ChangePasswordAsync(Guid userId, [FromBody] ChangePasswordModel passwordModel) { try { await _tsysUserService.ChangePasswordAsync(userId, passwordModel); return new ApiResult(ReturnCode.Success, "修改密码成功"); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 密码重置 /// /// /// [HttpPut("ResetPasswordAsync/{userId}")] public async Task ResetPasswordAsync(Guid userId) { try { await _tsysUserService.ResetPasswordAsync(userId); return new ApiResult(ReturnCode.Success, "修改重置成功"); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 查看是否绑定过微信公众号 /// /// [HttpGet("IsNeedAuth")] public async Task IsNeedAuth() { var result = await _tsysUserService.IsNeedAuth(); return new ApiResult(result, ReturnCode.Success); } /// /// 绑定微信公众号 /// /// /// [HttpGet("SetOpenId/{openId}")] public async Task SetOpenId(string openId) { var result = await _tsysUserService.SetOpenId(openId); return new ApiResult(result, ReturnCode.Success); } } }