update check ETH USDT USDC balance function
This commit is contained in:
@@ -94,7 +94,9 @@ class UserService {
|
||||
SELECT
|
||||
u.*,
|
||||
COUNT(DISTINCT p.id) as purchase_count,
|
||||
COALESCE(SUM(p.total_price), 0) as total_spent,
|
||||
(SELECT COALESCE(SUM(p2.total_price), 0)
|
||||
FROM purchases p2
|
||||
WHERE p2.user_id = u.id) as total_spent,
|
||||
COUNT(DISTINCT cw.id) as crypto_wallet_count,
|
||||
COUNT(DISTINCT cw2.id) as archived_wallet_count
|
||||
FROM users u
|
||||
@@ -162,19 +164,28 @@ class UserService {
|
||||
|
||||
static async getUserBalance(userId) {
|
||||
try {
|
||||
const user = await db.getAsync(
|
||||
// Пересчитываем баланс перед получением
|
||||
const user = await this.getUserByUserId(userId);
|
||||
if (!user) {
|
||||
throw new Error('User not found');
|
||||
}
|
||||
|
||||
await this.recalculateUserBalanceByTelegramId(user.telegram_id);
|
||||
|
||||
// Получаем обновленный баланс
|
||||
const updatedUser = await db.getAsync(
|
||||
`SELECT total_balance, bonus_balance
|
||||
FROM users
|
||||
WHERE id = ?`,
|
||||
[userId]
|
||||
);
|
||||
|
||||
if (!user) {
|
||||
|
||||
if (!updatedUser) {
|
||||
throw new Error('User not found');
|
||||
}
|
||||
|
||||
|
||||
// Возвращаем сумму основного и бонусного баланса
|
||||
return user.total_balance + user.bonus_balance;
|
||||
return updatedUser.total_balance + updatedUser.bonus_balance;
|
||||
} catch (error) {
|
||||
console.error('Error getting user balance:', error);
|
||||
throw error;
|
||||
|
||||
Reference in New Issue
Block a user