package com.java110.common.charge.factory.common; import com.alibaba.fastjson.JSONArray; import com.java110.common.charge.IChargeFactoryAdapt; import com.java110.dto.chargeMachine.ChargeMachineDto; import com.java110.dto.chargeMachine.NotifyChargeOrderDto; import com.java110.dto.chargeMachine.NotifyChargePortDto; import com.java110.dto.chargeMachine.ChargeMachinePortDto; import com.java110.vo.ResultVo; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 通用 充电接口类 * * 叮叮 充电桩 通知处理类名为 NotifyCommonChargeController.java */ @Service("commonChargeMachineFactory") public class CommonChargeMachineFactoryAdapt implements IChargeFactoryAdapt { private static final String QUERY_PORT_URL = "/equipments/ID/PORT"; //开始充电 private static final String START_CHARGE_URL = "/equipments/ID/PORT/open"; //关闭充电 private static final String STOP_CHARGE_URL = "/equipments/ID/PORT/close"; @Override public ResultVo startCharge(ChargeMachineDto chargeMachineDto, ChargeMachinePortDto chargeMachinePortDto, String chargeType, double duration, String orderId) { return new ResultVo(ResultVo.CODE_OK, "开始充电成功"); } @Override public ResultVo stopCharge(ChargeMachineDto chargeMachineDto, ChargeMachinePortDto chargeMachinePortDto) { return new ResultVo(ResultVo.CODE_OK, "结束充电成功"); } @Override public ChargeMachinePortDto getChargePortState(ChargeMachineDto chargeMachineDto, ChargeMachinePortDto chargeMachinePortDto) { chargeMachinePortDto.setState(ChargeMachinePortDto.STATE_FREE); return chargeMachinePortDto; } @Override public List getChargeHeartBeatParam(NotifyChargeOrderDto notifyChargeOrderDto) { JSONArray jsonArray = JSONArray.parseArray(notifyChargeOrderDto.getBodyParam()); List ports = new ArrayList<>(); if (jsonArray == null || jsonArray.size() < 1) { return ports; } NotifyChargePortDto port = null; for (int portIndex = 0; portIndex < jsonArray.size(); portIndex++) { port = new NotifyChargePortDto(); port.setPortCode(jsonArray.getJSONObject(portIndex).getString("port")); port.setMachineCode(notifyChargeOrderDto.getMachineCode()); port.setOrderId(jsonArray.getJSONObject(portIndex).getString("chargeId")); port.setEnergy(jsonArray.getJSONObject(portIndex).getString("energy")); long time = jsonArray.getJSONObject(portIndex).getLongValue("powerTime"); port.setPowerTime(new Date(time)); ports.add(port); } return ports; } @Override public void queryChargeMachineState(ChargeMachineDto chargeMachineDto) { chargeMachineDto.setState(ChargeMachineDto.STATE_ONLINE); chargeMachineDto.setStateName("在线"); } @Override public void workHeartbeat(ChargeMachineDto chargeMachineDto, String bodyParam) { } }