using MiAssessment.Admin.Business.Models; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace MiAssessment.Admin.Business.Controllers; /// /// 业务控制器基类 /// [ApiController] [Route("api/admin/business/[controller]")] [Authorize] public abstract class BusinessControllerBase : ControllerBase { /// /// 返回成功响应 /// protected IActionResult Ok(T? data = default, string message = "success") { return base.Ok(ApiResponse.Success(data, message)); } /// /// 返回成功响应(无数据) /// protected IActionResult Ok(string message = "success") { return base.Ok(ApiResponse.Success(null, message)); } /// /// 返回分页数据响应 /// protected IActionResult Ok(PagedResult pagedResult, string message = "success") { return base.Ok(ApiResponse>.Success(pagedResult, message)); } /// /// 返回错误响应 /// protected IActionResult Error(int code, string message) { return base.Ok(ApiResponse.Error(code, message)); } /// /// 返回验证失败响应 /// protected IActionResult ValidationError(string message) { return Error(BusinessErrorCodes.ValidationFailed, message); } /// /// 返回资源不存在响应 /// protected IActionResult NotFoundError(string message = "资源不存在") { return Error(BusinessErrorCodes.NotFound, message); } /// /// 返回权限不足响应 /// protected IActionResult PermissionDeniedError(string message = "权限不足") { return Error(BusinessErrorCodes.PermissionDenied, message); } /// /// 获取当前登录用户 ID /// protected long? GetCurrentUserId() { var userIdClaim = User.FindFirst("userId")?.Value; if (long.TryParse(userIdClaim, out var userId)) { return userId; } return null; } /// /// 获取当前登录用户名 /// protected string? GetCurrentUsername() { return User.FindFirst("username")?.Value; } }