Ver Fonte

新增新后台访问记录接口,优化url和角色管理查询

locky há 3 anos atrás
pai
commit
deef066470

+ 36 - 16
AdminController/LogManagementController.py

@@ -2,27 +2,12 @@
 # -*- coding: utf-8 -*-
 # -*- coding: utf-8 -*-
 
 
 
 
-import json
-import time
-import urllib
-import uuid
-import boto3
-import threading
-import logging
-
 import requests
 import requests
-from boto3.session import Session
-from django.http import JsonResponse, HttpResponseRedirect, HttpResponse
 from django.views.generic.base import View
 from django.views.generic.base import View
-
-from Controller.CheckUserData import date_handler
-from Model.models import Device_Info, Role, MenuModel, RequestRecordModel, iotdeviceInfoModel
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.TokenObject import TokenObject
-from Object.UidTokenObject import UidTokenObject
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
-from django.db.models import Q, F
-from time import strftime
+from Model.models import Device_Info, RequestRecordModel, iotdeviceInfoModel, Access_Log
 
 
 
 
 class LogManagementView(View):
 class LogManagementView(View):
@@ -55,6 +40,8 @@ class LogManagementView(View):
                 return self.getDeviceIotInfoList(request_dict, response)
                 return self.getDeviceIotInfoList(request_dict, response)
             elif operation == 'requestPublishMqtt':
             elif operation == 'requestPublishMqtt':
                 return self.requestPublishMqtt(request_dict, response)
                 return self.requestPublishMqtt(request_dict, response)
+            elif operation == 'getAccessLogList':
+                return self.getAccessLogList(request_dict, response)
             else:
             else:
                 return response.json(404)
                 return response.json(404)
 
 
@@ -179,3 +166,36 @@ class LogManagementView(View):
                 return response.json(10044)
                 return response.json(10044)
         except Exception as e:
         except Exception as e:
             return response.json(500, repr(e))
             return response.json(500, repr(e))
+
+    def getAccessLogList(self, request_dict, response):
+        user = request_dict.get('user', None)
+        operation = request_dict.get('operation', None)
+        status = request_dict.get('status', 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:
+            if user or operation or status:
+                if user:
+                    access_log_qs = Access_Log.objects.filter(user__contains=user)
+                if operation:
+                    access_log_qs = Access_Log.objects.filter(operation__contains=operation)
+                if status:
+                    access_log_qs = Access_Log.objects.filter(status=status)
+                if not access_log_qs.exists():
+                    return response.json(0)
+                total = access_log_qs.count()
+                access_log_qs = access_log_qs.values('user', 'operation', 'ip', 'status', 'content', 'time')[(page - 1) * line:page * line]
+            else:
+                total = Access_Log.objects.count()
+                access_log_qs = Access_Log.objects.filter().values('user', 'operation', 'ip', 'status', 'content', 'time')[(page - 1) * line:page * line]
+            access_log_list = CommonService.qs_to_list(access_log_qs)
+            return response.json(0, {'list': access_log_list, 'total': total})
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))

+ 3 - 5
AdminController/RoleController.py

@@ -69,7 +69,7 @@ class RoleView(View):
             role_qs = Role.objects.all().values('rid', 'roleName', 'Description')
             role_qs = Role.objects.all().values('rid', 'roleName', 'Description')
             return response.json(0, {'list': CommonService.qs_to_list(role_qs)})
             return response.json(0, {'list': CommonService.qs_to_list(role_qs)})
 
 
-        roleName = request_dict.get('roleName', '').strip()  # 移除字符串头尾的空格
+        roleName = request_dict.get('roleName', '')
         pageNo = request_dict.get('pageNo', None)
         pageNo = request_dict.get('pageNo', None)
         pageSize = request_dict.get('pageSize', None)
         pageSize = request_dict.get('pageSize', None)
         if not all([pageNo, pageSize]):
         if not all([pageNo, pageSize]):
@@ -78,14 +78,12 @@ class RoleView(View):
         page = int(pageNo)
         page = int(pageNo)
         line = int(pageSize)
         line = int(pageSize)
         if roleName:
         if roleName:
-            role_qs = Role.objects.filter(roleName=roleName).values('rid', 'roleName', 'Description')
+            role_qs = Role.objects.filter(roleName__contains=roleName).values('rid', 'roleName', 'Description')
         else:
         else:
             role_qs = Role.objects.all().values('rid', 'roleName', 'Description')
             role_qs = Role.objects.all().values('rid', 'roleName', 'Description')
 
 
         count = role_qs.count()
         count = role_qs.count()
-        role_qs = role_qs.order_by('rid')[(page - 1) * line:page * line]
-
-
+        role_qs = role_qs.order_by('-rid')[(page - 1) * line:page * line]
         return response.json(0, {'list': CommonService.qs_to_list(role_qs), 'total': count})
         return response.json(0, {'list': CommonService.qs_to_list(role_qs), 'total': count})
 
 
     def doEdit(self, userID, request_dict, response):
     def doEdit(self, userID, request_dict, response):

+ 7 - 7
Ansjer/urls.py

@@ -351,19 +351,18 @@ urlpatterns = [
     # url(r'^deviceDebug/(?P<operation>.*)$', DeviceDebug.DeviceDebug.as_view()),
     # url(r'^deviceDebug/(?P<operation>.*)$', DeviceDebug.DeviceDebug.as_view()),
     re_path('deviceDebug/(?P<operation>.*)', DeviceDebug.DeviceDebug.as_view()),
     re_path('deviceDebug/(?P<operation>.*)', DeviceDebug.DeviceDebug.as_view()),
 
 
-    #后台界面接口 -----------------------------------------------------
-    #用户登录信息等
+    # 后台界面接口 -----------------------------------------------------
+    # 用户登录信息等
     url(r'^login$', UserManageController.LoginView.as_view()),
     url(r'^login$', UserManageController.LoginView.as_view()),
     url(r'^noPasslogin$', UserManageController.LoginView.as_view()),
     url(r'^noPasslogin$', UserManageController.LoginView.as_view()),
     url(r'^userInfo$', UserManageController.GetPermissions.as_view()),
     url(r'^userInfo$', UserManageController.GetPermissions.as_view()),
     url(r'^router/getList$', UserManageController.GetList.as_view()),
     url(r'^router/getList$', UserManageController.GetList.as_view()),
-    re_path('userManagement/(?P<operation>.*)', UserManageController.UserManagement.as_view()),
-
-    #角色管理
+    # 角色管理
     re_path('roleManagement/(?P<operation>.*)', RoleController.RoleView.as_view()),
     re_path('roleManagement/(?P<operation>.*)', RoleController.RoleView.as_view()),
-
     # 菜单管理
     # 菜单管理
     re_path('menuManagement/(?P<operation>.*)', MenuController.MenuView.as_view()),
     re_path('menuManagement/(?P<operation>.*)', MenuController.MenuView.as_view()),
+    # 用户管理
+    re_path('userManagement/(?P<operation>.*)', UserManageController.UserManagement.as_view()),
     # 设备管理
     # 设备管理
     re_path('deviceManagement/(?P<operation>.*)', DeviceManagementController.DeviceManagement.as_view()),
     re_path('deviceManagement/(?P<operation>.*)', DeviceManagementController.DeviceManagement.as_view()),
     # 版本管理
     # 版本管理
@@ -374,7 +373,8 @@ urlpatterns = [
     re_path('testServe/(?P<operation>.*)', TestServeController.TestServeView.as_view()),
     re_path('testServe/(?P<operation>.*)', TestServeController.TestServeView.as_view()),
     # 日志管理
     # 日志管理
     re_path('logManagement/(?P<operation>.*)', LogManagementController.LogManagementView.as_view()),
     re_path('logManagement/(?P<operation>.*)', LogManagementController.LogManagementView.as_view()),
-    #后台界面接口 -----------------------------------------------------
+    # 后台界面接口 -----------------------------------------------------
+
     re_path('(?P<path>.*)', LogManager.errorPath),
     re_path('(?P<path>.*)', LogManager.errorPath),
 
 
 ]
 ]

+ 2 - 0
Service/CommonService.py

@@ -201,6 +201,8 @@ class CommonService:
         # print(qs)
         # print(qs)
         for ps in qs:
         for ps in qs:
             try:
             try:
+                if 'time' in ps:
+                    ps['time'] = ps['time'].strftime("%Y-%m-%d %H:%M:%S")
                 if 'add_time' in ps:
                 if 'add_time' in ps:
                     ps['add_time'] = ps['add_time'].strftime("%Y-%m-%d %H:%M:%S")
                     ps['add_time'] = ps['add_time'].strftime("%Y-%m-%d %H:%M:%S")
                 if 'update_time' in ps:
                 if 'update_time' in ps: