Эх сурвалжийг харах

根据序列号获取绑定UID信息

zhangdongming 2 жил өмнө
parent
commit
64e24c2756

+ 54 - 2
Controller/SerialNumberController.py

@@ -22,6 +22,8 @@ from Service.CommonService import CommonService
 from Service.EquipmentInfoService import EquipmentInfoService
 from Service.VodHlsService import SplitVodHlsObject
 
+LOGGER = logging.getLogger('info')
+
 
 class SerialNumberView(View):
 
@@ -56,6 +58,8 @@ class SerialNumberView(View):
             return self.get_domain(request_dict, response)
         elif operation == 'resetRegionId':  # 重置地区id
             return self.reset_region_id(request_dict, response)
+        elif operation == 'get-status':  # 重置地区id
+            return self.check_serial_status(request_dict, response)
         else:
             return response.json(414)
 
@@ -231,7 +235,7 @@ class SerialNumberView(View):
                     'initStringApp': uid['uid__init_string_app'],
                 }
                 return response.json(0, res)
-            elif company_serial.status == 3:    # 已占用
+            elif company_serial.status == 3:  # 已占用
                 self.log_and_send_email(request, serial, now_time)
                 return response.json(10042)
         except Exception as e:
@@ -239,6 +243,54 @@ class SerialNumberView(View):
             djangoLogger.exception(repr(e))
             return response.json(176, str(e))
 
+    @classmethod
+    def check_serial_status(cls, request_dict, response):
+        serial_number = request_dict.get('serial_number', None)
+        if not serial_number:
+            return response.json(444)
+        serial = serial_number[0:6]
+        company_identity = serial_number[6:9]
+        # 根据企业标识确认企业秘钥
+        company_secret = ''
+        if company_identity == '11A':
+            company_secret = 'MTEyMTNB'
+        elif company_identity == '11L':
+            company_secret = 'VmXEWnBR'
+        elif company_identity == '11Z':
+            company_secret = 'ZsKWcxdD'
+
+        try:
+            # 判断序列号是否已和企业关联
+            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]
+            # 获取企业序列号是否绑定UID
+            uid_company_qs = UIDCompanySerialModel.objects.filter(company_serial_id=company_serial.id) \
+                .values('uid__uid', 'uid__mac', 'uid__uid_extra', 'uid__status', 'uid__area', 'uid__vpg_id',
+                        'uid__p2p_type', 'uid__full_uid_code', 'uid__platform',
+                        'uid__init_string', 'uid__init_string_app')
+            uid_info = {}
+            if uid_company_qs.exists():
+                uid_info['uid'] = uid_company_qs[0]['uid__uid']
+                uid_info['mac'] = uid_company_qs[0]['uid__mac']
+                uid_info['uid_extra'] = uid_company_qs[0]['uid__uid_extra']
+                uid_info['status'] = uid_company_qs[0]['uid__status']
+                uid_info['area'] = uid_company_qs[0]['uid__area']
+                uid_info['vpg_id'] = uid_company_qs[0]['uid__vpg_id']
+                uid_info['p2p_type'] = uid_company_qs[0]['uid__p2p_type']
+                uid_info['full_uid_code'] = uid_company_qs[0]['uid__full_uid_code']
+                uid_info['platform'] = uid_company_qs[0]['uid__platform']
+                uid_info['uid_init_string'] = uid_company_qs[0]['uid__init_string']
+                uid_info['init_string_app'] = uid_company_qs[0]['uid__init_string_app']
+            results = {'serial': company_serial.serial_number, 'status': company_serial.status,
+                       'uidInfo': uid_info}
+            return response.json(0, results)
+        except Exception as e:
+            LOGGER.info('查询序列号异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
+            return response.json(176, str(e))
+
+
     @staticmethod
     def rpush_serial_and_count_uid(serial, p2p_type, redis_obj):
         """
@@ -510,7 +562,7 @@ class SerialNumberView(View):
                     data['ip'] = CommonService.get_ip_address(request)
 
                 # 写入数据
-                device_domain_region_qs = DeviceDomainRegionModel.objects.filter(serial_number=serial_number).\
+                device_domain_region_qs = DeviceDomainRegionModel.objects.filter(serial_number=serial_number). \
                     values('region_id')
                 if not device_domain_region_qs.exists():
                     data['serial_number'] = serial_number