views.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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 getPortStatusFromYtb(request, dealer):
  16. # type: (WSGIRequest, Dealer)->JsonResponse
  17. payload = json.loads(request.body) if request.body else {}
  18. default_params_list = ['deviceCode']
  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='apiGetPortStatusFromYtb')
  29. return api_ok_response(payload=resultDict)
  30. @api_call(logger=logger, nil=api_exception_response())
  31. def getPortInfoFromYtb(request, dealer):
  32. # type: (WSGIRequest, Dealer)->JsonResponse
  33. payload = json.loads(request.body) if request.body else {}
  34. default_params_list = ['deviceCode', 'port']
  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='apiGetPortInfoFromYtb')
  45. return api_ok_response(payload=resultDict)
  46. @api_call(logger=logger, nil=api_exception_response())
  47. def stopChargingPortForYtb(request, dealer):
  48. # type: (WSGIRequest, Dealer)->JsonResponse
  49. payload = json.loads(request.body) if request.body else {}
  50. default_params_list = ['deviceCode', 'port']
  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='apiStopChargingPortForYtb')
  61. return api_ok_response(payload=resultDict)
  62. @api_call(logger = logger, nil = api_exception_response())
  63. def startDeviceForYtb(request, dealer):
  64. # type: (WSGIRequest, Dealer)->JsonResponse
  65. payload = json.loads(request.body) if request.body else {}
  66. default_params_list = ['deviceCode', 'packageId', 'port']
  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='apiStartDeviceForYtb')
  77. return api_ok_response(payload=resultDict)