2025-07-02 18:27:13 +08:00
|
|
|
|
using AGSS.Models;
|
2025-07-06 16:29:18 +08:00
|
|
|
|
using AGSS.Models.DTOs;
|
2025-07-02 18:27:13 +08:00
|
|
|
|
using AGSS.Models.Entities;
|
|
|
|
|
using AGSS.Models.Template;
|
2025-07-04 23:28:24 +08:00
|
|
|
|
using Microsoft.AspNetCore.Authorization;
|
2025-07-02 18:27:13 +08:00
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
2025-07-06 16:29:18 +08:00
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
2025-07-02 18:27:13 +08:00
|
|
|
|
|
|
|
|
|
namespace AGSS.Controllers.User;
|
|
|
|
|
|
|
|
|
|
[ApiController]
|
|
|
|
|
[Route("api/[controller]/[action]")]
|
|
|
|
|
public class UserInfoController : ControllerBase
|
|
|
|
|
{
|
|
|
|
|
private readonly DBContext _context;
|
|
|
|
|
|
|
|
|
|
public UserInfoController(DBContext context)
|
|
|
|
|
{
|
|
|
|
|
_context = context;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[HttpGet]
|
2025-07-04 23:28:24 +08:00
|
|
|
|
[Authorize]
|
2025-07-02 18:27:13 +08:00
|
|
|
|
public async Task<IActionResult> My()
|
|
|
|
|
{
|
2025-07-04 23:28:24 +08:00
|
|
|
|
|
2025-07-06 16:29:18 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// _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;
|
2025-07-02 18:27:13 +08:00
|
|
|
|
UserModel user = new UserModel
|
|
|
|
|
{
|
2025-07-06 16:29:18 +08:00
|
|
|
|
AuthId = authId,
|
|
|
|
|
Sex = data.Sex,
|
|
|
|
|
Birthday = data.Birthday,
|
|
|
|
|
Description = data.Description,
|
|
|
|
|
JobName = data.JobName,
|
|
|
|
|
JobCode = data.JobCode
|
2025-07-02 18:27:13 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
_context.UserModels.Add(user);
|
|
|
|
|
await _context.SaveChangesAsync();
|
2025-07-06 16:29:18 +08:00
|
|
|
|
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));
|
2025-07-02 18:27:13 +08:00
|
|
|
|
}
|
|
|
|
|
}
|