Browse Source

fix:redis obj

chenjunkai 6 years ago
parent
commit
b5426a9b41

+ 30 - 4
Controller/AccessLog.py

@@ -12,6 +12,8 @@ from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
 from Service.ModelService import ModelService
 from Service.TemplateService import TemplateService
+from Ansjer.config import SERVER_TYPE
+from Object.RedisObject import RedisObject
 
 '''
 http://192.168.136.40:8077/accesslog?operation=queryByAdmin&token=test&page=1&line=5&order=-id
@@ -48,7 +50,7 @@ class AccessLog(View):
         if not userID:
             return response.json(104)
         if not operation:
-            return response.json(444,'operation')
+            return response.json(444, 'operation')
         if operation == 'queryByAdmin':
             return self.query_by_admin(request_dict, userID, response)
         elif operation == 'searchByAdmin':
@@ -63,7 +65,7 @@ class AccessLog(View):
         if order == '':
             order = '-id'
         if not page or not line:
-            return response.json(444,'page,line')
+            return response.json(444, 'page,line')
         own_perm = ModelService.check_perm(userID=userID, permID=30)
         if own_perm is not True:
             return response.json(404)
@@ -82,7 +84,8 @@ class AccessLog(View):
         if check_perm is True:
             from django.db import connection
             cursor = connection.cursor()
-            cursor.execute("TRUNCATE TABLE `access_log`")
+            sql = "TRUNCATE TABLE `access_log`"
+            cursor.execute(sql)
             return response.json(0)
         else:
             return response.json(404)
@@ -162,6 +165,7 @@ def statisticsPath(request):
         datas[path] = count
     return response.json(0, {'datas': datas})
 
+
 # 按季度删除访问日志
 def deleteSn(request):
     request.encoding = 'utf-8'
@@ -173,7 +177,7 @@ def deleteSn(request):
     days = request_dict.get('days', None)
     response = ResponseObject()
     if not days:
-        return response.json(444,'days')
+        return response.json(444, 'days')
     tko = TokenObject(token)
     response.lang = tko.lang
     if tko.code != 0:
@@ -185,3 +189,25 @@ def deleteSn(request):
     dltime = datetime.datetime.now() - datetime.timedelta(days=int(days))
     count = Access_Log.objects.filter(time__gte=dltime).delete()
     return response.json(0, count)
+
+
+# 一键redis日志转移至mysql
+def InstantLog(request):
+    request.encoding = 'utf-8'
+    response = ResponseObject()
+    if request.method == 'GET':
+        token = request.GET.get('token', None)
+    if request.method == 'POST':
+        token = request.POST.get('token', None)
+    else:
+        return response.json(104)
+    if SERVER_TYPE == 'Ansjer.formal_settings':
+        logKey = 'logger'
+    else:
+        logKey = 'test_logger'
+    # 判断redis列表长度
+    redisObj = RedisObject(db=3)
+    data_list = redisObj.lrange(logKey, 0, -1)
+    redisObj.del_data(key=logKey)
+    ModelService.add_batch_log(data_list)
+    return response.json(0)

+ 1 - 1
Controller/UserController.py

@@ -293,7 +293,7 @@ class LogoutView(TemplateView):
         tko = TokenObject(token)
         if tko.code != 0:
             return response.json(tko.code)
-        MiscellService.add_access_log(request=request, status_code=200)
+        # MiscellService.add_access_log(request=request, status_code=200)
         Device_User.objects.filter(userID=tko.userID).update(online=False)
         redisObj = RedisObject(db=3)
         redisObj.del_data(key=tko.userID)

+ 0 - 1
Object/TokenObject.py

@@ -14,7 +14,6 @@
 from Ansjer.config import OAUTH_ACCESS_TOKEN_SECRET, OAUTH_REFRESH_TOKEN_SECRET, OAUTH_ACCESS_TOKEN_TIME, \
     OAUTH_REFRESH_TOKEN_TIME
 import jwt, time
-from Model.models import Device_User
 from Object.RedisObject import RedisObject
 
 

+ 6 - 2
Service/MiscellService.py

@@ -49,9 +49,11 @@ class MiscellService():
     def access_log(request, response, type):
         if request.method == 'GET':
             request_dict = request.GET
-        if request.method == 'POST':
+        elif request.method == 'POST':
             # request.encoding = 'utf-8'
             request_dict = request.POST
+        else:
+            return
         api_list = TemplateService.log_api()
         request_path = request.path.strip().strip('/')
         if request_path in api_list:
@@ -128,8 +130,10 @@ def addLog(request, status_code):
         request.encoding = 'utf-8'
         if request.method == 'GET':
             request_dict = request.GET
-        if request.method == 'POST':
+        elif request.method == 'POST':
             request_dict = request.POST
+        else:
+            return
         api_list = TemplateService.log_api()
         request_path = request.path.strip().strip('/')
         if request_path in api_list:

+ 0 - 1
Service/TemplateService.py

@@ -22,7 +22,6 @@ class TemplateService:
             'account/logout',
             'account/changePwd',
             'account/forget',
-            # 'account/email-re-pwd'
             'account/refreshTk',
             'account/showUserMore',
             'account/perfectUserInfo',