views.py 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/env python
  3. import logging
  4. import simplejson as json
  5. from typing import TYPE_CHECKING
  6. from apps.web.api.exceptions import ApiParameterError
  7. from apps.web.api.utils import api_call, api_ok_response, api_exception_response
  8. from apps.web.api.views import send_api_order
  9. logger = logging.getLogger(__name__)
  10. if TYPE_CHECKING:
  11. from django.core.handlers.wsgi import WSGIRequest
  12. from apps.web.dealer.models import Dealer
  13. from apilib.utils_json import JsonResponse
  14. @api_call(logger = logger, nil = api_exception_response())
  15. def getPortInfoYwt(request, dealer):
  16. # type: (WSGIRequest, Dealer)->JsonResponse
  17. payload = json.loads(request.body) if request.body else {}
  18. default_params_list = ['deviceCode', 'createTime', 'orderNo']
  19. params_list = payload.keys()
  20. # 1. 判断差集
  21. different_params_list = list(set(default_params_list) - set(params_list))
  22. if len(different_params_list) != 0:
  23. raise ApiParameterError(errmsg = u'参数内容错误')
  24. # 2. 判断个数
  25. if len(params_list) != len(default_params_list):
  26. raise ApiParameterError(errmsg = u'参数错误')
  27. # 3. 调用api
  28. resultDict = send_api_order(payload = payload, dealer = dealer, func = 'apiGetPortInfoYwt')
  29. return api_ok_response(payload = resultDict)
  30. @api_call(logger = logger, nil = api_exception_response())
  31. def openCabinetDoor(request, dealer):
  32. # type: (WSGIRequest, Dealer)->JsonResponse
  33. payload = json.loads(request.body) if request.body else {}
  34. default_params_list = ['deviceCode', 'chargeIndex', 'createTime', 'orderNo']
  35. params_list = payload.keys()
  36. # 1. 判断差集
  37. different_params_list = list(set(default_params_list) - set(params_list))
  38. if len(different_params_list) != 0:
  39. raise ApiParameterError(errmsg = u'参数内容错误')
  40. # 2. 判断个数
  41. if len(params_list) != len(default_params_list):
  42. raise ApiParameterError(errmsg = u'参数错误')
  43. # 3. 调用api
  44. resultDict = send_api_order(payload = payload, dealer = dealer, func = 'apiOpenCabinetDoor')
  45. return api_ok_response(payload = resultDict)
  46. @api_call(logger = logger, nil = api_exception_response())
  47. def startCharging(request, dealer):
  48. # type: (WSGIRequest, Dealer)->JsonResponse
  49. payload = json.loads(request.body) if request.body else {}
  50. default_params_list = ['deviceCode', 'chargeIndex', 'createTime', 'orderNo', 'chargeTime']
  51. params_list = payload.keys()
  52. # 1. 判断差集
  53. different_params_list = list(set(default_params_list) - set(params_list))
  54. if len(different_params_list) != 0:
  55. raise ApiParameterError(errmsg = u'参数内容错误')
  56. # 2. 判断个数
  57. if len(params_list) != len(default_params_list):
  58. raise ApiParameterError(errmsg = u'参数错误')
  59. # 3. 调用api
  60. resultDict = send_api_order(payload = payload, dealer = dealer, func = 'apiStartCharging')
  61. return api_ok_response(payload = resultDict)
  62. @api_call(logger = logger, nil = api_exception_response())
  63. def openAndStartCharging(request, dealer):
  64. # type: (WSGIRequest, Dealer)->JsonResponse
  65. payload = json.loads(request.body) if request.body else {}
  66. default_params_list = ['deviceCode', 'chargeIndex', 'createTime', 'orderNo', 'chargeTime']
  67. params_list = payload.keys()
  68. # 1. 判断差集
  69. different_params_list = list(set(default_params_list) - set(params_list))
  70. if len(different_params_list) != 0:
  71. raise ApiParameterError(errmsg = u'参数内容错误')
  72. # 2. 判断个数
  73. if len(params_list) != len(default_params_list):
  74. raise ApiParameterError(errmsg = u'参数错误')
  75. # 3. 调用api
  76. resultDict = send_api_order(payload = payload, dealer = dealer, func = 'apiOpenAndStartCharging')
  77. return api_ok_response(payload = resultDict)
  78. @api_call(logger = logger, nil = api_exception_response())
  79. def getDevicePortInfo(request, dealer):
  80. # type: (WSGIRequest, Dealer)->JsonResponse
  81. payload = json.loads(request.body) if request.body else {}
  82. default_params_list = ['deviceCode', 'createTime', 'orderNo']
  83. params_list = payload.keys()
  84. # 1. 判断差集
  85. different_params_list = list(set(default_params_list) - set(params_list))
  86. if len(different_params_list) != 0:
  87. raise ApiParameterError(errmsg = u'参数内容错误')
  88. # 2. 判断个数
  89. if len(params_list) != len(default_params_list):
  90. raise ApiParameterError(errmsg = u'参数错误')
  91. # 3. 调用api
  92. resultDict = send_api_order(payload = payload, dealer = dealer, func = 'apiGetDevicePortInfo')
  93. return api_ok_response(payload = resultDict)
  94. @api_call(logger = logger, nil = api_exception_response())
  95. def stopChargingWithOpenDoor(request, dealer):
  96. # type: (WSGIRequest, Dealer)->JsonResponse
  97. payload = json.loads(request.body) if request.body else {}
  98. default_params_list = ['deviceCode', 'chargeIndex', 'createTime', 'orderNo']
  99. params_list = payload.keys()
  100. # 1. 判断差集
  101. different_params_list = list(set(default_params_list) - set(params_list))
  102. if len(different_params_list) != 0:
  103. raise ApiParameterError(errmsg = u'参数内容错误')
  104. # 2. 判断个数
  105. if len(params_list) != len(default_params_list):
  106. raise ApiParameterError(errmsg = u'参数错误')
  107. # 3. 调用api
  108. resultDict = send_api_order(payload = payload, dealer = dealer, func = 'apiStopChargingWithOpenDoor')
  109. return api_ok_response(payload = resultDict)
  110. @api_call(logger = logger, nil = api_exception_response())
  111. def stopChargingWithCloseDoor(request, dealer):
  112. # type: (WSGIRequest, Dealer)->JsonResponse
  113. payload = json.loads(request.body) if request.body else {}
  114. default_params_list = ['deviceCode', 'chargeIndex', 'createTime', 'orderNo']
  115. params_list = payload.keys()
  116. # 1. 判断差集
  117. different_params_list = list(set(default_params_list) - set(params_list))
  118. if len(different_params_list) != 0:
  119. raise ApiParameterError(errmsg = u'参数内容错误')
  120. # 2. 判断个数
  121. if len(params_list) != len(default_params_list):
  122. raise ApiParameterError(errmsg = u'参数错误')
  123. # 3. 调用api
  124. resultDict = send_api_order(payload = payload, dealer = dealer, func = 'apiStopChargingWithCloseDoor')
  125. return api_ok_response(payload = resultDict)