# @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 []