Browse Source

完善查询设备异常事件功能

locky 3 months ago
parent
commit
721a3b82f6
1 changed files with 22 additions and 2 deletions
  1. 22 2
      AdminController/LogManagementController.py

+ 22 - 2
AdminController/LogManagementController.py

@@ -65,6 +65,8 @@ class LogManagementView(View):
                 return self.getDomainScanLog(request_dict, response)
                 return self.getDomainScanLog(request_dict, response)
             elif operation == 'getDeviceAbnormalEvent':  # 获取设备异常事件
             elif operation == 'getDeviceAbnormalEvent':  # 获取设备异常事件
                 return self.getDeviceAbnormalEvent(request_dict, response)
                 return self.getDeviceAbnormalEvent(request_dict, response)
+            elif operation == 'getAbnormalEventValue':  # 获取设备异常事件编码/内容
+                return self.getAbnormalEventValue(response)
             else:
             else:
                 return response.json(414)
                 return response.json(414)
 
 
@@ -542,6 +544,7 @@ class LogManagementView(View):
         device_type = request_dict.get('deviceType', None)
         device_type = request_dict.get('deviceType', None)
         version = request_dict.get('version', None)
         version = request_dict.get('version', None)
         event_code = request_dict.get('eventCode', None)
         event_code = request_dict.get('eventCode', None)
+        event = request_dict.get('event', None)
         page_no = request_dict.get('pageNo', None)
         page_no = request_dict.get('pageNo', None)
         page_size = request_dict.get('pageSize', None)
         page_size = request_dict.get('pageSize', None)
 
 
@@ -562,8 +565,17 @@ class LogManagementView(View):
             if version:
             if version:
                 query &= Q(version=version)
                 query &= Q(version=version)
             if event_code:
             if event_code:
-                query &= Q(event_code=event_code)
-
+                # 处理多个eventCode参数
+                event_codes = [int(t.strip()) for t in event_code.split(',') if t.strip().isdigit()]
+                query &= Q(event_code__in=event_codes)
+            if event:
+                # 通过event查询对应的event_code
+                event_codes_from_event = AbnormalEventCode.objects.filter(
+                    event__in=event.split(',')
+                ).values_list('event_code', flat=True)
+                if event_codes_from_event.exists():
+                    query &= Q(event_code__in=event_codes_from_event)
+            
             abnormal_events = AbnormalEvent.objects.filter(query)
             abnormal_events = AbnormalEvent.objects.filter(query)
             count = abnormal_events.count()
             count = abnormal_events.count()
             event_list = abnormal_events.order_by('-created_time').values(
             event_list = abnormal_events.order_by('-created_time').values(
@@ -589,3 +601,11 @@ class LogManagementView(View):
         except Exception as e:
         except Exception as e:
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
 
+    @staticmethod
+    def getAbnormalEventValue(response):
+        try:
+            abnormal_event_code = AbnormalEventCode.objects.all().values('event_code', 'event')
+            print(list(abnormal_event_code))
+            return response.json(0, {'list': list(abnormal_event_code)})
+        except Exception as e:
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))