Kaynağa Gözat

重置设备时,设备列表不移除开通云存的设备

locky 4 yıl önce
ebeveyn
işleme
e5358a69d9
2 değiştirilmiş dosya ile 24 ekleme ve 2 silme
  1. 6 2
      Controller/ShadowController.py
  2. 18 0
      Model/models.py

+ 6 - 2
Controller/ShadowController.py

@@ -20,7 +20,7 @@ from Object.LogUtil import LogUtil
 from Object.ResponseObject import ResponseObject
 from Object.ETkObject import ETkObject
 import time
-from Model.models import Device_Info, UidSetModel, UID_Preview, VoicePromptModel
+from Model.models import Device_Info, UidSetModel, UID_Preview, VoicePromptModel, UID_Bucket
 from Service.CommonService import CommonService
 from django.http import JsonResponse
 from Object.UidTokenObject import UidTokenObject
@@ -71,7 +71,11 @@ def update_device_shadow(request):
         if is_reset == '1':
             UidSetModel.objects.filter(uid=uid).delete()
             # 重置设备,判断设备为已删除
-            Device_Info.objects.filter(UID=uid).update(isExist=2)
+            nowTime = int(time.time())
+            uid_bucket = UID_Bucket.objects.filter(uid=uid, endTime__gte=nowTime).values('id', 'has_unused').order_by('addTime')
+            if not uid_bucket.exists():
+                di_qs = Device_Info.objects.filter(UID=uid)
+                di_qs.update(isExist=2)
             # 删除预览图
             uid_pre_qs = UID_Preview.objects.filter(uid=uid)
             if uid_pre_qs.exists():

+ 18 - 0
Model/models.py

@@ -472,3 +472,21 @@ class VoicePromptModel(models.Model):
         verbose_name = '语音提示表'
         verbose_name_plural = verbose_name
 
+
+class UID_Bucket(models.Model):
+    id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
+    uid = models.CharField(max_length=20, verbose_name='设备UID')
+    channel = models.SmallIntegerField(default=0, verbose_name='通道')
+    bucket = models.ForeignKey(VodBucketModel, blank=True, to_field='id', on_delete=models.CASCADE, verbose_name='存储空间')
+    status = models.SmallIntegerField(default=0, verbose_name='状态[0:开启,1:关闭]')
+    endTime = models.BigIntegerField(verbose_name='套餐结束时间', db_index=True, default=0)
+    addTime = models.IntegerField(verbose_name='添加时间', default=0)
+    updateTime = models.BigIntegerField(verbose_name='更新时间', default=0)
+    use_status = models.IntegerField(verbose_name='使用状态[1:使用中,2已过期]', default=0)
+    has_unused = models.SmallIntegerField(default=0, verbose_name='是否拥有其它未使用的套餐[0:否,1:是]')
+
+    class Meta:
+        db_table = 'vod_uid_bucket'
+        verbose_name = '设备关联套餐表'
+        verbose_name_plural = verbose_name
+        ordering = ('id',)