123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- # @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
|