EquipmentStatus.py 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
  5. @AUTHOR: ASJRD018
  6. @NAME: Ansjer
  7. @software: PyCharm
  8. @DATE: 2018/6/7 9:27
  9. @Version: python3.6
  10. @MODIFY DECORD:ansjer dev
  11. @file: EquipmentStat.py
  12. @Contact: chanjunkai@163.com
  13. """
  14. from var_dump import var_dump
  15. import base64
  16. import urllib.parse
  17. from django.http import JsonResponse
  18. from django.views.decorators.csrf import csrf_exempt
  19. from Model.models import Device_Info
  20. from Object.ResponseObject import ResponseObject
  21. from Service.CommonService import CommonService
  22. '''
  23. http://192.168.136.45:8077/device/online?UID=C2887N9EBS87ZAT1111A
  24. http://192.168.136.45:8077/device/offline?UID=C2887N9EBS87ZAT1111A
  25. http://192.168.136.45:8077/device/updateIP?UID=C2887N9EBS87ZAT1111A?ip=190.9.194.216
  26. '''
  27. @csrf_exempt
  28. def EquipmentOnline(request):
  29. response = ResponseObject()
  30. if request.method == 'GET':
  31. request.encoding = 'utf-8'
  32. UID = request.GET.get('UID', None)
  33. if request.method == 'POST':
  34. request.encoding = 'utf-8'
  35. UID = request.POST.get('UID', None)
  36. qs = Device_Info.objects.filter(UID=UID)
  37. if not qs.exists():
  38. return response.json(173)
  39. @csrf_exempt
  40. def EquipmentOffline(request):
  41. response = ResponseObject()
  42. if request.method == 'GET':
  43. request.encoding = 'utf-8'
  44. UID = request.GET.get('UID', None)
  45. if request.method == 'POST':
  46. request.encoding = 'utf-8'
  47. UID = request.POST.get('UID', None)
  48. qs = Device_Info.objects.filter(UID=UID)
  49. if not qs.exists():
  50. return response.json(173)
  51. try:
  52. qs.update(Online=False)
  53. except Exception as e:
  54. print(repr(e))
  55. return response.json(0)
  56. @csrf_exempt
  57. def updateIP(request):
  58. response = ResponseObject()
  59. if request.method == 'GET':
  60. request.encoding = 'utf-8'
  61. request_dict = request.GET
  62. if request.method == 'POST':
  63. request.encoding = 'utf-8'
  64. request_dict = request.POST
  65. UID = request_dict.get('UID', None)
  66. ip = request_dict.get('ip', None)
  67. qs = Device_Info.objects.filter(UID=UID)
  68. if not qs.exists():
  69. return response.json(173)
  70. area = ''
  71. try:
  72. area = CommonService.getAddr(ip=ip)
  73. qs.update(ip=ip, area=area)
  74. except Exception as e:
  75. print(repr(e))
  76. return response.json(0, {'area': area})
  77. def getTZ(request):
  78. request.encoding = 'utf-8'
  79. if request.method == 'GET':
  80. request_dict = request.GET
  81. elif request.method == 'POST':
  82. request_dict = request.POST
  83. else:
  84. return JsonResponse(status=200, data={'code': 403, 'msg': '接口请求方法错误'})
  85. c = request_dict.get('etk', None)
  86. ip = request_dict.get('ip', None)
  87. lang = request_dict.get('lang', None)
  88. if not ip:
  89. ip = CommonService.get_ip_address(request)
  90. if c:
  91. c = base64.b64decode(c)
  92. c = c[2:-2]
  93. c = urllib.parse.unquote(c.decode('utf-8'))
  94. c = base64.b64decode(c)
  95. uid = c.decode('utf-8')
  96. if len(uid) == 20:
  97. print(uid)
  98. info = CommonService.getIpIpInfo(ip=ip, lang=lang)
  99. try:
  100. tz = info['utc_offset']
  101. # 增加GMT,且补:00
  102. if len(tz) == 5:
  103. gmtz = tz.replace('UTC-', 'GMT-0').replace('UTC+', 'GMT+0')
  104. if ':' not in gmtz:
  105. gmtz = gmtz + ':00'
  106. info['gmt_offset'] = gmtz
  107. elif len(tz) == 8:
  108. gmtz = tz.replace('UTC-', 'GMT-0').replace('UTC+', 'GMT+0')
  109. info['gmt_offset'] = gmtz
  110. except Exception as e:
  111. pass
  112. return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': info})
  113. else:
  114. return JsonResponse(status=200, data={'code': 404, 'msg': '令牌错误'})
  115. else:
  116. return JsonResponse(status=200, data={'code': 444, 'msg': '接口参数错误 etk'})