Browse Source

fix:check log & immedia redis log in mysql

chenjunkai 6 years ago
parent
commit
0b0aa91e54
4 changed files with 28 additions and 39 deletions
  1. 0 1
      Ansjer/urls.py
  2. 13 30
      Controller/AccessLog.py
  3. 7 3
      Controller/VodBucket.py
  4. 8 5
      Service/ModelService.py

+ 0 - 1
Ansjer/urls.py

@@ -90,7 +90,6 @@ urlpatterns = [
     # 统计访问日志路径
     # 统计访问日志路径
     path('access/staticPath/', AccessLog.statisticsPath),
     path('access/staticPath/', AccessLog.statisticsPath),
     path('access/deleteSn/', AccessLog.deleteSn),
     path('access/deleteSn/', AccessLog.deleteSn),
-    path('access/instant/', AccessLog.InstantLog),
     # 新需求ota接口
     # 新需求ota接口
     url(r'^OTA/getNewVer', OTAEquipment.getNewVerInterface),
     url(r'^OTA/getNewVer', OTAEquipment.getNewVerInterface),
     url(r'^OTA/uploadsPack$', OTAEquipment.uploadOTAInterfaceView.as_view()),
     url(r'^OTA/uploadsPack$', OTAEquipment.uploadOTAInterfaceView.as_view()),

+ 13 - 30
Controller/AccessLog.py

@@ -69,6 +69,15 @@ class AccessLog(View):
         own_perm = ModelService.check_perm(userID=userID, permID=30)
         own_perm = ModelService.check_perm(userID=userID, permID=30)
         if own_perm is not True:
         if own_perm is not True:
             return response.json(404)
             return response.json(404)
+        if SERVER_TYPE == 'Ansjer.formal_settings':
+            logKey = 'logger'
+        else:
+            logKey = 'test_logger'
+        # 判断redis列表长度
+        redisObj = RedisObject()
+        data_list = redisObj.lrange(logKey, 0, -1)
+        redisObj.del_data(key=logKey)
+        ModelService.add_batch_log(data_list)
         qs = Access_Log.objects.all().order_by(order)
         qs = Access_Log.objects.all().order_by(order)
         if qs.exists():
         if qs.exists():
             count = qs.count()
             count = qs.count()
@@ -168,14 +177,16 @@ def statisticsPath(request):
 
 
 # 按季度删除访问日志
 # 按季度删除访问日志
 def deleteSn(request):
 def deleteSn(request):
+    response = ResponseObject()
     request.encoding = 'utf-8'
     request.encoding = 'utf-8'
     if request.method == 'GET':
     if request.method == 'GET':
         request_dict = request.GET
         request_dict = request.GET
-    if request.method == 'POST':
+    elif request.method == 'POST':
         request_dict = request.POST
         request_dict = request.POST
+    else:
+        return response.json(104)
     token = request_dict.get('token', None)
     token = request_dict.get('token', None)
     days = request_dict.get('days', None)
     days = request_dict.get('days', None)
-    response = ResponseObject()
     if not days:
     if not days:
         return response.json(444, 'days')
         return response.json(444, 'days')
     tko = TokenObject(token)
     tko = TokenObject(token)
@@ -189,31 +200,3 @@ def deleteSn(request):
     dltime = datetime.datetime.now() - datetime.timedelta(days=int(days))
     dltime = datetime.datetime.now() - datetime.timedelta(days=int(days))
     count = Access_Log.objects.filter(time__gte=dltime).delete()
     count = Access_Log.objects.filter(time__gte=dltime).delete()
     return response.json(0, count)
     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)
-    elif 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'
-    tko = TokenObject(token)
-    if tko.code != 0:
-        return response.json(tko.code)
-    own_perm = ModelService.check_perm(tko.userID, 30)
-    if not own_perm:
-        return response.json(404)
-    # 判断redis列表长度
-    redisObj = RedisObject()
-    data_list = redisObj.lrange(logKey, 0, -1)
-    redisObj.del_data(key=logKey)
-    ModelService.add_batch_log(data_list)
-    return response.json(0)

+ 7 - 3
Controller/VodBucket.py

@@ -18,13 +18,13 @@ from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
 from django.views.generic.base import View
 from django.views.generic.base import View
 
 
-from Model.models import VodBucketModel, UID_Bucket, Store_Meal, Device_Info
+from Model.models import VodBucketModel, UID_Bucket, Store_Meal, Device_Info, OssCrdModel
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.TokenObject import TokenObject
-from Service.CommonService import CommonService
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
 import time
 import time
 
 
+
 class VodBucketView(View):
 class VodBucketView(View):
     @method_decorator(csrf_exempt)
     @method_decorator(csrf_exempt)
     def dispatch(self, *args, **kwargs):
     def dispatch(self, *args, **kwargs):
@@ -221,7 +221,11 @@ class UidBucketView(View):
         try:
         try:
             page = int(request_dict.get('page', None))
             page = int(request_dict.get('page', None))
             line = int(request_dict.get('line', None))
             line = int(request_dict.get('line', None))
-            UID_Bucket.objects.filter(id=id).delete()
+            d_ubqs = UID_Bucket.objects.filter(id=id).values('uid', 'channel')
+            uid = d_ubqs[0]['uid']
+            channel = d_ubqs[0]['uid']
+            d_ubqs.delete()
+            OssCrdModel.objects.filter(uid=uid, channel=channel).delete()
         except Exception as e:
         except Exception as e:
             return response.json(10, repr(e))
             return response.json(10, repr(e))
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)

+ 8 - 5
Service/ModelService.py

@@ -97,11 +97,14 @@ class ModelService:
     @staticmethod
     @staticmethod
     def add_batch_log(data_list):
     def add_batch_log(data_list):
         try:
         try:
-            querysetlist = []
-            for i in data_list:
-                data = json.loads(i.decode('utf-8'))
-                querysetlist.append(Access_Log(**data))
-            Access_Log.objects.bulk_create(querysetlist)
+            if data_list:
+                querysetlist = []
+                for i in data_list:
+                    data = json.loads(i.decode('utf-8'))
+                    querysetlist.append(Access_Log(**data))
+                Access_Log.objects.bulk_create(querysetlist)
+            else:
+                return
         except Exception as e:
         except Exception as e:
             print('ggga')
             print('ggga')
             print(repr(e))
             print(repr(e))