Files
zszq-trs/YLErpWeb/Controllers/CalculationLogController.cs
2024-05-09 14:06:26 +08:00

129 lines
4.6 KiB
C#

using Newtonsoft.Json;
using YLErp.Enums;
using YLErp.Modules.CalculationLogModule;
namespace YLErp.Web.Controllers
{
public class CalculationLogController : BaseController
{
// GET: CalculationLog
[Route("calclog/")]
public ActionResult Index()
{
ICalculationLogService calculationLogService = new CalculationLogService();
var logs = calculationLogService.GetAllLogs();
logs.Reverse();
CalculationLogListViewModel viewModel = new CalculationLogListViewModel();
viewModel.calculationLogs = logs;
viewModel.Name = "test";
return View("CalculationLogList", viewModel);
}
/// <summary>
/// 查询日志详情
/// </summary>
/// <param name="logNum"></param>
/// <returns></returns>
public ActionResult CalculationLogDetail(string logNum)
{
ICalculationLogService calculationLogService = new CalculationLogService();
var log= calculationLogService.GetLog(logNum);
string logJson= JsonConvert.SerializeObject(log, Formatting.Indented);
CalculationLogDetailModel mdoel = new CalculationLogDetailModel { LogJson = logJson };
return View("CalculationLogDetail", mdoel);
}
/// <summary>
/// 清除所有的日志
/// </summary>
/// <returns></returns>
public JsonResult ClearAllLogs()
{
ICalculationLogService calculationLogService = new CalculationLogService();
calculationLogService.ClearAll();
return JsonSuccess("已清除成功");
}
/// <summary>
/// 配置参数
/// </summary>
/// <returns></returns>
public ActionResult CalculationLogConfig()
{
ICalculationLogService calculationLogService = new CalculationLogService();
var config = calculationLogService.GetConfig();
CalculationLogConfigModel model = new CalculationLogConfigModel()
{
TotalCountMaxLimit = config.TotalCountMaxLimit,
Pricing = config.ScenariosOfCalcLog.Contains(CalcScenarioEnum.Pricing),
RealtimeRisk = config.ScenariosOfCalcLog.Contains(CalcScenarioEnum.RealtimeRisk),
ScenarioCalc = config.ScenariosOfCalcLog.Contains(CalcScenarioEnum.ScenarioCalc),
InitialMargin = config.ScenariosOfCalcLog.Contains(CalcScenarioEnum.InitialMargin),
};
return View("CalculationLogConfig", model);
}
/// <summary>
/// 修改参数
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
[HttpPost]
public JsonResult CalculationLogConfigEditJson(CalculationLogConfigEditRequest req)
{
ICalculationLogService calculationLogService = new CalculationLogService();
var config= calculationLogService.GetConfig();
List<CalcScenarioEnum> scenariosOfCalcLog = new List<CalcScenarioEnum>();
if (req.Pricing)
{
scenariosOfCalcLog.Add(CalcScenarioEnum.Pricing);
}
if (req.RealtimeRisk)
{
scenariosOfCalcLog.Add(CalcScenarioEnum.RealtimeRisk);
}
if (req.ScenarioCalc)
{
scenariosOfCalcLog.Add(CalcScenarioEnum.ScenarioCalc);
}
if (req.InitialMargin)
{
scenariosOfCalcLog.Add(CalcScenarioEnum.InitialMargin);
}
config.ScenariosOfCalcLog = scenariosOfCalcLog;
calculationLogService.Setup(config);
return JsonSuccess("已修改");
}
/// <summary>
/// 修改参数请求
/// </summary>
public class CalculationLogConfigEditRequest
{
/// <summary>
/// 总日志数量限制
/// </summary>
public int TotalCountMaxLimit { get; set; }= 5000;
/// <summary>
/// 定价开关
/// </summary>
public bool Pricing { get; set; }=false;
/// <summary>
/// 实时风险开关
/// </summary>
public bool RealtimeRisk { get; set; } = false;
/// <summary>
/// 场景开关
/// </summary>
public bool ScenarioCalc { get; set; } = false;
/// <summary>
/// 初始预付金开关
/// </summary>
public bool InitialMargin { get; set; } = false;
}
}
}