90 lines
2.7 KiB
C#
90 lines
2.7 KiB
C#
using YLErp.Modules.VolatilityModule;
|
|
using YLErp.Modules.VolatilityModule.ApiModule;
|
|
|
|
namespace YLWebAPI.ApiModule.ManagerApi
|
|
{
|
|
/// <summary>
|
|
/// 关于波动率曲面相关API处理
|
|
/// </summary>
|
|
[ManagerAuth]
|
|
public class VolSurfaceController : BaseApiController
|
|
{
|
|
/// <summary>
|
|
/// 读取波动率曲面
|
|
/// </summary>
|
|
[HttpPost, Route("api/v1/getUnderlyingVolSurface")]
|
|
public ApiResponseModel GetUnderlyingVolSurface([FromBody] BatchVolatilityRequest2 reqModel)
|
|
{
|
|
if (reqModel is null)
|
|
{
|
|
return JsonError("处理请求失败:参数为null");
|
|
}
|
|
|
|
reqModel.UserGroup = CurUser.UserGroup;
|
|
|
|
var uVols = new UnderlyingVolService(CurUser).GetUnderlyingVolSurfaces(reqModel);
|
|
|
|
return JsonSuccess(uVols);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 修改波动率曲面
|
|
/// </summary>
|
|
[HttpPost, Route("api/v1/saveVolatility")]
|
|
public ApiResponseModel SaveVolatility([FromBody] volatility reqModel)
|
|
{
|
|
if (reqModel is null)
|
|
{
|
|
return JsonError("参数错误");
|
|
}
|
|
|
|
reqModel.UserGroup = CurUser.UserGroup;
|
|
var vol = new UnderlyingVolService(CurUser).SaveVolatility(reqModel);
|
|
return JsonSuccess(vol);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 读取波动率曲面
|
|
/// </summary>
|
|
[HttpPost, Route("api/v2/getUnderlyingVolSurface")]
|
|
public ApiResponseModel GetUnderlyingVolSurfaceV2([FromBody] UnderlyingVolQueryApiRequestV2 request)
|
|
{
|
|
if (request is null)
|
|
{
|
|
return JsonError("处理请求失败:参数为null");
|
|
}
|
|
|
|
var uVols = new UnderlyingVolServiceV2(CurUser).GetVolSurfaces(request);
|
|
|
|
return JsonSuccess(uVols);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 修改波动率曲面
|
|
/// </summary>
|
|
[HttpPost, Route("api/v2/saveVolatility")]
|
|
public ApiResponseModel SaveVolatilityV2([FromBody] UnderlyingVolSaveApiRequestV2 request)
|
|
{
|
|
if (request is null)
|
|
{
|
|
return JsonError("参数错误");
|
|
}
|
|
|
|
request.UserGroup = CurUser.UserGroup;
|
|
var vol = new UnderlyingVolServiceV2(CurUser).SaveVolSurface(request);
|
|
return JsonSuccess(vol);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 从波动率曲面上根据参数获取一个点的值
|
|
/// </summary>
|
|
[HttpPost, Route("api/v1/getVol")]
|
|
public ApiResponseModel AjaxGetVol(SingleVolReq req)
|
|
{
|
|
var vol = SingleVolService.GetSingleVol(req, CurUser.UserId);
|
|
|
|
return JsonSuccess(new { vol });
|
|
}
|
|
}
|
|
}
|