locky 2 жил өмнө
parent
commit
51a96f5bc7

+ 37 - 2
Controller/SerialNumberController.py

@@ -51,6 +51,8 @@ class SerialNumberView(View):
             return self.save_region(request, request_dict, response)
         elif operation == 'getDomain':  # 获取域名(设备使用)
             return self.get_domain(request_dict, response)
+        elif operation == 'resetRegionId':  # 重置地区id
+            return self.reset_region_id(request_dict, response)
         else:
             return response.json(414)
 
@@ -312,6 +314,20 @@ class SerialNumberView(View):
                 UIDModel.objects.filter(uid=uid).update(status=0, mac='')  # 重置uid的使用状态为未使用
                 uid_serial.delete()
 
+                # 重置region_id
+                if CONFIG_INFO == CONFIG_US:
+                    DeviceDomainRegionModel.objects.filter(serial_number=serial).update(region_id=0)
+                else:
+                    try:
+                        url = SERVER_DOMAIN_US + 'serialNumber/resetRegionId'
+                        data = {'serial_number': serial}
+                        r = requests.post(url, data, timeout=3)
+                        assert r.status_code == 200
+                        res = r.json()
+                        assert res['result_code'] == 0
+                    except (TimeoutError, AssertionError):
+                        return response.json(5)
+
                 # 记录操作日志
                 ip = CommonService.get_ip_address(request)
                 content = json.loads(json.dumps(request_dict))
@@ -376,7 +392,7 @@ class SerialNumberView(View):
             return response(444)
 
         try:
-            serial_number = serial_number[:9]
+            serial_number = serial_number[:6]
 
             # 不是美洲服,请求美洲域名保存数据
             if CONFIG_INFO != CONFIG_US:
@@ -453,7 +469,7 @@ class SerialNumberView(View):
             return response.json(13)
 
         try:
-            serial_number = serial_number[:9]
+            serial_number = serial_number[:6]
 
             device_domain_region_qs = DeviceDomainRegionModel.objects.filter(serial_number=serial_number).values(
                 'region_id')
@@ -467,3 +483,22 @@ class SerialNumberView(View):
             return response.json(0, res)
         except Exception as e:
             return response.json(500, repr(e))
+
+    @staticmethod
+    def reset_region_id(request_dict, response):
+        """
+        重置地区id
+        @param request_dict: 请求参数
+        @param response: 响应对象
+        @request_dict serial_number: 序列号
+        @return: response
+        """
+        serial_number = request_dict.get('serial_number', None)
+        if not serial_number:
+            return response(444)
+        try:
+            serial_number = serial_number[:6]
+            DeviceDomainRegionModel.objects.filter(serial_number=serial_number).update(region_id=0)
+            return response.json(0)
+        except Exception as e:
+            return response.json(500, repr(e))