using YLErp.DBModels.Converts; using YLErp.Modules.TradeModule.DealModule; namespace YLErp.Modules.ApiModule { [TestClass] public class TradeDealTest : UnitTestBase { [TestMethod("api/v1/trade/group_options_close")] public void TestCreateClientMethod() { var UnwindType = "部分平仓"; var TradeNumber = "CW202154518046X0002"; var ValueDate = new DateTime(2022, 1, 13); var UnderlyingPrice = 17.04; var UnwindAmountFlag = "百分比"; var UnwindAmount = 0.33; var td = DbContextFactory.GetYLDbContext().trade.Where(n => n.TradeNumber == TradeNumber).FirstOrDefault(); if (td == null) { throw new ServiceException("交易信息不存在"); } if (td.TradeType != "结构化交易" || td.IsGroup != 1) { throw new ServiceException("所选交易非组合交易主交易,不支持此API调用"); } var tc = new trade_cash { id = 0, TradeId = td.id, ValueDate = ValueDate, ExceciseType = null, TradeType = BuySellConvert.GetClientBuySell(td.BuySell), CallPut = null, Strike = null, Notional = td.Notional, Amount = 0, Action = UnwindType, ValidState = null, Status = null, FinalPrice = UnderlyingPrice, UnwindPrice = null, UnwindVol = null, VolType = null, UnwindType = null, UnwindNotional = null, ExtraAmount = null, SettleDate = null, Comments = null, ExerciseWay = null, TradeAmount = null, UnwindTradeAmount = td.TradeAmount, UnwindPercentRate = null, UnwindPricePercentRate = null, BarrierPrice = null, HappenedDate = null, ConfirmDate = System.DateTime.MinValue, ParentTradeId = 0, ParentTradeCashId = 0, SpotPrice = null, NotionalPercentRate = null, TradePremium = 0, IsDeleted = false, AdvanceMoney = 0, IsLastAction = false }; if (td.IsUsePremiumRate == true) { if (UnwindAmountFlag == "百分比") { tc.UnwindPercentRate = UnwindAmount; } else if (UnwindAmountFlag == "名义本金") { tc.UnwindStockEqvNotional = UnwindAmount; } else { throw new ServiceException("交易是以'名义本金方式'成交的,仅支持以'百分比'和'名义本金'方式平仓"); } } else { if (UnwindAmountFlag == "数量") { tc.UnwindTradeAmount = UnwindAmount; } else { throw new ServiceException("交易是以'数量方式'成交的,仅支持'数量'方式平仓"); } } new TradeUnwindService(OptUserInfo.SystemUser).SaveGroupTradeCash(new YLErp.Model.SaveGroupTradeCashReq { trade_cash = tc, tradeIds = new System.Collections.Generic.List { td.id }, }); Console.WriteLine("完成"); } } }