瀏覽代碼

后台界面新增异常日志接口

chenshibin 3 年之前
父節點
當前提交
ffe812c1c7
共有 2 個文件被更改,包括 105 次插入2 次删除
  1. 102 0
      AdminController/LogManagementController.py
  2. 3 2
      Ansjer/urls.py

+ 102 - 0
AdminController/LogManagementController.py

@@ -0,0 +1,102 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+
+import json
+import time
+import urllib
+import uuid
+import boto3
+import threading
+import logging
+from boto3.session import Session
+from django.http import JsonResponse, HttpResponseRedirect, HttpResponse
+from django.views.generic.base import View
+
+from Controller.CheckUserData import date_handler
+from Model.models import Device_Info, Role, MenuModel, RequestRecordModel
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+from Object.UidTokenObject import UidTokenObject
+from Service.CommonService import CommonService
+from django.db.models import Q, F
+from time import strftime
+
+
+class LogManagementView(View):
+    def get(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.GET, request, operation)
+
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.POST, request, operation)
+
+    def validation(self, request_dict, request, operation):
+        language = request_dict.get('language', 'en')
+        response = ResponseObject(language, 'pc')
+        if operation == '??':
+            return 0
+        else:
+            tko = TokenObject(
+                request.META.get('HTTP_AUTHORIZATION'),
+                returntpye='pc')
+            # if tko.code != 0:
+            #     return response.json(tko.code)
+            response.lang = tko.lang
+            userID = tko.userID
+            if operation == 'getRequestList':
+                return self.getRequestList(request_dict, response)
+
+    def getRequestList(self, request_dict, response):
+        pageNo = request_dict.get('pageNo', None)
+        pageSize = request_dict.get('pageSize', None)
+        method = request_dict.get('method', None)
+        url = request_dict.get('url', None)
+        parameter = request_dict.get('parameter', None)
+        status_code = request_dict.get('status_code', None)
+        reason_phrase = request_dict.get('reason_phrase', None)
+        if not all([pageNo, pageSize]):
+            return response.json(444)
+
+        page = int(pageNo)
+        line = int(pageSize)
+        try:
+            request_qs = RequestRecordModel.objects.all()
+            if method:
+                request_qs = request_qs.filter(method=method)
+            if url:
+                request_qs = request_qs.filter(url__contains=url)
+            if parameter:
+                request_qs = request_qs.filter(parameter__contains=parameter)
+            if status_code:
+                request_qs = request_qs.filter(status_code=status_code)
+            if reason_phrase:
+                request_qs = request_qs.filter(reason_phrase=reason_phrase)
+
+            count = request_qs.count()
+            request_qs = request_qs.order_by('-add_time')  # 根据CDK创建时间降序排序
+
+            request_qs = request_qs[(page - 1) * line:page * line]
+            qs_list = []
+            for requsetobj in request_qs:
+                hh = str(requsetobj.execute_time)
+                if len(hh)>4:
+                    hh = hh[0:4]
+                qs_list.append({
+                    'id': requsetobj.id,
+                    'method': requsetobj.method,
+                    'url': requsetobj.url,
+                    'parameter': requsetobj.parameter,
+                    'execute_time': hh,
+                    'status_code': requsetobj.status_code,
+                    'reason_phrase': requsetobj.reason_phrase,
+                    'add_time': requsetobj.add_time.strftime("%Y-%m-%d %H:%M:%S"),
+                })
+            return response.json(
+                0, {'list': qs_list, 'total': count})
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))

+ 3 - 2
Ansjer/urls.py

@@ -20,7 +20,7 @@ from Controller import FeedBack, EquipmentOTA, EquipmentInfo, AdminManage, AppIn
     RegionController, VPGController, LanguageController, TestController, DeviceConfirmRegion, S3GetStsController, \
     DetectControllerV2, ShadowController, TestDetectController, PcInfo, PctestController, DeviceDebug
 from AdminController import UserManageController, RoleController, MenuController, TestServeController, \
-    ServeManagementController
+    ServeManagementController, LogManagementController
 
 urlpatterns = [
     url(r'^testApi/(?P<operation>.*)$', TestApi.testView.as_view()),
@@ -353,7 +353,8 @@ urlpatterns = [
     re_path('serveManagement/(?P<operation>.*)', ServeManagementController.serveManagement.as_view()),
     # 测试服务
     re_path('testServe/(?P<operation>.*)', TestServeController.TestServeView.as_view()),
-
+    # 日志管理
+    re_path('logManagement/(?P<operation>.*)', LogManagementController.LogManagementView.as_view()),
     #后台界面接口 -----------------------------------------------------
     re_path('(?P<path>.*)', LogManager.errorPath),