Просмотр исходного кода

限制刚解绑序列号马上绑定uid或者刚绑定uid马上解绑

peng 2 лет назад
Родитель
Сommit
a41d685606
1 измененных файлов с 11 добавлено и 1 удалено
  1. 11 1
      Controller/SerialNumberController.py

+ 11 - 1
Controller/SerialNumberController.py

@@ -119,6 +119,12 @@ class SerialNumberView(View):
             company_secret = 'ZsKWcxdD'
 
         try:
+            # 判断序列号是否刚解绑,刚解绑1分钟内不能进行绑定
+            redisObj = RedisObject()
+            unused_serial_redis_list = redisObj.lrange(UNUSED_SERIAL_REDIS_LIST, 0, -1)
+            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)
             # 判断序列号是否已和企业关联
             company_serial_qs = CompanySerialModel.objects.filter(company__secret=company_secret, serial_number=serial)
             if not company_serial_qs.exists():
@@ -130,7 +136,6 @@ class SerialNumberView(View):
             elif company_serial.status == 1:  # 绑定uid
                 # redis加锁,防止同一个序列号重复绑定
                 key = serial + 'do_attach_uid'
-                redisObj = RedisObject()
                 isLock = redisObj.CONN.setnx(key, 1)
                 redisObj.CONN.expire(key, 60)
                 if not isLock:
@@ -467,7 +472,12 @@ class SerialNumberView(View):
         if not uid_serial_qs.exists():
             return response.json(173)
         uid_serial = uid_serial_qs[0]
+        # 判断
         redisObj = RedisObject()
+        used_serial_redis_list = redisObj.lrange(USED_SERIAL_REDIS_LIST, 0, -1)
+        used_serial_redis_list = [str(i, 'utf-8') for i in used_serial_redis_list]
+        if serial in used_serial_redis_list:
+            return response.json(5)
         try:
             with transaction.atomic():
                 uid = uid_serial.uid.uid