소스 검색

设备绑定uid状态为已使用时不返回uid,app未扫码不绑定

locky 1 년 전
부모
커밋
f9ca5b10df
1개의 변경된 파일13개의 추가작업 그리고 3개의 파일을 삭제
  1. 13 3
      Controller/SerialNumberController.py

+ 13 - 3
Controller/SerialNumberController.py

@@ -136,6 +136,12 @@ class SerialNumberView(View):
             unused_serial_redis_list = [str(i, 'utf-8') for i in unused_serial_redis_list]
             if serial in unused_serial_redis_list:
                 return response.json(5)
+
+            # 查询app是否已扫码,未扫码不能进行绑定
+            scanned_key = 'app_scanned_serial_' + serial
+            if not redisObj.get_data(scanned_key):
+                return response.json(5)
+
             # 判断序列号是否已和企业关联
             company_serial_qs = CompanySerialModel.objects.filter(company__secret=company_secret, serial_number=serial)
             if not company_serial_qs.exists():
@@ -238,9 +244,8 @@ class SerialNumberView(View):
 
                         return response.json(0, res)
                     return response.json(5)
-            elif company_serial.status == 2:  # 返回uid
-                res = self.get_uid_info_by_serial(company_serial.id)
-                return response.json(0, res)
+            elif company_serial.status == 2:  # 不返回uid
+                return response.json(0)
             elif company_serial.status == 3:  # 已占用
                 sync_success = self.sync_serial_data_and_log(request, company_serial.id, serial_number, now_time)
                 if not sync_success:
@@ -702,6 +707,11 @@ 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认证