Преглед изворни кода

修复云存播放列表漏数据问题

peng пре 2 година
родитељ
комит
4eb8c12958
2 измењених фајлова са 32 додато и 1 уклоњено
  1. 29 0
      Service/CommonService.py
  2. 3 1
      Service/VodHlsService.py

+ 29 - 0
Service/CommonService.py

@@ -645,6 +645,35 @@ GCqvlyw5dfxNA+EtxNE2wCW/LW7ENJlACgcfgPlBZtpLheWoZB/maw4=
             time_list = [time_tuple]
         return time_list
 
+    @staticmethod
+    def cutting_time_stamp(start_time, end_time):
+        """
+        按天切割时间段
+        @param start_time: 开始时间
+        @param end_time: 结束时间
+        @return: time_list 切割后的时间列表
+        """
+
+        time_list = []
+        while True:
+            mid_time = datetime.datetime(start_time.year, start_time.month, start_time.day)+relativedelta(days=1)
+            if mid_time < end_time:
+                time_tuple = (CommonService.str_to_timestamp(start_time.strftime('%Y-%m-%d %H:%M:%S')),
+                              CommonService.str_to_timestamp(mid_time.strftime('%Y-%m-%d %H:%M:%S')))
+                time_list.append(time_tuple)
+                start_time = mid_time
+            else:
+                time_tuple = (CommonService.str_to_timestamp(start_time.strftime('%Y-%m-%d %H:%M:%S')),
+                              CommonService.str_to_timestamp(end_time.strftime('%Y-%m-%d %H:%M:%S')))
+                if time_tuple not in time_list:
+                    time_list.append(time_tuple)
+                break
+        if not time_list:
+            time_tuple = (CommonService.str_to_timestamp(start_time.strftime('%Y-%m-%d %H:%M:%S')),
+                          CommonService.str_to_timestamp(end_time.strftime('%Y-%m-%d %H:%M:%S')))
+            time_list = [time_tuple]
+        return time_list
+
     @staticmethod
     def get_domain_name():
         """

+ 3 - 1
Service/VodHlsService.py

@@ -90,13 +90,15 @@ class SplitVodHlsObject:
             vod_hls_sun = VodHlsSun.objects.filter(pk=-1)
             start_time = datetime.datetime.fromtimestamp(int(start_time))
             end_time = datetime.datetime.fromtimestamp(int(end_time))
-            time_list = CommonService.cutting_time(start_time, end_time, 'day')
+            time_list = CommonService.cutting_time_stamp(start_time, end_time)
             day_list = []
+            type_list = kwargs.get('type_list')
             for time_item in time_list:
                 week = datetime.datetime.fromtimestamp(int(time_item[0])).isoweekday()
                 if week not in day_list:
                     day_list.append(week)
             for week in day_list:
+                kwargs['type_list'] = type_list
                 if week == 1:
                     kwargs = self.vod_query_param(week, **kwargs)
                     vod_hls_mon = VodHlsMon.objects.filter(**kwargs)