VodHlsService.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. # @Author : Rocky
  2. # @File : VodHlsService.py
  3. # @Time : 2023/2/1 15:57
  4. from Model.models import VodHlsMon, VodHlsTues, VodHlsWed, VodHlsThur, VodHlsFri, VodHlsSat, VodHlsSun
  5. from Object.utils import LocalDateTimeUtil
  6. from Service.CommonService import CommonService
  7. from django.db.models import Count
  8. class SplitVodHlsObject:
  9. # VodHls分表功能类
  10. def creat_vod_hls_data(self, **kwargs):
  11. """
  12. 分表保存云存信息数据
  13. """
  14. start_time = kwargs.get('start_time')
  15. str_date = CommonService.get_now_time_str(n_time=start_time, tz='0', lang='cn')[:10]
  16. week = LocalDateTimeUtil.date_to_week(str_date)
  17. vod_hls = None
  18. if week == 1:
  19. vod_hls = VodHlsMon(**kwargs)
  20. elif week == 2:
  21. vod_hls = VodHlsTues(**kwargs)
  22. elif week == 3:
  23. vod_hls = VodHlsWed(**kwargs)
  24. elif week == 4:
  25. vod_hls = VodHlsThur(**kwargs)
  26. elif week == 5:
  27. vod_hls = VodHlsFri(**kwargs)
  28. elif week == 6:
  29. vod_hls = VodHlsSat(**kwargs)
  30. elif week == 7:
  31. vod_hls = VodHlsSun(**kwargs)
  32. vod_hls.save()
  33. def del_vod_hls_data(self, **kwargs):
  34. """
  35. 分表删除云存信息数据
  36. """
  37. VodHlsMon.objects.filter(**kwargs).delete()
  38. VodHlsTues.objects.filter(**kwargs).delete()
  39. VodHlsWed.objects.filter(**kwargs).delete()
  40. VodHlsThur.objects.filter(**kwargs).delete()
  41. VodHlsFri.objects.filter(**kwargs).delete()
  42. VodHlsSat.objects.filter(**kwargs).delete()
  43. VodHlsSun.objects.filter(**kwargs).delete()
  44. def get_vod_hls_data(self, **kwargs):
  45. """
  46. 分表获取云存信息数据
  47. @return: vod_hls
  48. """
  49. if 'start_time' in kwargs:
  50. start_time = kwargs.get('start_time')
  51. str_date = CommonService.get_now_time_str(n_time=start_time, tz='0', lang='cn')[:10]
  52. week = LocalDateTimeUtil.date_to_week(str_date)
  53. vod_hls = None
  54. if week == 1:
  55. vod_hls = VodHlsMon.objects.filter(**kwargs)
  56. elif week == 2:
  57. vod_hls = VodHlsTues.objects.filter(**kwargs)
  58. elif week == 3:
  59. vod_hls = VodHlsWed.objects.filter(**kwargs)
  60. elif week == 4:
  61. vod_hls = VodHlsThur.objects.filter(**kwargs)
  62. elif week == 5:
  63. vod_hls = VodHlsFri.objects.filter(**kwargs)
  64. elif week == 6:
  65. vod_hls = VodHlsSat.objects.filter(**kwargs)
  66. elif week == 7:
  67. vod_hls = VodHlsSun.objects.filter(**kwargs)
  68. return vod_hls
  69. vod_hls_mon = VodHlsMon.objects.filter(**kwargs)
  70. vod_hls_tus = VodHlsTues.objects.filter(**kwargs)
  71. vod_hls_wed = VodHlsWed.objects.filter(**kwargs)
  72. vod_hls_thur = VodHlsThur.objects.filter(**kwargs)
  73. vod_hls_fri = VodHlsFri.objects.filter(**kwargs)
  74. vod_hls_sat = VodHlsSat.objects.filter(**kwargs)
  75. vod_hls_sun = VodHlsSun.objects.filter(**kwargs)
  76. vod_hls = vod_hls_mon.union(vod_hls_tus, vod_hls_wed, vod_hls_thur, vod_hls_fri, vod_hls_sat, vod_hls_sun)
  77. return vod_hls
  78. def get_vod_hls_date(self, **kwargs):
  79. """
  80. 分表获取云存日期信息数据
  81. @return: vod_hls
  82. """
  83. vod_hls_mon = VodHlsMon.objects.extra(select={'date': "FROM_UNIXTIME(start_time,'%%Y-%%m-%%d')"}).values(
  84. 'date').filter(**kwargs).annotate(count=Count('start_time')).order_by('-date')
  85. vod_hls_tus = VodHlsTues.objects.extra(select={'date': "FROM_UNIXTIME(start_time,'%%Y-%%m-%%d')"}).values(
  86. 'date').filter(**kwargs).annotate(count=Count('start_time')).order_by('-date')
  87. vod_hls_wed = VodHlsWed.objects.extra(select={'date': "FROM_UNIXTIME(start_time,'%%Y-%%m-%%d')"}).values(
  88. 'date').filter(**kwargs).annotate(count=Count('start_time')).order_by('-date')
  89. vod_hls_thur = VodHlsThur.objects.extra(select={'date': "FROM_UNIXTIME(start_time,'%%Y-%%m-%%d')"}).values(
  90. 'date').filter(**kwargs).annotate(count=Count('start_time')).order_by('-date')
  91. vod_hls_fri = VodHlsFri.objects.extra(select={'date': "FROM_UNIXTIME(start_time,'%%Y-%%m-%%d')"}).values(
  92. 'date').filter(**kwargs).annotate(count=Count('start_time')).order_by('-date')
  93. vod_hls_sat = VodHlsSat.objects.extra(select={'date': "FROM_UNIXTIME(start_time,'%%Y-%%m-%%d')"}).values(
  94. 'date').filter(**kwargs).annotate(count=Count('start_time')).order_by('-date')
  95. vod_hls_sun = VodHlsSun.objects.extra(select={'date': "FROM_UNIXTIME(start_time,'%%Y-%%m-%%d')"}).values(
  96. 'date').filter(**kwargs).annotate(count=Count('start_time')).order_by('-date')
  97. 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]
  98. return vod_hls