Browse Source

访问接口保留7天内数据,删除equipment_log表

locky 3 years ago
parent
commit
a48aaf613e
5 changed files with 4 additions and 171 deletions
  1. 1 53
      Controller/Cloudsum.py
  2. 3 2
      Controller/Cron/CronTaskController.py
  3. 0 17
      Model/models.py
  4. 0 95
      Service/OperatingLogs.py
  5. 0 4
      Service/middleware.py

+ 1 - 53
Controller/Cloudsum.py

@@ -8,7 +8,7 @@
 import json
 
 from Ansjer.config import SERVER_TYPE
-from Model.models import Order_Model, UID_Bucket, UserExModel, EquipmentLogModel
+from Model.models import Order_Model, UID_Bucket, UserExModel
 from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
@@ -52,8 +52,6 @@ class Cloudsum(View):
             return self.usercount(userID, request_dict, response)
         if operation == 'usercloud':
             return self.usercloud(userID, response)
-        if operation == 'equipment_logs':
-            return self.equipment_logs(userID, request_dict, response)
 
     # 类型:用户手机
     # 统计用户手机型号  已有
@@ -128,53 +126,3 @@ class Cloudsum(View):
         a = Order_Model.objects.extra(select={'dates': "FROM_UNIXTIME(addTime,'%%Y-%%m')"}).values(
             'dates').filter(status=1).annotate(开通云存合计=Count('addTime')).order_by('dates')
         return response.json(0, list(a))
-
-    def equipment_logs(self, userID, request_dict, response):
-        page = int(request_dict.get('page', None))
-        line = int(request_dict.get('line', None))
-        order = request_dict.get('order', '-id')
-        if order == '':
-            order = '-id'
-        if not page or not 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)
-
-        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)
-        add_batch_log(data_list)
-
-        qs = EquipmentLogModel.objects.all().order_by(order)
-        if qs.exists():
-            count = qs.count()
-            res = qs[(page - 1) * line:page * line]
-            send_json = CommonService.qs_to_dict(res)
-            send_json['count'] = count
-            return response.json(0, send_json)
-        return response.json(0, {'datas': [], 'count': 0})
-
-# 访问日志批量添加
-def add_batch_log(data_list):
-    try:
-        if data_list:
-            querysetlist = []
-            for i in data_list:
-                data = json.loads(i.decode('utf-8'))
-                querysetlist.append(EquipmentLogModel(**data))
-            EquipmentLogModel.objects.bulk_create(querysetlist)
-        else:
-            return
-    except Exception as e:
-        print('ggga')
-        print(repr(e))
-        return False
-    else:
-        return True

+ 3 - 2
Controller/Cron/CronTaskController.py

@@ -51,8 +51,9 @@ class CronDelDataView(View):
     def delAccessLog(response):
         try:
             cursor = connection.cursor()
-            # 删除一个月前的数据
-            last_month = LocalDateTimeUtil.get_last_month()
+            # 删除7天前的数据
+            now_time = int(time.time())
+            last_month = LocalDateTimeUtil.get_before_days_timestamp(now_time, 7)
             sql = 'DELETE FROM access_log WHERE time < %s limit %s'
             cursor.execute(sql, [last_month, 10000])
             # 关闭游标

+ 0 - 17
Model/models.py

@@ -1768,23 +1768,6 @@ class ProcessInfoLogsModel(models.Model):
         verbose_name_plural = verbose_name
 
 
-class EquipmentLogModel(models.Model):
-    id = models.AutoField(primary_key=True)
-    user = models.CharField(blank=False, max_length=32, db_index=True, verbose_name=u'操作用户')
-    uid = models.CharField(default='', blank=True, max_length=32, verbose_name=u'设备uid')
-    equipmentid = models.CharField(blank=False, max_length=100, db_index=True, verbose_name=u'设备主键id')
-    NickName = models.CharField(blank=True, max_length=32, verbose_name=u'设备名称')
-    ip = models.CharField(max_length=100, default='', db_index=True, blank=True, verbose_name=u'访问ip地址')
-    time = models.DateTimeField(null=True, blank=True, db_index=True, verbose_name=u'访问时间')
-    operatingcontent = models.TextField(blank=True, default='', verbose_name=u'操作内容')
-    url = models.CharField(max_length=150, default='', blank=True, verbose_name=u'访问路径')
-
-    class Meta:
-        db_table = 'equipment_log'
-        verbose_name = '设备日志表'
-        verbose_name_plural = verbose_name
-
-
 class UserModel(models.Model):
     id = models.AutoField(primary_key=True)
     username = models.CharField(unique=True, max_length=128, null=False, verbose_name='用户名')

+ 0 - 95
Service/OperatingLogs.py

@@ -1,95 +0,0 @@
-import json
-import threading
-import datetime
-import time
-
-from bson import utc
-
-from Model.models import EquipmentLogModel
-from Service.CommonService import CommonService
-from Service.MiscellService import MiscellService
-from Service.TemplateService import TemplateService
-
-
-def add_access_log(request, status_code):
-    # 增加多进程 异步
-    asy = threading.Thread(target=addLog, args=(request, status_code))
-    asy.start()
-
-
-def addLog(request, status_code):
-    request_path = request.path.strip().strip('/')
-    if 'equipment' in request.path:
-        global request_dict
-        try:
-            if request.method == 'GET':
-                request_dict = request.GET
-            elif request.method == 'POST':
-                request_dict = request.POST
-            # api_list = TemplateService.log_api()
-            print('status_code:', status_code)
-            api_list = [
-                'equipment/add',
-                'equipment/delete',
-                'equipment/flowUpdate',
-                'v3/equipment/add',
-                'v3/equipment/modify',
-            ]
-            # 接口中文化
-            jiekou = {
-                'equipment/add': 'v1添加设备',
-                'equipment/delete': 'v1删除设备',
-                'equipment/flowUpdate': '更新设备的版本信息',
-                'v3/equipment/add': 'v3添加设备信息',
-                'v3/equipment/modify': 'v3编辑设备信息'
-            }
-            if request_path in api_list:
-                user = MiscellService.get_access_name(request_dict=request_dict)
-                clientIP = CommonService.get_ip_address(request)
-                # now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
-                nowtime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
-                beijing = datetime.timezone(datetime.timedelta(hours=8))
-                utc = datetime.timezone.utc  # 获取 UTC 的时区对象
-                beijing_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(beijing)  # 强制转换加上 UTC 时区。此处敲黑板,需要特别注意。
-                # content:从前端获取到的参数数据,对获取到的数据进行处理
-                content = json.dumps(request_dict)
-                d = eval(content)
-                if 'uid' not in d:
-                    d['uid'] = ''
-                if 'NickName' not in d:
-                    d['NickName'] = ''
-                if 'equipmentid' not in d:
-                    d['equipmentid'] = ''
-                if 'UID' in d:
-                    d['uid'] = d['UID']
-                if 'id' in d:
-                    d['equipmentid'] = d['id']
-                password = request_dict.get('userPwd', None)
-                if password is not None:
-                    request_dict = dict(request_dict)
-                    request_dict.pop('userPwd')
-                if user != '':
-                    user = user
-                else:
-                    print('空')
-                    user = '空'
-                # 数据拼接
-                caozuo = '用户账号为:[' + user + ']' + '在' + str(beijing_time) + '进行' + str(jiekou[request_path])
-                # + ',' + '设备uid或主键id为:' + str(d['uid']) + str(d['equipmentid'])
-                print('request_dict:', d)
-                add_data = {
-                    'user': user,
-                    'uid': d['uid'],
-                    'equipmentid': d['equipmentid'],
-                    'NickName': d['NickName'],
-                    'ip': clientIP,
-                    'time': beijing_time,
-                    'url': request.path,
-                    'operatingcontent': caozuo,
-                }
-                print('操作数据:', add_data)
-                # 设备日志添加
-                EquipmentLogModel.objects.create(**add_data)
-        except Exception as e:
-            print(repr(e))
-            pass

+ 0 - 4
Service/middleware.py

@@ -7,7 +7,6 @@ from Ansjer.config import SERVER_TYPE
 
 from Object.ResponseObject import ResponseObject
 from Service.MiscellService import MiscellService
-from Service import OperatingLogs
 from Service import CloudLogs
 import django.db
 
@@ -90,9 +89,6 @@ class StatisticsUrlMiddleware(MiddlewareMixin):
                 pass
                 # mysql
                 if SERVER_TYPE!="Ansjer.formal_settings":
-                    # print('添加日志')
-                    # CloudLogs.batch_add_access_log(request=request, status_code=response.status_code)
-                    OperatingLogs.add_access_log(request=request, status_code=response.status_code)
                     MiscellService.add_access_log(request=request, status_code=response.status_code)
                 # else:
                 #     print('不添加日志')