添加项目文件。
This commit is contained in:
125
HT.Cloud.Web/Controllers/BaseController.cs
Normal file
125
HT.Cloud.Web/Controllers/BaseController.cs
Normal file
@ -0,0 +1,125 @@
|
||||
using Jaina;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.Filters;
|
||||
using Serenity.Data;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using HT.Cloud.Code;
|
||||
using HT.Cloud.Service.Event;
|
||||
using HT.Cloud.Service.SystemSecurity;
|
||||
|
||||
namespace HT.Cloud.Web
|
||||
{
|
||||
[HandlerLogin]
|
||||
public abstract class BaseController : Controller
|
||||
{
|
||||
public LogService _logService { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 演示模式过滤
|
||||
/// </summary>
|
||||
/// <param name="context"></param>
|
||||
/// <param name="next"></param>
|
||||
/// <returns></returns>
|
||||
public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
|
||||
{
|
||||
Stopwatch sw = new Stopwatch();
|
||||
sw.Start();
|
||||
|
||||
string action = context.RouteData.Values["Action"].ParseToString();
|
||||
OperatorModel user = OperatorProvider.Provider.GetCurrent();
|
||||
|
||||
if (GlobalContext.SystemConfig.Demo)
|
||||
{
|
||||
if (context.HttpContext.Request.Method.ToUpper() == "POST")
|
||||
{
|
||||
string[] allowAction = new string[] { "LoginJson", "ExportUserJson", "CodePreviewJson" };
|
||||
if (!allowAction.Select(p => p.ToUpper()).Contains(action.ToUpper()))
|
||||
{
|
||||
string Message = "演示模式,不允许操作";
|
||||
context.Result = new JsonResult(new AlwaysResult
|
||||
{
|
||||
state = ResultType.error.ToString(),
|
||||
message = Message
|
||||
});
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
var resultContext = await next();
|
||||
sw.Stop();
|
||||
}
|
||||
|
||||
public override void OnActionExecuted(ActionExecutedContext context)
|
||||
{
|
||||
base.OnActionExecuted(context);
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[HandlerAuthorize]
|
||||
public virtual ActionResult Index()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[HandlerAuthorize]
|
||||
public virtual ActionResult Form()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[HandlerAuthorize]
|
||||
public virtual ActionResult Details()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
protected virtual async Task<ActionResult> Success(string message, string className = "", object keyValue = null, DbLogType? logType = null)
|
||||
{
|
||||
className = string.IsNullOrEmpty(className) ? ReflectionHelper.GetModuleName(isReplace: false, prefix: "Controller") : className;
|
||||
var log = await _logService.CreateLog(message, className, keyValue != null && keyValue.ToString() != "0" ? keyValue.ToString() : "", logType);
|
||||
await GlobalContext.GetService<IEventPublisher>().PublishAsync(new BaseEventSource("Log:create", log, _logService.currentuser));
|
||||
return Content(new AlwaysResult { state = ResultType.success.ToString(), message = message }.ToJson());
|
||||
}
|
||||
|
||||
protected virtual ActionResult Success(string message)
|
||||
{
|
||||
return Content(new AlwaysResult { state = ResultType.success.ToString(), message = message }.ToJson());
|
||||
}
|
||||
|
||||
protected virtual ActionResult Success<T>(string message, T data)
|
||||
{
|
||||
return Content(new AlwaysResult<T> { state = ResultType.success.ToString(), message = message, data = data }.ToJson());
|
||||
}
|
||||
|
||||
protected virtual ActionResult Success<T>(int total, T data)
|
||||
{
|
||||
return Content(new AlwaysResult<T> { state = 0, message = "", count = total, data = data }.ToJson());
|
||||
}
|
||||
|
||||
protected virtual ActionResult DTreeResult(object data)
|
||||
{
|
||||
return Content(new DTreeResult { status = new StatusInfo { code = 200, message = "操作成功" }, data = data }.ToJson());
|
||||
}
|
||||
|
||||
protected virtual async Task<ActionResult> Error(string message, string className, object keyValue = null, DbLogType? logType = null)
|
||||
{
|
||||
className = string.IsNullOrEmpty(className) ? ReflectionHelper.GetModuleName(isReplace: false, prefix: "Controller") : className;
|
||||
var log = await _logService.CreateLog(message, className, keyValue != null && keyValue.ToString() != "0" ? keyValue.ToString() : "", logType, true);
|
||||
await GlobalContext.GetService<ISqlSugarClient>().Ado.RollbackTranAsync();
|
||||
await GlobalContext.GetService<ISqlSugarClient>().AsTenant().RollbackTranAsync();
|
||||
await GlobalContext.GetService<IEventPublisher>().PublishAsync(new BaseEventSource("Log:create", log, _logService.currentuser));
|
||||
return Content(new AlwaysResult { state = ResultType.error.ToString(), message = LogHelper.ExMsgFormat(message) }.ToJson());
|
||||
}
|
||||
|
||||
protected virtual ActionResult Error(string message)
|
||||
{
|
||||
return Content(new AlwaysResult { state = ResultType.error.ToString(), message = LogHelper.ExMsgFormat(message) }.ToJson());
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user