Browse Source

新增NVR获取IPC升级链接接口

locky 3 năm trước cách đây
mục cha
commit
86a2797fad
2 tập tin đã thay đổi với 40 bổ sung7 xóa
  1. 0 6
      Ansjer/urls.py
  2. 40 1
      Controller/EquipmentOTA.py

+ 0 - 6
Ansjer/urls.py

@@ -287,15 +287,9 @@ urlpatterns = [
     url(r'^cdk/(?P<operation>.*)$', CDKController.CDKView.as_view()),
     # 云存转移功能
     url(r'^cloudTransfer/(?P<operation>.*)$', CloudTransfer.cloudTestView.as_view()),
-
     # 优惠券
     url(r'^coupon/(?P<operation>.*)$', CouponController.CouponView.as_view()),
 
-    # app 设备消息模板
-    # 路由加参数参考
-    # url(r'^(?P<path>.*)/(?P<UID>.*)/lls$', Test.Test.as_view(), name=u'gg'),
-    # testing....................
-
     # 云存服务统计
     url(r'^Cloudsum/(?P<operation>.*)$', Cloudsum.Cloudsum.as_view()),
     # 设备ip地区统计

+ 40 - 1
Controller/EquipmentOTA.py

@@ -1,15 +1,19 @@
 import hashlib
 import os
 import uuid
+from wsgiref.util import FileWrapper
 
 import simplejson as json
 import time
+
+from django.http import HttpResponse
 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, SERVER_DOMAIN
+from Controller.OTAEquipment import getMD5orSHA265
 from Model.models import Equipment_Version, EquipmentVersionLimitModel, CountryIPModel
 from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
@@ -166,7 +170,8 @@ class EquipmentVersionView(View):
             return response.json(444, 'error path')
         elif operation == 'checkVer':
             return self.do_check_value(request_dict, response)
-            # return self.do_check_ver(request_dict, response)
+        elif operation == 'checkIpcVer':
+            return self.check_ipc_ver(request_dict, response)
 
         token = request_dict.get('token', None)
         # 设备主键uid
@@ -335,6 +340,40 @@ class EquipmentVersionView(View):
         print(url)
         return response.json(0, res)
 
+    @staticmethod
+    def check_ipc_ver(request_dict, response):
+        """
+        NVR获取IPC升级链接
+        @param request_dict: 请求参数
+        @request_dict lang: 语言
+        @request_dict code: 网关设备id
+        @request_dict now_ver: 设备当前版本
+        @param response: 响应对象
+        @return: response
+        """
+        lang = request_dict.get('lang', None)
+        code = request_dict.get('code', None)
+        now_ver = request_dict.get('now_ver', None)
+
+        if not all([code, lang, now_ver]):
+            return response.json(902, {'param': 'code, lang, ver'})
+        equipment_version_qs = Equipment_Version.objects.filter(code=code, status=1, lang=lang).order_by('-data_joined')
+        if not equipment_version_qs.exists():
+            return response.json(902)
+        equipment = equipment_version_qs[0]
+        file_path = equipment.filePath
+        max_ver = equipment.max_ver
+        if now_ver > max_ver:
+            return response.json(902)
+        url = SERVER_DOMAIN + 'OTA/downloadsPack/' + file_path
+        res = {
+            "url": url,
+            "fileSize": equipment.fileSize,
+            "Description": equipment.Description,
+            "softwareVersion": equipment.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)