sql_help.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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_name_count(cls, name):
  9. sql = """SELECT count(0) FROM machine_making_data where name = %s and DATE(data_time) = CURRENT_DATE AND HOUR(data_time) <= HOUR(NOW());"""
  10. count = MysqlHelper.get_values(sql, (str(name)))
  11. return count
  12. @classmethod
  13. def get_ytd_name_count(cls, name):
  14. 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;"""
  15. count = MysqlHelper.get_values(sql, (str(name)))
  16. return count
  17. @classmethod
  18. def get_crawler_count(cls, platform):
  19. sql = """SELECT count(0) FROM crawler_video where platform = %s and DATE(create_time) = CURRENT_DATE AND HOUR(create_time) < HOUR(NOW());"""
  20. count = MysqlHelper.get_values(sql, (str(platform)))
  21. return count
  22. @classmethod
  23. def get_ytd_crawler_count(cls, platform):
  24. 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;"""
  25. count = MysqlHelper.get_values(sql, (str(platform)))
  26. return count
  27. @classmethod
  28. def get_bygj_count(cls, name):
  29. 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());"""
  30. count = MysqlHelper.get_values(sql, (str(name)))
  31. return count
  32. @classmethod
  33. def get_bygj_all_count(cls):
  34. sql = """SELECT count(0) FROM machine_making_data where task_mark = %s and DATE(data_time) = CURRENT_DATE AND HOUR(data_time) <= HOUR(NOW());"""
  35. count = MysqlHelper.get_values(sql, (str("搬运工具")))
  36. return count
  37. @classmethod
  38. def get_ytd_bygj_count(cls, name):
  39. 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;"""
  40. count = MysqlHelper.get_values(sql, (str(name)))
  41. return count
  42. """
  43. 视频信息写入库中
  44. """
  45. @classmethod
  46. def insert_task(cls, task_mark, video_id, mark, channel):
  47. current_time = datetime.now()
  48. formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
  49. 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}')"""
  50. MysqlHelper.update_values(
  51. sql=insert_sql
  52. )
  53. """写入数据库"""
  54. @classmethod
  55. 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):
  56. 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}")"""
  57. MysqlHelper.update_values(
  58. sql=insert_sql
  59. )
  60. return
  61. @classmethod
  62. def get_mark_count(cls, mark: str):
  63. sql = """SELECT count(0) FROM machine_making_data where task_mark = %s and DATE(data_time) = CURRENT_DATE AND HOUR(data_time) <= HOUR(NOW());"""
  64. count = MysqlHelper.get_values(sql, (str(mark)))
  65. return count
  66. """
  67. 根据时间判断该任务id是否用过
  68. """
  69. @classmethod
  70. def is_used_days(cls, video_id, channel, day_count):
  71. sql = """
  72. SELECT used_video_id
  73. FROM pj_video_data
  74. WHERE used_video_id = %s
  75. AND channel = %s
  76. AND data_time >= DATE_SUB(NOW(), INTERVAL %s DAY)
  77. ORDER BY data_time DESC
  78. LIMIT 1;
  79. """
  80. data = MysqlHelper.get_values(sql, (str(video_id), channel, int(day_count)))
  81. if len(data) == 0 or data == ():
  82. return False
  83. return True
  84. """
  85. 判断该任务id是否用过
  86. """
  87. @classmethod
  88. def is_used(cls, video_id, channel):
  89. sql = """
  90. SELECT used_video_id
  91. FROM pj_video_data
  92. WHERE used_video_id = %s AND channel = %s
  93. ORDER BY data_time DESC
  94. LIMIT 1
  95. """
  96. data = MysqlHelper.get_values(sql, (str(video_id), channel))
  97. if len(data) == 0 or data == ():
  98. return False
  99. return True