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

724 lines
26 KiB
C#

namespace YLErp.Web.Controllers
{
public class valuedateController : BaseController
{
public static valuedate SetValueDate(Action<valuedate> 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);
}
/// <summary>
/// 监管参数 一年有效天数报送
/// </summary>
/// <param name="valuedateObj"></param>
/// <returns></returns>
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("保存成功");
}
/// <summary>
/// 交易确认成交前和确认成交时是否执行试算逻辑
/// </summary>
/// <param name="valuedateObj"></param>
/// <returns></returns>
public JsonResult saveTradeTrial(valuedate valuedateObj)
{
var config = SetValueDate(m =>
{
m.TradeTrial = valuedateObj.TradeTrial;
});
return JsonSuccess("保存成功", valuedateObj);
}
/// <summary>
/// 修改交易时是否必须填写备注
/// </summary>
/// <param name="valuedateObj"></param>
/// <returns></returns>
public JsonResult saveEditTradeNeedRemark(valuedate valuedateObj)
{
var config = SetValueDate(m =>
{
m.EditTradeNeedRemark = valuedateObj.EditTradeNeedRemark;
});
return JsonSuccess("保存成功", valuedateObj);
}
/// <summary>
/// 信用风险敞口-CCR计算参数j
/// </summary>
/// <param name="valuedateObj"></param>
/// <returns></returns>
public JsonResult saveRiskExposureJ(valuedate valuedateObj)
{
var config = SetValueDate(m =>
{
m.RiskExposureJ = valuedateObj.RiskExposureJ;
});
return JsonSuccess("保存成功", valuedateObj);
}
/// <summary>
/// 信用风险敞口-CCR计算参数N
/// </summary>
/// <param name="valuedateObj"></param>
/// <returns></returns>
public JsonResult saveRiskExposureN(valuedate valuedateObj)
{
var config = SetValueDate(m =>
{
m.RiskExposureN = valuedateObj.RiskExposureN;
});
return JsonSuccess("保存成功", valuedateObj);
}
/// <summary>
/// 预付金-CCR计算参数j
/// </summary>
/// <param name="valuedateObj"></param>
/// <returns></returns>
public JsonResult saveMarginJ(valuedate valuedateObj)
{
var config = SetValueDate(m =>
{
m.MarginJ = valuedateObj.MarginJ;
});
return JsonSuccess("保存成功", valuedateObj);
}
/// <summary>
/// 预付金-CCR计算参数N
/// </summary>
/// <param name="valuedateObj"></param>
/// <returns></returns>
public JsonResult saveMarginN(valuedate valuedateObj)
{
var config = SetValueDate(m =>
{
m.MarginN = valuedateObj.MarginN;
});
return JsonSuccess("保存成功", valuedateObj);
}
/// <summary>
/// 浙期:使用亚式保险+期货项目特殊模板选择
/// </summary>
/// <param name="AssetIds"></param>
/// <returns></returns>
public JsonResult SaveAssetUnitsChooseNewTemplate(string assetIds)
{
var config = SetValueDate(m =>
{
m.AssetIds = assetIds;
});
return JsonSuccess("保存成功");
}
}
}