|
|
@ -60,16 +60,7 @@ namespace Binance.TradeRobot.Business |
|
|
|
|
|
|
|
public IList<UserResponse> GetUserList(bool multiplyBy100 = true) |
|
|
|
{ |
|
|
|
var userList = fsql.Select<User>().ToList(u => new UserResponse() |
|
|
|
{ |
|
|
|
Id = u.Id, |
|
|
|
CostAmount = u.CostAmount, |
|
|
|
CreateTime = u.CreateTime, |
|
|
|
Profit = u.Profit, |
|
|
|
UpdateTime = u.UpdateTime, |
|
|
|
UserName = u.UserName, |
|
|
|
WithdrawAmount = u.WithdrawAmount |
|
|
|
}); |
|
|
|
var userList = fsql.Select<User>().ToList().Map<IList<UserResponse>>(); |
|
|
|
userList.CalculateRatio(multiplyBy100); |
|
|
|
return userList; |
|
|
|
} |
|
|
@ -95,44 +86,16 @@ namespace Binance.TradeRobot.Business |
|
|
|
{ |
|
|
|
if (changeUser.TotalAssets < changeAmount) |
|
|
|
throw new BusinessException("用户资产小于减持资金,不能提现"); |
|
|
|
|
|
|
|
//获取交易所账户总额(usdt)
|
|
|
|
//var apiKeyList = stockExchangeAccountBusiness.GetAPIKeyList(null);
|
|
|
|
//var totalBalance = apiKeyList.Sum(k => k.Balance);
|
|
|
|
//if (totalBalance < changeAmount)
|
|
|
|
// throw new BusinessException("交易所总余额小于减持资金,不能提现");
|
|
|
|
} |
|
|
|
|
|
|
|
changeUser.ChangeAmount(capitalChangeType, changeAmount, true); |
|
|
|
//if (capitalChangeType == Enums.CapitalChangeType.Add)
|
|
|
|
//{
|
|
|
|
// changeUser.CostAmount += changeAmount;
|
|
|
|
//}
|
|
|
|
//else if (capitalChangeType == Enums.CapitalChangeType.Reduce)
|
|
|
|
//{
|
|
|
|
// if (changeUser.Profit > 0)
|
|
|
|
// {
|
|
|
|
// if (changeUser.Profit >= changeAmount)
|
|
|
|
// changeUser.Profit -= changeAmount; //收益足够提现,只扣收益
|
|
|
|
// else
|
|
|
|
// {
|
|
|
|
// var lessChangeAmount = changeAmount; //收益不足提现,先扣收益,不足部分再扣本金
|
|
|
|
// lessChangeAmount -= changeUser.Profit;
|
|
|
|
// changeUser.Profit = 0;
|
|
|
|
// changeUser.CostAmount -= lessChangeAmount;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// else
|
|
|
|
// {
|
|
|
|
// changeUser.CostAmount -= changeAmount;
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
|
|
|
|
fsql.Transaction(() => |
|
|
|
{ |
|
|
|
fsql.Update<User>(changeUser.Id).Set(u => u.CostAmount, changeUser.CostAmount) |
|
|
|
.Set(u => u.Profit, changeUser.Profit) |
|
|
|
.SetIf(capitalChangeType == Enums.CapitalChangeType.Reduce, u => u.WithdrawAmount + changeAmount) |
|
|
|
.ExecuteAffrows(); |
|
|
|
.Set(u => u.TotalAssets, changeUser.TotalAssets) |
|
|
|
.Set(u => u.WithdrawAmount, changeUser.WithdrawAmount) |
|
|
|
.ExecuteAffrows(); |
|
|
|
|
|
|
|
fsql.Insert(new UserAccountFundChangeRecord() |
|
|
|
{ |
|
|
@ -177,32 +140,20 @@ namespace Binance.TradeRobot.Business |
|
|
|
if (fromUser.TotalAssets < fundsTransferRequest.ChangeAmount) |
|
|
|
throw new BusinessException("用户资产小于转移资金,不能转移"); |
|
|
|
|
|
|
|
if (fromUser.Profit > 0) |
|
|
|
{ |
|
|
|
if (fromUser.Profit >= fundsTransferRequest.ChangeAmount) |
|
|
|
fromUser.Profit -= fundsTransferRequest.ChangeAmount; //收益足够提现,只扣收益
|
|
|
|
else |
|
|
|
{ |
|
|
|
var lessChangeAmount = fundsTransferRequest.ChangeAmount; //收益不足提现,先扣收益,不足部分再扣本金
|
|
|
|
lessChangeAmount -= fromUser.Profit; |
|
|
|
fromUser.Profit = 0; |
|
|
|
fromUser.CostAmount -= lessChangeAmount; |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
fromUser.CostAmount -= fundsTransferRequest.ChangeAmount; |
|
|
|
} |
|
|
|
fromUser.ChangeAmount(Enums.CapitalChangeType.Reduce, fundsTransferRequest.ChangeAmount, true); |
|
|
|
toUser.ChangeAmount(Enums.CapitalChangeType.Add, fundsTransferRequest.ChangeAmount, true); |
|
|
|
|
|
|
|
|
|
|
|
fsql.Transaction(() => |
|
|
|
{ |
|
|
|
fsql.Update<User>(fromUser.Id).Set(u => u.CostAmount, fromUser.CostAmount) |
|
|
|
.Set(u => u.Profit, fromUser.Profit) |
|
|
|
.Set(u => u.WithdrawAmount + fundsTransferRequest.ChangeAmount) |
|
|
|
.ExecuteAffrows(); |
|
|
|
.Set(u => u.TotalAssets, fromUser.TotalAssets) |
|
|
|
.Set(u => u.WithdrawAmount, fromUser.WithdrawAmount) |
|
|
|
.ExecuteAffrows(); |
|
|
|
|
|
|
|
fsql.Update<User>(toUser.Id).Set(u => u.CostAmount + fundsTransferRequest.ChangeAmount) |
|
|
|
.ExecuteAffrows(); |
|
|
|
fsql.Update<User>(toUser.Id).Set(u => u.CostAmount, toUser.CostAmount) |
|
|
|
.Set(u => u.TotalAssets, toUser.TotalAssets) |
|
|
|
.ExecuteAffrows(); |
|
|
|
|
|
|
|
fsql.Insert(new UserAccountFundChangeRecord() |
|
|
|
{ |
|
|
@ -283,7 +234,7 @@ namespace Binance.TradeRobot.Business |
|
|
|
Symbol = r.Symbol, |
|
|
|
UserId = p.UserId, |
|
|
|
UserName = u.UserName, |
|
|
|
UserProfit = p.UserProfit |
|
|
|
CumulativeProfitAndLoss = p.CumulativeProfitAndLoss |
|
|
|
}); |
|
|
|
return new UserAccountProfitLossRecordListResponse() |
|
|
|
{ |
|
|
|