using YLErp.Model.Enum; using YLErp.Modules.TradeModule.OrderModule; namespace YLWebAPI.ApiModule.ManagerApi { /// /// 交易下单控制器 /// [ManagerAuth] public class OrderApiController : BaseApiController { /// /// 场外期权交易 /// [HttpPost, Route("api/v1/order/option")] public ApiResponseModel OrderOption([FromBody] OtcOptionTradeFullEx model, bool debug = false) { var trade = new OtcTradeSaveService(CurUser).SaveOptionTradeFromApiOrImport(model, TradeSourceEnum.WebApiV2); if (debug) { return JsonSuccess(trade, "保存成功"); } return JsonSuccess(trade.TradeNumber, "保存成功"); } /// /// 场外期权结构化交易 /// [HttpPost, Route("api/v1/order/structure_options")] public ApiResponseModel OrderStructure([FromBody] StructureOrderRequest model, bool debug = false) { var trade = new OtcTradeSaveService(CurUser).SaveStructureOptionTradeFromApiOrImport(model, TradeSourceEnum.WebApiV2); if (debug) { return JsonSuccess(trade, "保存成功"); } return JsonSuccess(trade.TradeNumber, "保存成功"); } /// /// 场外期权组合交易 /// [HttpPost, Route("api/v1/order/group_options")] public ApiResponseModel OrderGroup([FromBody] StructureOrderRequest model, bool debug = false) { var trade = new OtcTradeSaveService(CurUser).SaveGroupOptionTradeFromApiOrImport(model, TradeSourceEnum.WebApiV2); if (debug) { return JsonSuccess(trade, "保存成功"); } return JsonSuccess(trade.TradeNumber, "保存成功"); } /// /// 场外期权组合交易--修改主交易 /// [HttpPost, Route("api/v1/order/group_options_main_update")] public ApiResponseModel OrderGroupEdit([FromBody] GroupTradeMainEditRequest model, bool debug = false) { var td = new OtcOptionTradeFullEx { _Update = true, TradeNumber = model.TradeNumber, ExerciseDate = model.ExerciseDate, BuySell = model.BuySell, StructureType = model.StructureType, Comments = model.Comments, IsMoneynessOption = model.IsMoneynessOption, AssetBookName = model.AssetBookName, TraderName = model.TraderName, ExtendInfo = model.ExtendInfo, OptionType = model.OptionType, NotKIParticipationRate = model.NotKIParticipationRate, BarrierLow = model.BarrierLow ?? 0, Strike = model.Strike, HighStrike = model.HighStrike, HasPayoffLimit = model.HasPayoffLimit, KIParticipationRate = 1, SpotPrice = model.SpotPrice }; if (model.StockEqvNotional.HasValue) { td.IsUsePremiumRate = true; td.StockEqvNotional = td.StockEqvNotionalReal = model.StockEqvNotional.Value; } else if (model.TradeAmount.HasValue) { td.IsUsePremiumRate = false; td.TradeAmount = model.TradeAmount.Value; } var trade = new OtcTradeSaveService(CurUser).SaveOptionTradeFromApiOrImport(td, TradeSourceEnum.WebApiV2); if (debug) { return JsonSuccess(trade, "保存成功"); } return JsonSuccess(trade.TradeNumber, "保存成功"); } /// /// 远期录入api /// [HttpPost, Route("api/v1/order/ForwardTradeSave")] public ApiResponseModel ForwardTradeSave([FromBody] OtcTradeForward req, bool debug = false) { var trade = new OtcTradeSaveService(CurUser).SaveOptionForwardTradeFromApi(req, TradeSourceEnum.WebApiV2); if (debug) { return JsonSuccess(trade, "保存成功"); } return JsonSuccess(trade.TradeNumber, "保存成功"); } } }