|
@@ -412,7 +412,7 @@ def addNewEquipmentVersionInterface(request):
|
|
lang = deviceData.get('lang', None)
|
|
lang = deviceData.get('lang', None)
|
|
if code and lang:
|
|
if code and lang:
|
|
try:
|
|
try:
|
|
- Equipment_Version.objects.filter(code=code,lang=lang).delete()
|
|
|
|
|
|
+ Equipment_Version.objects.filter(code=code, lang=lang).delete()
|
|
except Exception as e:
|
|
except Exception as e:
|
|
pass
|
|
pass
|
|
if version is None or filePath is None:
|
|
if version is None or filePath is None:
|
|
@@ -423,7 +423,7 @@ def addNewEquipmentVersionInterface(request):
|
|
os.makedirs(paths) # makedirs 创建文件时如果路径不存在会创建这个路径
|
|
os.makedirs(paths) # makedirs 创建文件时如果路径不存在会创建这个路径
|
|
# print ('该文件不存在')
|
|
# print ('该文件不存在')
|
|
else:
|
|
else:
|
|
- print ('该文件存在')
|
|
|
|
|
|
+ print('该文件存在')
|
|
print(file_s)
|
|
print(file_s)
|
|
if file_s is None:
|
|
if file_s is None:
|
|
deviceData['img'] = ''
|
|
deviceData['img'] = ''
|
|
@@ -477,9 +477,11 @@ def getNewVerInterface(request):
|
|
token = request_dict.get('token', None)
|
|
token = request_dict.get('token', None)
|
|
lang = request_dict.get('lang', None)
|
|
lang = request_dict.get('lang', None)
|
|
now_ver = request_dict.get('ver', None)
|
|
now_ver = request_dict.get('ver', None)
|
|
- uid = request_dict.get('uid', None)
|
|
|
|
|
|
+ uid = request_dict.get('uid', 'null')
|
|
|
|
+ serial_number = request_dict.get('serial_number', 'null')
|
|
|
|
+
|
|
if not code or not now_ver:
|
|
if not code or not now_ver:
|
|
- return response.json(902, {'param':'code,ver'})
|
|
|
|
|
|
+ return response.json(902, {'param': 'code,ver'})
|
|
# return response.json(444, 'code,ver')
|
|
# return response.json(444, 'code,ver')
|
|
tko = TokenObject(token)
|
|
tko = TokenObject(token)
|
|
response.lang = tko.lang
|
|
response.lang = tko.lang
|
|
@@ -506,15 +508,15 @@ def getNewVerInterface(request):
|
|
redisObject.set_data(key=key, val=json.dumps(list(evl_qs.values())), expire=600)
|
|
redisObject.set_data(key=key, val=json.dumps(list(evl_qs.values())), expire=600)
|
|
if evl_qs and len(evl_qs) > 0:
|
|
if evl_qs and len(evl_qs) > 0:
|
|
evl = evl_qs[0]
|
|
evl = evl_qs[0]
|
|
- if evl['type'] == 1: # uid限制
|
|
|
|
|
|
+ if evl['type'] == 1: # uid限制
|
|
uids = json.loads(evl['content'])
|
|
uids = json.loads(evl['content'])
|
|
if not uids.__contains__(uid):
|
|
if not uids.__contains__(uid):
|
|
return response.json(902)
|
|
return response.json(902)
|
|
- elif evl['type'] == 2: # user限制
|
|
|
|
|
|
+ elif evl['type'] == 2: # user限制
|
|
users = json.loads(evl['content'])
|
|
users = json.loads(evl['content'])
|
|
if not users.__contains__(tko.userID):
|
|
if not users.__contains__(tko.userID):
|
|
return response.json(902)
|
|
return response.json(902)
|
|
- elif evl['type'] == 3: # 国家地区限制
|
|
|
|
|
|
+ elif evl['type'] == 3: # 国家地区限制
|
|
countries = json.loads(evl['content'])
|
|
countries = json.loads(evl['content'])
|
|
country_ip_qs = CountryIPModel.objects.filter(user_ex__userID=tko.userID)
|
|
country_ip_qs = CountryIPModel.objects.filter(user_ex__userID=tko.userID)
|
|
if country_ip_qs.exists():
|
|
if country_ip_qs.exists():
|
|
@@ -525,23 +527,27 @@ def getNewVerInterface(request):
|
|
return response.json(902)
|
|
return response.json(902)
|
|
|
|
|
|
file_path = equipment.filePath
|
|
file_path = equipment.filePath
|
|
|
|
+ version = equipment.version
|
|
|
|
+ mci = equipment.mci
|
|
ver = equipment.softwareVersion
|
|
ver = equipment.softwareVersion
|
|
max_ver = equipment.max_ver
|
|
max_ver = equipment.max_ver
|
|
print(now_ver <= max_ver)
|
|
print(now_ver <= max_ver)
|
|
if now_ver <= max_ver:
|
|
if now_ver <= max_ver:
|
|
# 创建url的token
|
|
# 创建url的token
|
|
- tko = UrlTokenObject()
|
|
|
|
- file_path = tko.generate(data={'Url': "ansjer/" + CommonService.RandomStr(6) + "/" + file_path})
|
|
|
|
|
|
+ url_tko = UrlTokenObject()
|
|
|
|
+ file_path = url_tko.generate(
|
|
|
|
+ data={'Url': "ansjer/" + CommonService.RandomStr(6) + "/" + file_path, 'user_id': tko.userID,
|
|
|
|
+ 'uid': uid, 'serial_number': serial_number, 'old_version': now_ver,'new_version': version, 'mci': mci})
|
|
url = SERVER_DOMAIN + 'dlotapack/' + file_path
|
|
url = SERVER_DOMAIN + 'dlotapack/' + file_path
|
|
print(url)
|
|
print(url)
|
|
# if SERVER_TYPE == 'Ansjer.formal_settings':
|
|
# if SERVER_TYPE == 'Ansjer.formal_settings':
|
|
# url = SERVER_DOMAIN + 'dlotapack/' + file_path
|
|
# url = SERVER_DOMAIN + 'dlotapack/' + file_path
|
|
# else:
|
|
# else:
|
|
# 这里调用国内服务器进行下载,防止下载bug
|
|
# 这里调用国内服务器进行下载,防止下载bug
|
|
- # if code == '18E201200CA' or code == '18E201200CZ':
|
|
|
|
- # url = 'http://www.zositech.xyz/dlotapack/' + file_path
|
|
|
|
- # else:
|
|
|
|
- # url = SERVER_DOMAIN + 'dlotapack/' + file_path
|
|
|
|
|
|
+ # if code == '18E201200CA' or code == '18E201200CZ':
|
|
|
|
+ # url = 'http://www.zositech.xyz/dlotapack/' + file_path
|
|
|
|
+ # else:
|
|
|
|
+ # url = SERVER_DOMAIN + 'dlotapack/' + file_path
|
|
return response.json(0, {
|
|
return response.json(0, {
|
|
'ver': ver,
|
|
'ver': ver,
|
|
'url': url,
|
|
'url': url,
|
|
@@ -655,17 +661,26 @@ def downloadOTAInterface(request, fullPath, *callback_args, **callback_kwargs):
|
|
@csrf_exempt
|
|
@csrf_exempt
|
|
def downloadOTAInterfaceV2(request, fullPath, *callback_args, **callback_kwargs):
|
|
def downloadOTAInterfaceV2(request, fullPath, *callback_args, **callback_kwargs):
|
|
res = ResponseObject()
|
|
res = ResponseObject()
|
|
- print('fullPath:')
|
|
|
|
- print(fullPath)
|
|
|
|
|
|
+ # print('fullPath:%s' % fullPath)
|
|
# 解密url的token
|
|
# 解密url的token
|
|
url_token = UrlTokenObject(fullPath)
|
|
url_token = UrlTokenObject(fullPath)
|
|
- if ('' == url_token.Url):
|
|
|
|
|
|
+
|
|
|
|
+ fp = url_token.Url
|
|
|
|
+ serial_number = url_token.serial_number
|
|
|
|
+ uid = url_token.uid
|
|
|
|
+ user_id = url_token.user_id
|
|
|
|
+ mci = url_token.mci
|
|
|
|
+ old_version = url_token.old_version
|
|
|
|
+ new_version = url_token.new_version
|
|
|
|
+
|
|
|
|
+ if ('' == fp):
|
|
print('过期了')
|
|
print('过期了')
|
|
return res.json(907)
|
|
return res.json(907)
|
|
else:
|
|
else:
|
|
- print(url_token.Url)
|
|
|
|
- fp = url_token.Url
|
|
|
|
|
|
+ print('URL参数%s-%s-%s-%s-%s-', (url_token.Url,url_token.serial_number,url_token.uid,url_token.user_id,url_token.eid))
|
|
|
|
+
|
|
fullPath = fp[14:]
|
|
fullPath = fp[14:]
|
|
|
|
+
|
|
if fullPath:
|
|
if fullPath:
|
|
if os.path.isfile(fullPath):
|
|
if os.path.isfile(fullPath):
|
|
try:
|
|
try:
|
|
@@ -678,6 +693,20 @@ def downloadOTAInterfaceV2(request, fullPath, *callback_args, **callback_kwargs)
|
|
response['Content-SHA265'] = getMD5orSHA265(fullPath, 'SHA265')
|
|
response['Content-SHA265'] = getMD5orSHA265(fullPath, 'SHA265')
|
|
response['Content-CRC32'] = getMD5orSHA265(fullPath, 'CRC32')
|
|
response['Content-CRC32'] = getMD5orSHA265(fullPath, 'CRC32')
|
|
response['Content-Error'] = res.formal(0)
|
|
response['Content-Error'] = res.formal(0)
|
|
|
|
+
|
|
|
|
+ #设备下载OTA包,记录数据库
|
|
|
|
+ # 记录设备OTA升级
|
|
|
|
+ createdTime = int(time.time())
|
|
|
|
+ DeviceOTAUpgradeRecord.objects.create(
|
|
|
|
+ created_time=createdTime,
|
|
|
|
+ old_version=old_version,
|
|
|
|
+ new_version=new_version,
|
|
|
|
+ user_id=user_id,
|
|
|
|
+ serial_number=serial_number,
|
|
|
|
+ uid=uid,
|
|
|
|
+ mci=mci,
|
|
|
|
+ )
|
|
|
|
+
|
|
return response
|
|
return response
|
|
except Exception as e:
|
|
except Exception as e:
|
|
return res.json(906, repr(e))
|
|
return res.json(906, repr(e))
|
|
@@ -723,51 +752,6 @@ def getDownLoadOTApackUrl(request):
|
|
|
|
|
|
@csrf_exempt
|
|
@csrf_exempt
|
|
def checkMaxVersion(request):
|
|
def checkMaxVersion(request):
|
|
- # QT检查ota设备软件版本是否需要更新
|
|
|
|
- response = ResponseObject()
|
|
|
|
- if request.method == "POST":
|
|
|
|
- request_dict = request.POST
|
|
|
|
- elif request.method == "GET":
|
|
|
|
- request_dict = request.GET
|
|
|
|
- else:
|
|
|
|
- return response.json(444)
|
|
|
|
- deviceType = request_dict.get('deviceType', None)
|
|
|
|
- version = request_dict.get('version', None) # 设备版本:当前版本+设备规格代码
|
|
|
|
- lang = request_dict.get('lang', None) # 'zh-Hans','en'
|
|
|
|
- if not deviceType or not version:
|
|
|
|
- return response.json(444, 'deviceType or version')
|
|
|
|
- now_version = version[1:version.rindex('.')] # 去掉V
|
|
|
|
- code = version[version.rindex('.')+1:]
|
|
|
|
- equipmentVersion = Equipment_Version.objects.filter(mci=deviceType, code=code, lang=lang, status=1) # order by data_joined
|
|
|
|
- # 判断是否有该版本存在
|
|
|
|
- if not equipmentVersion.exists():
|
|
|
|
- return response.json(907)
|
|
|
|
-
|
|
|
|
- filePath = equipmentVersion[0].filePath
|
|
|
|
- softwareVersion = equipmentVersion[0].softwareVersion # 可用最新版本的版本号
|
|
|
|
- maxVersion = equipmentVersion[0].max_ver
|
|
|
|
- if now_version >= softwareVersion:
|
|
|
|
- # 当前版本大于等于最新版本,不需要更新
|
|
|
|
- return response.json(902)
|
|
|
|
- url = SERVER_DOMAIN + 'OTA/downloadsPack/' + filePath # 复用app下载ota包的方式
|
|
|
|
- res = {
|
|
|
|
- 'url': url,
|
|
|
|
- }
|
|
|
|
- # 记录设备OTA升级
|
|
|
|
- createdTime = int(time.time())
|
|
|
|
- # deviceOTA_UpgradeRecord = DeviceOTAUpgradeRecord({
|
|
|
|
- # Equipment_package=equipmentVersion[0].eid, created_time=createdTime, oldVersion=now_version, newVersion=softwareVersion})
|
|
|
|
- # deviceOTA_UpgradeRecord.save()
|
|
|
|
- DeviceOTAUpgradeRecord.objects.create(
|
|
|
|
- equipment_package=equipmentVersion[0],
|
|
|
|
- created_time=createdTime,
|
|
|
|
- old_version=version,
|
|
|
|
- new_version=equipmentVersion[0].version,
|
|
|
|
- )
|
|
|
|
- return response.json(0, res)
|
|
|
|
-
|
|
|
|
-@csrf_exempt
|
|
|
|
-def checkMaxVersionV2(request):
|
|
|
|
# QT检查ota设备软件版本是否需要更新
|
|
# QT检查ota设备软件版本是否需要更新
|
|
response = ResponseObject()
|
|
response = ResponseObject()
|
|
if request.method == "POST":
|
|
if request.method == "POST":
|
|
@@ -779,16 +763,6 @@ def checkMaxVersionV2(request):
|
|
deviceType = request_dict.get('deviceType', None)
|
|
deviceType = request_dict.get('deviceType', None)
|
|
version = request_dict.get('version', None) # 设备版本:当前版本+设备规格代码
|
|
version = request_dict.get('version', None) # 设备版本:当前版本+设备规格代码
|
|
lang = request_dict.get('lang', None) # 'zh-Hans','en'
|
|
lang = request_dict.get('lang', None) # 'zh-Hans','en'
|
|
- uid = request_dict.get('uid','null')
|
|
|
|
- serial_number = request_dict.get('serial_number','null')
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- token = request_dict.get('token',None)
|
|
|
|
- token_object = TokenObject(token)
|
|
|
|
- if token_object.code != 0:
|
|
|
|
- return response.json(token_object.code)
|
|
|
|
- user_id = token_object.userID
|
|
|
|
-
|
|
|
|
if not deviceType or not version:
|
|
if not deviceType or not version:
|
|
return response.json(444, 'deviceType or version')
|
|
return response.json(444, 'deviceType or version')
|
|
now_version = version[1:version.rindex('.')] # 去掉V
|
|
now_version = version[1:version.rindex('.')] # 去掉V
|
|
@@ -809,16 +783,6 @@ def checkMaxVersionV2(request):
|
|
res = {
|
|
res = {
|
|
'url': url,
|
|
'url': url,
|
|
}
|
|
}
|
|
- # 记录设备OTA升级
|
|
|
|
- createdTime = int(time.time())
|
|
|
|
- DeviceOTAUpgradeRecord.objects.create(
|
|
|
|
- equipment_package=equipmentVersion[0],
|
|
|
|
- created_time=createdTime,
|
|
|
|
- old_version=version,
|
|
|
|
- new_version=equipmentVersion[0].version,
|
|
|
|
- user_id=user_id,
|
|
|
|
- serial_number=serial_number,
|
|
|
|
- uid=uid,
|
|
|
|
- )
|
|
|
|
- print('执行成功%s' % DeviceOTAUpgradeRecord.id)
|
|
|
|
- return response.json(0, res)
|
|
|
|
|
|
+
|
|
|
|
+ return response.json(0, res)
|
|
|
|
+
|