|
@@ -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))
|