using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.Extensions.Caching.Memory;
|
using Newtonsoft.Json;
|
using StackExchange.Profiling;
|
using WIDESEA_Core;
|
using WIDESEA_Core.Authorization;
|
using WIDESEA_Core.BaseController;
|
using WIDESEA_Core.Caches;
|
using WIDESEA_Core.Const;
|
using WIDESEA_Core.Extensions;
|
using WIDESEA_Core.Helper;
|
using WIDESEA_Core.HttpContextUser;
|
using WIDESEA_Core.Utilities;
|
using WIDESEA_ISystemService;
|
using WIDESEA_Model;
|
using WIDESEA_Model.Models;
|
|
namespace WIDESEA_WMSServer.Controllers
|
{
|
/// <summary>
|
/// 用户
|
/// </summary>
|
[Route("api/User")]
|
[ApiController]
|
public class Sys_UserController : ApiBaseController<ISys_UserService, Sys_User>
|
{
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
private readonly ICacheService _cacheService;
|
|
public Sys_UserController(ISys_UserService userService, IHttpContextAccessor httpContextAccessor, ICacheService cacheService) : base(userService)
|
{
|
_httpContextAccessor = httpContextAccessor;
|
_cacheService = cacheService;
|
}
|
|
[HttpPost, Route("login"), AllowAnonymous]
|
public IActionResult Login([FromBody] LoginInfo loginInfo)
|
{
|
return Json(Service.Login(loginInfo));
|
}
|
|
[HttpPost, Route("swgLogin"), AllowAnonymous]
|
public dynamic SwgLogin([FromBody] SwaggerLoginRequest loginRequest)
|
{
|
if (loginRequest is null)
|
{
|
return new { result = false };
|
}
|
|
try
|
{
|
if (loginRequest.name == "admin" && loginRequest.pwd == $"admin!{DateTime.Now.ToString("yyyyMMdd")}")
|
{
|
HttpContext.SuccessSwagger();
|
return new { result = true };
|
}
|
}
|
catch (Exception ex)
|
{
|
|
}
|
|
return new { result = false };
|
}
|
|
[HttpPost, Route("getCurrentUserInfo")]
|
public WebResponseContent GetCurrentUser()
|
{
|
return Service.GetCurrentUserInfo();
|
}
|
|
[HttpPost, Route("modifyPwd")]
|
public IActionResult ModifyPwd(string oldPwd, string newPwd)
|
{
|
return Json(Service.ModifyPwd(oldPwd, newPwd));
|
}
|
|
[HttpGet, Route("getVierificationCode"), AllowAnonymous]
|
public IActionResult GetVierificationCode()
|
{
|
//var html = MiniProfiler.Current.RenderIncludes(_httpContextAccessor.HttpContext);
|
string code = "1234" /*VierificationCode.RandomText()*/;
|
var data = new
|
{
|
img = VierificationCode.CreateBase64Imgage(code),
|
uuid = Guid.NewGuid()
|
};
|
|
return Json(data);
|
}
|
[HttpGet, Route("SerializeJwt"), AllowAnonymous]
|
public WebResponseContent SerializeJwt(string code)
|
{
|
return WebResponseContent.Instance.OK(data: JwtHelper.SerializeJwt(code));
|
}
|
[HttpPost, Route("replaceToken")]
|
public WebResponseContent ReplaceToken()
|
{
|
WebResponseContent responseContent = new WebResponseContent();
|
try
|
{
|
string token = App.User.GetToken();
|
if (string.IsNullOrEmpty(token))
|
{
|
return responseContent = WebResponseContent.Instance.Error("token无效,请重新登录!");
|
}
|
TokenModelJwt tokenModelJwt = new TokenModelJwt()
|
{
|
RoleId = App.User.RoleId,
|
TenantId = App.User.TenantId,
|
UserId = App.User.UserId,
|
UserName = App.User.UserName
|
};
|
string newToken = JwtHelper.IssueJwt(tokenModelJwt);
|
_cacheService.AddOrUpdate(tokenModelJwt.UserId.ToString(), newToken);
|
return responseContent = WebResponseContent.Instance.OK(data: newToken);
|
}
|
catch (Exception ex)
|
{
|
return responseContent.Error(ex.Message);
|
}
|
|
}
|
}
|
|
public class SwaggerLoginRequest
|
{
|
public string name { get; set; }
|
public string pwd { get; set; }
|
}
|
}
|