2020-08-05 15:29:56 +08:00
|
|
|
using SimApi.Communications;
|
2019-12-23 16:32:06 +08:00
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc.Filters;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
|
|
|
|
using System.Linq;
|
2020-08-05 15:29:56 +08:00
|
|
|
using SimApi.Exceptions;
|
2019-12-23 16:32:06 +08:00
|
|
|
|
2024-03-23 07:29:43 +08:00
|
|
|
namespace SimApi.Controllers;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 基础控制器,所有控制器均继承本控制器
|
|
|
|
|
/// 1. 自动验证请求参数
|
|
|
|
|
/// 2. 报错返回
|
|
|
|
|
/// 3. 错误回馈页面
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class SimApiBaseController : Controller
|
2019-12-23 16:32:06 +08:00
|
|
|
{
|
|
|
|
|
/// <summary>
|
2024-03-23 07:29:43 +08:00
|
|
|
/// 当前登录用户的ID
|
2019-12-23 16:32:06 +08:00
|
|
|
/// </summary>
|
2024-07-26 08:11:21 +08:00
|
|
|
protected SimApiLoginItem LoginInfo => (SimApiLoginItem)HttpContext.Items["LoginInfo"]!;
|
2024-03-23 07:29:43 +08:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 验证请求参数
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="context"></param>
|
|
|
|
|
public override void OnActionExecuting(ActionExecutingContext context)
|
2019-12-23 16:32:06 +08:00
|
|
|
{
|
2024-03-23 07:29:43 +08:00
|
|
|
if (!context.ModelState.IsValid)
|
2019-12-23 16:32:06 +08:00
|
|
|
{
|
2024-03-23 07:29:43 +08:00
|
|
|
foreach (var item in context.ModelState.Values.Where(item =>
|
|
|
|
|
item.ValidationState == ModelValidationState.Invalid))
|
2019-12-23 16:32:06 +08:00
|
|
|
{
|
2024-03-23 07:29:43 +08:00
|
|
|
Error(400, item.Errors.First().ErrorMessage);
|
|
|
|
|
break;
|
2019-12-23 16:32:06 +08:00
|
|
|
}
|
|
|
|
|
}
|
2024-03-23 07:29:43 +08:00
|
|
|
}
|
2019-12-23 16:32:06 +08:00
|
|
|
|
|
|
|
|
|
2024-03-23 07:29:43 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 错误返回
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="code">错误代码</param>
|
|
|
|
|
/// <param name="message">错误描述(若是常规错误,代码可自动带取描述)</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
protected static void Error(int code = 500, string message = "")
|
|
|
|
|
{
|
|
|
|
|
throw new SimApiException(code, message);
|
|
|
|
|
}
|
2019-12-23 16:32:06 +08:00
|
|
|
|
2024-03-23 07:29:43 +08:00
|
|
|
/// <summary>
|
2024-03-26 10:06:17 +08:00
|
|
|
/// 检测条件,根据条件返回报错 如果condition是ture报错
|
2024-03-23 07:29:43 +08:00
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="condition">检测条件</param>
|
|
|
|
|
/// <param name="code">错误代码</param>
|
|
|
|
|
/// <param name="message">错误描述</param>
|
2024-04-23 12:27:36 +08:00
|
|
|
protected static void ErrorWhen(bool condition, int code = 400, string message = "")
|
2024-03-23 07:29:43 +08:00
|
|
|
{
|
|
|
|
|
if (condition)
|
2019-12-23 16:32:06 +08:00
|
|
|
{
|
2024-03-23 07:29:43 +08:00
|
|
|
Error(code, message);
|
2019-12-23 16:32:06 +08:00
|
|
|
}
|
2024-03-23 07:29:43 +08:00
|
|
|
}
|
2019-12-23 16:32:06 +08:00
|
|
|
|
2024-03-26 10:06:17 +08:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 检测条件,根据条件返回报错 如果condition是ture报错
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="condition">检测条件</param>
|
|
|
|
|
/// <param name="code">错误代码</param>
|
|
|
|
|
/// <param name="message">错误描述</param>
|
2024-04-23 12:27:36 +08:00
|
|
|
protected static void ErrorWhenTrue(bool condition, int code = 400, string message = "")
|
2024-03-26 10:06:17 +08:00
|
|
|
{
|
|
|
|
|
ErrorWhen(condition, code, message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 如果condition是false 报错
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="condition"></param>
|
|
|
|
|
/// <param name="code"></param>
|
|
|
|
|
/// <param name="message"></param>
|
2024-04-23 12:27:36 +08:00
|
|
|
protected static void ErrorWhenFalse(bool condition, int code = 400, string message = "")
|
2024-03-26 10:06:17 +08:00
|
|
|
{
|
|
|
|
|
ErrorWhen(!condition, code, message);
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-23 07:29:43 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 检测给定的变量是否为NUll
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="condition">检测条件</param>
|
|
|
|
|
/// <param name="code">错误代码</param>
|
|
|
|
|
/// <param name="message">错误描述</param>
|
2024-07-26 08:11:21 +08:00
|
|
|
protected static void ErrorWhenNull(object? condition, int code = 404, string message = "请求的资源不存在")
|
2024-03-23 07:29:43 +08:00
|
|
|
{
|
|
|
|
|
ErrorWhen(condition == null, code, message);
|
|
|
|
|
}
|
2020-01-17 12:40:22 +08:00
|
|
|
|
2024-03-23 07:29:43 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 上传文件
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
protected SimApiBaseResponse<string> UploadFile()
|
|
|
|
|
{
|
2024-04-16 06:29:21 +08:00
|
|
|
return new SimApiBaseResponse<string>();
|
2019-12-23 16:32:06 +08:00
|
|
|
}
|
|
|
|
|
}
|