浏览代码

修改删除设备记录日志

locky 3 年之前
父节点
当前提交
fb491252a2
共有 2 个文件被更改,包括 60 次插入46 次删除
  1. 60 36
      Controller/EquipmentManager.py
  2. 0 10
      Service/ModelService.py

+ 60 - 36
Controller/EquipmentManager.py

@@ -8,7 +8,7 @@ import requests
 import simplejson as json
 from django.utils import timezone
 from Model.models import Device_User, Device_Info, UID_Bucket, UID_Preview, UidSetModel, UidPushModel, \
-    UIDCompanySerialModel, iotdeviceInfoModel, UIDMainUser, UidChannelSetModel
+    UIDCompanySerialModel, iotdeviceInfoModel, UIDMainUser, UidChannelSetModel, LogModel
 from django.db.models import Q
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
@@ -796,39 +796,49 @@ def deleteInterface(request):
         return response.json(309)
     try:
         dv_qs = Device_Info.objects.filter(userID_id=userID, id=id)
-        if dv_qs.exists():
-            uid = dv_qs[0].UID
-            asy = threading.Thread(target=ModelService.delete_log,
-                                   args=(CommonService.get_ip_address(request), userID, 'deleteV2', uid))
-            asy.start()
-            if userID == dv_qs[0].vodPrimaryUserID:
-                Device_Info.objects.filter(UID=uid).update(vodPrimaryUserID='', vodPrimaryMaster='')
+        if not dv_qs.exists():
+            return response.json(14)
+        uid = dv_qs[0].UID
+        if userID == dv_qs[0].vodPrimaryUserID:
+            Device_Info.objects.filter(UID=uid).update(vodPrimaryUserID='', vodPrimaryMaster='')
 
-            if dv_qs[0].isShare:
-                dv_qs.delete()
-            else:
-                # a.主用户删除设备
-                dv_qs.delete()
-                # 删除设备影子信息uid_set   外键关联删除设备推送配置信息 uid_push
-                up_qs = UidPushModel.objects.filter(uid_set__uid=uid)
-                DetectControllerView().do_delete_redis(uid)
-                if up_qs.count() > 1:
-                    UidPushModel.objects.filter(uid_set__uid=uid, userID_id=userID).delete()
-                    redisObj = RedisObject(db=6, SERVER_HOST=PUSH_REDIS_ADDRESS)
-                    ykey = '{uid}_redis_qs'.format(uid=uid)
-                    if ykey:
-                        redisObj.del_data(key=ykey)
-                else:
-                    up_qs.delete()
-                # b.删除次用户设备
-                Device_Info.objects.filter(UID=uid, isShare=True, primaryUserID=userID).delete()
-                # 异步删除推送消息
-            asy = threading.Thread(target=ModelService.del_eq_info, args=(userID, uid))
-            asy.start()
-            # redisObj = RedisObject(db=8)
-            # redisObj.del_data(key='uid_qs_' + userID)
+        if dv_qs[0].isShare:
+            dv_qs.delete()
         else:
-            return response.json(14)
+            # a.主用户删除设备
+            dv_qs.delete()
+            # 删除设备影子信息uid_set   外键关联删除设备推送配置信息 uid_push
+            up_qs = UidPushModel.objects.filter(uid_set__uid=uid)
+            DetectControllerView().do_delete_redis(uid)
+            if up_qs.count() > 1:
+                UidPushModel.objects.filter(uid_set__uid=uid, userID_id=userID).delete()
+                redisObj = RedisObject(db=6, SERVER_HOST=PUSH_REDIS_ADDRESS)
+                ykey = '{uid}_redis_qs'.format(uid=uid)
+                if ykey:
+                    redisObj.del_data(key=ykey)
+            else:
+                up_qs.delete()
+            # b.删除次用户设备
+            Device_Info.objects.filter(UID=uid, isShare=True, primaryUserID=userID).delete()
+            # 异步删除推送消息
+        asy = threading.Thread(target=ModelService.del_eq_info, args=(userID, uid))
+        asy.start()
+
+        # 记录操作日志
+        now_time = int(time.time())
+        ip = CommonService.get_ip_address(request)
+        content = json.loads(json.dumps(request_dict))
+        log = {
+            'ip': ip,
+            'user_id': userID,
+            'status': 200,
+            'time': now_time,
+            'content': json.dumps(content),
+            'url': 'equipment/delete',
+            'operation': '删除设备,uid:{}'.format(uid),
+        }
+        LogModel.objects.create(**log)
+
     except Exception as e:
         errorInfo = traceback.format_exc()
         print('删除数据库记录错误: %s' % errorInfo)
@@ -868,11 +878,10 @@ def batchDeleteInterface(request):
         deviceInfo_qs = Device_Info.objects.filter(userID_id=userID, id__in=ids.split(','))
         if not deviceInfo_qs.exists():
             return response.json(14)
+        uid_list = []
         for deviceInfo in deviceInfo_qs:
             uid = deviceInfo.UID
-            asy = threading.Thread(target=ModelService.delete_log,
-                                   args=(CommonService.get_ip_address(request), userID, 'deleteV2', uid))
-            asy.start()
+            uid_list.append(uid)
             if userID == deviceInfo.vodPrimaryUserID:
                 Device_Info.objects.filter(UID=uid).update(vodPrimaryUserID='', vodPrimaryMaster='')
 
@@ -892,9 +901,24 @@ def batchDeleteInterface(request):
                     up_qs.delete()
                 # b.删除次用户设备
                 Device_Info.objects.filter(UID=uid, isShare=True, primaryUserID=userID).delete()
-                    # 异步删除推送消息
+                # 异步删除推送消息
             asy = threading.Thread(target=ModelService.del_eq_info, args=(userID, uid))
             asy.start()
+
+        # 记录操作日志
+        now_time = int(time.time())
+        ip = CommonService.get_ip_address(request)
+        content = json.loads(json.dumps(request_dict))
+        log = {
+            'ip': ip,
+            'user_id': userID,
+            'status': 200,
+            'time': now_time,
+            'content': json.dumps(content),
+            'url': 'equipment/batchDelete',
+            'operation': '批量删除设备,uid:{}'.format(uid_list),
+        }
+        LogModel.objects.create(**log)
     except Exception as e:
         errorInfo = traceback.format_exc()
         print('删除数据库记录错误: %s' % errorInfo)

+ 0 - 10
Service/ModelService.py

@@ -213,16 +213,6 @@ class ModelService:
         file.flush()
         file.close()
 
-    @staticmethod
-    def delete_log(ip, userID, operation, UID):
-        file_path = '/'.join((BASE_DIR, 'static/delete_device.log'))
-        file = open(file_path, 'a+')
-        file.write(ip + "; username:" + userID + "; time:" + time.strftime(
-            "%Y-%m-%d %H:%M:%S", time.localtime()) + "; " + operation + "; uid:" + UID)
-        file.write('\n')
-        file.flush()
-        file.close()
-
     @staticmethod
     def add_ip_log(ip, info):
         file_path = '/'.join((BASE_DIR, 'static/get_timezone.log'))