# -*- coding: utf-8 -*- # !/usr/bin/env python import logging import simplejson as json from typing import TYPE_CHECKING from apps.web.api.exceptions import ApiParameterError from apps.web.api.utils import api_call, api_ok_response, api_exception_response from apps.web.api.views import send_api_order logger = logging.getLogger(__name__) if TYPE_CHECKING: from django.core.handlers.wsgi import WSGIRequest from apps.web.dealer.models import Dealer from apilib.utils_json import JsonResponse @api_call(logger = logger, nil = api_exception_response()) def getPortStatusFromJh(request, dealer): # type: (WSGIRequest, Dealer)->JsonResponse payload = json.loads(request.body) if request.body else {} default_params_list = ['deviceCode'] params_list = payload.keys() # 1. 判断差集 different_params_list = list(set(default_params_list) - set(params_list)) if len(different_params_list) != 0: raise ApiParameterError(errmsg = u'参数内容错误') # 2. 判断个数 if len(params_list) != len(default_params_list): raise ApiParameterError(errmsg = u'参数错误') # 3. 调用api resultDict = send_api_order(payload = payload, dealer = dealer, func = 'apiGetPortStatusFromJh') return api_ok_response(payload = resultDict) @api_call(logger = logger, nil = api_exception_response()) def startDeviceForJh(request, dealer): # type: (WSGIRequest, Dealer)->JsonResponse payload = json.loads(request.body) if request.body else {} default_params_list = ['deviceCode', 'port', 'time', 'elec'] params_list = payload.keys() # 1. 判断差集 different_params_list = list(set(default_params_list) - set(params_list)) if len(different_params_list) != 0: raise ApiParameterError(errmsg = u'参数内容错误') # 2. 判断个数 if len(params_list) != len(default_params_list): raise ApiParameterError(errmsg = u'参数错误') # 3. 调用api resultDict = send_api_order(payload = payload, dealer = dealer, func = 'apiStartDeviceForJh') return api_ok_response(payload = resultDict) @api_call(logger = logger, nil = api_exception_response()) def stopChargingPortForJh(request, dealer): # type: (WSGIRequest, Dealer)->JsonResponse payload = json.loads(request.body) if request.body else {} default_params_list = ['deviceCode', 'port'] params_list = payload.keys() # 1. 判断差集 different_params_list = list(set(default_params_list) - set(params_list)) if len(different_params_list) != 0: raise ApiParameterError(errmsg = u'参数内容错误') # 2. 判断个数 if len(params_list) != len(default_params_list): raise ApiParameterError(errmsg = u'参数错误') # 3. 调用api resultDict = send_api_order(payload = payload, dealer = dealer, func = 'apiStopChargingPortForJh') return api_ok_response(payload = resultDict) @api_call(logger = logger, nil = api_exception_response()) def getPortInfoFromJh(request, dealer): # type: (WSGIRequest, Dealer)->JsonResponse payload = json.loads(request.body) if request.body else {} default_params_list = ['deviceCode', 'port'] params_list = payload.keys() # 1. 判断差集 different_params_list = list(set(default_params_list) - set(params_list)) if len(different_params_list) != 0: raise ApiParameterError(errmsg = u'参数内容错误') # 2. 判断个数 if len(params_list) != len(default_params_list): raise ApiParameterError(errmsg = u'参数错误') # 3. 调用api resultDict = send_api_order(payload = payload, dealer = dealer, func = 'apiGetPortInfoFromJh') return api_ok_response(payload = resultDict)