perf: optimize polling, stats cache, and frontend chunk splitting
This commit is contained in:
53
db/admin.py
53
db/admin.py
@@ -190,41 +190,40 @@ def get_system_stats() -> dict:
|
||||
with db_pool.get_db() as conn:
|
||||
cursor = conn.cursor()
|
||||
|
||||
total_users = _count_scalar(cursor, "SELECT COUNT(*) as count FROM users")
|
||||
approved_users = _count_scalar(cursor, "SELECT COUNT(*) as count FROM users WHERE status = 'approved'")
|
||||
new_users_today = _count_scalar(
|
||||
cursor,
|
||||
cursor.execute(
|
||||
"""
|
||||
SELECT COUNT(*) as count
|
||||
SELECT
|
||||
COUNT(*) AS total_users,
|
||||
SUM(CASE WHEN status = 'approved' THEN 1 ELSE 0 END) AS approved_users,
|
||||
SUM(CASE WHEN date(created_at) = date('now', 'localtime') THEN 1 ELSE 0 END) AS new_users_today,
|
||||
SUM(CASE WHEN datetime(created_at) >= datetime('now', 'localtime', '-7 days') THEN 1 ELSE 0 END) AS new_users_7d,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN vip_expire_time IS NOT NULL
|
||||
AND datetime(vip_expire_time) > datetime('now', 'localtime')
|
||||
THEN 1 ELSE 0
|
||||
END
|
||||
) AS vip_users
|
||||
FROM users
|
||||
WHERE date(created_at) = date('now', 'localtime')
|
||||
""",
|
||||
)
|
||||
new_users_7d = _count_scalar(
|
||||
cursor,
|
||||
"""
|
||||
SELECT COUNT(*) as count
|
||||
FROM users
|
||||
WHERE datetime(created_at) >= datetime('now', 'localtime', '-7 days')
|
||||
""",
|
||||
)
|
||||
user_stats = cursor.fetchone() or {}
|
||||
|
||||
def _to_int(key: str) -> int:
|
||||
try:
|
||||
return int(user_stats[key] or 0)
|
||||
except Exception:
|
||||
return 0
|
||||
|
||||
total_accounts = _count_scalar(cursor, "SELECT COUNT(*) as count FROM accounts")
|
||||
vip_users = _count_scalar(
|
||||
cursor,
|
||||
"""
|
||||
SELECT COUNT(*) as count FROM users
|
||||
WHERE vip_expire_time IS NOT NULL
|
||||
AND datetime(vip_expire_time) > datetime('now', 'localtime')
|
||||
""",
|
||||
)
|
||||
|
||||
return {
|
||||
"total_users": total_users,
|
||||
"approved_users": approved_users,
|
||||
"new_users_today": new_users_today,
|
||||
"new_users_7d": new_users_7d,
|
||||
"total_users": _to_int("total_users"),
|
||||
"approved_users": _to_int("approved_users"),
|
||||
"new_users_today": _to_int("new_users_today"),
|
||||
"new_users_7d": _to_int("new_users_7d"),
|
||||
"total_accounts": total_accounts,
|
||||
"vip_users": vip_users,
|
||||
"vip_users": _to_int("vip_users"),
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user