1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- #!/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[(page - 1) * line:page * line]
- qs_list = []
- for requsetobj in request_qs:
- qs_list.append({
- 'id': requsetobj.id,
- 'method': requsetobj.method,
- 'url': requsetobj.url,
- 'parameter': requsetobj.parameter,
- 'execute_time': round(requsetobj.execute_time, 2), # 时间保留小数点后两位
- '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))
|