chenjunkai 6 years ago
parent
commit
4379da9567
1 changed files with 50 additions and 29 deletions
  1. 50 29
      Controller/OTAEquipment.py

+ 50 - 29
Controller/OTAEquipment.py

@@ -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: