views.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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 getPortStatusFromAx(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 = 'apiGetPortStatusFromAx')
  29. return api_ok_response(payload = resultDict)
  30. @api_call(logger = logger, nil = api_exception_response())
  31. def stopAxPort(request, dealer):
  32. # type: (WSGIRequest, Dealer)->JsonResponse
  33. payload = json.loads(request.body) if request.body else {}
  34. default_params_list = ['deviceCode', 'createTime', 'orderNo', 'chargeIndex']
  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 = 'apiStopAxPort')
  45. return api_ok_response(payload = resultDict)