Browse Source

云存回放表扩表

peng 9 months ago
parent
commit
d97f2d60ca
1 changed files with 217 additions and 9 deletions
  1. 217 9
      Service/VodHlsService.py

+ 217 - 9
Service/VodHlsService.py

@@ -48,14 +48,217 @@ class SplitVodHlsObject:
         @return: vod_hls
         @return: vod_hls
         """
         """
         if 'type_list' in kwargs and kwargs['type_list']:
         if 'type_list' in kwargs and kwargs['type_list']:
-            vod_hls_union = VodHls01.objects.none().annotate(tab_val=Value('11', output_field=CharField()))
             kwargs = self.vod_query_param(**kwargs)
             kwargs = self.vod_query_param(**kwargs)
             if 'id__in' in kwargs:
             if 'id__in' in kwargs:
-                for item in kwargs['id__in']:
-                    tab_val = str(item['tab_val'] + 10)
-                    vod_hls_union = vod_hls_union.union(
-                        Vod_Hls_List[item['tab_val'] - 1].objects.filter(id=item['vod_id']).annotate(
-                            tab_val=Value(tab_val, output_field=CharField())), all=True)
+                if 1 in kwargs['id__in']:
+                    vod_hls_01 = VodHls01.objects.filter(id__in=kwargs['id__in'][1]).annotate(
+                        tab_val=Value('11', output_field=CharField()))
+                else:
+                    vod_hls_01 = VodHls01.objects.none().annotate(tab_val=Value('11', output_field=CharField()))
+                if 2 in kwargs['id__in']:
+                    vod_hls_02 = VodHls02.objects.filter(id__in=kwargs['id__in'][2]).annotate(
+                        tab_val=Value('12', output_field=CharField()))
+                else:
+                    vod_hls_02 = VodHls02.objects.none().annotate(tab_val=Value('12', output_field=CharField()))
+                if 3 in kwargs['id__in']:
+                    vod_hls_03 = VodHls03.objects.filter(id__in=kwargs['id__in'][3]).annotate(
+                        tab_val=Value('13', output_field=CharField()))
+                else:
+                    vod_hls_03 = VodHls03.objects.none().annotate(tab_val=Value('13', output_field=CharField()))
+                if 4 in kwargs['id__in']:
+                    vod_hls_04 = VodHls04.objects.filter(id__in=kwargs['id__in'][4]).annotate(
+                        tab_val=Value('14', output_field=CharField()))
+                else:
+                    vod_hls_04 = VodHls04.objects.none().annotate(tab_val=Value('14', output_field=CharField()))
+                if 5 in kwargs['id__in']:
+                    vod_hls_05 = VodHls05.objects.filter(id__in=kwargs['id__in'][5]).annotate(
+                        tab_val=Value('15', output_field=CharField()))
+                else:
+                    vod_hls_05 = VodHls05.objects.none().annotate(tab_val=Value('15', output_field=CharField()))
+                if 6 in kwargs['id__in']:
+                    vod_hls_06 = VodHls06.objects.filter(id__in=kwargs['id__in'][6]).annotate(
+                        tab_val=Value('16', output_field=CharField()))
+                else:
+                    vod_hls_06 = VodHls06.objects.none().annotate(tab_val=Value('16', output_field=CharField()))
+                if 7 in kwargs['id__in']:
+                    vod_hls_07 = VodHls07.objects.filter(id__in=kwargs['id__in'][7]).annotate(
+                        tab_val=Value('17', output_field=CharField()))
+                else:
+                    vod_hls_07 = VodHls07.objects.none().annotate(tab_val=Value('17', output_field=CharField()))
+                if 8 in kwargs['id__in']:
+                    vod_hls_08 = VodHls08.objects.filter(id__in=kwargs['id__in'][8]).annotate(
+                        tab_val=Value('18', output_field=CharField()))
+                else:
+                    vod_hls_08 = VodHls08.objects.none().annotate(tab_val=Value('18', output_field=CharField()))
+                if 9 in kwargs['id__in']:
+                    vod_hls_09 = VodHls09.objects.filter(id__in=kwargs['id__in'][9]).annotate(
+                        tab_val=Value('19', output_field=CharField()))
+                else:
+                    vod_hls_09 = VodHls09.objects.none().annotate(tab_val=Value('19', output_field=CharField()))
+                if 10 in kwargs['id__in']:
+                    vod_hls_10 = VodHls10.objects.filter(id__in=kwargs['id__in'][10]).annotate(
+                        tab_val=Value('20', output_field=CharField()))
+                else:
+                    vod_hls_10 = VodHls10.objects.none().annotate(tab_val=Value('20', output_field=CharField()))
+                if 11 in kwargs['id__in']:
+                    vod_hls_11 = VodHls11.objects.filter(id__in=kwargs['id__in'][11]).annotate(
+                        tab_val=Value('21', output_field=CharField()))
+                else:
+                    vod_hls_11 = VodHls11.objects.none().annotate(tab_val=Value('21', output_field=CharField()))
+                if 12 in kwargs['id__in']:
+                    vod_hls_12 = VodHls12.objects.filter(id__in=kwargs['id__in'][12]).annotate(
+                        tab_val=Value('22', output_field=CharField()))
+                else:
+                    vod_hls_12 = VodHls12.objects.none().annotate(tab_val=Value('22', output_field=CharField()))
+                if 13 in kwargs['id__in']:
+                    vod_hls_13 = VodHls13.objects.filter(id__in=kwargs['id__in'][13]).annotate(
+                        tab_val=Value('23', output_field=CharField()))
+                else:
+                    vod_hls_13 = VodHls13.objects.none().annotate(tab_val=Value('23', output_field=CharField()))
+                if 14 in kwargs['id__in']:
+                    vod_hls_14 = VodHls14.objects.filter(id__in=kwargs['id__in'][14]).annotate(
+                        tab_val=Value('24', output_field=CharField()))
+                else:
+                    vod_hls_14 = VodHls14.objects.none().annotate(tab_val=Value('24', output_field=CharField()))
+                if 15 in kwargs['id__in']:
+                    vod_hls_15 = VodHls15.objects.filter(id__in=kwargs['id__in'][15]).annotate(
+                        tab_val=Value('25', output_field=CharField()))
+                else:
+                    vod_hls_15 = VodHls15.objects.none().annotate(tab_val=Value('25', output_field=CharField()))
+                if 16 in kwargs['id__in']:
+                    vod_hls_16 = VodHls16.objects.filter(id__in=kwargs['id__in'][16]).annotate(
+                        tab_val=Value('26', output_field=CharField()))
+                else:
+                    vod_hls_16 = VodHls16.objects.none().annotate(tab_val=Value('26', output_field=CharField()))
+                if 17 in kwargs['id__in']:
+                    vod_hls_17 = VodHls17.objects.filter(id__in=kwargs['id__in'][17]).annotate(
+                        tab_val=Value('27', output_field=CharField()))
+                else:
+                    vod_hls_17 = VodHls17.objects.none().annotate(tab_val=Value('27', output_field=CharField()))
+                if 18 in kwargs['id__in']:
+                    vod_hls_18 = VodHls18.objects.filter(id__in=kwargs['id__in'][18]).annotate(
+                        tab_val=Value('28', output_field=CharField()))
+                else:
+                    vod_hls_18 = VodHls18.objects.none().annotate(tab_val=Value('28', output_field=CharField()))
+                if 19 in kwargs['id__in']:
+                    vod_hls_19 = VodHls19.objects.filter(id__in=kwargs['id__in'][19]).annotate(
+                        tab_val=Value('29', output_field=CharField()))
+                else:
+                    vod_hls_19 = VodHls19.objects.none().annotate(tab_val=Value('29', output_field=CharField()))
+                if 20 in kwargs['id__in']:
+                    vod_hls_20 = VodHls20.objects.filter(id__in=kwargs['id__in'][20]).annotate(
+                        tab_val=Value('30', output_field=CharField()))
+                else:
+                    vod_hls_20 = VodHls20.objects.none().annotate(tab_val=Value('30', output_field=CharField()))
+                if 21 in kwargs['id__in']:
+                    vod_hls_21 = VodHls21.objects.filter(id__in=kwargs['id__in'][21]).annotate(
+                        tab_val=Value('31', output_field=CharField()))
+                else:
+                    vod_hls_21 = VodHls21.objects.none().annotate(tab_val=Value('31', output_field=CharField()))
+                if 22 in kwargs['id__in']:
+                    vod_hls_22 = VodHls22.objects.filter(id__in=kwargs['id__in'][22]).annotate(
+                        tab_val=Value('32', output_field=CharField()))
+                else:
+                    vod_hls_22 = VodHls22.objects.none().annotate(tab_val=Value('32', output_field=CharField()))
+                if 23 in kwargs['id__in']:
+                    vod_hls_23 = VodHls23.objects.filter(id__in=kwargs['id__in'][23]).annotate(
+                        tab_val=Value('33', output_field=CharField()))
+                else:
+                    vod_hls_23 = VodHls23.objects.none().annotate(tab_val=Value('33', output_field=CharField()))
+                if 24 in kwargs['id__in']:
+                    vod_hls_24 = VodHls24.objects.filter(id__in=kwargs['id__in'][24]).annotate(
+                        tab_val=Value('34', output_field=CharField()))
+                else:
+                    vod_hls_24 = VodHls24.objects.none().annotate(tab_val=Value('34', output_field=CharField()))
+                if 25 in kwargs['id__in']:
+                    vod_hls_25 = VodHls25.objects.filter(id__in=kwargs['id__in'][25]).annotate(
+                        tab_val=Value('35', output_field=CharField()))
+                else:
+                    vod_hls_25 = VodHls25.objects.none().annotate(tab_val=Value('35', output_field=CharField()))
+                if 26 in kwargs['id__in']:
+                    vod_hls_26 = VodHls26.objects.filter(id__in=kwargs['id__in'][26]).annotate(
+                        tab_val=Value('36', output_field=CharField()))
+                else:
+                    vod_hls_26 = VodHls26.objects.none().annotate(tab_val=Value('36', output_field=CharField()))
+                if 27 in kwargs['id__in']:
+                    vod_hls_27 = VodHls27.objects.filter(id__in=kwargs['id__in'][27]).annotate(
+                        tab_val=Value('37', output_field=CharField()))
+                else:
+                    vod_hls_27 = VodHls27.objects.none().annotate(tab_val=Value('37', output_field=CharField()))
+                if 28 in kwargs['id__in']:
+                    vod_hls_28 = VodHls28.objects.filter(id__in=kwargs['id__in'][28]).annotate(
+                        tab_val=Value('38', output_field=CharField()))
+                else:
+                    vod_hls_28 = VodHls28.objects.none().annotate(tab_val=Value('38', output_field=CharField()))
+                if 29 in kwargs['id__in']:
+                    vod_hls_29 = VodHls29.objects.filter(id__in=kwargs['id__in'][29]).annotate(
+                        tab_val=Value('39', output_field=CharField()))
+                else:
+                    vod_hls_29 = VodHls29.objects.none().annotate(tab_val=Value('39', output_field=CharField()))
+                if 30 in kwargs['id__in']:
+                    vod_hls_30 = VodHls30.objects.filter(id__in=kwargs['id__in'][30]).annotate(
+                        tab_val=Value('40', output_field=CharField()))
+                else:
+                    vod_hls_30 = VodHls30.objects.none().annotate(tab_val=Value('40', output_field=CharField()))
+                if 31 in kwargs['id__in']:
+                    vod_hls_31 = VodHls31.objects.filter(id__in=kwargs['id__in'][31]).annotate(
+                        tab_val=Value('41', output_field=CharField()))
+                else:
+                    vod_hls_31 = VodHls31.objects.none().annotate(tab_val=Value('41', output_field=CharField()))
+                if 32 in kwargs['id__in']:
+                    vod_hls_32 = VodHls32.objects.filter(id__in=kwargs['id__in'][32]).annotate(
+                        tab_val=Value('42', output_field=CharField()))
+                else:
+                    vod_hls_32 = VodHls32.objects.none().annotate(tab_val=Value('42', output_field=CharField()))
+                if 33 in kwargs['id__in']:
+                    vod_hls_33 = VodHls33.objects.filter(id__in=kwargs['id__in'][33]).annotate(
+                        tab_val=Value('43', output_field=CharField()))
+                else:
+                    vod_hls_33 = VodHls33.objects.none().annotate(tab_val=Value('43', output_field=CharField()))
+                if 34 in kwargs['id__in']:
+                    vod_hls_34 = VodHls34.objects.filter(id__in=kwargs['id__in'][34]).annotate(
+                        tab_val=Value('44', output_field=CharField()))
+                else:
+                    vod_hls_34 = VodHls34.objects.none().annotate(tab_val=Value('44', output_field=CharField()))
+                if 35 in kwargs['id__in']:
+                    vod_hls_35 = VodHls35.objects.filter(id__in=kwargs['id__in'][35]).annotate(
+                        tab_val=Value('45', output_field=CharField()))
+                else:
+                    vod_hls_35 = VodHls35.objects.none().annotate(tab_val=Value('45', output_field=CharField()))
+                if 36 in kwargs['id__in']:
+                    vod_hls_36 = VodHls36.objects.filter(id__in=kwargs['id__in'][36]).annotate(
+                        tab_val=Value('46', output_field=CharField()))
+                else:
+                    vod_hls_36 = VodHls36.objects.none().annotate(tab_val=Value('46', output_field=CharField()))
+                if 37 in kwargs['id__in']:
+                    vod_hls_37 = VodHls37.objects.filter(id__in=kwargs['id__in'][37]).annotate(
+                        tab_val=Value('47', output_field=CharField()))
+                else:
+                    vod_hls_37 = VodHls37.objects.none().annotate(tab_val=Value('47', output_field=CharField()))
+                if 38 in kwargs['id__in']:
+                    vod_hls_38 = VodHls38.objects.filter(id__in=kwargs['id__in'][38]).annotate(
+                        tab_val=Value('48', output_field=CharField()))
+                else:
+                    vod_hls_38 = VodHls38.objects.none().annotate(tab_val=Value('48', output_field=CharField()))
+                if 39 in kwargs['id__in']:
+                    vod_hls_39 = VodHls39.objects.filter(id__in=kwargs['id__in'][39]).annotate(
+                        tab_val=Value('49', output_field=CharField()))
+                else:
+                    vod_hls_39 = VodHls39.objects.none().annotate(tab_val=Value('49', output_field=CharField()))
+                if 40 in kwargs['id__in']:
+                    vod_hls_40 = VodHls40.objects.filter(id__in=kwargs['id__in'][40]).annotate(
+                        tab_val=Value('50', output_field=CharField()))
+                else:
+                    vod_hls_40 = VodHls40.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 = VodHls01.objects.none().annotate(tab_val=Value('11', output_field=CharField()))
         else:
         else:
             if 'type_list' in kwargs:
             if 'type_list' in kwargs:
                 kwargs.pop('type_list')
                 kwargs.pop('type_list')
@@ -175,7 +378,7 @@ class SplitVodHlsObject:
         """
         """
         try:
         try:
             if not types or len(types) == 0:
             if not types or len(types) == 0:
-                return []
+                return {}
             cursor = connection.cursor()
             cursor = connection.cursor()
             param_list = [int(time[0]), int(time[1]), uid]
             param_list = [int(time[0]), int(time[1]), uid]
             sql = 'SELECT vod_hls_id, tab_num FROM '
             sql = 'SELECT vod_hls_id, tab_num FROM '
@@ -190,8 +393,13 @@ class SplitVodHlsObject:
             data_list = cursor.fetchall()
             data_list = cursor.fetchall()
             cursor.close()  # 执行完,关闭
             cursor.close()  # 执行完,关闭
             connection.close()
             connection.close()
-            data_list = [{'vod_id': val[0], 'tab_val': val[1]} for val in data_list]
-            return data_list
+            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:
         except Exception as e:
             print('异常详情,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
             print('异常详情,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
             return False
             return False