# @Author : Rocky # @File : VodHlsService.py # @Time : 2023/2/1 15:57 from Model.models import VodHlsMon, VodHlsTues, VodHlsWed, VodHlsThur, VodHlsFri, VodHlsSat, VodHlsSun from Object.utils import LocalDateTimeUtil from Service.CommonService import CommonService from django.db.models import Count class SplitVodHlsObject: # VodHls分表功能类 def creat_vod_hls_data(self, **kwargs): """ 分表保存云存信息数据 """ start_time = kwargs.get('start_time') str_date = CommonService.get_now_time_str(n_time=start_time, tz='0', lang='cn')[:10] week = LocalDateTimeUtil.date_to_week(str_date) vod_hls = None if week == 1: vod_hls = VodHlsMon(**kwargs) elif week == 2: vod_hls = VodHlsTues(**kwargs) elif week == 3: vod_hls = VodHlsWed(**kwargs) elif week == 4: vod_hls = VodHlsThur(**kwargs) elif week == 5: vod_hls = VodHlsFri(**kwargs) elif week == 6: vod_hls = VodHlsSat(**kwargs) elif week == 7: vod_hls = VodHlsSun(**kwargs) vod_hls.save() def del_vod_hls_data(self, **kwargs): """ 分表删除云存信息数据 """ VodHlsMon.objects.filter(**kwargs).delete() VodHlsTues.objects.filter(**kwargs).delete() VodHlsWed.objects.filter(**kwargs).delete() VodHlsThur.objects.filter(**kwargs).delete() VodHlsFri.objects.filter(**kwargs).delete() VodHlsSat.objects.filter(**kwargs).delete() VodHlsSun.objects.filter(**kwargs).delete() def get_vod_hls_data(self, **kwargs): """ 分表获取云存信息数据 @return: vod_hls """ if 'start_time' in kwargs: start_time = kwargs.get('start_time') str_date = CommonService.get_now_time_str(n_time=start_time, tz='0', lang='cn')[:10] week = LocalDateTimeUtil.date_to_week(str_date) vod_hls = None if week == 1: vod_hls = VodHlsMon.objects.filter(**kwargs) elif week == 2: vod_hls = VodHlsTues.objects.filter(**kwargs) elif week == 3: vod_hls = VodHlsWed.objects.filter(**kwargs) elif week == 4: vod_hls = VodHlsThur.objects.filter(**kwargs) elif week == 5: vod_hls = VodHlsFri.objects.filter(**kwargs) elif week == 6: vod_hls = VodHlsSat.objects.filter(**kwargs) elif week == 7: vod_hls = VodHlsSun.objects.filter(**kwargs) return vod_hls vod_hls_mon = VodHlsMon.objects.filter(**kwargs) vod_hls_tus = VodHlsTues.objects.filter(**kwargs) vod_hls_wed = VodHlsWed.objects.filter(**kwargs) vod_hls_thur = VodHlsThur.objects.filter(**kwargs) vod_hls_fri = VodHlsFri.objects.filter(**kwargs) vod_hls_sat = VodHlsSat.objects.filter(**kwargs) vod_hls_sun = VodHlsSun.objects.filter(**kwargs) vod_hls = vod_hls_mon.union(vod_hls_tus, vod_hls_wed, vod_hls_thur, vod_hls_fri, vod_hls_sat, vod_hls_sun) return vod_hls def get_vod_hls_date(self, **kwargs): """ 分表获取云存日期信息数据 @return: vod_hls """ vod_hls_mon = VodHlsMon.objects.extra(select={'date': "FROM_UNIXTIME(start_time,'%%Y-%%m-%%d')"}).values( 'date').filter(**kwargs).annotate(count=Count('start_time')).order_by('-date') vod_hls_tus = VodHlsTues.objects.extra(select={'date': "FROM_UNIXTIME(start_time,'%%Y-%%m-%%d')"}).values( 'date').filter(**kwargs).annotate(count=Count('start_time')).order_by('-date') vod_hls_wed = VodHlsWed.objects.extra(select={'date': "FROM_UNIXTIME(start_time,'%%Y-%%m-%%d')"}).values( 'date').filter(**kwargs).annotate(count=Count('start_time')).order_by('-date') vod_hls_thur = VodHlsThur.objects.extra(select={'date': "FROM_UNIXTIME(start_time,'%%Y-%%m-%%d')"}).values( 'date').filter(**kwargs).annotate(count=Count('start_time')).order_by('-date') vod_hls_fri = VodHlsFri.objects.extra(select={'date': "FROM_UNIXTIME(start_time,'%%Y-%%m-%%d')"}).values( 'date').filter(**kwargs).annotate(count=Count('start_time')).order_by('-date') vod_hls_sat = VodHlsSat.objects.extra(select={'date': "FROM_UNIXTIME(start_time,'%%Y-%%m-%%d')"}).values( 'date').filter(**kwargs).annotate(count=Count('start_time')).order_by('-date') vod_hls_sun = VodHlsSun.objects.extra(select={'date': "FROM_UNIXTIME(start_time,'%%Y-%%m-%%d')"}).values( 'date').filter(**kwargs).annotate(count=Count('start_time')).order_by('-date') vod_hls = vod_hls_mon.union(vod_hls_tus, vod_hls_wed, vod_hls_thur, vod_hls_fri, vod_hls_sat, vod_hls_sun)[:31] return vod_hls