|
@@ -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
|