Bläddra i källkod

增加前五天召回源

罗俊辉 1 år sedan
förälder
incheckning
b273646615
2 ändrade filer med 45 tillägg och 5 borttagningar
  1. 12 5
      applications/functions/calculate.py
  2. 33 0
      applications/functions/date.py

+ 12 - 5
applications/functions/calculate.py

@@ -5,6 +5,7 @@ import json
 import os
 import os
 
 
 from applications.log import logging
 from applications.log import logging
+from applications.functions.date import generate_daily_strings, five_days_before
 
 
 
 
 def read_single_file(filename):
 def read_single_file(filename):
@@ -101,13 +102,19 @@ def title_mix(title_p, dt, trace_id):
     :param title_p:
     :param title_p:
     :param dt: dt
     :param dt: dt
     """
     """
-    json_path = os.path.join(os.getcwd(), 'applications', 'static', dt)
-    # 处理标题信息
-    files = os.listdir(json_path)
-    pq_files = [os.path.join(json_path, file) for file in files]
+    five_days_ago = five_days_before(ori_dt=dt)
+    days_list = generate_daily_strings(five_days_ago, dt)
+    L = []
+    for day_str in days_list:
+        json_path = os.path.join(os.getcwd(), 'applications', 'static', day_str)
+        # 处理标题信息
+        files = os.listdir(json_path)
+        for file in files:
+            if file.endswith(".json"):
+                L.append(os.path.join(json_path, file))
     score_list_1 = []
     score_list_1 = []
     score_list_2 = []
     score_list_2 = []
-    for file in pq_files:
+    for file in L:
         file_name = file.split('/')[-1].replace(".json", "")
         file_name = file.split('/')[-1].replace(".json", "")
         v_id = file_name.split('_')[1]
         v_id = file_name.split('_')[1]
         uid = file_name.split('_')[0]
         uid = file_name.split('_')[0]

+ 33 - 0
applications/functions/date.py

@@ -0,0 +1,33 @@
+"""
+@author: luojunhui
+"""
+from datetime import datetime, timedelta
+
+
+def five_days_before(ori_dt):
+    """
+    Generate date in 3 days
+    :param ori_dt:
+    :return:
+    """
+    now_date = datetime.strptime(ori_dt, "%Y%m%d")
+    seven_before = now_date - timedelta(days=5)
+    return seven_before.strftime("%Y%m%d")
+
+
+def generate_daily_strings(start_date, end_date):
+    """
+    Generate daily date_str
+    :param start_date:
+    :param end_date:
+    :return:
+    """
+    start = datetime.strptime(start_date, "%Y%m%d")
+    end = datetime.strptime(end_date, "%Y%m%d")
+    current = start
+    date_strings = []
+    while current <= end:
+        date_strings.append(current.strftime("%Y%m%d"))
+        current += timedelta(days=1)
+    return date_strings
+