1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- # coding=utf-8
- from library.validator import Validator, ValidationError
- from library.validator.fields import IntegerField, BoolField, StringField, FloatField
- DEFAULT_REFUND_PROTECTION_TIME = 5 # 退费保护时间 默认5分钟
- DEFAULT_SERVICE_FEE = 1 # 默认的最小消费 单位是元
- DEFAULT_REFUND_CAL_BASE = 1 # 默认的退费进制时间 单位分钟 不满X分钟按X分钟计算
- REASON_MAP = {
- 0x01: u"设备过载停止",
- 0x02: u"设备空载停止,请检查插头是否连接",
- 0x03: u"设备充满停止",
- 0x04: u"设备直通停止",
- 0x80: u"您的订购量已经使用完毕",
- 0x88: u"您的充电已经完成",
- 0xCB: u"远程断电,您的充电已经结束"
- }
- class SetResponse(object):
- SUCCESS = "52"
- FAIL = "53"
- class ChargeMode(object):
- TIME = 0
- ELEC = 1
- class CXJZDeviceSettingsValidator(Validator):
- cardCode = StringField(max_length=4, min_length=4, required=True)
- chargeMode = IntegerField(min_value=0, max_value=3, required=True, strict=False)
- maxPower = IntegerField(min_value=0, max_value=3000, required=True, strict=False)
- coinUpperLimit = IntegerField(min_value=0, required=True, strict=False)
- fullStopTime = IntegerField(min_value=0, required=True, strict=False)
- noLoadTime = IntegerField(min_value=0, required=True, strict=False)
- fullPower = IntegerField(min_value=0, required=True, strict=False)
- noLoadPower = IntegerField(min_value=0, required=True, strict=False)
- cardCoinElec = FloatField(min_value=0, required=True, strict=False)
- coinTime = IntegerField(min_value=0, required=True, strict=False)
- coinMax = IntegerField(min_value=0, required=True, strict=False)
- reportTime = IntegerField(min_value=0, required=True, strict=False)
- reCheckTime = IntegerField(min_value=0, required=True, strict=False)
- stopSwitch = BoolField(required=True, strict=False)
- coinSwitch = BoolField(required=True, strict=False)
- smokeSwitch = BoolField(required=True, strict=False)
- powerSwitch = BoolField(required=True, strict=False)
- # 功率分档设置
- time1 = IntegerField(min_value=0, max_value=900, required=True, strict=False)
- time2 = IntegerField(min_value=0, max_value=900, required=True, strict=False)
- time3 = IntegerField(min_value=0, max_value=900, required=True, strict=False)
- time4 = IntegerField(min_value=0, max_value=900, required=True, strict=False)
- power1 = IntegerField(min_value=0, max_value=1000, required=True, strict=False)
- power2 = IntegerField(min_value=0, max_value=1000, required=True, strict=False)
- power3 = IntegerField(min_value=0, max_value=1000, required=True, strict=False)
- # 退费的服务器参数设置
- serviceFee = FloatField(min_value=0, required=True, strict=False)
- refundProtectionTime = IntegerField(min_value=0, max_value=30, strict=False)
- refundCalBase = IntegerField(min_value=1, max_value=60, strict=False)
- def suit_data(self):
- if not self.validated_data:
- return {}
- data = self.validated_data.copy()
- # 对电量做单位转换
- data["cardCoinElec"] = int(float(data["cardCoinElec"]) * 10)
- # 对C3时间做转换 C3实际上是差值 表示 第一档时间 - 投币时间
- data["coinTime"] = data["time1"] - data["coinTime"]
- return data
- def validate(self, data):
- if data["coinTime"] > data["time1"]:
- raise ValidationError(u"投币时间不能大于第一段时间")
- return data
|