using Binance.TradeRobot.Common.DI; using Binance.TradeRobot.Model.Base; using Binance.TradeRobot.Model.Db; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.DependencyInjection; using SDKAdapter.Model; using System; using System.Collections.Generic; using Yitter.IdGenerator; namespace Binance.TradeRobot.Business { [BatchRegistration(ServiceLifetime.Singleton, RegistrationType.Interface)] internal class D21OrderPublishBusiness : BaseSpotOrderPublishBusiness, ISpotOrderPublishBusiness { public Enums.TradePolicy TradePolicy => Enums.TradePolicy.D21; public RobotBusiness robotBusiness; public D21OrderPublishBusiness(IFreeSql fsql, NLogManager logManager, IIdGenerator idGenerator, IMemoryCache memoryCache, DingBusiness dingBusiness, RobotBusiness robotBusiness) : base(fsql, logManager, idGenerator, memoryCache, dingBusiness) { this.robotBusiness = robotBusiness; } public void OnSpotOrderPublish(SpotOrderPublishInfo spotOrderPublishInfo) { var logger = logManager.GetLogger(spotOrderPublishInfo.LoggerName); var step = ""; var logList = new List(); try { logList.Add(new ExecutionLog() { Id = idGenerator.NewLong(), CreateTime = DateTime.Now, OrderId = spotOrderPublishInfo.OrderId, RobotId = spotOrderPublishInfo.RobotId, SourceSingal = Enums.SingalType.订单推送, Content = $"收到订单推送,订单号:{spotOrderPublishInfo.OrderId},订单方向:{spotOrderPublishInfo.TradeDirection},订单类型:{spotOrderPublishInfo.OrderType},订单状态:{spotOrderPublishInfo.SpotOrderState},本次成交额:{spotOrderPublishInfo.LastTradeAmount}" }); } catch (Exception ex) { HandleError(ex, logList, spotOrderPublishInfo.LoggerName, spotOrderPublishInfo.RobotId, spotOrderPublishInfo.OrderId, step); } } } }