views.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  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 getPortStatusFromDc(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 = 'apiGetPortStatusFromDc')
  29. return api_ok_response(payload = resultDict)
  30. @api_call(logger = logger, nil = api_exception_response())
  31. def getDevSettingsFromDc(request, dealer):
  32. # type: (WSGIRequest, Dealer)->JsonResponse
  33. payload = json.loads(request.body) if request.body else {}
  34. default_params_list = ['deviceCode']
  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 = 'apiGetDevSettingsFromDc')
  45. return api_ok_response(payload = resultDict)
  46. @api_call(logger = logger, nil = api_exception_response())
  47. def setDevSettingsFromDc(request, dealer):
  48. # type: (WSGIRequest, Dealer)->JsonResponse
  49. payload = json.loads(request.body) if request.body else {}
  50. default_params_list = [
  51. "deviceCode",
  52. "power1",
  53. "power2",
  54. "power3",
  55. "power1ratio",
  56. "power2ratio",
  57. "power3ratio",
  58. "fuchongTime",
  59. "fuchongPower",
  60. "maxPower",
  61. "icMoney",
  62. "time1",
  63. "time2",
  64. "time3"
  65. ]
  66. params_list = payload.keys()
  67. # 1. 判断差集
  68. different_params_list = list(set(default_params_list) - set(params_list))
  69. if len(different_params_list) != 0:
  70. raise ApiParameterError(errmsg = u'参数内容错误')
  71. # 2. 判断个数
  72. if len(params_list) != len(default_params_list):
  73. raise ApiParameterError(errmsg = u'参数错误')
  74. # 3. 调用api
  75. resultDict = send_api_order(payload = payload, dealer = dealer, func = 'apisetDevSettingsFromDc')
  76. return api_ok_response(payload = resultDict)
  77. @api_call(logger = logger, nil = api_exception_response())
  78. def getPortInfoFromDc(request, dealer):
  79. # type: (WSGIRequest, Dealer)->JsonResponse
  80. payload = json.loads(request.body) if request.body else {}
  81. default_params_list = ['deviceCode', 'port']
  82. params_list = payload.keys()
  83. # 1. 判断差集
  84. different_params_list = list(set(default_params_list) - set(params_list))
  85. if len(different_params_list) != 0:
  86. raise ApiParameterError(errmsg = u'参数内容错误')
  87. # 2. 判断个数
  88. if len(params_list) != len(default_params_list):
  89. raise ApiParameterError(errmsg = u'参数错误')
  90. # 3. 调用api
  91. resultDict = send_api_order(payload = payload, dealer = dealer, func = 'apiGetPortInfoFromDc')
  92. return api_ok_response(payload = resultDict)
  93. @api_call(logger = logger, nil = api_exception_response())
  94. def startDeviceForDc(request, dealer):
  95. # type: (WSGIRequest, Dealer)->JsonResponse
  96. payload = json.loads(request.body) if request.body else {}
  97. default_params_list = ['deviceCode', 'port', 'price', 'time']
  98. params_list = payload.keys()
  99. # 1. 判断差集
  100. different_params_list = list(set(default_params_list) - set(params_list))
  101. if len(different_params_list) != 0:
  102. raise ApiParameterError(errmsg = u'参数内容错误')
  103. # 2. 判断个数
  104. if len(params_list) != len(default_params_list):
  105. raise ApiParameterError(errmsg = u'参数错误')
  106. # 3. 调用api
  107. resultDict = send_api_order(payload = payload, dealer = dealer, func = 'apiStartDeviceForDc')
  108. return api_ok_response(payload = resultDict)