75 lines
2.6 KiB
C#
75 lines
2.6 KiB
C#
using AGSS.Models;
|
||
using AGSS.Models.DTOs;
|
||
using AGSS.Models.Entities;
|
||
using AGSS.Models.Template;
|
||
using Microsoft.AspNetCore.Authorization;
|
||
using Microsoft.AspNetCore.Mvc;
|
||
using Microsoft.EntityFrameworkCore;
|
||
|
||
namespace AGSS.Controllers.User;
|
||
|
||
[ApiController]
|
||
[Route("api/[controller]/[action]")]
|
||
public class UserInfoController : ControllerBase
|
||
{
|
||
private readonly DBContext _context;
|
||
|
||
public UserInfoController(DBContext context)
|
||
{
|
||
_context = context;
|
||
}
|
||
|
||
[HttpGet]
|
||
[Authorize]
|
||
public async Task<IActionResult> My()
|
||
{
|
||
|
||
|
||
|
||
// _context.UserModels.Add(user);
|
||
// await _context.SaveChangesAsync();
|
||
// return Ok(new ReturnTemplate(200, "成功",user));
|
||
return Ok();
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 更新或创建用户信息。
|
||
/// </summary>
|
||
/// <param name="data">包含用户详细信息的UserRequest对象,包括性别、生日、描述、职业名称和职业代码。</param>
|
||
/// <returns>一个IActionResult,表示操作的成功或失败。如果成功,则返回200状态码以及消息和用户信息。用户信息封装在ReturnTemplate中,包含一个成功代码、一条消息和数据。</returns>
|
||
/// <remarks>此方法需要授权,并接受POST请求。它使用从认证令牌中提取的AuthId来创建或更新数据库中的用户信息。</remarks>
|
||
[HttpPost]
|
||
[Authorize]
|
||
public async Task<IActionResult> NextInfo([FromBody]UserRequest data)
|
||
{
|
||
var authId = this.User.FindFirst("sub")!.Value;
|
||
UserModel user = new UserModel
|
||
{
|
||
AuthId = authId,
|
||
Sex = data.Sex,
|
||
Birthday = data.Birthday,
|
||
Description = data.Description,
|
||
JobName = data.JobName,
|
||
JobCode = data.JobCode
|
||
};
|
||
|
||
_context.UserModels.Add(user);
|
||
await _context.SaveChangesAsync();
|
||
return Ok(new ReturnTemplate(200, "成功",user));
|
||
}
|
||
|
||
/// <summary>
|
||
/// 检查当前认证用户是否为新用户。
|
||
/// </summary>
|
||
/// <returns>一个IActionResult,表示操作的成功或失败。如果成功,则返回200状态码以及消息和isNewUser布尔值。该布尔值封装在ReturnTemplate中,包含一个成功代码、一条消息和数据。</returns>
|
||
/// <remarks>此方法需要授权,并接受GET请求。它通过检查数据库中是否存在具有相同AuthId的用户来确定用户是否为新用户。</remarks>
|
||
[HttpGet]
|
||
[Authorize]
|
||
public async Task<IActionResult> IsNewUser()
|
||
{
|
||
var authId = this.User.FindFirst("sub")!.Value;
|
||
var isNewUser=await _context.UserModels.AnyAsync(a => a.AuthId == authId);
|
||
return Ok(new ReturnTemplate(200, "成功",isNewUser));
|
||
}
|
||
} |