Files
zszq-trs/Framework/SharedWebApi/ManagerApi/OrderApiController.cs
T
2024-05-09 14:06:26 +08:00

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, "保存成功");
}
}
}