|
@@ -60,7 +60,7 @@ class SerialView(View):
|
|
|
return self.vpg_page(request_dict, response)
|
|
|
if operation == 'uid-info/page':
|
|
|
return self.uid_page(request_dict, response)
|
|
|
- return response.json(0)
|
|
|
+ return response.json(414)
|
|
|
|
|
|
@classmethod
|
|
|
def uploadUid(cls, request, request_dict, response):
|
|
@@ -202,6 +202,11 @@ class SerialView(View):
|
|
|
if not all([serial, sync_region]):
|
|
|
return response.json(444)
|
|
|
|
|
|
+ # 判断序列号是否已绑定uid
|
|
|
+ uid_company_serial_qs = UIDCompanySerialModel.objects.filter(company_serial__serial_number=serial)
|
|
|
+ if uid_company_serial_qs.exists():
|
|
|
+ return response.json(174)
|
|
|
+
|
|
|
url = ''
|
|
|
if sync_region == 'test':
|
|
|
url = SERVER_DOMAIN_TEST
|
|
@@ -223,6 +228,63 @@ class SerialView(View):
|
|
|
if req['result_code'] != 0:
|
|
|
return response.json(173)
|
|
|
res_data = req['result']['res_data']
|
|
|
+
|
|
|
+ # 查询是否存在该uid,存在修改状态为已使用,否则写入数据
|
|
|
+ uid = res_data['uid']
|
|
|
+ uid_qs = UIDModel.objects.filter(uid=uid).values('id')
|
|
|
+ with transaction.atomic():
|
|
|
+ if uid_qs.exists():
|
|
|
+ uid_qs.update(status=2)
|
|
|
+ uid_id = uid_qs['id']
|
|
|
+ else:
|
|
|
+ uid_data = {
|
|
|
+ 'uid': uid,
|
|
|
+ 'mac': res_data['mac'],
|
|
|
+ 'uid_extra': res_data['uid_extra'],
|
|
|
+ 'status': res_data['status'],
|
|
|
+ 'add_time': res_data['add_time'],
|
|
|
+ 'update_time': res_data['update_time'],
|
|
|
+ 'area': res_data['area'],
|
|
|
+ 'vpg_id': res_data['vpg_id'],
|
|
|
+ 'p2p_type': res_data['p2p_type'],
|
|
|
+ 'full_uid_code': res_data['full_uid_code'],
|
|
|
+ 'platform': res_data['platform'],
|
|
|
+ 'init_string': res_data['init_string'],
|
|
|
+ 'init_string_app': res_data['init_string_app']
|
|
|
+ }
|
|
|
+ uid_obj = UIDModel.objects.create(**uid_data)
|
|
|
+ uid_id = uid_obj.id
|
|
|
+
|
|
|
+ # 查询tb_company_serial表id
|
|
|
+ company_serial_qs = CompanySerialModel.objects.filter(serial_number=serial).values('id')
|
|
|
+ company_serial_id = company_serial_qs[0]['id']
|
|
|
+ # 序列号绑定uid
|
|
|
+ now_time = int(time.time())
|
|
|
+ UIDCompanySerialModel.objects.create(add_time=now_time, update_time=now_time,
|
|
|
+ uid_id=uid_id, company_serial_id=company_serial_id)
|
|
|
+ # 修改序列号状态为绑定uid
|
|
|
+ company_serial_qs.update(status=2)
|
|
|
+
|
|
|
+ # 同步iot数据
|
|
|
+ if res_data['certificate_id']:
|
|
|
+ iot_device_info_qs = iotdeviceInfoModel.objects.filter(serial_number=serial).\
|
|
|
+ values('certificate_id')
|
|
|
+ iot_data = {
|
|
|
+ 'certificate_id': res_data['certificate_id'],
|
|
|
+ 'certificate_pem': res_data['certificate_pem'],
|
|
|
+ 'public_key': res_data['public_key'],
|
|
|
+ 'private_key': res_data['private_key'],
|
|
|
+ 'thing_name': res_data['thing_name'],
|
|
|
+ 'thing_groups': res_data['thing_groups'],
|
|
|
+ 'endpoint': res_data['endpoint'],
|
|
|
+ 'token_iot_number': res_data['token_iot_number']
|
|
|
+ }
|
|
|
+ if iot_device_info_qs.exists():
|
|
|
+ if iot_device_info_qs[0]['certificate_id'] != res_data['certificate_id']:
|
|
|
+ iot_device_info_qs.update(**iot_data)
|
|
|
+ else:
|
|
|
+ iot_data['serial_number'] = serial
|
|
|
+ iotdeviceInfoModel.objects.create(**iot_data)
|
|
|
return response.json(0)
|
|
|
except Exception as e:
|
|
|
return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
@@ -237,8 +299,8 @@ class SerialView(View):
|
|
|
# 查询绑定的uid数据
|
|
|
uid_company_serial_qs = UIDCompanySerialModel.objects.filter(company_serial__serial_number=serial).\
|
|
|
values('uid__uid', 'uid__mac', 'uid__uid_extra', 'uid__status', 'uid__add_time', 'uid__update_time',
|
|
|
- 'uid__area', 'uid__vpg', 'uid__p2p_type', 'uid__full_uid_code', 'uid__platform', 'uid__init_string',
|
|
|
- 'uid__init_string_app')
|
|
|
+ 'uid__area', 'uid__vpg_id', 'uid__p2p_type', 'uid__full_uid_code', 'uid__platform',
|
|
|
+ 'uid__init_string', 'uid__init_string_app')
|
|
|
if not uid_company_serial_qs.exists():
|
|
|
return response.json(173)
|
|
|
|
|
@@ -250,7 +312,7 @@ class SerialView(View):
|
|
|
'add_time': uid_company_serial_qs[0]['uid__add_time'],
|
|
|
'update_time': uid_company_serial_qs[0]['uid__update_time'],
|
|
|
'area': uid_company_serial_qs[0]['uid__area'],
|
|
|
- 'vpg': uid_company_serial_qs[0]['uid__vpg'],
|
|
|
+ 'vpg_id': uid_company_serial_qs[0]['uid__vpg_id'],
|
|
|
'p2p_type': uid_company_serial_qs[0]['uid__p2p_type'],
|
|
|
'full_uid_code': uid_company_serial_qs[0]['uid__full_uid_code'],
|
|
|
'platform': uid_company_serial_qs[0]['uid__platform'],
|