Forráskód Böngészése

查询操作日志接口

locky 3 éve
szülő
commit
7b56c90eb5
1 módosított fájl, 35 hozzáadás és 2 törlés
  1. 35 2
      AdminController/LogManagementController.py

+ 35 - 2
AdminController/LogManagementController.py

@@ -7,7 +7,7 @@ from django.views.generic.base import View
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
-from Model.models import Device_Info, RequestRecordModel, iotdeviceInfoModel, Access_Log, DeviceLogModel
+from Model.models import Device_Info, RequestRecordModel, iotdeviceInfoModel, Access_Log, DeviceLogModel, LogModel
 from Ansjer.config import REGION_NAME, ACCESS_KEY_ID, SECRET_ACCESS_KEY, LOG_BUCKET
 
 
@@ -45,6 +45,9 @@ class LogManagementView(View):
                 return self.getAccessLogList(request_dict, response)
             elif operation == 'getDeviceLogList':
                 return self.getDeviceLogList(request_dict, response)
+            # 操作日志
+            elif operation == 'getOperationLogList':
+                return self.getOperationLogList(request_dict, response)
             else:
                 return response.json(404)
 
@@ -269,7 +272,8 @@ class LogManagementView(View):
             )
             for device_log in device_log_list:
                 obj = device_log['serial_number'] if device_log['serial_number'] else device_log['uid']
-                obj = 'device_log/' + obj + '/{}'.format(device_log['filename'])
+                obj = 'device_log/' + obj + \
+                    '/{}'.format(device_log['filename'])
                 download_url = aws_s3_client.generate_presigned_url(
                     ClientMethod='get_object',
                     Params={
@@ -283,3 +287,32 @@ class LogManagementView(View):
         except Exception as e:
             print(e)
             return response.json(500, repr(e))
+
+    def getOperationLogList(self, request_dict, response):
+        operation = request_dict.get('operation', None)
+        url = request_dict.get('url', None)
+        pageNo = request_dict.get('pageNo', None)
+        pageSize = request_dict.get('pageSize', None)
+
+        if not all([pageNo, pageSize]):
+            return response.json(444)
+
+        page = int(pageNo)
+        line = int(pageSize)
+
+        try:
+            log_qs = LogModel.objects.all()
+            if operation:
+                log_qs = log_qs.filter(operation__contains=operation)
+            if url:
+                log_qs = log_qs.filter(url__contains=url)
+            count = log_qs.count()
+            log_qs = log_qs.values(
+                'operation', 'url', 'content', 'ip', 'time')[
+                (page - 1) * line:page * line]
+            log_list = list(log_qs)
+            return response.json(
+                0, {'list': log_list, 'total': count})
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))