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

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 });
}
}
}