123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 |
- # -*- 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.models import APIServiceStartRecord
- 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 apilib.utils_json import JsonResponse
- from apps.web.dealer.models import Dealer
- @api_call(logger = logger, nil = api_exception_response())
- def startDeviceForCy4(request, dealer):
- # type: (WSGIRequest, Dealer)->JsonResponse
- payload = json.loads(request.body) if request.body else {}
- # default_params_list = ['deviceCode', 'price', 'discount', '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 = 'apiStartDeviceForCy4')
- return api_ok_response(payload = resultDict)
- @api_call(logger = logger, nil = api_exception_response())
- def getDevSettingsFromCy4(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 = 'apiGetDevSettingsFromCy4')
- return api_ok_response(payload = resultDict)
- @api_call(logger = logger, nil = api_exception_response())
- def setDevSettingsFromCy4(request, dealer):
- # type: (WSGIRequest, Dealer)->JsonResponse
- payload = json.loads(request.body) if request.body else {}
- default_params_list = ['deviceCode', 'time1', 'time2', 'time3', 'time4', 'powerMax1', 'powerMax2', 'powerMax3',
- 'powerMax4', 'elecCheckMin', 'elecCheckTime', 'voice']
- 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 = 'apiSetDevSettingsFromCy4')
- return api_ok_response(payload = resultDict)
- @api_call(logger = logger, nil = api_exception_response())
- def stopChargingPortForCy4(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 = 'apiStopChargingPortForCy4')
- return api_ok_response(payload = resultDict)
- @api_call(logger = logger, nil = api_exception_response())
- def getPortStatusFromCy4(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 = 'apiGetPortStatusFromCy4')
- return api_ok_response(payload = resultDict)
- @api_call(logger = logger, nil = api_exception_response())
- def getPortInfoFromCy4(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 = 'apiGetPortInfoFromCy4')
- return api_ok_response(payload = resultDict)
- @api_call(logger = logger, nil = api_exception_response())
- def getConsumeRecordsFromCy4ByDeviceCode(request, dealer):
- # type: (WSGIRequest, Dealer)->JsonResponse
- payload = json.loads(request.body) if request.body else {}
- default_params_list = ['deviceCode', 'dataSize', 'reverse']
- 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 = {
- "status": 0,
- "description": "",
- "errcode": 0,
- "result": {},
- "errmsg": "SUCCESS",
- "desc": ""
- }
- apis = APIServiceStartRecord.objects(logicalCode = payload['deviceCode'])
- if apis.count() == 0:
- dataList = []
- else:
- apis = apis[0:payload['dataSize']]
- dataList = [{
- 'orderNo': _.orderNo,
- 'logicalCode': _.logicalCode,
- 'port': _.port,
- 'money': _.money,
- 'needTime': _.needTime,
- 'consumeType': _.consumeType,
- 'cardNo': _.cardNo,
- 'status': _.status,
- 'startTime': _.startTime,
- 'finishReason': _.finishReason,
- 'leftTime': _.leftTime,
- 'duration': _.duration,
- 'spendElec': _.spendElec,
- 'endTime': _.endTime
- } for _ in apis]
- if payload['reverse'] is True:
- dataList.sort(key = lambda x: x['startTime'], reverse = True)
- else:
- dataList.sort(key = lambda x: x['startTime'])
- resultDict['result'].update({'dataList': dataList})
- return api_ok_response(payload = resultDict)
- @api_call(logger = logger, nil = api_exception_response())
- def getConsumeRecordsFromCy4ByOrderNo(request, dealer):
- # type: (WSGIRequest, Dealer)->JsonResponse
- payload = json.loads(request.body) if request.body else {}
- default_params_list = ['orderNo']
- 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 = {
- "status": 0,
- "description": "",
- "errcode": 0,
- "result": {},
- "errmsg": "SUCCESS",
- "desc": ""
- }
- api = APIServiceStartRecord.objects(orderNo = payload['orderNo']).first()
- if api is None:
- dataList = []
- else:
- dataList = [{
- 'orderNo': api.orderNo,
- 'logicalCode': api.logicalCode,
- 'port': api.port,
- 'money': api.money,
- 'needTime': api.needTime,
- 'consumeType': api.consumeType,
- 'cardNo': api.cardNo,
- 'status': api.status,
- 'startTime': api.startTime,
- 'finishReason': api.finishReason,
- 'leftTime': api.leftTime,
- 'duration': api.duration,
- 'spendElec': api.spendElec,
- 'endTime': api.endTime
- }]
- resultDict['result'].update({'dataList': dataList})
- return api_ok_response(payload = resultDict)
|