|
@@ -6,7 +6,7 @@ import time
|
|
|
import boto3
|
|
|
from django.views import View
|
|
|
|
|
|
-from Model.models import Device_User, Device_Info, RegionCountryModel
|
|
|
+from Model.models import Device_User, Device_Info, RegionCountryModel, iotdeviceInfoModel
|
|
|
from Object.IOTCore.IotObject import ChinaIOTClient, AsiaIOTClient, EuropeIOTClient, AmericaIOTClient
|
|
|
from Object.ResponseObject import ResponseObject
|
|
|
from Service.CommonService import CommonService
|
|
@@ -37,7 +37,7 @@ class IotCoreView(View):
|
|
|
else:
|
|
|
return response.json(404)
|
|
|
|
|
|
- #即时预置注册 :已放弃
|
|
|
+ # 即时预置注册 :已放弃
|
|
|
def create_provisioning_claim(self, request_dict, response):
|
|
|
uid = request_dict.get('uid', None)
|
|
|
token = request_dict.get('token', None)
|
|
@@ -50,7 +50,7 @@ class IotCoreView(View):
|
|
|
now_time = int(time.time())
|
|
|
distance = now_time - time_stamp
|
|
|
|
|
|
- #if token != time_stamp and distance > 600: 暂时去掉延时
|
|
|
+ # if token != time_stamp and distance > 600: 暂时去掉延时
|
|
|
if token != time_stamp:
|
|
|
return response.json(404)
|
|
|
|
|
@@ -94,32 +94,45 @@ class IotCoreView(View):
|
|
|
distance = now_time - time_stamp
|
|
|
|
|
|
# if token != time_stamp and distance > 600: 暂时去掉延时
|
|
|
- #if token != time_stamp or uid != uid_code or distance > 600 :
|
|
|
- #return response.json(404)
|
|
|
+ # if token != time_stamp or uid != uid_code or distance > 600 :
|
|
|
+ # return response.json(404)
|
|
|
|
|
|
region_country_qs = Device_Info.objects.filter(UID=uid).values('userID__region_country')
|
|
|
if not region_country_qs.exists():
|
|
|
return response.json(173)
|
|
|
|
|
|
- region_country_qs = RegionCountryModel.objects.filter(
|
|
|
- number=region_country_qs[0]['userID__region_country'])
|
|
|
- if region_country_qs.exists():
|
|
|
- user_region = region_country_qs[0]
|
|
|
-
|
|
|
- if user_region.region_id == 1:
|
|
|
- iotClient = ChinaIOTClient()
|
|
|
-
|
|
|
- elif user_region.region_id == 2:
|
|
|
- iotClient = AsiaIOTClient()
|
|
|
-
|
|
|
- elif user_region.region_id == 3:
|
|
|
- iotClient = EuropeIOTClient()
|
|
|
-
|
|
|
- else:
|
|
|
- iotClient = AmericaIOTClient()
|
|
|
-
|
|
|
- res = iotClient.create_keys_and_certificate(uid)
|
|
|
-
|
|
|
- return response.json(0, {'res': res})
|
|
|
+ uid_list = []
|
|
|
+ for i in iotdeviceInfoModel.objects.values('uid'):
|
|
|
+ # 把数据表里的uid加到uid_list
|
|
|
+ uid_list.append(i['uid'])
|
|
|
+ # 判断设备是否已注册证书
|
|
|
+ if uid not in uid_list:
|
|
|
+ region_country_qs = RegionCountryModel.objects.filter(
|
|
|
+ number=region_country_qs[0]['userID__region_country'])
|
|
|
+ if region_country_qs.exists():
|
|
|
+ user_region = region_country_qs[0]
|
|
|
+
|
|
|
+ if user_region.region_id == 1:
|
|
|
+ iotClient = ChinaIOTClient()
|
|
|
+
|
|
|
+ elif user_region.region_id == 2:
|
|
|
+ iotClient = AsiaIOTClient()
|
|
|
+
|
|
|
+ elif user_region.region_id == 3:
|
|
|
+ iotClient = EuropeIOTClient()
|
|
|
+
|
|
|
+ else:
|
|
|
+ iotClient = AmericaIOTClient()
|
|
|
+ res = iotClient.create_keys_and_certificate(uid)
|
|
|
+ Device_Info.objects.filter(UID=uid).update(endpoint=res[0]['endpoint'])
|
|
|
+ iotdeviceInfoModel.objects.create(uid=uid, certificateId=res[0]['certificateId'],
|
|
|
+ certificatePem=res[0]['certificatePem'],
|
|
|
+ publicKey=res[0]['publicKey'],
|
|
|
+ privateKey=res[0]['privateKey'],
|
|
|
+ Thingname=res[1]['ThingName'])
|
|
|
+ return response.json(0, {'res': res})
|
|
|
+ else:
|
|
|
+ # print('此设备已注册证书')
|
|
|
+ return response.json(10042)
|
|
|
else:
|
|
|
return response.json(444)
|