using Microsoft.AspNetCore.Mvc; using QYZH.InteractiveMagazine.Models.Dto; namespace QYZH.InteractiveMagazine.WebApi.Controllers; /// /// 基础控制器 /// [ApiController] [Route("api/[controller]")] 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 Fail(string message, int code = 500) { return BaseResponse.Fail(message, code); } }