Browse Source

完善序列号绑定和解绑uid程序和响应数据

locky 3 năm trước cách đây
mục cha
commit
53c4ab9e5d
2 tập tin đã thay đổi với 33 bổ sung28 xóa
  1. 29 28
      Controller/SerialNumberController.py
  2. 4 0
      Object/uidManageResponseObject.py

+ 29 - 28
Controller/SerialNumberController.py

@@ -43,9 +43,9 @@ class SerialNumberView(View):
 
         if operation == 'getUID':
             return self.do_get_uid(request_dict, response)
-        elif operation == 'attachUID':
+        elif operation == 'attachUID':      # 绑定uid
             return self.do_attach_uid(request_dict, response, request)
-        elif operation == 'detachUID':
+        elif operation == 'detachUID':      # 解绑uid
             return self.do_detach_uid(request, request_dict, response)
         elif operation == 'create':
             return self.do_create(request_dict, response)
@@ -180,13 +180,13 @@ class SerialNumberView(View):
                                                          vpg__region_id=country_id, status=0, p2p_type=p2p_type). \
                                                          order_by('id')
                         if not uid_qs.exists():
-                            return response.json(173)
+                            return response.json(375)
 
                         uid = uid_qs[0]
                         # 判断uid是否已绑定过序列号
                         uid_company_serial_qs = UIDCompanySerialModel.objects.filter(uid_id=uid.id)
                         if uid_company_serial_qs.exists():
-                            return response.json(174)
+                            return response.json(377)
 
                         result = UIDModel.objects.filter(id=uid.id, status=0).update(status=2, update_time=now_time)
                         if int(result) <= 0:    # 更新失败
@@ -231,20 +231,12 @@ class SerialNumberView(View):
                         }
                         LogModel.objects.create(**log)
                         # 修改其他数据库的序列号使用状态为已占用
-                        data = {'serial': serial, 'status': 3}
-                        if SERVER_TYPE == 'Ansjer.us_config.formal_settings':
-                            url = '{}serialNumber/changeSerialNumberStatus'.format(SERVER_DOMAIN_CN)
-                        elif SERVER_TYPE == 'Ansjer.cn_config.formal_settings':
-                            url = '{}serialNumber/changeSerialNumberStatus'.format(SERVER_DOMAIN_US)
-                        req_res = requests.post(url=url, data=data, timeout=2)
-                        if req_res.status_code != 200:
-                            raise RuntimeError('请求修改序列号状态发生异常')
-                        req_res = req_res.json()
-                        if req_res['result_code'] != 0:
-                            raise RuntimeError('请求修改序列号状态发生异常')
-
+                        update_success = self.update_serial_status(serial=serial, status=3)
+                        try:
+                            assert update_success
+                        except AssertionError:
+                            return response.json(378)
                         return response.json(0, res)
-
                     return response.json(5)
             elif company_serial.status == 2:   # 返回uid
                 uid_qs = UIDCompanySerialModel.objects.filter(company_serial_id=company_serial.id)
@@ -345,17 +337,11 @@ class SerialNumberView(View):
                             up_qs.delete()
 
                     # 修改其他数据库的序列号使用状态为已使用
-                    data = {'serial': serial, 'status': 1}
-                    if SERVER_TYPE == 'Ansjer.us_config.formal_settings':
-                        url = '{}serialNumber/changeSerialNumberStatus'.format(SERVER_DOMAIN_CN)
-                    elif SERVER_TYPE == 'Ansjer.cn_config.formal_settings':
-                        url = '{}serialNumber/changeSerialNumberStatus'.format(SERVER_DOMAIN_US)
-                    req_res = requests.post(url=url, data=data, timeout=2)
-                    if req_res.status_code != 200:
-                        raise RuntimeError('请求修改序列号状态发生异常')
-                    req_res = req_res.json()
-                    if req_res['result_code'] != 0:
-                        raise RuntimeError('请求修改序列号状态发生异常')
+                    update_success = self.update_serial_status(serial=serial, status=1)
+                    try:
+                        assert update_success
+                    except AssertionError:
+                        return response.json(378)
 
                 UIDModel.objects.filter(uid=uid).update(status=0, mac='')    # 重置uid的使用状态为未分配
                 uid_serial.delete()
@@ -379,6 +365,21 @@ class SerialNumberView(View):
             djangoLogger.exception(repr(e))
             return response.json(176, str(e))
 
+    @staticmethod
+    def update_serial_status(serial, status):
+        data = {'serial': serial, 'status': status}
+        if SERVER_TYPE == 'Ansjer.us_config.formal_settings':
+            url = '{}serialNumber/changeSerialNumberStatus'.format(SERVER_DOMAIN_CN)
+        elif SERVER_TYPE == 'Ansjer.cn_config.formal_settings':
+            url = '{}serialNumber/changeSerialNumberStatus'.format(SERVER_DOMAIN_US)
+        req_res = requests.post(url=url, data=data, timeout=2)
+        if req_res.status_code != 200:
+            return False
+        req_res = req_res.json()
+        if req_res['result_code'] != 0:
+            return False
+        return True
+
     def do_update(self, userID, request_dict, response):
         # perm = ModelService.check_perm_uid_manage(userID, 0)
         # if not perm:

+ 4 - 0
Object/uidManageResponseObject.py

@@ -48,6 +48,8 @@ class uidManageResponseObject(object):
             374: '没有相应的地区',
             375: 'uid不足',
             376: 'uid数据有误',
+            377: 'uid已使用',
+            378: '更新序列号状态失败',
             404: '没有访问权限!',
             444: '请确认参数的正确性!',
             1112: '您输入的两次密码不一致!',
@@ -95,6 +97,8 @@ class uidManageResponseObject(object):
             374: 'Region does not exist',
             375: 'Insufficient uid',
             376: 'wrong uid data',
+            377: 'uid used',
+            378: 'Failed to update serial number status',
             404: 'You don not have permission to access this!',
             444: 'Please confirm the correctness of the parameters!',
             1112: 'The two passwords you entered do not match!',