118 lines
4.4 KiB
C#
118 lines
4.4 KiB
C#
using YLErp.Model.Enum;
|
|
using YLErp.Modules.TradeModule.OrderModule;
|
|
|
|
namespace YLWebAPI.ApiModule.ManagerApi
|
|
{
|
|
/// <summary>
|
|
/// 交易下单控制器
|
|
/// </summary>
|
|
[ManagerAuth]
|
|
public class OrderApiController : BaseApiController
|
|
{
|
|
/// <summary>
|
|
/// 场外期权交易
|
|
/// </summary>
|
|
[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, "保存成功");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 场外期权结构化交易
|
|
/// </summary>
|
|
[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, "保存成功");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 场外期权组合交易
|
|
/// </summary>
|
|
[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, "保存成功");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 场外期权组合交易--修改主交易
|
|
/// </summary>
|
|
[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, "保存成功");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 远期录入api
|
|
/// </summary>
|
|
[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, "保存成功");
|
|
}
|
|
}
|
|
}
|