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;
}
}