52 lines
1.6 KiB
C#
52 lines
1.6 KiB
C#
using Apimanager_backend.Dtos;
|
|
using Apimanager_backend.Exceptions;
|
|
using Apimanager_backend.Services;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace Apimanager_backend.Controllers
|
|
{
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
public class UserController : ControllerBase
|
|
{
|
|
private readonly IUserService userService;
|
|
public UserController(IUserService userService)
|
|
{
|
|
this.userService = userService;
|
|
}
|
|
/// <summary>
|
|
/// 用户登录控制器
|
|
/// </summary>
|
|
/// <param name="dto">登录信息</param>
|
|
/// <returns>通用返回信息格式</returns>
|
|
[HttpPost("Login")]
|
|
public async Task<ActionResult<ResponseBase<UserInfoDto>>> Login([FromBody]UserLoginDto dto)
|
|
{
|
|
try
|
|
{
|
|
UserInfoDto user = await userService.LoginAsync(dto.UserName, dto.Password);
|
|
|
|
var responseInfo = new ResponseBase<UserInfoDto>(
|
|
code: 2000,
|
|
message: "Login successful",
|
|
data: user
|
|
);
|
|
return Ok(responseInfo);
|
|
}
|
|
catch (BaseException e)
|
|
{
|
|
|
|
//错误时,构建错误信息对象
|
|
var responseInfo = new ResponseBase<object?>(
|
|
code:e.code,
|
|
message: e.message,
|
|
data: null
|
|
);
|
|
|
|
return Unauthorized(responseInfo);
|
|
}
|
|
}
|
|
}
|
|
}
|