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); } /// /// 查询日志详情 /// /// /// 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); } /// /// 清除所有的日志 /// /// public JsonResult ClearAllLogs() { ICalculationLogService calculationLogService = new CalculationLogService(); calculationLogService.ClearAll(); return JsonSuccess("已清除成功"); } /// /// 配置参数 /// /// 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); } /// /// 修改参数 /// /// /// [HttpPost] public JsonResult CalculationLogConfigEditJson(CalculationLogConfigEditRequest req) { ICalculationLogService calculationLogService = new CalculationLogService(); var config= calculationLogService.GetConfig(); List scenariosOfCalcLog = new List(); 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("已修改"); } /// /// 修改参数请求 /// public class CalculationLogConfigEditRequest { /// /// 总日志数量限制 /// public int TotalCountMaxLimit { get; set; }= 5000; /// /// 定价开关 /// public bool Pricing { get; set; }=false; /// /// 实时风险开关 /// public bool RealtimeRisk { get; set; } = false; /// /// 场景开关 /// public bool ScenarioCalc { get; set; } = false; /// /// 初始预付金开关 /// public bool InitialMargin { get; set; } = false; } } }