diff --git a/Binance.TradeRobot.Business/Exchange/ExchangeBusiness.cs b/Binance.TradeRobot.Business/Exchange/ExchangeBusiness.cs index 7409949..3e19a6d 100644 --- a/Binance.TradeRobot.Business/Exchange/ExchangeBusiness.cs +++ b/Binance.TradeRobot.Business/Exchange/ExchangeBusiness.cs @@ -21,10 +21,15 @@ namespace Binance.TradeRobot.Business.Exchange public void AddExchangeAccount(AddExchangeAccountRequest addExchangeAccountRequest) { - if (addExchangeAccountRequest.Id == 0 || string.IsNullOrEmpty(addExchangeAccountRequest.LoginName)) + if (addExchangeAccountRequest.Id == 0 || + string.IsNullOrEmpty(addExchangeAccountRequest.LoginName) || + string.IsNullOrEmpty(addExchangeAccountRequest.APIKey) || + string.IsNullOrEmpty(addExchangeAccountRequest.SecretKey)) throw new BusinessException("交易所账号参数有误"); if (fsql.Select(addExchangeAccountRequest.Id).Any()) throw new BusinessException("交易所账号重复"); + if (fsql.Select().Where(k => k.APIKey == addExchangeAccountRequest.APIKey || k.SecretKey == addExchangeAccountRequest.SecretKey).Any()) + throw new BusinessException("重复的APIKey或SecretKey"); var exchangeAccount = addExchangeAccountRequest.Map(); if (addExchangeAccountRequest.TradePolicy == Enums.TradePolicy.金字塔) @@ -33,12 +38,20 @@ namespace Binance.TradeRobot.Business.Exchange if (addExchangeAccountRequest.TradePolicy == Enums.TradePolicy.动量趋势v2) exchangeAccount.BusinessType = Enums.BusinessType.Spot_Margin; - fsql.Transaction(() => + var exchangeAPIKey = new ExchangeAPIKey() { + Id = idGenerator.NewLong(), + AccountId = addExchangeAccountRequest.Id, + APIKey = addExchangeAccountRequest.APIKey, + SecretKey = addExchangeAccountRequest.SecretKey + }; + fsql.Transaction(() => + { + fsql.Insert(exchangeAPIKey).ExecuteAffrows(); fsql.Insert(exchangeAccount).ExecuteAffrows(); }); - + } public void AddExchangeAPIKey(AddExchangeAPIKeyRequest addExchangeAPIKeyRequest)