Forráskód Böngészése

修复云存列表
云存套餐按设备像素区分

peng 1 éve
szülő
commit
a7ab4a405f
2 módosított fájl, 23 hozzáadás és 10 törlés
  1. 22 8
      Controller/CloudStorage.py
  2. 1 2
      Model/models.py

+ 22 - 8
Controller/CloudStorage.py

@@ -191,7 +191,14 @@ class CloudStorageView(View):
         device_info_qs = Device_Info.objects.filter(Q(UID=uid), Q(Type__lte=4) | Q(Type=10001))
         if device_info_qs.exists():
             return response.json(0)
-
+        # 查询设备像素
+        uid_set_qs = UidSetModel.objects.filter(uid=uid).values('ucode')
+        if not uid_set_qs.exists():
+            return response.json(173)
+        ucode = uid_set_qs[0]['ucode']
+        pixel_level = 0
+        if ucode and int(ucode[-5]) >= 8:
+            pixel_level = 1
         store_qs = Store_Meal.objects.filter(Q(lang__lang=lang), Q(is_show=0), ~Q(pay_type='11'))  # 过滤激活码、隐藏套餐
         experience_context_qs = ExperienceContextModel.objects.filter(uid=uid, experience_type=0)
 
@@ -200,9 +207,9 @@ class CloudStorageView(View):
 
         # 没体验过的设备只返回体验套餐,体验过的不返回体验套餐
         if experience_context_qs.exists():
-            store_qs = store_qs.filter(~Q(pay_type='10'))
+            store_qs = store_qs.filter(~Q(pay_type='10'), Q(pixel_level=pixel_level))  # 筛选像素等级
         else:
-            store_qs = store_qs.filter(pay_type='10')
+            store_qs = store_qs.filter(pay_type='10')  # 体验套餐不区分像素等级
 
         store_qs = store_qs.annotate(title=F('lang__title'), content=F('lang__content'),
                                      discount_content=F('lang__discount_content'))
@@ -505,11 +512,18 @@ class CloudStorageView(View):
             else:
                 type_list = [int(event_types)]
         split_vod_hls_obj = SplitVodHlsObject()
-        vod_hls_qs = split_vod_hls_obj.get_vod_hls_data(uid=uid, channel=channel,
-                                                        end_time__gte=now_time,
-                                                        start_time__range=(start_time, end_time),
-                                                        type_list=type_list) \
-            .values("id", "start_time", "sec", "fg", "bucket_id")
+        if device_type == 34:
+            vod_hls_qs = split_vod_hls_obj.get_vod_hls_data(uid=uid,
+                                                            end_time__gte=now_time,
+                                                            start_time__range=(start_time, end_time),
+                                                            type_list=type_list) \
+                .values("id", "start_time", "sec", "fg", "bucket_id")
+        else:
+            vod_hls_qs = split_vod_hls_obj.get_vod_hls_data(uid=uid, channel=channel,
+                                                            end_time__gte=now_time,
+                                                            start_time__range=(start_time, end_time),
+                                                            type_list=type_list) \
+                .values("id", "start_time", "sec", "fg", "bucket_id")
 
         vod_play_list = []
         if not vod_hls_qs.exists():

+ 1 - 2
Model/models.py

@@ -755,8 +755,7 @@ class Store_Meal(models.Model):
     cycle_config_id = models.IntegerField(null=True, verbose_name='周期付款配置表id')
     sort = models.IntegerField(default=99, blank=True, verbose_name=u'排序,越小越靠前')  # 单位月
     icloud_store_meal_id = models.IntegerField(default=0, verbose_name='关联云盘套餐id')
-    # 备用字段
-    spare_4 = models.CharField(default='', blank=True, max_length=64, db_index=True, verbose_name=u'备用字段4')
+    pixel_level = models.SmallIntegerField(default=0, verbose_name='像素等级')  # 0:低于4k像素;1:大于等于4k像素
 
     def __str__(self):
         return self.id