chenjunkai 6 жил өмнө
parent
commit
4379da9567

+ 50 - 29
Controller/OTAEquipment.py

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