sql_help.py 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. import os
  2. import sys
  3. from datetime import datetime
  4. sys.path.append(os.getcwd())
  5. from utils.mysql_db import MysqlHelper
  6. class sqlCollect:
  7. @classmethod
  8. def get_channel_count(cls, channel, name):
  9. sql = """SELECT count(0) FROM machine_making_data where channel = %s and name = %s and DATE(data_time) = CURRENT_DATE AND HOUR(data_time) <= HOUR(NOW());"""
  10. count = MysqlHelper.get_values(sql, (str(channel), name))
  11. return count
  12. @classmethod
  13. def get_ytd_channel_count(cls, channel, name):
  14. sql = """SELECT count(0) FROM machine_making_data where channel = %s and name = %s and data_time >= CURRENT_DATE - INTERVAL 1 DAY AND data_time <= CURRENT_DATE - INTERVAL 1 DAY + INTERVAL HOUR(NOW()) HOUR;"""
  15. count = MysqlHelper.get_values(sql, (str(channel), name))
  16. return count
  17. @classmethod
  18. def get_name_count(cls, name):
  19. sql = """SELECT count(0) FROM machine_making_data where name = %s and DATE(data_time) = CURRENT_DATE AND HOUR(data_time) <= HOUR(NOW());"""
  20. count = MysqlHelper.get_values(sql, (str(name)))
  21. return count
  22. @classmethod
  23. def get_ytd_name_count(cls, name):
  24. sql = """SELECT count(0) FROM machine_making_data where name = %s and data_time >= CURRENT_DATE - INTERVAL 1 DAY AND data_time <= CURRENT_DATE - INTERVAL 1 DAY + INTERVAL HOUR(NOW()) HOUR;"""
  25. count = MysqlHelper.get_values(sql, (str(name)))
  26. return count
  27. @classmethod
  28. def get_crawler_count(cls, platform):
  29. sql = """SELECT count(0) FROM crawler_video where platform = %s and DATE(create_time) = CURRENT_DATE AND HOUR(create_time) < HOUR(NOW());"""
  30. count = MysqlHelper.get_values(sql, (str(platform)))
  31. return count
  32. @classmethod
  33. def get_ytd_crawler_count(cls, platform):
  34. sql = """SELECT count(0) FROM crawler_video where platform = %s and create_time >= CURRENT_DATE - INTERVAL 1 DAY AND create_time < CURRENT_DATE - INTERVAL 1 DAY + INTERVAL HOUR(NOW()) HOUR;"""
  35. count = MysqlHelper.get_values(sql, (str(platform)))
  36. return count
  37. @classmethod
  38. def get_bygj_count(cls, name):
  39. sql = """SELECT count(0) FROM machine_making_data where name = %s and task_mark = "搬运工具" and DATE(data_time) = CURRENT_DATE AND HOUR(data_time) <= HOUR(NOW());"""
  40. count = MysqlHelper.get_values(sql, (str(name)))
  41. return count
  42. @classmethod
  43. def get_bygj_all_count(cls):
  44. sql = """SELECT count(0) FROM machine_making_data where task_mark = %s and DATE(data_time) = CURRENT_DATE AND HOUR(data_time) <= HOUR(NOW());"""
  45. count = MysqlHelper.get_values(sql, (str("搬运工具")))
  46. return count
  47. @classmethod
  48. def get_ytd_bygj_count(cls, name):
  49. sql = """SELECT count(0) FROM machine_making_data where name = %s and task_mark = "搬运工具" and data_time >= CURRENT_DATE - INTERVAL 1 DAY AND data_time <= CURRENT_DATE - INTERVAL 1 DAY + INTERVAL HOUR(NOW()) HOUR;"""
  50. count = MysqlHelper.get_values(sql, (str(name)))
  51. return count
  52. """
  53. 视频信息写入库中
  54. """
  55. @classmethod
  56. def insert_task(cls, task_mark, video_id, mark, channel):
  57. current_time = datetime.now()
  58. formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
  59. insert_sql = f"""INSERT INTO pj_video_data (task_name, used_video_id, mark_name, data_time, channel) values ('{task_mark}' ,'{video_id}','{mark}', '{formatted_time}', '{channel}')"""
  60. MysqlHelper.update_values(
  61. sql=insert_sql
  62. )
  63. """写入数据库"""
  64. @classmethod
  65. def insert_machine_making_data(cls, name: str, task_mark: str, channel_id: str, url: str, v_id: str, piaoquan_id: str, new_title: str, code: str, formatted_time, old_title: str, oss_object_key: str):
  66. insert_sql = f"""INSERT INTO machine_making_data (name, task_mark, channel, user, v_id, pq_uid, title, pq_vid, data_time, old_title, oss_object_key) values ("{name}", "{task_mark}", "{channel_id}", "{url}", "{v_id}" , "{piaoquan_id}", "{new_title}", "{code}", "{formatted_time}", "{old_title}", "{oss_object_key}")"""
  67. MysqlHelper.update_values(
  68. sql=insert_sql
  69. )
  70. return
  71. @classmethod
  72. def get_mark_count(cls, mark: str):
  73. sql = """SELECT count(0) FROM machine_making_data where task_mark = %s and DATE(data_time) = CURRENT_DATE AND HOUR(data_time) <= HOUR(NOW());"""
  74. count = MysqlHelper.get_values(sql, (str(mark)))
  75. return count
  76. """
  77. 根据时间判断该任务id是否用过
  78. """
  79. @classmethod
  80. def is_used_days(cls, video_id, channel, day_count):
  81. sql = """
  82. SELECT used_video_id
  83. FROM pj_video_data
  84. WHERE used_video_id = %s
  85. AND channel = %s
  86. AND data_time >= DATE_SUB(NOW(), INTERVAL %s DAY)
  87. ORDER BY data_time DESC
  88. LIMIT 1;
  89. """
  90. data = MysqlHelper.get_values(sql, (str(video_id), channel, int(day_count)))
  91. if len(data) == 0 or data == ():
  92. return False
  93. return True
  94. """
  95. 判断该任务id是否用过
  96. """
  97. @classmethod
  98. def is_used(cls, video_id, channel):
  99. sql = """
  100. SELECT used_video_id
  101. FROM pj_video_data
  102. WHERE used_video_id = %s AND channel = %s
  103. ORDER BY data_time DESC
  104. LIMIT 1
  105. """
  106. data = MysqlHelper.get_values(sql, (str(video_id), channel))
  107. if len(data) == 0 or data == ():
  108. return False
  109. return True