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