Explorar o código

feature:add new http interface to carmea pro

chenjunkai %!s(int64=6) %!d(string=hai) anos
pai
achega
316df0436f
Modificáronse 2 ficheiros con 40 adicións e 5 borrados
  1. 38 2
      Controller/EquipmentOTA.py
  2. 2 3
      Controller/OTAEquipment.py

+ 38 - 2
Controller/EquipmentOTA.py

@@ -1,12 +1,12 @@
 import os
 import simplejson as json
-
+import time
 from django.utils import timezone
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.generic.base import View
 
-from Ansjer.config import BASE_DIR
+from Ansjer.config import BASE_DIR, SERVER_DOMAIN
 from Model.models import Equipment_Version
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
@@ -170,9 +170,45 @@ class EquipmentVersionView(View):
             return response.json(404)
         if operation == 'query':
             return self.do_query(request_dict, response)
+        elif operation == 'checkVer':
+            return self.do_check_ver(request_dict, response)
         else:
             return response.json(444, 'error path')
 
+    def do_check_ver(self, request_dict, response):
+        code = request_dict.get('code', None)
+        ov = request_dict.get('ov', None)
+        uid = request_dict.get('uid', None)
+        if not code:
+            return response.json(444, 'code')
+        if uid is not None:
+            eqs = Equipment_Version.objects.filter(code=uid, status=1, lang='en').order_by('-data_joined')
+        else:
+            eqs = Equipment_Version.objects.filter(code=code, status=1, lang='en').order_by('-data_joined')
+        if not eqs.exists():
+            return response.json(900)
+        if ov is not None:
+            # 判断大小
+            if ov > eqs[0].softwareVersion:
+                return response.json(0, {'softwareVersion': ov})
+        file_path = eqs[0].filePath
+        urls = []
+        if file_path.find('static/Upgrade/') != -1:
+            path = file_path.replace('static/Upgrade/', '').replace('\\', '/')
+            url = SERVER_DOMAIN + 'OTA/downloads/' + path + '?time=' + str(time.time())
+            urls.append(url)
+        elif file_path.find('static/otapack') != -1:
+            url = SERVER_DOMAIN + 'OTA/downloadsPack/' + file_path + '?time=' + str(time.time())
+            urls.append(url)
+        res = {
+            "urlCount": len(urls),
+            "url": urls,
+            "fileSize": eqs[0].fileSize,
+            "Description": eqs[0].Description,
+            "softwareVersion":eqs[0].softwareVersion
+        }
+        return response.json(0,res)
+
     def do_query(self, request_dict, response):
         mci = request_dict.get('mci', None)
         page = request_dict.get('page', None)

+ 2 - 3
Controller/OTAEquipment.py

@@ -148,7 +148,7 @@ def getEquipmentVersionInterface(request):
         # 判断大小
         nv = eqs[0].softwareVersion
         if ov > nv:
-            return response.json(900)
+            return response.json(0, {'softwareVersion': ov})
     equipment = eqs[0]
     return response.json(0, {'softwareVersion': equipment.softwareVersion})
 
@@ -156,11 +156,10 @@ def getEquipmentVersionInterface(request):
 @csrf_exempt
 def getUpdataFileUrlInterface(request):
     response = ResponseObject()
+    request.encoding = 'utf-8'
     if request.method == "POST":
-        request.encoding = 'utf-8'
         code = request.POST.get('code', None)
     elif request.method == "GET":
-        request.encoding = 'utf-8'
         code = request.GET.get('code', None)
     else:
         return response.json(444)