using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using MilitaryTrainingManagement.Models.DTOs; using MilitaryTrainingManagement.Services.Interfaces; namespace MilitaryTrainingManagement.Controllers; /// /// 认证控制器 /// [Route("api/admin/auth")] public class AuthController : BaseApiController { private readonly IAuthenticationService _authService; public AuthController(IAuthenticationService authService) { _authService = authService; } [HttpPost("login")] [AllowAnonymous] public async Task Login([FromBody] LoginRequest request) { var (user, token) = await _authService.LoginAsync(request.Username, request.Password); if (user == null || token == null) { return Unauthorized(new { message = "用户名或密码错误" }); } return Ok(new LoginResponse { Token = token, UserId = user.Id, Username = user.Username, DisplayName = user.DisplayName, OrganizationalUnitId = user.OrganizationalUnitId, OrganizationalUnitName = user.OrganizationalUnit.Name, OrganizationalLevel = user.OrganizationalUnit.Level }); } [HttpPost("logout")] [Authorize] public IActionResult Logout() { return Ok(new { message = "登出成功" }); } [HttpGet("profile")] [Authorize] public async Task GetProfile() { var userId = GetCurrentUserId(); if (userId == null) { return Unauthorized(); } var user = await _authService.GetUserByIdAsync(userId.Value); if (user == null) { return NotFound(); } return Ok(new UserProfileResponse { UserId = user.Id, Username = user.Username, DisplayName = user.DisplayName, OrganizationalUnitId = user.OrganizationalUnitId, OrganizationalUnitName = user.OrganizationalUnit.Name, OrganizationalLevel = user.OrganizationalUnit.Level }); } }