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

74 lines
2.5 KiB
C#

using Org.BouncyCastle.Ocsp;
using YLErp.Modules.ApiModule;
using YLErp.Modules.CalculationModule;
using YLErp.Modules.ExchangeTradeModule;
using YLErp.Modules.TradeRiskCalcModule;
namespace YLWebAPI.ApiModule.ManagerApi
{
/// <summary>
/// 场内交易API
/// </summary>
[ManagerAuth]
public class ExchangeTradeController : BaseApiController
{
/// <summary>
/// 获取实时场内交易持仓数据
/// </summary>
[HttpPost, Route("api/v1/realtimeExchangePositions")]
[Route("api/v1/exchange/realtimeExchangePositions")]
public ApiResponseModel RealtimeExchangePositions()
{
// 获取用户信息
var user = (LoadUserMiddleware.AuthUserInfo)HttpContext.User.Identity;
// 通过接口查询持仓数据
var result = new YLErpWebApiHelper(user.CreateJwtToken).GetExchangePositions().Result;
// 响应结果
return JsonSuccess(result==null?Enumerable.Empty<ExchangePositionItem>(): result);
}
/// <summary>
/// 获取实时场内交易持仓数据
/// </summary>
[HttpPost, Route("api/v1/todayExchangePositions")]
[Route("api/v1/exchange/todayExchangePositions")]
public ApiResponseModel TodayExchangePositions([FromBody] TodayExchangePositionsReqModel req)
{
var date = req?.ValueDate ?? valuedateBLL.ValueDate;
using (var db = DbContextFactory.GetYLDbContext())
{
var tdQuery = from trad in db.ExchangeTrade.AsNoTracking()
where trad.TradeDate == date && trad.IsValid
select trad;
var tdDatas = tdQuery.ToArray();
var results = new ExchangePositionCalcService(date, new ExchangeTradeCommissionCalc()).Calculate(tdDatas, null, null);
return JsonSuccess(results);
}
}
/// <summary>
/// 获取实时场内交易持仓数据
/// </summary>
[HttpPost, Route("api/v1/exchange/trade/save")]
public ApiResponseModel SaveExchangeTrade([FromBody] ExchangeTradeApiReq req)
{
if (req.TradeType == "期货")
{
req.TradeType = "商品期货";
}
var td = new ExchangeTradeApiService(CurUser).Save(req, "WebApi", out var isAddNew);
return JsonSuccess(new
{
td.id,
result = isAddNew ? "成功新增" : "成功更新"
});
}
}
}