gatewayController.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. # -*- coding: utf-8 -*-
  2. """
  3. @Time : 2022/5/9 10:51
  4. @Auth : Locky
  5. @File :gatewayController.py
  6. @IDE :PyCharm
  7. """
  8. import logging
  9. import time
  10. from django.views.generic.base import View
  11. from Object.ResponseObject import ResponseObject
  12. from Service.EquipmentInfoService import EquipmentInfoService
  13. class GatewayView(View):
  14. def get(self, request, *args, **kwargs):
  15. request.encoding = 'utf-8'
  16. operation = kwargs.get('operation')
  17. return self.validation(request.GET, request, operation)
  18. def post(self, request, *args, **kwargs):
  19. request.encoding = 'utf-8'
  20. operation = kwargs.get('operation')
  21. return self.validation(request.POST, request, operation)
  22. def validation(self, request_dict, request, operation):
  23. response = ResponseObject()
  24. if operation == 'gatewayPush': # 网关推送
  25. return self.gateway_push(request_dict, response)
  26. else:
  27. return response.json(414)
  28. def gateway_push(self, request_dict, response):
  29. logger = logging.getLogger('info')
  30. src_addr = request_dict.get('src_addr', None)
  31. event_type = request_dict.get('event_type', None)
  32. alarm = request_dict.get('alarm', None)
  33. logger.info('---调用网关推送接口--- request_dict:{}'.format(request_dict))
  34. if not all([src_addr, event_type, alarm]):
  35. return response.json(444)
  36. equipment_info_list = []
  37. now_time = int(time.time())
  38. device_user_id = '160879593527813800138000'
  39. try:
  40. equipment_info_list.append(EquipmentInfoService.get_equipment_info_obj(
  41. now_time,
  42. add_time=now_time,
  43. event_time=now_time,
  44. receive_time=now_time,
  45. device_uid=src_addr,
  46. event_type=event_type,
  47. alarm=alarm,
  48. device_nick_name=src_addr,
  49. device_user_id=device_user_id,
  50. ))
  51. return response.json(0)
  52. except Exception as e:
  53. return response.json(500, repr(e))