ReportController.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. # @Author : Rocky
  2. # @File : ReportController.py
  3. # @Time : 2025/5/12 10:42
  4. import json
  5. import time
  6. from django.views import View
  7. from Object.ResponseObject import ResponseObject
  8. from Model.models import AbnormalEvent
  9. class ReportView(View):
  10. def get(self, request, *args, **kwargs):
  11. request.encoding = 'utf-8'
  12. operation = kwargs.get('operation')
  13. return self.validation(request.GET, operation)
  14. def post(self, request, *args, **kwargs):
  15. request.encoding = 'utf-8'
  16. operation = kwargs.get('operation')
  17. return self.validation(request.POST, operation)
  18. def validation(self, request_dict, operation):
  19. response = ResponseObject()
  20. if operation == 'abnormalEvent': # 上报异常事件
  21. return self.abnormal_event(request_dict, response)
  22. @staticmethod
  23. def abnormal_event(request_dict, response):
  24. uid = request_dict.get('uid')
  25. device_type = request_dict.get('device_type')
  26. version = request_dict.get('version')
  27. event_list = request_dict.get('event_list')
  28. if not all([uid, device_type, version, event_list]):
  29. return response.json(444)
  30. try:
  31. device_type = int(device_type)
  32. now_time = int(time.time())
  33. event_list = json.loads(event_list)
  34. abnormal_event_list = []
  35. for event in event_list:
  36. event_code = event['event_code']
  37. event_time = event['event_time']
  38. abnormal_event = AbnormalEvent(
  39. uid=uid, device_type=device_type, version=version, event_code=event_code, event_time=event_time,
  40. created_time=now_time
  41. )
  42. abnormal_event_list.append(abnormal_event)
  43. AbnormalEvent.objects.bulk_create(abnormal_event_list)
  44. return response.json(0)
  45. except Exception as e:
  46. return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))