chenjunkai 6 жил өмнө
parent
commit
fb41673876

+ 29 - 34
Controller/AccessLog.py

@@ -39,24 +39,22 @@ class AccessLog(View):
 
     def validation(self, request_dict, response):
         token = request_dict.get('token', None)
-        if token is not None:
-            tko = TokenObject(token)
-            response.lang = tko.lang
-            if tko.code == 0:
-                userID = tko.userID
-                operation = request_dict.get('operation', None)
-                if userID is not None and operation is not None:
-                    if operation == 'queryByAdmin':
-                        return self.query_by_admin(request_dict, userID, response)
-                    elif operation == 'searchByAdmin':
-                        return self.search_by_admin(request_dict, userID, response)
-                    elif operation == 'truncateByAdmin':
-                        return self.truncate_by_admin(userID, response)
-                return response.json(444, 'token,operation')
-            else:
-                return response.json(tko.code)
-        else:
-            return response.json(309)
+        tko = TokenObject(token)
+        response.lang = tko.lang
+        if tko.code != 0:
+            return response.json(tko.code)
+        userID = tko.userID
+        operation = request_dict.get('operation', None)
+        if not userID:
+            return response.json(104)
+        if not operation:
+            return response.json(444,'operation')
+        if operation == 'queryByAdmin':
+            return self.query_by_admin(request_dict, userID, response)
+        elif operation == 'searchByAdmin':
+            return self.search_by_admin(request_dict, userID, response)
+        elif operation == 'truncateByAdmin':
+            return self.truncate_by_admin(userID, response)
 
     def query_by_admin(self, request_dict, userID, response):
         page = int(request_dict.get('page', None))
@@ -64,22 +62,19 @@ class AccessLog(View):
         order = request_dict.get('order', '-id')
         if order == '':
             order = '-id'
-        param_flag = CommonService.get_param_flag(data=[page, line])
-        if param_flag is True:
-            check_perm = ModelService.check_permission(userID=userID, permID=30)
-            if check_perm is True:
-                access_log_queryset = Access_Log.objects.all().order_by(order)
-                if access_log_queryset.exists():
-                    count = access_log_queryset.count()
-                    res = access_log_queryset[(page - 1) * line:page * line]
-                    send_json = CommonService.qs_to_dict(res)
-                    send_json['count'] = count
-                    return response.json(0, send_json)
-                return response.json(0, {'datas': [], 'count': 0})
-            else:
-                return response.json(404)
-        else:
-            return response.json(444)
+        if not page or not line:
+            return response.json(444,'page,line')
+        own_perm = ModelService.check_permission(userID=userID, permID=30)
+        if own_perm is not True:
+            return response.json(404)
+        qs = Access_Log.objects.all().order_by(order)
+        if qs.exists():
+            count = qs.count()
+            res = qs[(page - 1) * line:page * line]
+            send_json = CommonService.qs_to_dict(res)
+            send_json['count'] = count
+            return response.json(0, send_json)
+        return response.json(0, {'datas': [], 'count': 0})
 
     # 清空日志表
     def truncate_by_admin(self, userID, response, ):

+ 2 - 1
Controller/MealManage.py

@@ -247,7 +247,8 @@ class MealView(View):
                     res[q['bucket__area']] = []
                 res[q['bucket__area']].append(q)
             # res['cloudpng'] = 'https://www.dvema.com/web/images/cloud_banner.png'
-            return response.json(0,res)
+            result = {'meals':res,'extra':{'cloud_banner':'https://www.dvema.com/web/images/cloud_banner.png'}}
+            return response.json(0,result)
         else:
             return response.json(0, [])
 

+ 167 - 226
Controller/OTAEquipment.py

@@ -194,28 +194,18 @@ def getEquipmentVersionInterface(request):
         return response.json(801)
     code = request_dict.get('code', None)
     ov = request_dict.get('ov', None)
-
-    if code is not None:
-        try:
-            equipmentValid = Equipment_Version.objects.filter(code=code, status=1, lang='en').order_by('-data_joined')
-        except Exception as e:
-            errorInfo = traceback.format_exc()
-            print('查询数据库错误: %s' % errorInfo)
-            return response.json(500, {'details': repr(e)})
-        else:
-
-            if equipmentValid:
-                # 判断大小
-                if ov is not None:
-                    nv = equipmentValid[0].softwareVersion
-                    if ov > nv:
-                        return response.json(900)
-                equipment = equipmentValid[0]
-                return response.json(0, {'softwareVersion': equipment.softwareVersion})
-            else:
-                return response.json(900)
-    else:
-        return response.json(800)
+    if not code:
+        return response.json(444, 'code')
+    equipmentValid = Equipment_Version.objects.filter(code=code, status=1, lang='en').order_by('-data_joined')
+    if not equipmentValid.exists():
+        return response.json(900)
+    if ov is not None:
+        # 判断大小
+        nv = equipmentValid[0].softwareVersion
+        if ov > nv:
+            return response.json(900)
+    equipment = equipmentValid[0]
+    return response.json(0, {'softwareVersion': equipment.softwareVersion})
 
 
 @csrf_exempt
@@ -230,35 +220,32 @@ def getUpdataFileUrlInterface(request):
     else:
         return response.json(801)
     code = request_dict.get('code', None)
-    # http_host = request.META.get('HTTP_HOST', None)
-    if code:
-        equipmentValid = Equipment_Version.objects.filter(code=code, status=1,lang='en').order_by('-data_joined')
-        # 判断是否有版本存在
-        if equipmentValid.exists():
-            equipment = equipmentValid[0]
-            file_path = equipment.filePath
-            urls = []
-            if file_path:
-                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)
-                if file_path.find('static/otapack') != -1:
-                    url = SERVER_DOMAIN + 'OTA/downloadsPack/' + file_path + '?time=' + str(time.time())
-                    urls.append(url)
-            if len(urls) > 0:
-                return response.json(0, {
-                    "urlCount": len(urls),
-                    "url": urls,
-                    "fileSize": equipment.fileSize,
-                    "Description": equipment.Description,
-                })
-            else:
-                return response.json(901)
-        else:
-            return response.json(902)
+    if not code:
+        return response.json(444, 'code')
+    eq = Equipment_Version.objects.filter(code=code, status=1, lang='en').order_by('-data_joined')
+    # 判断是否有版本存在
+    if not eq.exists():
+        return response.json(902)
+    file_path = eq[0].filePath
+    urls = []
+    if file_path:
+        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)
+        if file_path.find('static/otapack') != -1:
+            url = SERVER_DOMAIN + 'OTA/downloadsPack/' + file_path + '?time=' + str(time.time())
+            urls.append(url)
+    if len(urls) > 0:
+        res = {
+            "urlCount": len(urls),
+            "url": urls,
+            "fileSize": eq[0].fileSize,
+            "Description": eq[0].Description,
+        }
+        return response.json(0, res)
     else:
-        return response.json(800)
+        return response.json(901)
 
 
 @csrf_exempt
@@ -347,27 +334,23 @@ class getUploadFiletoDirView(TemplateView):
         fileType = request_dict.get('fileType', None)
         fileCode = request_dict.get('fileCode', None)
         fileVersion = request_dict.get('fileVersion', None)
-        if fileName != None and fileType != None and token != None:
-            tko = TokenObject(token)
-            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:
-                        if fileVersion != None and fileCode != None:
-                            return self.getUploadFiletoDir(userID, fileType, fileName, response, fileCode,
-                                                           fileVersion=fileVersion)
-                        else:
-                            return self.getUploadFiletoDir(userID, fileType, fileName, response)
-                    else:
-                        return response.json(404)
-                else:
-                    return response.json(309)
-            else:
-                return response.json(tko.code)
+        if not fileName or not fileType:
+            return response.json(444, 'fileName,fileType')
+        tko = TokenObject(token)
+        response.lang = tko.lang
+        if tko.code != 0:
+            return response.json(tko.code)
+        userID = tko.userID
+        if not userID:
+            return response.json(104)
+        own_perm = ModelService.check_permission(userID=userID, permID=210)
+        if not own_perm:
+            return response.json(404)
+        if fileVersion != None and fileCode != None:
+            return self.getUploadFiletoDir(userID, fileType, fileName, response, fileCode,
+                                           fileVersion=fileVersion)
         else:
-            return response.json(800)
+            return self.getUploadFiletoDir(userID, fileType, fileName, response)
 
     def getUploadFiletoDir(self, userID, fileType, fileName, response, *args, **kwargs):
         """
@@ -376,79 +359,75 @@ class getUploadFiletoDirView(TemplateView):
         :param fileName: File name of upgrade file.
         :return: filePath
         """
-        try:
-            User = Device_User.objects.filter(userID=userID)
-        except Exception as e:
-            errorInfo = traceback.format_exc()
-            print('查询数据库错误: %s' % errorInfo)
-            return response.json(500, {'details': repr(e)})
-        else:
-            if not User:
-                return response.json(104)
-            own_perm = ModelService.check_permission(userID, permID=210)
-            if own_perm is not True:
-                return response.json(404)
-            updataFile = fileName.name
-            updataFile = updataFile.replace(' ', '+')
-            versionIndex = updataFile.find('.', updataFile.find('.', updataFile.find('.') + 1) + 1)
-            codeIndex = versionIndex + 12
-
-            if codeIndex != -1 and versionIndex != -1:
-                fileVersion = len(updataFile[1: versionIndex]) > 0 and updataFile[1: versionIndex] or None
-                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)
-                else:
-                    fileCode = kwargs.get('fileCode', None)
-                    fileVersion = kwargs.get('fileVersion', None)
-                    print(fileCode, fileVersion)
-                    if fileCode != None and fileVersion != None:
-                        return self.getDir(fileType, fileName, fileCode, fileVersion)
-                    else:
-                        return response.json(903)
+        User = Device_User.objects.filter(userID=userID)
+
+        if not User:
+            return response.json(104)
+        own_perm = ModelService.check_permission(userID, permID=210)
+        if own_perm is not True:
+            return response.json(404)
+        updataFile = fileName.name
+        updataFile = updataFile.replace(' ', '+')
+        versionIndex = updataFile.find('.', updataFile.find('.', updataFile.find('.') + 1) + 1)
+        codeIndex = versionIndex + 12
+
+        if codeIndex != -1 and versionIndex != -1:
+            fileVersion = len(updataFile[1: versionIndex]) > 0 and updataFile[1: versionIndex] or None
+            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)
             else:
                 fileCode = kwargs.get('fileCode', None)
                 fileVersion = kwargs.get('fileVersion', None)
+                print(fileCode, fileVersion)
                 if fileCode != None and fileVersion != None:
-                    return self.getDir(fileType, fileName, fileCode, fileVersion, response)
+                    return self.getDir(fileType, fileName, fileCode, fileVersion)
                 else:
                     return response.json(903)
-
-    def getDir(self, fileType, fileName, fileCode, fileVersion, response):
-        try:
+        else:
+            fileCode = kwargs.get('fileCode', None)
+            fileVersion = kwargs.get('fileVersion', None)
             if fileCode != None and fileVersion != None:
-                path = '/'.join((BASE_DIR, 'static/Upgrade', fileType, fileCode, fileVersion)).replace('\\', '/') + '/'
+                return self.getDir(fileType, fileName, fileCode, fileVersion, response)
             else:
-                if fileType != 'IPC' and fileType != 'DVR' and fileType != 'NVR' and fileType != 'XVR':
-                    path = '/'.join((BASE_DIR, "static/Upgrade", 'Other')).replace('\\', '/') + '/'
+                return response.json(903)
 
-            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)})
+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('\\', '/') + '/'
         else:
-            index = file_name.find('static/')
-            filePath = file_name[index:]
-            return response.json(0, {'filePath': filePath})
+            if fileType != 'IPC' and fileType != 'DVR' and fileType != 'NVR' and fileType != 'XVR':
+                path = '/'.join((BASE_DIR, "static/Upgrade", 'Other')).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})
 
 
 @csrf_exempt
@@ -473,26 +452,15 @@ def addNewEquipmentVersionInterface(request):
 
 
 def showAllEquipmentVersion(userID, response):
-    try:
-        userValid = Device_User.objects.filter(userID=userID).order_by('-data_joined')
-    except Exception as e:
-        errorInfo = traceback.format_exc()
-        print('查询数据库错误: %s' % errorInfo)
-        return response.json(500)
-    else:
-        if userValid:
-            own_permission = ModelService.check_permission(userID=userID, permID=240)
-            if own_permission:
-                sqlJSON = serializers.serialize('json', Equipment_Version.objects.all())  # .order_by('-data_joined'))
-                sqlList = json.loads(sqlJSON)
-                print(sqlList, sqlJSON)
-                sqlDict = dict(zip(["datas"], [sqlList]))
-                return response.json(0, sqlDict)
-            else:
-                return response.json(404)
-        else:
-            return response.json(104)
-
+    userValid = Device_User.objects.filter(userID=userID).order_by('-data_joined')
+    if not userValid.exists():
+        return response.json(104)
+    own_perm = ModelService.check_permission(userID=userID, permID=240)
+    if not own_perm:
+        return response.json(404)
+    qs = Equipment_Version.objects.all()
+    res = CommonService.qs_to_dict(qs)
+    return response.json(0, res)
 
 # 检测ota更新包
 @csrf_exempt
@@ -500,61 +468,39 @@ def getNewVerInterface(request):
     response = ResponseObject()
     if request.method == "POST":
         request.encoding = 'utf-8'
-        code = request.POST.get('code', None)
-        token = request.POST.get('token', None)
-        lang = request.POST.get('lang', None)
+        request_dict = request.POST
     elif request.method == "GET":
-        request.encoding = 'gb2312'
-        code = request.GET.get('code', None)
-        token = request.GET.get('token', None)
-        # 利用语言包判断传递
-        lang = request.GET.get('lang', None)
+        request.encoding = 'utf-8'
+        request_dict = request.GET
+    code = request_dict.get('code', None)
+    token = request_dict.get('token', None)
+    lang = request_dict.get('lang', None)
+    if not code:
+        return response.json(444,'code')
+    tko = TokenObject(token)
+    response.lang = tko.lang
+    if tko.code != 0:
+        return response.json(tko.code)
+    if lang == 'zh-Hans':
+        equipmentValid = Equipment_Version.objects.filter(code=code, status=1, lang=lang).order_by(
+            '-data_joined')
     else:
-        return response.json(801)
-    if code is not None and token is not None:
-        tko = TokenObject(token)
-        response.lang = tko.lang
-        if tko.code == 0:
-            try:
-                if lang == 'zh-Hans':
-                    equipmentValid = Equipment_Version.objects.filter(code=code, status=1, lang=lang).order_by(
-                        '-data_joined')
-                # if lang is not None and lang != '':
-                #     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,lang='en').order_by('-data_joined')
-            except Exception as e:
-                return response.json(500, {'details': repr(e)})
-            else:
-                if equipmentValid.exists():
-                    ver = equipmentValid[0].softwareVersion
-                    equipment = equipmentValid[0]
-                    file_path = equipment.filePath
-                    # path = file_path.replace('static/Upgrade/', '').replace('\\', '/')
-                    # url = SERVER_DOMAIN + 'OTA/downloads/' + path + '?time=' + str(time.time())
-                    # 检测ip进行替换
-                    serverip = '54.215.154.29'
-                    client_ip = CommonService.get_ip_address(request)
-                    if serverip == client_ip:
-                        url = 'http://54.215.154.29/OTA/downloadsPack/' + file_path + '?time=' + str(time.time())
-                    else:
-                        url = SERVER_DOMAIN + 'OTA/downloadsPack/' + file_path + '?time=' + str(time.time())
-                    # get_ip_address =
-                    return response.json(0, {
-                        'ver': ver,
-                        'url': url,
-                        # "fileSize": equipment.fileSize,
-                        "Description": equipment.Description,
-                    })
-                else:
-                    return response.json(902)
-        else:
-            return response.json(tko.code)
+        equipmentValid = Equipment_Version.objects.filter(code=code, status=1, lang='en').order_by(
+            '-data_joined')
+    if equipmentValid.exists():
+        ver = equipmentValid[0].softwareVersion
+        equipment = equipmentValid[0]
+        file_path = equipment.filePath
+        # 检测ip进行替换
+        client_ip = CommonService.get_ip_address(request)
+        url = SERVER_DOMAIN + 'OTA/downloadsPack/' + file_path + '?time=' + str(time.time())
+        return response.json(0, {
+            'ver': ver,
+            'url': url,
+            "Description": equipment.Description,
+        })
     else:
-        return response.json(444, 'token,code')
-
-
+        return response.json(902)
 # ota包上传
 class uploadOTAInterfaceView(TemplateView):
     @method_decorator(csrf_exempt)
@@ -579,31 +525,26 @@ class uploadOTAInterfaceView(TemplateView):
 
     def validate(self, token, fileName, fileType, language):
         response = ResponseObject()
-        print(token)
-        print(fileName)
-        if fileName is not None and token is not None and fileType is not None:
-            tko = TokenObject(token)
-            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, fileType, language)
-                    else:
-                        return response.json(404)
-                else:
-                    return response.json(309)
-            else:
-                return response.json(tko.code)
-        else:
-            return response.json(800)
+        if not fileName or not fileType:
+            return response.json(444,'fileName,fileType')
+        tko = TokenObject(token)
+        response.lang = tko.lang
+        if tko.code != 0:
+            return response.json(tko.code)
+        userID = tko.userID
+        if not userID:
+            return response.json(104)
+        own_permission = ModelService.check_permission(userID=userID, permID=210)
+        if own_permission is not True:
+            return response.json(404)
+        return self.upload_ota_file(fileName, response, fileType, language)
+
 
-    def upload_ota_file(self, fileName, response,fileType,language):
+    def upload_ota_file(self, fileName, response, fileType, language):
         try:
             if not language:
                 language = 0
-            path = '/'.join((BASE_DIR, 'static/otapack', fileType,str(language))).replace('\\', '/') + '/'
+            path = '/'.join((BASE_DIR, 'static/otapack', fileType, str(language))).replace('\\', '/') + '/'
             if not os.path.exists(path):
                 os.makedirs(path)
                 file_name = path + str(fileName)
@@ -659,4 +600,4 @@ def downloadOTAInterface(request, fullPath, *callback_args, **callback_kwargs):
         else:
             return res.json(907)
     else:
-        return res.json(800)
+        return res.json(444,'fullPath')

+ 7 - 7
Controller/shareUserPermission.py

@@ -85,23 +85,23 @@ class searchUserView(View):
             fieldDict.pop('type')
             if len(fieldDict) > 0:
                 searchCondition = CommonService.get_kwargs(data=fieldDict)
-                device_user_queryset = Device_User.objects.filter(**searchCondition).order_by('-data_joined')
+                qs = Device_User.objects.filter(**searchCondition).order_by('-data_joined')
             else:
-                device_user_queryset = Device_User.objects.all().order_by('-data_joined')
+                qs = Device_User.objects.all().order_by('-data_joined')
         except Exception as e:
             errorInfo = traceback.format_exc()
             print('查询数据库错误: %s' % errorInfo)
             return response.json(500, {"details": repr(e)})
         else:
-            if device_user_queryset:
-                device_user_count = device_user_queryset.count()
-                device_user_res = device_user_queryset[(page - 1) * line:page * line]
+            if qs:
+                device_user_count = qs.count()
+                device_user_res = qs[(page - 1) * line:page * line]
                 sqlDict = CommonService.qs_to_dict(device_user_res)
                 for k, v in enumerate(sqlDict["datas"]):
                     for val in device_user_res:
                         if v['pk'] == val.userID:
-                            device_info_query_set = val.device_info_set.all()
-                            device_info_list = CommonService.qs_to_dict(device_info_query_set)
+                            dvqs = val.device_info_set.all()
+                            device_info_list = CommonService.qs_to_dict(dvqs)
                             # device_user关联到device_info
                             sqlDict["datas"][k]['device_info'] = device_info_list
                     if len(v['fields']['role']) > 0: