|
@@ -0,0 +1,428 @@
|
|
|
|
|
+# @Author : Rocky
|
|
|
|
|
+# @File : VodHlsOssService.py
|
|
|
|
|
+# @Time : 2023/2/1 15:57
|
|
|
|
|
+import random
|
|
|
|
|
+from Ansjer.config import LOGGER
|
|
|
|
|
+from django.db import connection
|
|
|
|
|
+from django.db.models import Value, CharField, Count
|
|
|
|
|
+
|
|
|
|
|
+from Model.models import VodHlsTag
|
|
|
|
|
+from VodHlsOssModel.models import VodHlsOss01, VodHlsOss02, VodHlsOss03, VodHlsOss04, VodHlsOss05, VodHlsOss06, VodHlsOss07, VodHlsOss08, VodHlsOss09, \
|
|
|
|
|
+ VodHlsOss10, VodHlsOss11, VodHlsOss12, VodHlsOss13, VodHlsOss14, VodHlsOss15, VodHlsOss16, VodHlsOss17, VodHlsOss18, VodHlsOss19, VodHlsOss20, \
|
|
|
|
|
+ VodHlsOss21, VodHlsOss22, VodHlsOss23, VodHlsOss24, VodHlsOss25, VodHlsOss26, VodHlsOss27, VodHlsOss28, VodHlsOss29, VodHlsOss30, VodHlsOss31, \
|
|
|
|
|
+ VodHlsOss32, VodHlsOss33, VodHlsOss34, VodHlsOss35, VodHlsOss36, VodHlsOss37, VodHlsOss38, VodHlsOss39, VodHlsOss40
|
|
|
|
|
+
|
|
|
|
|
+Vod_Hls_List = [VodHlsOss01, VodHlsOss02, VodHlsOss03, VodHlsOss04, VodHlsOss05, VodHlsOss06, VodHlsOss07, VodHlsOss08, VodHlsOss09, VodHlsOss10,
|
|
|
|
|
+ VodHlsOss11, VodHlsOss12, VodHlsOss13, VodHlsOss14, VodHlsOss15, VodHlsOss16, VodHlsOss17, VodHlsOss18, VodHlsOss19, VodHlsOss20,
|
|
|
|
|
+ VodHlsOss21, VodHlsOss22, VodHlsOss23, VodHlsOss24, VodHlsOss25, VodHlsOss26, VodHlsOss27, VodHlsOss28, VodHlsOss29, VodHlsOss30,
|
|
|
|
|
+ VodHlsOss31, VodHlsOss32, VodHlsOss33, VodHlsOss34, VodHlsOss35, VodHlsOss36, VodHlsOss37, VodHlsOss38, VodHlsOss39, VodHlsOss40]
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+class SplitVodHlsOssObject:
|
|
|
|
|
+ # VodHlsOss分表功能类
|
|
|
|
|
+
|
|
|
|
|
+ @staticmethod
|
|
|
|
|
+ def creat_vod_hls_data(**kwargs):
|
|
|
|
|
+ """
|
|
|
|
|
+ 分表保存云存信息数据
|
|
|
|
|
+ """
|
|
|
|
|
+ vod_hls_model = random.choice(Vod_Hls_List)
|
|
|
|
|
+ tal_num = Vod_Hls_List.index(vod_hls_model) + 1
|
|
|
|
|
+ vod_hls_obj = vod_hls_model.objects.create(**kwargs)
|
|
|
|
|
+ return vod_hls_obj, tal_num
|
|
|
|
|
+
|
|
|
|
|
+ @staticmethod
|
|
|
|
|
+ def del_vod_hls_data(**kwargs):
|
|
|
|
|
+ """
|
|
|
|
|
+ 分表删除云存信息数据
|
|
|
|
|
+ """
|
|
|
|
|
+ if 'id__in' in kwargs and 'uid' in kwargs:
|
|
|
|
|
+ uid = kwargs['uid']
|
|
|
|
|
+ for vod_id in kwargs['id__in']:
|
|
|
|
|
+ tal_index = int(vod_id[:2]) - 11
|
|
|
|
|
+ temp_id = vod_id[2:]
|
|
|
|
|
+ Vod_Hls_List[tal_index].objects.filter(id=temp_id, uid=uid).delete()
|
|
|
|
|
+ else:
|
|
|
|
|
+ for model in Vod_Hls_List:
|
|
|
|
|
+ model.objects.filter(**kwargs).delete()
|
|
|
|
|
+
|
|
|
|
|
+ def get_vod_hls_data(self, **kwargs):
|
|
|
|
|
+ """
|
|
|
|
|
+ 分表获取云存信息数据
|
|
|
|
|
+ @return: vod_hls
|
|
|
|
|
+ """
|
|
|
|
|
+ if 'type_list' in kwargs and kwargs['type_list']:
|
|
|
|
|
+ kwargs = self.vod_query_param(**kwargs)
|
|
|
|
|
+ if 'id__in' in kwargs:
|
|
|
|
|
+ if 1 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_01 = VodHlsOss01.objects.filter(id__in=kwargs['id__in'][1]).annotate(
|
|
|
|
|
+ tab_val=Value('11', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_01 = VodHlsOss01.objects.none().annotate(tab_val=Value('11', output_field=CharField()))
|
|
|
|
|
+ if 2 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_02 = VodHlsOss02.objects.filter(id__in=kwargs['id__in'][2]).annotate(
|
|
|
|
|
+ tab_val=Value('12', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_02 = VodHlsOss02.objects.none().annotate(tab_val=Value('12', output_field=CharField()))
|
|
|
|
|
+ if 3 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_03 = VodHlsOss03.objects.filter(id__in=kwargs['id__in'][3]).annotate(
|
|
|
|
|
+ tab_val=Value('13', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_03 = VodHlsOss03.objects.none().annotate(tab_val=Value('13', output_field=CharField()))
|
|
|
|
|
+ if 4 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_04 = VodHlsOss04.objects.filter(id__in=kwargs['id__in'][4]).annotate(
|
|
|
|
|
+ tab_val=Value('14', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_04 = VodHlsOss04.objects.none().annotate(tab_val=Value('14', output_field=CharField()))
|
|
|
|
|
+ if 5 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_05 = VodHlsOss05.objects.filter(id__in=kwargs['id__in'][5]).annotate(
|
|
|
|
|
+ tab_val=Value('15', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_05 = VodHlsOss05.objects.none().annotate(tab_val=Value('15', output_field=CharField()))
|
|
|
|
|
+ if 6 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_06 = VodHlsOss06.objects.filter(id__in=kwargs['id__in'][6]).annotate(
|
|
|
|
|
+ tab_val=Value('16', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_06 = VodHlsOss06.objects.none().annotate(tab_val=Value('16', output_field=CharField()))
|
|
|
|
|
+ if 7 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_07 = VodHlsOss07.objects.filter(id__in=kwargs['id__in'][7]).annotate(
|
|
|
|
|
+ tab_val=Value('17', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_07 = VodHlsOss07.objects.none().annotate(tab_val=Value('17', output_field=CharField()))
|
|
|
|
|
+ if 8 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_08 = VodHlsOss08.objects.filter(id__in=kwargs['id__in'][8]).annotate(
|
|
|
|
|
+ tab_val=Value('18', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_08 = VodHlsOss08.objects.none().annotate(tab_val=Value('18', output_field=CharField()))
|
|
|
|
|
+ if 9 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_09 = VodHlsOss09.objects.filter(id__in=kwargs['id__in'][9]).annotate(
|
|
|
|
|
+ tab_val=Value('19', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_09 = VodHlsOss09.objects.none().annotate(tab_val=Value('19', output_field=CharField()))
|
|
|
|
|
+ if 10 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_10 = VodHlsOss10.objects.filter(id__in=kwargs['id__in'][10]).annotate(
|
|
|
|
|
+ tab_val=Value('20', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_10 = VodHlsOss10.objects.none().annotate(tab_val=Value('20', output_field=CharField()))
|
|
|
|
|
+ if 11 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_11 = VodHlsOss11.objects.filter(id__in=kwargs['id__in'][11]).annotate(
|
|
|
|
|
+ tab_val=Value('21', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_11 = VodHlsOss11.objects.none().annotate(tab_val=Value('21', output_field=CharField()))
|
|
|
|
|
+ if 12 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_12 = VodHlsOss12.objects.filter(id__in=kwargs['id__in'][12]).annotate(
|
|
|
|
|
+ tab_val=Value('22', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_12 = VodHlsOss12.objects.none().annotate(tab_val=Value('22', output_field=CharField()))
|
|
|
|
|
+ if 13 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_13 = VodHlsOss13.objects.filter(id__in=kwargs['id__in'][13]).annotate(
|
|
|
|
|
+ tab_val=Value('23', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_13 = VodHlsOss13.objects.none().annotate(tab_val=Value('23', output_field=CharField()))
|
|
|
|
|
+ if 14 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_14 = VodHlsOss14.objects.filter(id__in=kwargs['id__in'][14]).annotate(
|
|
|
|
|
+ tab_val=Value('24', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_14 = VodHlsOss14.objects.none().annotate(tab_val=Value('24', output_field=CharField()))
|
|
|
|
|
+ if 15 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_15 = VodHlsOss15.objects.filter(id__in=kwargs['id__in'][15]).annotate(
|
|
|
|
|
+ tab_val=Value('25', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_15 = VodHlsOss15.objects.none().annotate(tab_val=Value('25', output_field=CharField()))
|
|
|
|
|
+ if 16 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_16 = VodHlsOss16.objects.filter(id__in=kwargs['id__in'][16]).annotate(
|
|
|
|
|
+ tab_val=Value('26', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_16 = VodHlsOss16.objects.none().annotate(tab_val=Value('26', output_field=CharField()))
|
|
|
|
|
+ if 17 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_17 = VodHlsOss17.objects.filter(id__in=kwargs['id__in'][17]).annotate(
|
|
|
|
|
+ tab_val=Value('27', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_17 = VodHlsOss17.objects.none().annotate(tab_val=Value('27', output_field=CharField()))
|
|
|
|
|
+ if 18 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_18 = VodHlsOss18.objects.filter(id__in=kwargs['id__in'][18]).annotate(
|
|
|
|
|
+ tab_val=Value('28', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_18 = VodHlsOss18.objects.none().annotate(tab_val=Value('28', output_field=CharField()))
|
|
|
|
|
+ if 19 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_19 = VodHlsOss19.objects.filter(id__in=kwargs['id__in'][19]).annotate(
|
|
|
|
|
+ tab_val=Value('29', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_19 = VodHlsOss19.objects.none().annotate(tab_val=Value('29', output_field=CharField()))
|
|
|
|
|
+ if 20 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_20 = VodHlsOss20.objects.filter(id__in=kwargs['id__in'][20]).annotate(
|
|
|
|
|
+ tab_val=Value('30', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_20 = VodHlsOss20.objects.none().annotate(tab_val=Value('30', output_field=CharField()))
|
|
|
|
|
+ if 21 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_21 = VodHlsOss21.objects.filter(id__in=kwargs['id__in'][21]).annotate(
|
|
|
|
|
+ tab_val=Value('31', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_21 = VodHlsOss21.objects.none().annotate(tab_val=Value('31', output_field=CharField()))
|
|
|
|
|
+ if 22 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_22 = VodHlsOss22.objects.filter(id__in=kwargs['id__in'][22]).annotate(
|
|
|
|
|
+ tab_val=Value('32', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_22 = VodHlsOss22.objects.none().annotate(tab_val=Value('32', output_field=CharField()))
|
|
|
|
|
+ if 23 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_23 = VodHlsOss23.objects.filter(id__in=kwargs['id__in'][23]).annotate(
|
|
|
|
|
+ tab_val=Value('33', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_23 = VodHlsOss23.objects.none().annotate(tab_val=Value('33', output_field=CharField()))
|
|
|
|
|
+ if 24 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_24 = VodHlsOss24.objects.filter(id__in=kwargs['id__in'][24]).annotate(
|
|
|
|
|
+ tab_val=Value('34', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_24 = VodHlsOss24.objects.none().annotate(tab_val=Value('34', output_field=CharField()))
|
|
|
|
|
+ if 25 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_25 = VodHlsOss25.objects.filter(id__in=kwargs['id__in'][25]).annotate(
|
|
|
|
|
+ tab_val=Value('35', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_25 = VodHlsOss25.objects.none().annotate(tab_val=Value('35', output_field=CharField()))
|
|
|
|
|
+ if 26 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_26 = VodHlsOss26.objects.filter(id__in=kwargs['id__in'][26]).annotate(
|
|
|
|
|
+ tab_val=Value('36', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_26 = VodHlsOss26.objects.none().annotate(tab_val=Value('36', output_field=CharField()))
|
|
|
|
|
+ if 27 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_27 = VodHlsOss27.objects.filter(id__in=kwargs['id__in'][27]).annotate(
|
|
|
|
|
+ tab_val=Value('37', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_27 = VodHlsOss27.objects.none().annotate(tab_val=Value('37', output_field=CharField()))
|
|
|
|
|
+ if 28 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_28 = VodHlsOss28.objects.filter(id__in=kwargs['id__in'][28]).annotate(
|
|
|
|
|
+ tab_val=Value('38', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_28 = VodHlsOss28.objects.none().annotate(tab_val=Value('38', output_field=CharField()))
|
|
|
|
|
+ if 29 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_29 = VodHlsOss29.objects.filter(id__in=kwargs['id__in'][29]).annotate(
|
|
|
|
|
+ tab_val=Value('39', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_29 = VodHlsOss29.objects.none().annotate(tab_val=Value('39', output_field=CharField()))
|
|
|
|
|
+ if 30 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_30 = VodHlsOss30.objects.filter(id__in=kwargs['id__in'][30]).annotate(
|
|
|
|
|
+ tab_val=Value('40', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_30 = VodHlsOss30.objects.none().annotate(tab_val=Value('40', output_field=CharField()))
|
|
|
|
|
+ if 31 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_31 = VodHlsOss31.objects.filter(id__in=kwargs['id__in'][31]).annotate(
|
|
|
|
|
+ tab_val=Value('41', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_31 = VodHlsOss31.objects.none().annotate(tab_val=Value('41', output_field=CharField()))
|
|
|
|
|
+ if 32 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_32 = VodHlsOss32.objects.filter(id__in=kwargs['id__in'][32]).annotate(
|
|
|
|
|
+ tab_val=Value('42', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_32 = VodHlsOss32.objects.none().annotate(tab_val=Value('42', output_field=CharField()))
|
|
|
|
|
+ if 33 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_33 = VodHlsOss33.objects.filter(id__in=kwargs['id__in'][33]).annotate(
|
|
|
|
|
+ tab_val=Value('43', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_33 = VodHlsOss33.objects.none().annotate(tab_val=Value('43', output_field=CharField()))
|
|
|
|
|
+ if 34 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_34 = VodHlsOss34.objects.filter(id__in=kwargs['id__in'][34]).annotate(
|
|
|
|
|
+ tab_val=Value('44', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_34 = VodHlsOss34.objects.none().annotate(tab_val=Value('44', output_field=CharField()))
|
|
|
|
|
+ if 35 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_35 = VodHlsOss35.objects.filter(id__in=kwargs['id__in'][35]).annotate(
|
|
|
|
|
+ tab_val=Value('45', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_35 = VodHlsOss35.objects.none().annotate(tab_val=Value('45', output_field=CharField()))
|
|
|
|
|
+ if 36 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_36 = VodHlsOss36.objects.filter(id__in=kwargs['id__in'][36]).annotate(
|
|
|
|
|
+ tab_val=Value('46', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_36 = VodHlsOss36.objects.none().annotate(tab_val=Value('46', output_field=CharField()))
|
|
|
|
|
+ if 37 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_37 = VodHlsOss37.objects.filter(id__in=kwargs['id__in'][37]).annotate(
|
|
|
|
|
+ tab_val=Value('47', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_37 = VodHlsOss37.objects.none().annotate(tab_val=Value('47', output_field=CharField()))
|
|
|
|
|
+ if 38 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_38 = VodHlsOss38.objects.filter(id__in=kwargs['id__in'][38]).annotate(
|
|
|
|
|
+ tab_val=Value('48', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_38 = VodHlsOss38.objects.none().annotate(tab_val=Value('48', output_field=CharField()))
|
|
|
|
|
+ if 39 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_39 = VodHlsOss39.objects.filter(id__in=kwargs['id__in'][39]).annotate(
|
|
|
|
|
+ tab_val=Value('49', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_39 = VodHlsOss39.objects.none().annotate(tab_val=Value('49', output_field=CharField()))
|
|
|
|
|
+ if 40 in kwargs['id__in']:
|
|
|
|
|
+ vod_hls_40 = VodHlsOss40.objects.filter(id__in=kwargs['id__in'][40]).annotate(
|
|
|
|
|
+ tab_val=Value('50', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_40 = VodHlsOss40.objects.none().annotate(tab_val=Value('50', output_field=CharField()))
|
|
|
|
|
+ vod_hls_union = vod_hls_01.union(vod_hls_02, vod_hls_03, vod_hls_04, vod_hls_05, vod_hls_06, vod_hls_07,
|
|
|
|
|
+ vod_hls_08, vod_hls_09, vod_hls_10, vod_hls_11, vod_hls_12, vod_hls_13,
|
|
|
|
|
+ vod_hls_14, vod_hls_15, vod_hls_16, vod_hls_17, vod_hls_18, vod_hls_19,
|
|
|
|
|
+ vod_hls_20, vod_hls_21, vod_hls_22, vod_hls_23, vod_hls_24, vod_hls_25,
|
|
|
|
|
+ vod_hls_26, vod_hls_27, vod_hls_28, vod_hls_29, vod_hls_30, vod_hls_31,
|
|
|
|
|
+ vod_hls_32, vod_hls_33, vod_hls_34, vod_hls_35, vod_hls_36, vod_hls_37,
|
|
|
|
|
+ vod_hls_38, vod_hls_39, vod_hls_40, all=True)
|
|
|
|
|
+ else:
|
|
|
|
|
+ vod_hls_union = VodHlsOss01.objects.none().annotate(tab_val=Value('11', output_field=CharField()))
|
|
|
|
|
+ else:
|
|
|
|
|
+ if 'type_list' in kwargs:
|
|
|
|
|
+ kwargs.pop('type_list')
|
|
|
|
|
+ vod_hls_01 = VodHlsOss01.objects.filter(**kwargs).annotate(tab_val=Value('11', output_field=CharField()))
|
|
|
|
|
+ vod_hls_02 = VodHlsOss02.objects.filter(**kwargs).annotate(tab_val=Value('12', output_field=CharField()))
|
|
|
|
|
+ vod_hls_03 = VodHlsOss03.objects.filter(**kwargs).annotate(tab_val=Value('13', output_field=CharField()))
|
|
|
|
|
+ vod_hls_04 = VodHlsOss04.objects.filter(**kwargs).annotate(tab_val=Value('14', output_field=CharField()))
|
|
|
|
|
+ vod_hls_05 = VodHlsOss05.objects.filter(**kwargs).annotate(tab_val=Value('15', output_field=CharField()))
|
|
|
|
|
+ vod_hls_06 = VodHlsOss06.objects.filter(**kwargs).annotate(tab_val=Value('16', output_field=CharField()))
|
|
|
|
|
+ vod_hls_07 = VodHlsOss07.objects.filter(**kwargs).annotate(tab_val=Value('17', output_field=CharField()))
|
|
|
|
|
+ vod_hls_08 = VodHlsOss08.objects.filter(**kwargs).annotate(tab_val=Value('18', output_field=CharField()))
|
|
|
|
|
+ vod_hls_09 = VodHlsOss09.objects.filter(**kwargs).annotate(tab_val=Value('19', output_field=CharField()))
|
|
|
|
|
+ vod_hls_10 = VodHlsOss10.objects.filter(**kwargs).annotate(tab_val=Value('20', output_field=CharField()))
|
|
|
|
|
+ vod_hls_11 = VodHlsOss11.objects.filter(**kwargs).annotate(tab_val=Value('21', output_field=CharField()))
|
|
|
|
|
+ vod_hls_12 = VodHlsOss12.objects.filter(**kwargs).annotate(tab_val=Value('22', output_field=CharField()))
|
|
|
|
|
+ vod_hls_13 = VodHlsOss13.objects.filter(**kwargs).annotate(tab_val=Value('23', output_field=CharField()))
|
|
|
|
|
+ vod_hls_14 = VodHlsOss14.objects.filter(**kwargs).annotate(tab_val=Value('24', output_field=CharField()))
|
|
|
|
|
+ vod_hls_15 = VodHlsOss15.objects.filter(**kwargs).annotate(tab_val=Value('25', output_field=CharField()))
|
|
|
|
|
+ vod_hls_16 = VodHlsOss16.objects.filter(**kwargs).annotate(tab_val=Value('26', output_field=CharField()))
|
|
|
|
|
+ vod_hls_17 = VodHlsOss17.objects.filter(**kwargs).annotate(tab_val=Value('27', output_field=CharField()))
|
|
|
|
|
+ vod_hls_18 = VodHlsOss18.objects.filter(**kwargs).annotate(tab_val=Value('28', output_field=CharField()))
|
|
|
|
|
+ vod_hls_19 = VodHlsOss19.objects.filter(**kwargs).annotate(tab_val=Value('29', output_field=CharField()))
|
|
|
|
|
+ vod_hls_20 = VodHlsOss20.objects.filter(**kwargs).annotate(tab_val=Value('30', output_field=CharField()))
|
|
|
|
|
+ vod_hls_21 = VodHlsOss21.objects.filter(**kwargs).annotate(tab_val=Value('31', output_field=CharField()))
|
|
|
|
|
+ vod_hls_22 = VodHlsOss22.objects.filter(**kwargs).annotate(tab_val=Value('32', output_field=CharField()))
|
|
|
|
|
+ vod_hls_23 = VodHlsOss23.objects.filter(**kwargs).annotate(tab_val=Value('33', output_field=CharField()))
|
|
|
|
|
+ vod_hls_24 = VodHlsOss24.objects.filter(**kwargs).annotate(tab_val=Value('34', output_field=CharField()))
|
|
|
|
|
+ vod_hls_25 = VodHlsOss25.objects.filter(**kwargs).annotate(tab_val=Value('35', output_field=CharField()))
|
|
|
|
|
+ vod_hls_26 = VodHlsOss26.objects.filter(**kwargs).annotate(tab_val=Value('36', output_field=CharField()))
|
|
|
|
|
+ vod_hls_27 = VodHlsOss27.objects.filter(**kwargs).annotate(tab_val=Value('37', output_field=CharField()))
|
|
|
|
|
+ vod_hls_28 = VodHlsOss28.objects.filter(**kwargs).annotate(tab_val=Value('38', output_field=CharField()))
|
|
|
|
|
+ vod_hls_29 = VodHlsOss29.objects.filter(**kwargs).annotate(tab_val=Value('39', output_field=CharField()))
|
|
|
|
|
+ vod_hls_30 = VodHlsOss30.objects.filter(**kwargs).annotate(tab_val=Value('40', output_field=CharField()))
|
|
|
|
|
+ vod_hls_31 = VodHlsOss31.objects.filter(**kwargs).annotate(tab_val=Value('41', output_field=CharField()))
|
|
|
|
|
+ vod_hls_32 = VodHlsOss32.objects.filter(**kwargs).annotate(tab_val=Value('42', output_field=CharField()))
|
|
|
|
|
+ vod_hls_33 = VodHlsOss33.objects.filter(**kwargs).annotate(tab_val=Value('43', output_field=CharField()))
|
|
|
|
|
+ vod_hls_34 = VodHlsOss34.objects.filter(**kwargs).annotate(tab_val=Value('44', output_field=CharField()))
|
|
|
|
|
+ vod_hls_35 = VodHlsOss35.objects.filter(**kwargs).annotate(tab_val=Value('45', output_field=CharField()))
|
|
|
|
|
+ vod_hls_36 = VodHlsOss36.objects.filter(**kwargs).annotate(tab_val=Value('46', output_field=CharField()))
|
|
|
|
|
+ vod_hls_37 = VodHlsOss37.objects.filter(**kwargs).annotate(tab_val=Value('47', output_field=CharField()))
|
|
|
|
|
+ vod_hls_38 = VodHlsOss38.objects.filter(**kwargs).annotate(tab_val=Value('48', output_field=CharField()))
|
|
|
|
|
+ vod_hls_39 = VodHlsOss39.objects.filter(**kwargs).annotate(tab_val=Value('49', output_field=CharField()))
|
|
|
|
|
+ vod_hls_40 = VodHlsOss40.objects.filter(**kwargs).annotate(tab_val=Value('50', output_field=CharField()))
|
|
|
|
|
+ vod_hls_union = vod_hls_01.union(vod_hls_02, vod_hls_03, vod_hls_04, vod_hls_05, vod_hls_06, vod_hls_07,
|
|
|
|
|
+ vod_hls_08, vod_hls_09, vod_hls_10, vod_hls_11, vod_hls_12, vod_hls_13,
|
|
|
|
|
+ vod_hls_14, vod_hls_15, vod_hls_16, vod_hls_17, vod_hls_18, vod_hls_19,
|
|
|
|
|
+ vod_hls_20, vod_hls_21, vod_hls_22, vod_hls_23, vod_hls_24, vod_hls_25,
|
|
|
|
|
+ vod_hls_26, vod_hls_27, vod_hls_28, vod_hls_29, vod_hls_30, vod_hls_31,
|
|
|
|
|
+ vod_hls_32, vod_hls_33, vod_hls_34, vod_hls_35, vod_hls_36, vod_hls_37,
|
|
|
|
|
+ vod_hls_38, vod_hls_39, vod_hls_40, all=True)
|
|
|
|
|
+
|
|
|
|
|
+ LOGGER.info('vod_hls_oss_union结果:{},kwargs:{}'.format(vod_hls_union.values(), kwargs))
|
|
|
|
|
+ return vod_hls_union
|
|
|
|
|
+
|
|
|
|
|
+ @staticmethod
|
|
|
|
|
+ def get_vod_hls_date(**kwargs):
|
|
|
|
|
+ """
|
|
|
|
|
+ 分表获取云存日期信息数据
|
|
|
|
|
+ @return: vod_hls
|
|
|
|
|
+ """
|
|
|
|
|
+ vod_hls_union = VodHlsOss01.objects.none()
|
|
|
|
|
+ for vod_hls_model in Vod_Hls_List:
|
|
|
|
|
+ vod_hls_union = vod_hls_union.union(vod_hls_model.objects.extra(
|
|
|
|
|
+ select={'date': "FROM_UNIXTIME(start_time,'%%Y-%%m-%%d')"}).values('date', 'start_time').filter(
|
|
|
|
|
+ **kwargs).annotate(
|
|
|
|
|
+ count=Count('start_time')).order_by('-date'))
|
|
|
|
|
+ result = {}
|
|
|
|
|
+ for item in vod_hls_union:
|
|
|
|
|
+ if item['date'] not in result:
|
|
|
|
|
+ result[item['date']] = item['count']
|
|
|
|
|
+ else:
|
|
|
|
|
+ result[item['date']] += item['count']
|
|
|
|
|
+ res = []
|
|
|
|
|
+ for key, value in result.items():
|
|
|
|
|
+ res.append({'date': key, 'count': value})
|
|
|
|
|
+ return res
|
|
|
|
|
+
|
|
|
|
|
+ @classmethod
|
|
|
|
|
+ def cloud_vod_hls_tag(cls, vod_id, num, uid, start_time, sec):
|
|
|
|
|
+ """
|
|
|
|
|
+ 云存回调信息关联标签
|
|
|
|
|
+ @param vod_id: 云存回放信息id
|
|
|
|
|
+ @param num: 云存所在表编号
|
|
|
|
|
+ @param uid: 设备UID
|
|
|
|
|
+ @param start_time: 云存开始时间
|
|
|
|
|
+ @param sec: 云存片段秒数
|
|
|
|
|
+ @return: True | False
|
|
|
|
|
+ """
|
|
|
|
|
+ try:
|
|
|
|
|
+ start_time = int(start_time)
|
|
|
|
|
+ end_time = start_time + sec
|
|
|
|
|
+ vod_tag_qs = VodHlsTag.objects.filter(ai_event_time__range=(start_time, end_time), uid=uid)
|
|
|
|
|
+ if not vod_tag_qs.exists():
|
|
|
|
|
+ return False
|
|
|
|
|
+ vod_tag_qs.update(vod_hls_id=vod_id, tab_num=num)
|
|
|
|
|
+ return True
|
|
|
|
|
+ except Exception as e:
|
|
|
|
|
+ print(
|
|
|
|
|
+ 'cloud_vod_hls_tag异常详情,uid:{},errLine:{},errMsg:{}'.format(uid, e.__traceback__.tb_lineno, repr(e)))
|
|
|
|
|
+ return False
|
|
|
|
|
+
|
|
|
|
|
+ @classmethod
|
|
|
|
|
+ def vod_query_param(cls, **kwargs):
|
|
|
|
|
+ vod_ids = cls.query_tag_by_types(kwargs.get('uid'),
|
|
|
|
|
+ kwargs.get('start_time__range'),
|
|
|
|
|
+ kwargs.get('type_list'))
|
|
|
|
|
+ if vod_ids:
|
|
|
|
|
+ kwargs['id__in'] = vod_ids
|
|
|
|
|
+ kwargs.pop('type_list')
|
|
|
|
|
+ return kwargs
|
|
|
|
|
+
|
|
|
|
|
+ @classmethod
|
|
|
|
|
+ def query_tag_by_types(cls, uid, time, types):
|
|
|
|
|
+ """
|
|
|
|
|
+ 根据类型查询云存标签关联ID
|
|
|
|
|
+ @return:
|
|
|
|
|
+ """
|
|
|
|
|
+ try:
|
|
|
|
|
+ if not types or len(types) == 0:
|
|
|
|
|
+ return {}
|
|
|
|
|
+ cursor = connection.cursor()
|
|
|
|
|
+ param_list = [int(time[0]), int(time[1]), uid]
|
|
|
|
|
+ sql = 'SELECT vod_hls_id, tab_num 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 '
|
|
|
|
|
+ if types:
|
|
|
|
|
+ sql += 'AND vhtt.type IN %s '
|
|
|
|
|
+ param_list.append(types)
|
|
|
|
|
+
|
|
|
|
|
+ cursor.execute(sql, param_list)
|
|
|
|
|
+ data_list = cursor.fetchall()
|
|
|
|
|
+ cursor.close() # 执行完,关闭
|
|
|
|
|
+ connection.close()
|
|
|
|
|
+ data_dict = {}
|
|
|
|
|
+ for item in data_list:
|
|
|
|
|
+ if item[1] not in data_dict:
|
|
|
|
|
+ data_dict[item[1]] = [item[0]]
|
|
|
|
|
+ else:
|
|
|
|
|
+ data_dict[item[1]].append(item[0])
|
|
|
|
|
+ return data_dict
|
|
|
|
|
+ except Exception as e:
|
|
|
|
|
+ print('异常详情,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
|
|
+ return False
|
|
|
|
|
+
|
|
|
|
|
+ @classmethod
|
|
|
|
|
+ def query_tag_type_list(cls, vod_ids):
|
|
|
|
|
+ """
|
|
|
|
|
+ 根据云存ID获取AI类型
|
|
|
|
|
+ @return:
|
|
|
|
|
+ """
|
|
|
|
|
+ try:
|
|
|
|
|
+ qs = VodHlsTag.objects.none()
|
|
|
|
|
+ for vod_id in vod_ids:
|
|
|
|
|
+ tab_val = int(vod_id[:2]) - 10
|
|
|
|
|
+ temp_id = vod_id[2:]
|
|
|
|
|
+ qs = qs.union(VodHlsTag.objects.filter(vod_hls_id=temp_id, tab_num=tab_val).values('id', 'vod_hls_id'))
|
|
|
|
|
+ if not qs:
|
|
|
|
|
+ return []
|
|
|
|
|
+ return list(qs)
|
|
|
|
|
+ except Exception as e:
|
|
|
|
|
+ print('异常详情,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
|
|
+ return []
|