|
|
@@ -4,7 +4,7 @@ from loguru import logger
|
|
|
import sys
|
|
|
import time
|
|
|
from utils.sync_mysql_help import mysql
|
|
|
-import utils.params as DecodeWorkflowParam
|
|
|
+from datetime import datetime
|
|
|
|
|
|
|
|
|
|
|
|
@@ -42,18 +42,37 @@ def update_topic_result_by_id(param):
|
|
|
return video_id, status, video_url, title
|
|
|
|
|
|
|
|
|
-def get_user_count(name: str):
|
|
|
- now = int(time.time())
|
|
|
- lt = time.localtime(now)
|
|
|
- start_of_day = time.mktime((lt.tm_year, lt.tm_mon, lt.tm_mday, 0, 0, 0, lt.tm_wday, lt.tm_yday, lt.tm_isdst))
|
|
|
- start_ts = int(start_of_day)
|
|
|
+def get_user_count(name: str, day: str = None):
|
|
|
+ if day:
|
|
|
+ dt = datetime.strptime(day, "%Y-%m-%d")
|
|
|
+ start_ts = int(dt.timestamp())
|
|
|
+ else:
|
|
|
+ now = int(time.time())
|
|
|
+ lt = time.localtime(now)
|
|
|
+ start_ts = int(time.mktime((lt.tm_year, lt.tm_mon, lt.tm_mday, 0, 0, 0, lt.tm_wday, lt.tm_yday, lt.tm_isdst)))
|
|
|
end_ts = start_ts + 86400
|
|
|
- sql = "SELECT COUNT(*) FROM decode_workflow WHERE account = %s AND created_at >= %s AND created_at < %s"
|
|
|
- count = mysql.fetchall(sql, (name, start_ts, end_ts))
|
|
|
- if not count:
|
|
|
- logger.info(f"account = {name} , 任务不存在")
|
|
|
- return None
|
|
|
- return count[0][0]
|
|
|
+ sql1 = (
|
|
|
+ "SELECT COUNT(*) AS cnt FROM decode_workflow "
|
|
|
+ "WHERE account = %s AND created_at IS NOT NULL AND created_at >= %s AND created_at < %s"
|
|
|
+ )
|
|
|
+ row1 = mysql.fetchone(sql1, (name, start_ts * 1000, end_ts * 1000))
|
|
|
+ cnt1 = int(row1.get('cnt', 0)) if row1 else 0
|
|
|
+ sql_has_create = (
|
|
|
+ "SELECT 1 AS ok FROM information_schema.COLUMNS "
|
|
|
+ "WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'decode_workflow' AND COLUMN_NAME = 'create'"
|
|
|
+ )
|
|
|
+ has_create = mysql.fetchone(sql_has_create)
|
|
|
+ cnt2 = 0
|
|
|
+ if has_create:
|
|
|
+ sql2 = (
|
|
|
+ "SELECT COUNT(*) AS cnt FROM decode_workflow "
|
|
|
+ "WHERE account = %s AND `create` IS NOT NULL AND `create` >= %s AND `create` < %s"
|
|
|
+ )
|
|
|
+ row2 = mysql.fetchone(sql2, (name, start_ts, end_ts))
|
|
|
+ cnt2 = int(row2.get('cnt', 0)) if row2 else 0
|
|
|
+ cnt = cnt1 + cnt2
|
|
|
+ logger.info(f"account = {name} , 任务数量 = {cnt}")
|
|
|
+ return cnt
|
|
|
|
|
|
|
|
|
|
|
|
@@ -96,6 +115,6 @@ def search_topic_list(param=None):
|
|
|
return tasks
|
|
|
|
|
|
|
|
|
-# if __name__ == "__main__":
|
|
|
-# decode_task_status_handler()
|
|
|
+if __name__ == "__main__":
|
|
|
+ get_user_count("liubin")
|
|
|
|