chenjunkai 6 жил өмнө
parent
commit
18ff859242

+ 1 - 14
Ansjer/test/test.py

@@ -1,14 +1 @@
-#!/usr/bin/env python3  
-# -*- coding: utf-8 -*-  
-"""
-@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
-@AUTHOR: ASJRD018
-@NAME: AnsjerFormal
-@software: PyCharm
-@DATE: 2018/10/17 10:53
-@Version: python3.6
-@MODIFY DECORD:ansjer dev
-@file: test.py
-@Contact: chanjunkai@163.com
-"""
-
+import paypalrestsdk

+ 3 - 1
Ansjer/urls.py

@@ -116,8 +116,10 @@ urlpatterns = [
     # 多条件搜索用户信息admin
     path('accounts', AdminManage.search_user_by_content),
 
-    # 新需求v1接口
+    # 新需求ota接口
     url(r'^OTA/getNewVer', OTAEquipment.getNewVerInterface),
+    url(r'^OTA/uploadsPack$', OTAEquipment.uploadOTAInterfaceView.as_view()),
+
 
     # 测试专用api
     path('Test', Test.Test.as_view()),

+ 71 - 0
Controller/OTAEquipment.py

@@ -520,3 +520,74 @@ def getNewVerInterface(request):
             return response.json(tko.code)
     else:
         return response.json(444,'token,code')
+
+# ota包上传
+class uploadOTAInterfaceView(TemplateView):
+    @method_decorator(csrf_exempt)
+    def dispatch(self, *args, **kwargs):
+        return super(uploadOTAInterfaceView, self).dispatch(*args, **kwargs)
+
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        token = request.POST.get('token', None)
+        fileName = request.FILES.get('fileName', None)
+        return self.validate(token,fileName)
+
+    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)
+
+    def validate(self, token,fileName):
+        response = ResponseObject()
+        print(token)
+        print(fileName)
+        if fileName != None and token != None:
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                userID = tko.userID
+                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)
+                    else:
+                        return response.json(404)
+                else:
+                    return response.json(310)
+            else:
+                return response.json(tko.code)
+        else:
+            return response.json(800)
+
+    def upload_ota_file(self,fileName,response):
+        try:
+            path = '/'.join((BASE_DIR, 'static/Upgrade', str(time.time()))).replace('\\', '/') + '/'
+            if not os.path.exists(path):
+                os.makedirs(path)
+                file_name = path + str(fileName)
+                if os.path.exists(file_name):
+                    os.remove(file_name)
+                destination = open(file_name, 'wb+')
+                for chunk in fileName.chunks():
+                    destination.write(chunk)
+                destination.close()
+            else:
+                file_name = path + str(fileName)
+                if os.path.exists(file_name):
+                    os.remove(file_name)
+
+                destination = open(file_name, 'wb+')
+                for chunk in fileName.chunks():
+                    destination.write(chunk)
+                destination.close()
+        except Exception as e:
+            errorInfo = traceback.format_exc()
+            print('上传文件错误: %s' % errorInfo)
+            return response.json(700, {'details': repr(e)})
+        else:
+            index = file_name.find('static/')
+            filePath = file_name[index:]
+            return response.json(0, {'filePath': filePath})

+ 1 - 1
Model/models.py

@@ -535,7 +535,7 @@ class Equipment_Version(models.Model):
     ESN = models.CharField(blank=True, max_length=32, verbose_name=u'设备规格名称')
     code = models.CharField(blank=True, max_length=32, verbose_name=u'设备规格代码')
     version = models.CharField(blank=True, max_length=32, verbose_name=u'设备版本')
-    softwareVersion = models.CharField(blank=True, max_length=32, verbose_name=u'软件版本')
+    softwareVersion = models.CharField(blank=True, max_length=32, verbose_name=u'软件版本')
     chipModelList2Code = models.CharField(max_length=32,blank=True, verbose_name=u'主芯片码')
     channel = models.IntegerField(blank=True, verbose_name=u'通道数')
     resolutionRatio = models.IntegerField(blank=True, verbose_name=u'分辨率')

+ 2 - 2
Object/ResponseObject.py

@@ -94,7 +94,7 @@ class ResponseObject(object):
             701: 'The file does not exist!',
             900: 'There is no information about this version!',
             901: 'Getting URL failure!',
-            902: 'The code does not exist!',
+            902: 'No update!',
             903: 'Error filename',
             906: 'Cause of file operation error',
             907: 'The download file does not exist!',
@@ -183,7 +183,7 @@ class ResponseObject(object):
             701: '文件不存在',
             900: '版本信息不存在',
             901: '获取链接失败',
-            902: 'code不存在!',
+            902: '无更新!',
             903: '文件名不符合!',
             906: '文件操作错误',
             907: '文件不存在!',