Explorar o código

根据序列号查询绑定的uid

peng %!s(int64=2) %!d(string=hai) anos
pai
achega
36fa962828
Modificáronse 1 ficheiros con 65 adicións e 1 borrados
  1. 65 1
      Controller/SerialNumberController.py

+ 65 - 1
Controller/SerialNumberController.py

@@ -8,7 +8,8 @@ from django.db import transaction
 from django.views import View
 
 from Ansjer.config import CRCKey, CONFIG_INFO, CONFIG_TEST, CONFIG_US, \
-    CONFIG_CN, USED_SERIAL_REDIS_LIST, UNUSED_SERIAL_REDIS_LIST, SERVER_DOMAIN_US, REGION_ID_LIST
+    CONFIG_CN, USED_SERIAL_REDIS_LIST, UNUSED_SERIAL_REDIS_LIST, SERVER_DOMAIN_US, REGION_ID_LIST, SERVER_DOMAIN_TEST, \
+    SERVER_DOMAIN_LIST, SERVER_DOMAIN_CN, SERVER_DOMAIN_EUR
 from Model.models import SerialNumberModel, CompanySerialModel, UIDCompanySerialModel, UIDModel, Device_Info, \
     iotdeviceInfoModel, LogModel, UidSetModel, UID_Bucket, \
     Unused_Uid_Meal, Order_Model, StsCrdModel, VodHlsModel, ExperienceContextModel, UidUserModel, ExperienceAiModel, \
@@ -62,6 +63,10 @@ class SerialNumberView(View):
             return self.reset_region_id(request_dict, response)
         elif operation == 'get-status':  # 重置地区id
             return self.check_serial_status(request_dict, response)
+        elif operation == 'getUidRegion':  # 根据序列号获取uid地区
+            return self.get_uid_region(request_dict, response)
+        elif operation == 'getGlobalUidRegion':  # 获取序列号在全球服绑定uid的地区
+            return self.get_global_uid_region(request_dict, response)
         else:
             return response.json(414)
 
@@ -748,3 +753,62 @@ class SerialNumberView(View):
             return response.json(0)
         except Exception as e:
             return response.json(500, repr(e))
+
+    @staticmethod
+    def get_uid_region(request_dict, response):
+        """
+        根据序列号获取uid地区
+        @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]
+            uid_company_serial_qs = UIDCompanySerialModel.objects.filter(
+                company_serial__serial_number=serial_number).values('uid__uid')
+            res = []
+            for item in uid_company_serial_qs:
+                res.append({'uid': item['uid__uid']})
+            return response.json(0, res)
+        except Exception as e:
+            return response.json(500, repr(e))
+
+    @staticmethod
+    def get_global_uid_region(request_dict, response):
+        """
+        获取序列号在全球服绑定uid的地区
+        @param request_dict: 请求参数
+        @param response: 响应对象
+        @request_dict serial_number: 序列号
+        @return: response
+        """
+        orders_domain_name_list = SERVER_DOMAIN_LIST
+        if SERVER_DOMAIN_TEST in orders_domain_name_list:
+            orders_domain_name_list.remove(SERVER_DOMAIN_TEST)
+        uid_list = []
+        try:
+            for orders_domain_name in orders_domain_name_list:
+                url = orders_domain_name + 'serialNumber/getUidRegion'
+                res = requests.post(url=url, data=request_dict)
+                result = res.json()
+                if result['result_code'] != 0:
+                    return response.json(result['result_code'])
+                if orders_domain_name == SERVER_DOMAIN_CN:
+                    for item in result['result']:
+                        item['region'] = 1
+                        uid_list.append(item)
+                elif orders_domain_name == SERVER_DOMAIN_US:
+                    for item in result['result']:
+                        item['region'] = 3
+                        uid_list.append(item)
+                elif orders_domain_name == SERVER_DOMAIN_EUR:
+                    for item in result['result']:
+                        item['region'] = 4
+                        uid_list.append(item)
+            return response.json(0, uid_list)
+        except Exception as e:
+            return response.json(500, repr(e))