using Org.BouncyCastle.Ocsp; using YLErp.Modules.ApiModule; using YLErp.Modules.CalculationModule; using YLErp.Modules.ExchangeTradeModule; using YLErp.Modules.TradeRiskCalcModule; namespace YLWebAPI.ApiModule.ManagerApi { /// /// 场内交易API /// [ManagerAuth] public class ExchangeTradeController : BaseApiController { /// /// 获取实时场内交易持仓数据 /// [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(): result); } /// /// 获取实时场内交易持仓数据 /// [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); } } /// /// 获取实时场内交易持仓数据 /// [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 ? "成功新增" : "成功更新" }); } } }