Parcourir la source

app未扫码记录存表,未扫码设备不能绑定uid

locky il y a 1 an
Parent
commit
1ba2f4af0c
2 fichiers modifiés avec 30 ajouts et 8 suppressions
  1. 17 8
      Controller/SerialNumberController.py
  2. 13 0
      Model/models.py

+ 17 - 8
Controller/SerialNumberController.py

@@ -15,7 +15,7 @@ from Controller.UnicomCombo.UnicomComboController import UnicomComboView
 from Model.models import SerialNumberModel, CompanySerialModel, UIDCompanySerialModel, UIDModel, Device_Info, \
     iotdeviceInfoModel, LogModel, UidSetModel, UID_Bucket, \
     Unused_Uid_Meal, Order_Model, StsCrdModel, VodHlsModel, ExperienceContextModel, UidUserModel, ExperienceAiModel, \
-    AiService, DeviceDomainRegionModel, RegionModel, UidPushModel
+    AiService, DeviceDomainRegionModel, RegionModel, UidPushModel, AppScannedSerial
 from Object.AWS.S3Email import S3Email
 from Object.RedisObject import RedisObject
 from Object.TokenObject import TokenObject
@@ -138,8 +138,8 @@ class SerialNumberView(View):
                 return response.json(5)
 
             # 查询app是否已扫码,未扫码不能进行绑定
-            scanned_key = 'app_scanned_serial_' + serial
-            if not redisObj.get_data(scanned_key):
+            app_scanned_serial_qs = AppScannedSerial.objects.filter(serial=serial)
+            if not app_scanned_serial_qs.exists():
                 return response.json(5)
 
             # 判断序列号是否已和企业关联
@@ -644,6 +644,20 @@ class SerialNumberView(View):
         company_serial = company_serial_qs[0]
 
         try:
+            # 添加或更新扫码记录
+            ip = CommonService.get_ip_address(request)
+            data = {
+                'ip': ip,
+                'update_time': now_time
+            }
+            app_scanned_serial_qs = AppScannedSerial.objects.filter(serial=serial)
+            if app_scanned_serial_qs.exists():
+                app_scanned_serial_qs.update(**data)
+            else:
+                data['serial'] = serial
+                data['add_time'] = now_time
+                AppScannedSerial.objects.create(**data)
+
             if company_serial.status == 0 or company_serial.status == 1:  # 未使用
                 UnicomComboView().is_4g_device(serial_number, request_dict, request)
                 return response.json(173)
@@ -707,11 +721,6 @@ class SerialNumberView(View):
         try:
             serial_number = serial_number[:6]
 
-            # 缓存扫码记录一个小时
-            redis_obj = RedisObject()
-            scanned_key = 'app_scanned_serial_' + serial_number
-            redis_obj.set_ex_data(scanned_key, 1, 60*60)
-
             # 不是美洲服,请求美洲域名保存数据
             if CONFIG_INFO != CONFIG_US:
                 # token认证

+ 13 - 0
Model/models.py

@@ -3413,6 +3413,19 @@ class DeviceDomainRegionModel(models.Model):
         verbose_name_plural = verbose_name
 
 
+class AppScannedSerial(models.Model):
+    id = models.AutoField(primary_key=True, verbose_name='主键')
+    serial = models.CharField(default='', max_length=9, db_index=True, verbose_name='序列号')
+    ip = models.CharField(default='', max_length=32, verbose_name='ip')
+    add_time = models.IntegerField(default=0, verbose_name='添加时间')
+    update_time = models.IntegerField(default=0, verbose_name='更新时间')
+
+    class Meta:
+        db_table = 'app_scanned_serial'
+        verbose_name = 'app扫描序列号表'
+        verbose_name_plural = verbose_name
+
+
 class RequestRecordModel(models.Model):
     id = models.AutoField(primary_key=True, verbose_name=u'自增ID')
     method = models.CharField(max_length=10, default='', verbose_name='请求类型')