|
@@ -10,13 +10,14 @@ from Model.models import Equipment_Version
|
|
|
from Model.models import Device_User
|
|
|
from Service.ModelService import ModelService
|
|
|
from Service.CommonService import CommonService
|
|
|
-import time, os,simplejson as json
|
|
|
+import time, os, simplejson as json
|
|
|
from Object.ResponseObject import ResponseObject
|
|
|
from Object.TokenObject import TokenObject
|
|
|
from django.http import HttpResponse
|
|
|
from Ansjer.settings import BASE_DIR
|
|
|
|
|
|
-def addNewEquipmentVersion(deviceContent, token,response):
|
|
|
+
|
|
|
+def addNewEquipmentVersion(deviceContent, token, response):
|
|
|
"""
|
|
|
:param deviceContent:
|
|
|
:return:
|
|
@@ -35,7 +36,7 @@ def addNewEquipmentVersion(deviceContent, token,response):
|
|
|
print(type(deviceContent))
|
|
|
deviceData = json.loads(deviceContent)
|
|
|
except Exception as e:
|
|
|
- return response.json(803,repr(e))
|
|
|
+ return response.json(803, repr(e))
|
|
|
else:
|
|
|
version = deviceData.get('version', None)
|
|
|
if version is not None:
|
|
@@ -53,7 +54,7 @@ def addNewEquipmentVersion(deviceContent, token,response):
|
|
|
print('添加设备错误: %s ' % errorInfo)
|
|
|
return response.json(806, repr(e))
|
|
|
else:
|
|
|
- res =CommonService.qs_to_dict([equipmentVersion])
|
|
|
+ res = CommonService.qs_to_dict([equipmentVersion])
|
|
|
return response.json(0, res)
|
|
|
else:
|
|
|
return response.json(806)
|
|
@@ -66,6 +67,7 @@ def addNewEquipmentVersion(deviceContent, token,response):
|
|
|
else:
|
|
|
return response.json(311)
|
|
|
|
|
|
+
|
|
|
def downloadUrl(fileType, fileCode, fileVersion, fileName):
|
|
|
fullPath = os.path.join(BASE_DIR, "static/Upgrade").replace('\\', '/')
|
|
|
if fileType == 'IPC':
|
|
@@ -103,7 +105,7 @@ def downloadUrl(fileType, fileCode, fileVersion, fileName):
|
|
|
return response
|
|
|
|
|
|
except Exception as e:
|
|
|
- res =ResponseObject()
|
|
|
+ res = ResponseObject()
|
|
|
errorJSON = res.formal(906, {'details': repr(e)})
|
|
|
response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
|
|
|
response['Content-Error'] = errorJSON
|
|
@@ -115,6 +117,7 @@ def downloadUrl(fileType, fileCode, fileVersion, fileName):
|
|
|
response['Content-Error'] = errorJSON
|
|
|
return response
|
|
|
|
|
|
+
|
|
|
def getMD5orSHA265(fileName, encryptionType='MD5'):
|
|
|
"""
|
|
|
|
|
@@ -146,6 +149,7 @@ def getMD5orSHA265(fileName, encryptionType='MD5'):
|
|
|
f.close()
|
|
|
return encryption.hexdigest()
|
|
|
|
|
|
+
|
|
|
@csrf_exempt
|
|
|
def downloadUpdataFileUrl(request):
|
|
|
response = ResponseObject()
|
|
@@ -164,7 +168,7 @@ def downloadUpdataFileUrl(request):
|
|
|
fileName = request_dict.get('fileName', None)
|
|
|
if fileType != None and fileCode != None and fileVersion != \
|
|
|
None and fileName != None:
|
|
|
- return downloadUrl(fileType, fileCode, fileVersion, fileName,response)
|
|
|
+ return downloadUrl(fileType, fileCode, fileVersion, fileName, response)
|
|
|
|
|
|
else:
|
|
|
errorJSON = response.formal(800)
|
|
@@ -172,10 +176,12 @@ def downloadUpdataFileUrl(request):
|
|
|
response['Content-Error'] = errorJSON
|
|
|
return response
|
|
|
|
|
|
+
|
|
|
'''
|
|
|
http://192.168.136.40:8077/OTA/getEquipmentVersion?31AX162001A
|
|
|
'''
|
|
|
|
|
|
+
|
|
|
@csrf_exempt
|
|
|
def getEquipmentVersionInterface(request):
|
|
|
response = ResponseObject()
|
|
@@ -189,7 +195,7 @@ def getEquipmentVersionInterface(request):
|
|
|
return response.json(801)
|
|
|
if code is not None:
|
|
|
try:
|
|
|
- equipmentValid = Equipment_Version.objects.filter(code=code, status=1,lang='').order_by('-data_joined')
|
|
|
+ equipmentValid = Equipment_Version.objects.filter(code=code, status=1, lang='').order_by('-data_joined')
|
|
|
except Exception as e:
|
|
|
errorInfo = traceback.format_exc()
|
|
|
print('查询数据库错误: %s' % errorInfo)
|
|
@@ -203,6 +209,7 @@ def getEquipmentVersionInterface(request):
|
|
|
else:
|
|
|
return response.json(800)
|
|
|
|
|
|
+
|
|
|
@csrf_exempt
|
|
|
def getUpdataFileUrlInterface(request):
|
|
|
response = ResponseObject()
|
|
@@ -245,6 +252,7 @@ def getUpdataFileUrlInterface(request):
|
|
|
else:
|
|
|
return response.json(800)
|
|
|
|
|
|
+
|
|
|
@csrf_exempt
|
|
|
def downloadUpdataFileUrlInterface(request, fileType, fileName,
|
|
|
*callback_args, **callback_kwargs):
|
|
@@ -307,6 +315,7 @@ def downloadUpdataFileUrlInterface(request, fileType, fileName,
|
|
|
response['Content-Error'] = errorJSON
|
|
|
return response
|
|
|
|
|
|
+
|
|
|
class getUploadFiletoDirView(TemplateView):
|
|
|
@method_decorator(csrf_exempt)
|
|
|
def dispatch(self, *args, **kwargs):
|
|
@@ -316,15 +325,15 @@ class getUploadFiletoDirView(TemplateView):
|
|
|
request.encoding = 'utf-8'
|
|
|
request_dict = request.POST
|
|
|
fileName = request.FILES.get('fileName', None)
|
|
|
- return self.ValidationError(request_dict,fileName)
|
|
|
+ return self.ValidationError(request_dict, fileName)
|
|
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
|
request.encoding = 'gb2312'
|
|
|
request_dict = request.GET
|
|
|
fileName = request.FILES.get('fileName', None)
|
|
|
- return self.ValidationError(request_dict,fileName)
|
|
|
+ return self.ValidationError(request_dict, fileName)
|
|
|
|
|
|
- def ValidationError(self, request_dict,fileName):
|
|
|
+ def ValidationError(self, request_dict, fileName):
|
|
|
response = ResponseObject()
|
|
|
token = request_dict.get('token', None)
|
|
|
fileType = request_dict.get('fileType', None)
|
|
@@ -340,9 +349,10 @@ class getUploadFiletoDirView(TemplateView):
|
|
|
own_permission = ModelService.check_permission(userID=userID, permID=210)
|
|
|
if own_permission is True:
|
|
|
if fileVersion != None and fileCode != None:
|
|
|
- return self.getUploadFiletoDir(userID, fileType, fileName,response,fileCode, fileVersion=fileVersion)
|
|
|
+ return self.getUploadFiletoDir(userID, fileType, fileName, response, fileCode,
|
|
|
+ fileVersion=fileVersion)
|
|
|
else:
|
|
|
- return self.getUploadFiletoDir(userID, fileType, fileName,response)
|
|
|
+ return self.getUploadFiletoDir(userID, fileType, fileName, response)
|
|
|
else:
|
|
|
return response.json(404)
|
|
|
else:
|
|
@@ -352,7 +362,7 @@ class getUploadFiletoDirView(TemplateView):
|
|
|
else:
|
|
|
return response.json(800)
|
|
|
|
|
|
- def getUploadFiletoDir(self, userID, fileType, fileName,response, *args, **kwargs):
|
|
|
+ def getUploadFiletoDir(self, userID, fileType, fileName, response, *args, **kwargs):
|
|
|
"""
|
|
|
将上传的文件写入服务器对应目录下
|
|
|
:param Type: equipment type
|
|
@@ -381,7 +391,7 @@ class getUploadFiletoDirView(TemplateView):
|
|
|
fileCode = len(updataFile[versionIndex + 1: codeIndex]) > 0 and \
|
|
|
updataFile[versionIndex + 1: codeIndex] or None
|
|
|
if fileCode is not None and fileVersion is not None:
|
|
|
- return self.getDir(fileType, fileName, fileCode, fileVersion,response)
|
|
|
+ return self.getDir(fileType, fileName, fileCode, fileVersion, response)
|
|
|
else:
|
|
|
fileCode = kwargs.get('fileCode', None)
|
|
|
fileVersion = kwargs.get('fileVersion', None)
|
|
@@ -394,11 +404,11 @@ class getUploadFiletoDirView(TemplateView):
|
|
|
fileCode = kwargs.get('fileCode', None)
|
|
|
fileVersion = kwargs.get('fileVersion', None)
|
|
|
if fileCode != None and fileVersion != None:
|
|
|
- return self.getDir(fileType, fileName, fileCode, fileVersion,response)
|
|
|
+ return self.getDir(fileType, fileName, fileCode, fileVersion, response)
|
|
|
else:
|
|
|
return response.json(903)
|
|
|
|
|
|
- def getDir(self,fileType, fileName, fileCode, fileVersion, response):
|
|
|
+ def getDir(self, fileType, fileName, fileCode, fileVersion, response):
|
|
|
try:
|
|
|
if fileCode != None and fileVersion != None:
|
|
|
path = '/'.join((BASE_DIR, 'static/Upgrade', fileType, fileCode, fileVersion)).replace('\\', '/') + '/'
|
|
@@ -433,9 +443,9 @@ class getUploadFiletoDirView(TemplateView):
|
|
|
filePath = file_name[index:]
|
|
|
return response.json(0, {'filePath': filePath})
|
|
|
|
|
|
+
|
|
|
@csrf_exempt
|
|
|
def addNewEquipmentVersionInterface(request):
|
|
|
-
|
|
|
response = ResponseObject()
|
|
|
if request.method == "POST":
|
|
|
request.encoding = 'utf-8'
|
|
@@ -450,11 +460,12 @@ def addNewEquipmentVersionInterface(request):
|
|
|
deviceContent = str(deviceContent, encoding='utf-8')
|
|
|
deviceContent = deviceContent.replace(' ', ' ').replace('\'', '\"')
|
|
|
if deviceContent is not None:
|
|
|
- return addNewEquipmentVersion(deviceContent, token,response)
|
|
|
+ return addNewEquipmentVersion(deviceContent, token, response)
|
|
|
else:
|
|
|
return response.json(800)
|
|
|
|
|
|
-def showAllEquipmentVersion(userID,response):
|
|
|
+
|
|
|
+def showAllEquipmentVersion(userID, response):
|
|
|
try:
|
|
|
userValid = Device_User.objects.filter(userID=userID).order_by('-data_joined')
|
|
|
except Exception as e:
|
|
@@ -475,6 +486,7 @@ def showAllEquipmentVersion(userID,response):
|
|
|
else:
|
|
|
return response.json(113)
|
|
|
|
|
|
+
|
|
|
# 检测ota更新包
|
|
|
@csrf_exempt
|
|
|
def getNewVerInterface(request):
|
|
@@ -499,7 +511,8 @@ def getNewVerInterface(request):
|
|
|
if tko.code == 0:
|
|
|
try:
|
|
|
if lang is not None and lang != '':
|
|
|
- equipmentValid = Equipment_Version.objects.filter(code=code, status=1, lang=lang).order_by('-data_joined')
|
|
|
+ equipmentValid = Equipment_Version.objects.filter(code=code, status=1, lang=lang).order_by(
|
|
|
+ '-data_joined')
|
|
|
else:
|
|
|
equipmentValid = Equipment_Version.objects.filter(code=code, status=1).order_by('-data_joined')
|
|
|
except Exception as e:
|
|
@@ -523,7 +536,8 @@ def getNewVerInterface(request):
|
|
|
else:
|
|
|
return response.json(tko.code)
|
|
|
else:
|
|
|
- return response.json(444,'token,code')
|
|
|
+ return response.json(444, 'token,code')
|
|
|
+
|
|
|
|
|
|
# ota包上传
|
|
|
class uploadOTAInterfaceView(TemplateView):
|
|
@@ -535,19 +549,23 @@ class uploadOTAInterfaceView(TemplateView):
|
|
|
request.encoding = 'utf-8'
|
|
|
token = request.POST.get('token', None)
|
|
|
fileName = request.FILES.get('fileName', None)
|
|
|
- return self.validate(token,fileName)
|
|
|
+ fileType = request.POST.get('fileType', None)
|
|
|
+ language = request.POST.get('language', None)
|
|
|
+ return self.validate(token, fileName, fileType, language)
|
|
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
|
request.encoding = 'gb2312'
|
|
|
token = request.GET.get('token', None)
|
|
|
fileName = request.FILES.get('fileName', None)
|
|
|
- return self.validate(token,fileName)
|
|
|
+ fileType = request.GET.get('fileType', None)
|
|
|
+ language = request.GET.get('language', None)
|
|
|
+ return self.validate(token, fileName, fileType, language)
|
|
|
|
|
|
- def validate(self, token,fileName):
|
|
|
+ def validate(self, token, fileName, fileType, language):
|
|
|
response = ResponseObject()
|
|
|
print(token)
|
|
|
print(fileName)
|
|
|
- if fileName != None and token != None:
|
|
|
+ if fileName is not None and token is not None and fileType is not None:
|
|
|
tko = TokenObject(token)
|
|
|
tko.valid()
|
|
|
response.lang = tko.lang
|
|
@@ -556,7 +574,7 @@ class uploadOTAInterfaceView(TemplateView):
|
|
|
if userID is not None:
|
|
|
own_permission = ModelService.check_permission(userID=userID, permID=210)
|
|
|
if own_permission is True:
|
|
|
- return self.upload_ota_file(fileName,response)
|
|
|
+ return self.upload_ota_file(fileName, response, fileType, language)
|
|
|
else:
|
|
|
return response.json(404)
|
|
|
else:
|
|
@@ -566,9 +584,11 @@ class uploadOTAInterfaceView(TemplateView):
|
|
|
else:
|
|
|
return response.json(800)
|
|
|
|
|
|
- def upload_ota_file(self,fileName,response):
|
|
|
+ def upload_ota_file(self, fileName, response,fileType,language):
|
|
|
try:
|
|
|
- path = '/'.join((BASE_DIR, 'static/otapack', str(int(time.time())))).replace('\\', '/') + '/'
|
|
|
+ if not language:
|
|
|
+ language = 'xx'
|
|
|
+ path = '/'.join((BASE_DIR, 'static/otapack', fileType,language)).replace('\\', '/') + '/'
|
|
|
if not os.path.exists(path):
|
|
|
os.makedirs(path)
|
|
|
file_name = path + str(fileName)
|
|
@@ -596,6 +616,7 @@ class uploadOTAInterfaceView(TemplateView):
|
|
|
filePath = file_name[index:]
|
|
|
return response.json(0, {'filePath': filePath})
|
|
|
|
|
|
+
|
|
|
# ota包下载
|
|
|
# class downloadOTAInterfaceView(TemplateView):
|
|
|
|
|
@@ -619,7 +640,7 @@ def downloadOTAInterface(request, fullPath, *callback_args, **callback_kwargs):
|
|
|
response['Content-Error'] = JSON
|
|
|
return response
|
|
|
except Exception as e:
|
|
|
- return res.json(906,repr(e))
|
|
|
+ return res.json(906, repr(e))
|
|
|
else:
|
|
|
return res.json(907)
|
|
|
else:
|