|
@@ -1,4 +1,5 @@
|
|
|
import os
|
|
|
+import base64
|
|
|
import simplejson as json
|
|
|
import time
|
|
|
from django.utils import timezone
|
|
@@ -10,8 +11,10 @@ from Ansjer.config import BASE_DIR, SERVER_DOMAIN
|
|
|
from Model.models import Equipment_Version
|
|
|
from Object.ResponseObject import ResponseObject
|
|
|
from Object.TokenObject import TokenObject
|
|
|
+from Object.UrlTokenObject import UrlTokenObject
|
|
|
from Service.CommonService import CommonService
|
|
|
from Service.ModelService import ModelService
|
|
|
+from Object.base64Object import base64Object
|
|
|
|
|
|
'''
|
|
|
http://192.168.136.45:8077/equipment/OTA?token=test&operation=query&page=1&line=10
|
|
@@ -159,7 +162,9 @@ class EquipmentVersionView(View):
|
|
|
if operation is None:
|
|
|
return response.json(444, 'error path')
|
|
|
elif operation == 'checkVer':
|
|
|
- return self.do_check_ver(request_dict, response)
|
|
|
+ return self.do_check_value(request_dict, response)
|
|
|
+ # return self.do_check_ver(request_dict, response)
|
|
|
+
|
|
|
token = request_dict.get('token', None)
|
|
|
# 设备主键uid
|
|
|
tko = TokenObject(token)
|
|
@@ -195,7 +200,7 @@ class EquipmentVersionView(View):
|
|
|
path = file_path.replace('static/Upgrade/', '').replace('\\', '/')
|
|
|
url = SERVER_DOMAIN + 'OTA/downloads/' + path + '?time=' + str(time.time())
|
|
|
elif file_path.find('static/otapack') != -1:
|
|
|
- url = SERVER_DOMAIN + 'OTA/downloadsPack/' + file_path + '?time=' + str(time.time())
|
|
|
+ url = SERVER_DOMAIN + 'OTA/downloadsPack/' +file_path+ '?time=' + str(time.time())
|
|
|
else:
|
|
|
return response.json(900, '2')
|
|
|
res = {
|
|
@@ -205,6 +210,56 @@ class EquipmentVersionView(View):
|
|
|
"softwareVersion": eqs[0].softwareVersion
|
|
|
}
|
|
|
return response.json(0, res)
|
|
|
+ # 修改加密的路径
|
|
|
+ def do_check_value(self, request_dict, response):
|
|
|
+ code = request_dict.get('code', None)
|
|
|
+ ov = request_dict.get('ov', None)
|
|
|
+ uid = request_dict.get('uid', '')
|
|
|
+ if not code:
|
|
|
+ return response.json(444, 'code')
|
|
|
+ eqs = Equipment_Version.objects.filter(code=uid, status=1, lang='en').order_by('-data_joined')
|
|
|
+
|
|
|
+ if not eqs.exclude():
|
|
|
+ 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
|
|
|
+ if file_path.find('static/Upgrade/') != -1:
|
|
|
+ path = file_path.replace('static/Upgrade/', '').replace('\\', '/')
|
|
|
+ # base64Object加密
|
|
|
+ # path = base64Object.generate_token(key="ansjer/"+CommonService.RandomStr(6) +"/"+path)
|
|
|
+
|
|
|
+ # 创建url的token
|
|
|
+ tko = UrlTokenObject()
|
|
|
+ path = tko.generate(data={'Url': "ansjer/"+CommonService.RandomStr(6) +"/"+ file_path})
|
|
|
+
|
|
|
+ url = SERVER_DOMAIN + 'OTA/downloads/' + path
|
|
|
+ elif file_path.find('static/otapack') != -1:
|
|
|
+ file_path = file_path
|
|
|
+ # base64Object加密
|
|
|
+ # file_path = base64Object.generate_token(key= "ansjer/"+CommonService.RandomStr(6) +"/"+ file_path)
|
|
|
+
|
|
|
+ # 创建url的token
|
|
|
+ tko = UrlTokenObject()
|
|
|
+ file_path = tko.generate(data={'Url': "ansjer/"+CommonService.RandomStr(6) +"/"+ file_path})
|
|
|
+
|
|
|
+ url = SERVER_DOMAIN + 'dlotapack/' +file_path
|
|
|
+ else:
|
|
|
+ return response.json(900, '2')
|
|
|
+
|
|
|
+
|
|
|
+ res = {
|
|
|
+ "url": url,
|
|
|
+ "fileSize": eqs[0].fileSize,
|
|
|
+ "Description": eqs[0].Description,
|
|
|
+ "softwareVersion": eqs[0].softwareVersion
|
|
|
+ }
|
|
|
+ print (url)
|
|
|
+ return response.json(0, res)
|
|
|
|
|
|
def do_query(self, request_dict, response):
|
|
|
mci = request_dict.get('mci', None)
|
|
@@ -222,6 +277,7 @@ class EquipmentVersionView(View):
|
|
|
if code is not None:
|
|
|
cv_qs = cv_qs.filter(code__contains=code)
|
|
|
cv_qs = cv_qs.order_by('code').values_list('code', flat=True).distinct()
|
|
|
+ print (cv_qs)
|
|
|
count = cv_qs.count()
|
|
|
cv_qs = list(cv_qs[(page - 1) * line:page * line])
|
|
|
# return response.json(0, cv_qs)
|