Kaynağa Gözat

新增app获取序列号接口

locky 2 yıl önce
ebeveyn
işleme
6066ef58d1
1 değiştirilmiş dosya ile 56 ekleme ve 9 silme
  1. 56 9
      Controller/SerialNumberController.py

+ 56 - 9
Controller/SerialNumberController.py

@@ -46,6 +46,8 @@ class SerialNumberView(View):
             return self.do_attach_uid(request_dict, response, request)
         elif operation == 'detachUID':  # 解绑uid
             return self.do_detach_uid(request, request_dict, response)
+        elif operation == 'get-uid':  # app获取uid
+            return self.get_uid(request_dict, response, request)
         elif operation == 'create':  # 创建序列号
             return self.do_create(request_dict, response)
         elif operation == 'getUID':  # 根据序列号获取uid
@@ -94,15 +96,15 @@ class SerialNumberView(View):
 
     def do_attach_uid(self, request_dict, response, request):
         serial_number = request_dict.get('serial_number', None)
-        # token = request_dict.get('token', None)
-        # time_stamp = request_dict.get('time_stamp', None)
-        #
-        # if not all([serial_number, token, time_stamp]):
-        #     return response.json(444)
-        #
-        # # 时间戳token校验
-        # if not CommonService.check_time_stamp_token(token, time_stamp):
-        #     return response.json(13)
+        token = request_dict.get('token', None)
+        time_stamp = request_dict.get('time_stamp', None)
+
+        if not all([serial_number, token, time_stamp]):
+            return response.json(444)
+
+        # 时间戳token校验
+        if not CommonService.check_time_stamp_token(token, time_stamp):
+            return response.json(13)
 
         now_time = int(time.time())
         serial = serial_number[0:6]
@@ -546,6 +548,51 @@ class SerialNumberView(View):
             djangoLogger.exception(repr(e))
             return response.json(176, str(e))
 
+    def get_uid(self, request_dict, response, request):
+        """
+        app获取序列号
+        @param request_dict:
+        @param response:
+        @param request:
+        @return:
+        """
+        token = request_dict.get('token', None)
+        time_stamp = request_dict.get('time_stamp', None)
+        company_secret = request_dict.get('company_id', None)
+        serial_number = request_dict.get('serial_number', None)
+
+        if not all([token, time_stamp, company_secret, serial_number]):
+            return response.json(444)
+
+        # 时间戳token校验
+        if not CommonService.check_time_stamp_token(token, time_stamp):
+            return response.json(13)
+
+        now_time = int(time.time())
+        serial = serial_number[0:6]
+
+        # 判断序列号是否已和企业关联
+        company_serial_qs = CompanySerialModel.objects.filter(company__secret=company_secret, serial_number=serial)
+        if not company_serial_qs.exists():
+            return response.json(173)
+        company_serial = company_serial_qs[0]
+
+        try:
+            if company_serial.status == 0 or company_serial.status == 1:  # 未使用
+                return response.json(173)
+            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 == 3:  # 已占用
+                res = self.log_and_send_email(request, company_serial.id, serial_number, now_time)
+                if not res:
+                    return response.json(10042)
+                return response.json(0, self.get_uid_info_by_serial(company_serial.id))
+        except Exception as e:
+            error_logger = logging.getLogger('django')
+            error_logger.exception(repr(e))
+            return response.json(176, str(e))
+
     @staticmethod
     def get_region_info(request_dict, response):
         """