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);
}
}
}