|
@@ -3,10 +3,11 @@
|
|
|
# @Time : 2023/2/1 15:57
|
|
|
import datetime
|
|
|
|
|
|
+from django.db import connection
|
|
|
from django.db.models import Count
|
|
|
|
|
|
from Model.models import VodHlsMon, VodHlsTues, VodHlsWed, VodHlsThur, VodHlsFri, VodHlsSat, VodHlsSun, VodHlsTag, \
|
|
|
- AiService
|
|
|
+ AiService, VodHlsTagType
|
|
|
from Service.CommonService import CommonService
|
|
|
|
|
|
|
|
@@ -97,18 +98,25 @@ class SplitVodHlsObject:
|
|
|
day_list.append(week)
|
|
|
for week in day_list:
|
|
|
if week == 1:
|
|
|
+ kwargs = self.vod_query_param(week, **kwargs)
|
|
|
vod_hls_mon = VodHlsMon.objects.filter(**kwargs)
|
|
|
elif week == 2:
|
|
|
+ kwargs = self.vod_query_param(week, **kwargs)
|
|
|
vod_hls_tus = VodHlsTues.objects.filter(**kwargs)
|
|
|
elif week == 3:
|
|
|
+ kwargs = self.vod_query_param(week, **kwargs)
|
|
|
vod_hls_wed = VodHlsWed.objects.filter(**kwargs)
|
|
|
elif week == 4:
|
|
|
+ kwargs = self.vod_query_param(week, **kwargs)
|
|
|
vod_hls_thur = VodHlsThur.objects.filter(**kwargs)
|
|
|
elif week == 5:
|
|
|
+ kwargs = self.vod_query_param(week, **kwargs)
|
|
|
vod_hls_fri = VodHlsFri.objects.filter(**kwargs)
|
|
|
elif week == 6:
|
|
|
+ kwargs = self.vod_query_param(week, **kwargs)
|
|
|
vod_hls_sat = VodHlsSat.objects.filter(**kwargs)
|
|
|
elif week == 7:
|
|
|
+ kwargs = self.vod_query_param(week, **kwargs)
|
|
|
vod_hls_sun = VodHlsSun.objects.filter(**kwargs)
|
|
|
vod_hls = vod_hls.union(vod_hls_mon, vod_hls_tus, vod_hls_wed, vod_hls_thur, vod_hls_fri, vod_hls_sat,
|
|
|
vod_hls_sun)
|
|
@@ -176,3 +184,66 @@ class SplitVodHlsObject:
|
|
|
except Exception as e:
|
|
|
print('异常详情,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
return False
|
|
|
+
|
|
|
+ @classmethod
|
|
|
+ def vod_query_param(cls, week, **kwargs):
|
|
|
+ vod_ids = cls.query_tag_by_types(kwargs.get('uid'),
|
|
|
+ kwargs.get('start_time__range'),
|
|
|
+ kwargs.get('type_list'), week)
|
|
|
+ if vod_ids:
|
|
|
+ kwargs['id__in'] = vod_ids
|
|
|
+ kwargs.pop('type_list')
|
|
|
+ return kwargs
|
|
|
+
|
|
|
+ @classmethod
|
|
|
+ def query_tag_by_types(cls, uid, time, types, num):
|
|
|
+ """
|
|
|
+ 根据类型查询云存标签关联ID
|
|
|
+ @return:
|
|
|
+ """
|
|
|
+ try:
|
|
|
+ if not types or len(types) == 0:
|
|
|
+ return []
|
|
|
+ cursor = connection.cursor()
|
|
|
+ param_list = [int(time[0]), int(time[1]), uid, num]
|
|
|
+ sql = 'SELECT vod_hls_id FROM '
|
|
|
+ sql += 'vod_hls_tag vht INNER JOIN vod_hls_tag_type vhtt ON vht.id = vhtt.tag_id '
|
|
|
+ sql += 'WHERE vht.ai_event_time >= %s AND vht.ai_event_time <= %s '
|
|
|
+ sql += 'AND vht.uid = %s '
|
|
|
+ sql += 'AND tab_num = %s '
|
|
|
+ if types:
|
|
|
+ sql += 'AND vhtt.type IN %s '
|
|
|
+ param_list.append(types)
|
|
|
+ sql += 'GROUP BY vht.vod_hls_id '
|
|
|
+
|
|
|
+ cursor.execute(sql, param_list)
|
|
|
+ data_list = cursor.fetchall()
|
|
|
+ cursor.close() # 执行完,关闭
|
|
|
+ connection.close()
|
|
|
+ data_list = [val[0] for val in data_list]
|
|
|
+ return data_list
|
|
|
+ except Exception as e:
|
|
|
+ print('异常详情,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+ return False
|
|
|
+
|
|
|
+ @classmethod
|
|
|
+ def query_tag_type_list(cls, vod_id):
|
|
|
+ """
|
|
|
+ 根据云存ID获取AI类型
|
|
|
+ @return:
|
|
|
+ """
|
|
|
+ try:
|
|
|
+ cursor = connection.cursor()
|
|
|
+ sql = 'SELECT vhtt.type FROM '
|
|
|
+ sql += 'vod_hls_tag vht INNER JOIN vod_hls_tag_type vhtt ON vht.id = vhtt.tag_id '
|
|
|
+ sql += 'WHERE vht.vod_hls_id = %s '
|
|
|
+
|
|
|
+ cursor.execute(sql, [vod_id])
|
|
|
+ data_list = cursor.fetchall()
|
|
|
+ cursor.close() # 执行完,关闭
|
|
|
+ connection.close()
|
|
|
+ data_list = [val[0] for val in data_list]
|
|
|
+ return data_list
|
|
|
+ except Exception as e:
|
|
|
+ print('异常详情,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+ return []
|