namespace YLErp.Web.Controllers { public class valuedateController : BaseController { public static valuedate SetValueDate(Action setter, bool reset = true) { if (setter is null) { throw new ArgumentNullException(nameof(setter)); } valuedate config = null; using (var db = DbContextFactory.GetYLDbContext()) { config = db.valuedate.FirstOrDefault(v => v.State == valuedate.当前使用); setter(config); config.UpdateTime = DateTime.Now; db.SaveChanges(); } if (reset) { valuedateBLL.ResetValueDate(); } return config; } [MyAuthorize("系统参数-美式香草期权定价模型")] public JsonResult SaveValueVanillaOptionMode(valuedate valuedateObj) { var config = SetValueDate(m => { m.ConfigInfo = valuedateObj.ConfigInfo; }); return JsonSuccess("设置式香草期权定价模型为:" + config.ConfigInfoData.ValueVanillaOptionMode, valuedateObj); } [MyAuthorize("系统参数-预付金比率")] public JsonResult SaveConfigInfo(string fileName, valuedate valuedateObj) { var config = SetValueDate(m => { m.ConfigInfo = valuedateObj.ConfigInfo; }); return JsonSuccess($"设置{fileName}成功", valuedateObj); } [MyAuthorize("系统参数-系统日期设置")] public JsonResult ChangeAuto(valuedate valuedateObj) { var config = SetValueDate(m => { m.Type = valuedateObj.Type; }); return JsonSuccess("设置系统时间为:" + config.Type, valuedateObj); } [MyAuthorize("系统参数-除权除息税率设置")] public JsonResult saveDividendRate(valuedate valuedateObj) { var config = SetValueDate(m => { m.DividendRate = valuedateObj.DividendRate; }); return JsonSuccess("除权除息税率成功", valuedateObj); } public JsonResult GetSystemDate() { return JsonSuccessData(valuedateBLL.ValueDate); } [MyAuthorize("系统参数-系统日期设置")] public JsonResult SaveSystemDate(valuedate valuedateObj) { var config = SetValueDate(m => { m.ValueDate = valuedateObj.ValueDate; m.Type = "false"; //系统取消自动更新时间 }); return JsonSuccess("设置系统时间成功!", valuedateObj); } public JsonResult saveTwoSideMarginValueDate(valuedate valuedateObj) { var config = SetValueDate(m => { m.TwoSideMarginValueDate = valuedateObj.TwoSideMarginValueDate; }); return JsonSuccess("设置双向预付金启用日期成功!", valuedateObj); } [MyAuthorize("系统参数-行权费率")] public JsonResult SaveCostRate(valuedate valuedateObj) { var config = SetValueDate(m => { m.ExerciseCostRatio = valuedateObj.ExerciseCostRatio; }); return JsonSuccess("设置行权费率成功!", valuedateObj); } [MyAuthorize("系统参数-交易特批")] public JsonResult SaveSpecialOperateForTrade(valuedate valuedateObj) { var config = SetValueDate(m => { m.SpecialOperateForTrade = valuedateObj.SpecialOperateForTrade; }); return JsonSuccess("设置交易特批成功!", valuedateObj); } [MyAuthorize("系统参数-出金特批")] public JsonResult SaveSpecialOperateForCashOut(valuedate valuedateObj) { var config = SetValueDate(m => { m.SpecialOperateForCashOut = valuedateObj.SpecialOperateForCashOut; }); return JsonSuccess("设置出金特批成功!", valuedateObj); } [MyAuthorize("系统参数-平仓行权复核")] public JsonResult SaveCloseReCheck(valuedate valuedateObj) { if (DbContextFactory.GetYLDbContext().trade.Any( x => (x.TradeStatus == ConsTrade.平仓待复核 || x.TradeStatus == ConsTrade.行权待复核 || x.TradeStatus == ConsTrade.互换待复核) && x.ValidState != "InValid")) { return JsonError("存在待复核的交易,设置平仓行权复核失败,请先处理待复核交易!", valuedateObj); } var config = SetValueDate(m => { m.CloseReCheck = valuedateObj.CloseReCheck; }); return JsonSuccess("设置平仓行权复核成功!", valuedateObj); } [MyAuthorize("系统参数-平仓行权审批")] public JsonResult SaveCloseReApprove(valuedate valuedateObj) { if (DbContextFactory.GetYLDbContext().trade.Any(x => (x.TradeStatus == ConsTrade.平仓待复核 || x.TradeStatus == ConsTrade.行权待复核 || x.TradeStatus == ConsTrade.互换待复核) && x.ValidState != "InValid")) { return JsonError("存在待复核的交易,设置平仓行权审批失败,请先处理待复核交易!", valuedateObj); } var config = SetValueDate(m => { m.CloseReApprove = valuedateObj.CloseReApprove; }); return JsonSuccess("设置平仓行权审批成功!", valuedateObj); } [MyAuthorize("系统参数-设置初始预付金")] public JsonResult SaveCanSetInitialMargin(valuedate valuedateObj) { var config = SetValueDate(m => { m.CanSetInitialMargin = valuedateObj.CanSetInitialMargin; }); return JsonSuccess("更新设置初始预付金成功!", valuedateObj); } [MyAuthorize("系统参数-设置同业追保起点")] public JsonResult SaveSamePeerMarginCallPoint(valuedate valuedateObj) { var config = SetValueDate(m => { m.SamePeerMarginCallPoint = valuedateObj.SamePeerMarginCallPoint; }); return JsonSuccess("更新设置初始预付金成功!", valuedateObj); } [MyAuthorize("系统参数-预付金比率")] public JsonResult SaveMarginRatio(valuedate valuedateObj) { if (valuedateObj.MarginRatio == 0) { return JsonError("预付金比率不可设置为0"); } var config = SetValueDate(m => { m.MarginRatio = valuedateObj.MarginRatio; }); return JsonSuccess("设置预付金比率成功!", valuedateObj); } [MyAuthorize("系统参数-预付金比率")] public JsonResult SaveFutureMarginRatio(valuedate valuedateObj) { var config = SetValueDate(m => { m.FutureMarginRatio = valuedateObj.FutureMarginRatio; }); return JsonSuccess("设置商品期货期权预付金比率成功!", valuedateObj); } [MyAuthorize("系统参数-预付金比率")] public JsonResult SaveFutureMarginAddRatio(valuedate valuedateObj) { var config = SetValueDate(m => { m.FutureMarginAddRatio = valuedateObj.FutureMarginAddRatio; }); return JsonSuccess("设置商品期货期权预付金加点成功!", valuedateObj); } [MyAuthorize("系统参数-波动率浮动比")] public JsonResult SaveVolatilityRatio(valuedate valuedateObj) { var config = SetValueDate(m => { m.VolatilityRatio = valuedateObj.VolatilityRatio; }); return JsonSuccess("设置波动率浮动比成功!", valuedateObj); } [MyAuthorize("系统参数-系统日期设置")] public JsonResult SaveBinaryCalculationMethod(valuedate valuedateObj) { var config = SetValueDate(m => { m.BinaryCalculation = valuedateObj.BinaryCalculation; }); return JsonSuccess("设置二元期权计算方法成功!", valuedateObj); } [MyAuthorize("系统参数-系统日期设置")] public JsonResult SaveThetaType(valuedate valuedateObj) { var config = SetValueDate(m => { m.ThetaType = valuedateObj.ThetaType; }); return JsonSuccess("修改Theta类型 成功!", valuedateObj); } [MyAuthorize("系统参数-系统日期设置")] public JsonResult SaveBinaryReplicationStrategy(valuedate valuedateObj) { var config = SetValueDate(m => { m.BinaryReplicationStrategy = valuedateObj.BinaryReplicationStrategy; }); return JsonSuccess("修改二元期权复制策略设置成功!", valuedateObj); } [MyAuthorize("系统参数-CurveDayCount")] public JsonResult SaveCurveDayCount(valuedate valuedateObj) { var config = SetValueDate(m => { m.CurveDayCount = valuedateObj.CurveDayCount; }); return JsonSuccess("修改CurveDayCount成功!", valuedateObj); } [MyAuthorize("系统参数-TradeDayCount")] public JsonResult SaveTradeDayCount(valuedate valuedateObj) { var config = SetValueDate(m => { m.TradeDayCount = valuedateObj.TradeDayCount; }); return JsonSuccess("修改TradeDayCount成功!", valuedateObj); } /// /// 监管参数 一年有效天数报送 /// /// /// public JsonResult SavePositionReportTradeDayCount(valuedate valuedateObj) { var config = SetValueDate(m => { m.PositionReportTradeDayCount = valuedateObj.PositionReportTradeDayCount; }); return JsonSuccess("修改持仓报送报告的一年有效天数成功!", valuedateObj); } [MyAuthorize("系统参数-备兑设置")] public JsonResult SaveCoveredInfo(valuedate valuedateObj) { var config = SetValueDate(m => { m.IsCovered = valuedateObj.IsCovered; m.Delay = valuedateObj.Delay; }); return JsonSuccess("修改备兑信息成功!", valuedateObj); } [MyAuthorize("系统参数-备兑设置")] public JsonResult SaveAutoRebackOrderInfo(valuedate valuedateObj) { var config = SetValueDate(m => { m.AutoRebackOrderDelay = valuedateObj.AutoRebackOrderDelay; }); return JsonSuccess("修改客户端下单自动撤销信息成功!", valuedateObj); } public JsonResult GetSystemNoPriceRate() { return JsonSuccessData(valuedateBLL.SystemDate); } public JsonResult GetRiskFreeRateFromCurve(DateTime? startDate, DateTime? endDate) { var riskFreeRate = valuedateBLL.GetRiskFreeRateFromCurve(startDate, endDate); return JsonSuccessData(riskFreeRate); } [MyAuthorize("系统参数-无风险利率设置")] public JsonResult SaveRiskRate(valuedate valuedateObj) { var config = SetValueDate(m => { m.RiskFreeRate = valuedateObj.RiskFreeRate; }); return JsonSuccess("设置系统无风险利率成功!", valuedateObj); } [MyAuthorize("系统参数-无风险利率设置")] public JsonResult SaveRiskRateExtend(valuedate valuedateObj) { var config = SetValueDate(m => { m.RiskFreeRateExtend = valuedateObj.RiskFreeRateExtend; }); return JsonSuccess("设置系统扩展无风险利率成功!", valuedateObj); } [MyAuthorize("系统参数-默认通道簿记账户设置")] public JsonResult SaveDefaultAssetUnit(valuedate valuedateObj) { var config = SetValueDate(m => { m.DefaultAssetUnit = valuedateObj.DefaultAssetUnit; }); return JsonSuccess("设置默认通道簿记账户成功!", valuedateObj); } [MyAuthorize("系统参数-无风险利率设置")] public JsonResult SaveDeltaCoefficient(valuedate valuedateObj) { var config = SetValueDate(m => { m.FutureMarginDeltaCoefficient = valuedateObj.FutureMarginDeltaCoefficient; }); return JsonSuccess("设置系统商品期权Delta系数成功!", valuedateObj); } [MyAuthorize("系统参数-无风险利率设置")] public JsonResult SaveVegaCoefficient(valuedate valuedateObj) { var config = SetValueDate(m => { m.FutureMarginVegaCoefficient = valuedateObj.FutureMarginVegaCoefficient; }); return JsonSuccess("设置系统商品期权Vega系数成功!", valuedateObj); } [MyAuthorize("系统参数-无风险利率设置")] public JsonResult SaveOmegaCoefficient(valuedate valuedateObj) { var config = SetValueDate(m => { m.FutureMarginOmegaCoefficient = valuedateObj.FutureMarginOmegaCoefficient; }); return JsonSuccess("设置系统商品期权Omega系数成功!", valuedateObj); } [MyAuthorize("系统参数-无风险利率设置")] public JsonResult SaveAlphaRate(valuedate valuedateObj) { var config = SetValueDate(m => { m.FutureMarginAlphaRate = valuedateObj.FutureMarginAlphaRate; }); return JsonSuccess("设置系统商品期权Alpha倍率成功!", valuedateObj); } [MyAuthorize("系统参数-无风险利率设置")] public JsonResult SaveFutureInitialMarginRatio(valuedate valuedateObj) { var config = SetValueDate(m => { m.FutureInitialMarginRatio = valuedateObj.FutureInitialMarginRatio; }); return JsonSuccess("设置系统商品期权初始预付金成功!", valuedateObj); } public JsonResult SaveSettleDocMode(valuedate valuedateObj) { var config = SetValueDate(m => { m.SettleDocMode = valuedateObj.SettleDocMode; }); return JsonSuccess("设置系统清算书生成模式成功!", valuedateObj); } public JsonResult SaveTradeContractDocMode(valuedate valuedateObj) { var config = SetValueDate(m => { m.TradeContractDocMode = valuedateObj.TradeContractDocMode; }); return JsonSuccess("设置系统交易算书生成模式成功!", valuedateObj); } public JsonResult SaveTradeContractMode(valuedate valuedateObj) { var config = SetValueDate(m => { m.TradeContractMode = valuedateObj.TradeContractMode; }); return JsonSuccess("设置系统交易书甲乙方模式成功!", valuedateObj); } public JsonResult SaveEodSettlePriceMode(valuedate valuedateObj) { var config = SetValueDate(m => { m.EodSettlePriceMode = valuedateObj.EodSettlePriceMode; }); return JsonSuccess("设置结算价格模式成功!", valuedateObj); } public JsonResult SaveEodSettleVolMode(valuedate valuedateObj) { var config = SetValueDate(m => { m.EodSettleVolMode = valuedateObj.EodSettleVolMode; }); return JsonSuccess("设置结算波动率成功!", valuedateObj); } public JsonResult SaveIsPotentialSurplusUseMargin(valuedate valuedateObj) { var config = SetValueDate(m => { m.IsPotentialSurplusUseMargin = valuedateObj.IsPotentialSurplusUseMargin; }); return JsonSuccess("设置潜在行权盈余是否计入预付金余额成功!", valuedateObj); } public JsonResult SavePotentialSurplusCalcMode(valuedate valuedateObj) { var config = SetValueDate(m => { m.PotentialSurplusCalcMode = valuedateObj.PotentialSurplusCalcMode; }); return JsonSuccess("设置潜在行权盈余计算模式成功!", valuedateObj); } [MyAuthorize("系统参数-无风险利率设置")] public JsonResult saveAccruedTotalPnlStartDate(valuedate valuedateObj) { var config = SetValueDate(m => { m.AccruedTotalPnlStartDate = valuedateObj.AccruedTotalPnlStartDate; }); return JsonSuccess("更新累计盈亏统计起始日成功!", valuedateObj); } public JsonResult saveUploadExerciseScope(valuedate valuedateObj) { var config = SetValueDate(m => { m.UploadExerciseScope = valuedateObj.UploadExerciseScope; }); return JsonSuccess("设置批量行权导入检查误差值范围成功!", valuedateObj); } public JsonResult saveSuperviseMainName(valuedate valuedateObj) { var config = SetValueDate(m => { m.SuperviseMainName = valuedateObj.SuperviseMainName; }); return JsonSuccess("设置监管报告主体名称成功!", valuedateObj); } public JsonResult saveSuperviseMainCode(valuedate valuedateObj) { var config = SetValueDate(m => { m.SuperviseMainCode = valuedateObj.SuperviseMainCode; }); return JsonSuccess("设置监管报告主体的统一社会信用代码成功!", valuedateObj); } public JsonResult saveSupervisePrefix(valuedate valuedateObj) { var config = SetValueDate(m => { m.SupervisePrefix = valuedateObj.SupervisePrefix; }); return JsonSuccess("设置监管报告文件前缀成功!", valuedateObj); } public JsonResult saveQuotationCycle(valuedate valuedateObj) { var config = SetValueDate(m => { m.QuotationCycle = valuedateObj.QuotationCycle; }); return JsonSuccess("设置报价周期成功!", valuedateObj); } public JsonResult savePartyUseColl(valuedate valuedateObj) { var config = SetValueDate(m => { m.PartyUseColl = valuedateObj.PartyUseColl; }); return JsonSuccess("设置担保品使用方式成功!", valuedateObj); } public JsonResult saveCollInstruction(valuedate valuedateObj) { var config = SetValueDate(m => { m.CollInstruction = valuedateObj.CollInstruction; }); return JsonSuccess("设置担保品使用方式成功!", valuedateObj); } public JsonResult SaveIsClientNeedBook(bool isClientNeedBook) { var config = SetValueDate(m => { m.IsClientNeedBook = isClientNeedBook; }); return JsonSuccess("设置双录预约限制状态成功!"); } public JsonResult SaveAlertLine(valuedate valuedateObj) { var config = SetValueDate(m => { m.AlertLineKonckInLimit = valuedateObj.AlertLineKonckInLimit; m.AlertLineKonckOutLimit = valuedateObj.AlertLineKonckOutLimit; }); return JsonSuccess("触碰预警设置成功!", valuedateObj); } public JsonResult SaveUnwindSinglePriceAngle(valuedate valuedateObj) { if (valuedateObj.UnwindSinglePriceAngle == 1) { var config = SetValueDate(m => { m.UnwindSinglePriceAngle = valuedateObj.UnwindSinglePriceAngle; m.UnwindAmountAngle = valuedateObj.UnwindAmountAngle; }); } else { var config = SetValueDate(m => { m.UnwindSinglePriceAngle = valuedateObj.UnwindSinglePriceAngle; }); } return JsonSuccess("设置平仓单价视角成功!", valuedateObj); } public JsonResult SaveUnwindAmountAngle(valuedate valuedateObj) { if (valuedateObj.UnwindAmountAngle == 0) { var config = SetValueDate(m => { m.UnwindSinglePriceAngle = valuedateObj.UnwindSinglePriceAngle; m.UnwindAmountAngle = valuedateObj.UnwindAmountAngle; }); } else { var config = SetValueDate(m => { m.UnwindAmountAngle = valuedateObj.UnwindAmountAngle; }); } return JsonSuccess("设置平仓总额视角成功!", valuedateObj); } [MyAuthorize("系统管理-系统参数")] public ActionResult valuedateList() { var config = DbContextFactory.GetYLDbContext().valuedate.FirstOrDefault(v => v.State == valuedate.当前使用); config.ClientDesc = null; return View(config); } [MyAuthorize("系统管理-系统参数")] public ActionResult clientDesc() { ViewBag.ClientDesc = valuedateBLL.SystemDate.ClientDesc; return View(); } //[ValidateInput(false)] public JsonResult saveClientDesc(string data) { var config = SetValueDate(m => { m.ClientDesc = data; }); return JsonSuccess("保存成功"); } public JsonResult saveGuaranteedIncome(valuedate valuedateObj) { var config = SetValueDate(m => { m.GuaranteedIncome = valuedateObj.GuaranteedIncome; }); return JsonSuccess("保存成功"); } /// /// 交易确认成交前和确认成交时是否执行试算逻辑 /// /// /// public JsonResult saveTradeTrial(valuedate valuedateObj) { var config = SetValueDate(m => { m.TradeTrial = valuedateObj.TradeTrial; }); return JsonSuccess("保存成功", valuedateObj); } /// /// 修改交易时是否必须填写备注 /// /// /// public JsonResult saveEditTradeNeedRemark(valuedate valuedateObj) { var config = SetValueDate(m => { m.EditTradeNeedRemark = valuedateObj.EditTradeNeedRemark; }); return JsonSuccess("保存成功", valuedateObj); } /// /// 信用风险敞口-CCR计算参数j /// /// /// public JsonResult saveRiskExposureJ(valuedate valuedateObj) { var config = SetValueDate(m => { m.RiskExposureJ = valuedateObj.RiskExposureJ; }); return JsonSuccess("保存成功", valuedateObj); } /// /// 信用风险敞口-CCR计算参数N /// /// /// public JsonResult saveRiskExposureN(valuedate valuedateObj) { var config = SetValueDate(m => { m.RiskExposureN = valuedateObj.RiskExposureN; }); return JsonSuccess("保存成功", valuedateObj); } /// /// 预付金-CCR计算参数j /// /// /// public JsonResult saveMarginJ(valuedate valuedateObj) { var config = SetValueDate(m => { m.MarginJ = valuedateObj.MarginJ; }); return JsonSuccess("保存成功", valuedateObj); } /// /// 预付金-CCR计算参数N /// /// /// public JsonResult saveMarginN(valuedate valuedateObj) { var config = SetValueDate(m => { m.MarginN = valuedateObj.MarginN; }); return JsonSuccess("保存成功", valuedateObj); } /// /// 浙期:使用亚式保险+期货项目特殊模板选择 /// /// /// public JsonResult SaveAssetUnitsChooseNewTemplate(string assetIds) { var config = SetValueDate(m => { m.AssetIds = assetIds; }); return JsonSuccess("保存成功"); } } }