using Microsoft.AspNetCore.Mvc;
using QYZH.InteractiveMagazine.Models.Dto;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.WebApi.Controllers;
///
/// 基础控制器
///
[ApiController]
[Route("api/[controller]")]
[ApiExplorerSettings(GroupName = nameof(ApiVersionEnum.Platform))]
public abstract class BaseController : ControllerBase
{
///
/// 获取当前用户ID
///
/// 用户ID
protected long? GetCurrentUserId()
{
var userIdClaim = User.Claims.FirstOrDefault(c => c.Type == "userId");
if (userIdClaim != null && long.TryParse(userIdClaim.Value, out var userId))
{
return userId;
}
return null;
}
///
/// 获取当前用户名
///
/// 用户名
protected string? GetCurrentUserName()
{
return User.Claims.FirstOrDefault(c => c.Type == "userName")?.Value;
}
///
/// 成功响应
///
/// 数据类型
/// 数据
/// 提示信息
/// 统一响应对象
protected BaseResponse Success(T data, string message = "操作成功")
{
return BaseResponse.Success(data, message);
}
///
/// 失败响应
///
/// 提示信息
/// 状态码
/// 统一响应对象
protected BaseResponse