AGSSbackend/AGSS/Controllers/User/UserControllers.cs
luolan 17c1e08d7f 完善用户和管理员角色控制器的文档和注释
- 添加用户控制器的类和方法注释
- 添加管理员角色控制器的类和方法注释
- 优化 `SearchUserFromRoleRequest` 和 `SearchUserFromRoleResponse` 的属性注释
2025-07-09 16:08:20 +08:00

59 lines
1.9 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using AGSS.Models.Entities;
using AGSS.Models.Template;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
namespace AGSS.Controllers.User;
/// <summary>
/// 用户控制器提供与用户相关的API接口。
/// </summary>
/// <remarks>此控制器需要授权才能访问其方法。</remarks>
[Authorize]
[Route("api/v1/[controller]/[action]")]
public class UserControllers:ControllerBase
{
/// <summary>
/// 用户服务实例,用于执行与用户相关的操作。
/// 该服务提供了一系列方法来处理用户的查询和更新等操作,
/// 包括但不限于获取用户详细信息、修改用户资料等功能。
/// </summary>
private readonly UserService _userService;
/// <summary>
/// 用户控制器提供用户相关操作的API接口。
/// </summary>
public UserControllers(UserService userService, UserManager<UserModel> userManager)
{
_userService = userService;
}
/// <summary>
/// 获取当前登录用户的个人信息。
/// </summary>
/// <returns>返回一个包含状态码、消息和用户信息的ReturnTemplate对象。如果成功状态码为200如果失败状态码为500。</returns>
[HttpGet]
public async Task<IActionResult> My()
{
string userId = this.User.FindFirst(JwtRegisteredClaimNames.Sub)!.Value;
if (string.IsNullOrEmpty(userId))
{
return Ok(new ReturnTemplate(500,"获取用户失败JWT解析错误",null));
}
try
{
var userProfile = await _userService.GetUserProfileAsync(userId);
return Ok(new ReturnTemplate(200,"获取成功!",userProfile));
}
catch (ArgumentException ex)
{
return NotFound(ex.Message);
}
}
}