update check ETH USDT USDC balance function

This commit is contained in:
NW
2025-01-08 12:01:02 +00:00
parent e64f185eda
commit 66f5251795
8 changed files with 686 additions and 304 deletions

View File

@@ -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;