From 48d80872aac1ea537c51fcc5cf29557f1bb9a5db Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Tue, 13 Aug 2024 09:59:43 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E9=A2=84=E7=BA=A6=E5=85=85=E7=94=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ConfirmStartChargingRequestHandler.java | 70 ++++++++++++++++--- .../pile/dto}/ConfirmStartChargingData.java | 40 +++++------ .../pile/service/OrderBasicInfoService.java | 2 + 3 files changed, 84 insertions(+), 28 deletions(-) rename {jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc => jsowell-pile/src/main/java/com/jsowell/pile/dto}/ConfirmStartChargingData.java (70%) diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ConfirmStartChargingRequestHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ConfirmStartChargingRequestHandler.java index 028cd2a4c..1febc6c1e 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ConfirmStartChargingRequestHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ConfirmStartChargingRequestHandler.java @@ -3,7 +3,7 @@ package com.jsowell.netty.handler.yunkuaichong; import com.alibaba.fastjson2.JSON; import com.google.common.primitives.Bytes; import com.jsowell.common.constant.Constants; -import com.jsowell.common.core.domain.ykc.ConfirmStartChargingData; +import com.jsowell.pile.dto.ConfirmStartChargingData; import com.jsowell.common.core.domain.ykc.YKCDataProtocol; import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode; import com.jsowell.common.enums.ykc.CardStatusEnum; @@ -21,7 +21,6 @@ import com.jsowell.pile.service.MemberPlateNumberRelationService; import com.jsowell.pile.service.OrderBasicInfoService; import com.jsowell.pile.service.PileAuthCardService; import com.jsowell.pile.service.PileMsgRecordService; -import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -248,12 +247,6 @@ public class ConfirmStartChargingRequestHandler extends AbstractHandler{ */ byte[] defeatReasonByteArr = Constants.zeroByteArray; - // 不足位数的值补零 - // cardNumByteArr = BytesUtil.checkLengthAndBehindAppendZero(cardNumByteArr, 16); - // serialNumByteArr = BytesUtil.checkLengthAndBehindAppendZero(serialNumByteArr, 32); - // pileSnByteArr = BytesUtil.checkLengthAndBehindAppendZero(pileSnByteArr, 14); - // accountBalanceByteArr = BytesUtil.checkLengthAndBehindAppendZero(accountBalanceByteArr, 8); - // 保存报文 String jsonMsg = JSON.toJSONString(confirmStartChargingData); pileMsgRecordService.save(pileSn, pileSn, type, jsonMsg, ykcDataProtocol.getHEXString()); @@ -264,4 +257,65 @@ public class ConfirmStartChargingRequestHandler extends AbstractHandler{ return getResult(ykcDataProtocol, msgBodyByteArr); } + + /** + * 充电桩主动申请充电 逻辑 + * @param confirmStartChargingData + * @return + */ + private byte[] confirmStartCharging(ConfirmStartChargingData confirmStartChargingData) { + String startMode = confirmStartChargingData.getStartMode(); + String pileSn = confirmStartChargingData.getPileSn(); + String connectorCode = confirmStartChargingData.getConnectorCode(); + + GenerateOrderDTO dto = null; + try { + if (StringUtils.equals("01", startMode)) { + String physicsCard = confirmStartChargingData.getPhysicsCard(); + // 查询卡信息 根据传过来的物理卡号查询数据库中此卡信息 + PileAuthCard pileAuthCardInfo = pileAuthCardService.selectCardInfoByLogicCard(physicsCard); + if (pileAuthCardInfo == null) { + // 未查到此卡信息 + throw new BusinessException(ReturnCodeEnum.CODE_THIS_CARD_HAS_NO_INFO); + } + if (StringUtils.isBlank(pileAuthCardInfo.getMemberId())) { + // 卡未绑定用户 + throw new BusinessException(ReturnCodeEnum.CODE_THIS_CARD_NOT_BIND_USER); + } + + // 判断卡状态 + if (!StringUtils.equals(CardStatusEnum.NORMAL.getCode(), pileAuthCardInfo.getStatus())) { + log.info("卡号:{}, 状态:{}, 非正常使用状态", physicsCard, CardStatusEnum.getCardStatus(pileAuthCardInfo.getStatus())); + return null; + } + dto = new GenerateOrderDTO(); + dto.setPileAuthCardInfo(pileAuthCardInfo); + dto.setPileSn(pileSn); + dto.setConnectorCode(connectorCode); + dto.setStartMode(StartModeEnum.AUTH_CARD.getValue()); + dto.setMemberId(pileAuthCardInfo.getMemberId()); + } else if (StringUtils.equals("03", startMode)) { + String vinCode = confirmStartChargingData.getVinCode(); + // 通过vin码查询数据库绑定用户信息 + MemberPlateNumberRelation plateInfo = memberPlateNumberRelationService.getMemberPlateInfoByVinCode(vinCode); + if (plateInfo == null) { + throw new BusinessException("", vinCode + "未查到绑定用户信息"); + } + dto = new GenerateOrderDTO(); + dto.setMemberPlateNumberRelation(plateInfo); + dto.setPileSn(pileSn); + dto.setConnectorCode(connectorCode); + dto.setStartMode(StartModeEnum.VIN_CODE.getValue()); + dto.setMemberId(plateInfo.getMemberId()); + } + + if (dto != null) { + // Map map = orderBasicInfoService.generateOrderByCard(dto); + } + } catch (Exception e) { + throw new RuntimeException(e); + } + + return null; + } } diff --git a/jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/ConfirmStartChargingData.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/ConfirmStartChargingData.java similarity index 70% rename from jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/ConfirmStartChargingData.java rename to jsowell-pile/src/main/java/com/jsowell/pile/dto/ConfirmStartChargingData.java index 618a59089..4d9241e37 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/ConfirmStartChargingData.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/ConfirmStartChargingData.java @@ -1,4 +1,4 @@ -package com.jsowell.common.core.domain.ykc; +package com.jsowell.pile.dto; import lombok.AllArgsConstructor; import lombok.Builder; @@ -55,23 +55,23 @@ public class ConfirmStartChargingData { */ private String vinCode; - // /** - // * 鉴权成功标识 - // */ - // private String authenticationFlagByteArr; - // - // /** - // * 账户余额 - // */ - // private String accountBalanceByteArr; - // - // /** - // * 交易流水号 - // */ - // private String serialNumByteArr; - // - // /** - // * 失败原因 - // */ - // private String defeatReasonByteArr; + /** + * 鉴权成功标识 + */ + private String authFlag; + + /** + * 账户余额 + */ + private String accountBalance; + + /** + * 交易流水号 + */ + private String transactionCode; + + /** + * 失败原因 + */ + private String failReason; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java index fcfbea000..c3f7fa382 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java @@ -477,4 +477,6 @@ public interface OrderBasicInfoService{ * @param chargingStartupResult */ void createReservationOrder(ReservationChargingStartupResult chargingStartupResult); + + }