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 0d332fd25..3a9135843 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 @@ -26,6 +26,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.Arrays; import java.util.Map; /** @@ -123,7 +124,7 @@ public class ConfirmStartChargingRequestHandler extends AbstractYkcHandler { .vinCode(vinCode) .build(); - + byte[] defeatReasonByteArr = Constants.zeroByteArray; /** * 刷卡启动充电 */ @@ -189,7 +190,12 @@ public class ConfirmStartChargingRequestHandler extends AbstractYkcHandler { // 通过vin码查询数据库绑定用户信息 MemberPlateNumberRelation plateInfo = memberPlateNumberRelationService.getMemberPlateInfoByVinCode(vinCode); if (plateInfo == null) { - throw new BusinessException("", vinCode + "未查到绑定用户信息"); + // throw new BusinessException("", vinCode + "未查到绑定用户信息"); + log.error(vinCode + "未查到绑定用户信息"); + defeatReasonByteArr = new byte[] {0x09}; // 系统中vin 码不存在 + transactionCode = Constants.ILLEGAL_TRANSACTION_CODE; + accountBalanceByteArr = BytesUtil.checkLengthAndBehindAppendZero(accountBalanceByteArr, 8); + authenticationFlagByteArr = Constants.zeroByteArray; } // if (!StringUtils.equals("1", plateInfo.getVinStatus())) { // // 1- 正常使用 @@ -216,8 +222,13 @@ public class ConfirmStartChargingRequestHandler extends AbstractYkcHandler { transactionCode = Constants.ILLEGAL_TRANSACTION_CODE; accountBalanceByteArr = BytesUtil.checkLengthAndBehindAppendZero(accountBalanceByteArr, 8); authenticationFlagByteArr = Constants.zeroByteArray; + String code = e.getCode(); + String message = e.getMessage(); + if (StringUtils.length(code) == 2) { + defeatReasonByteArr = BytesUtil.str2Bcd(code); + } - log.error("VIN码启动充电鉴权 error:{}, {}", e.getCode(), e.getMessage()); + log.error("VIN码启动充电鉴权 error:{}, {}", code, message); }catch (Exception e) { transactionCode = Constants.ILLEGAL_TRANSACTION_CODE; accountBalanceByteArr = BytesUtil.checkLengthAndBehindAppendZero(accountBalanceByteArr, 8); @@ -245,7 +256,7 @@ public class ConfirmStartChargingRequestHandler extends AbstractYkcHandler { * 0x0A 该桩存在未结账记录 * 0x0B 该桩不支持刷卡 */ - byte[] defeatReasonByteArr = Constants.zeroByteArray; + // byte[] defeatReasonByteArr = Constants.zeroByteArray; // 保存报文 String jsonMsg = JSON.toJSONString(confirmStartChargingData); @@ -318,4 +329,12 @@ public class ConfirmStartChargingRequestHandler extends AbstractYkcHandler { return null; } + + public static void main(String[] args) { + String msg = "01"; + System.out.println(StringUtils.length(msg)); + byte[] bytes = BytesUtil.str2Bcd(msg); + byte[] a = new byte[]{0x01}; + String s = Arrays.toString(bytes); + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 3d7e580ca..90a0cb367 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -2434,12 +2434,12 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // 通过memberId获取账户余额 MemberVO memberVO = memberBasicInfoService.queryMemberInfoByMemberId(dto.getMemberId(), merchantId); if (memberVO == null) { - throw new BusinessException(ReturnCodeEnum.CODE_GET_MEMBER_ACCOUNT_AMOUNT_ERROR); + throw new BusinessException("01", "查询用户账户为空"); } accountBalance = memberVO.getTotalBalance(); if (accountBalance.compareTo(BigDecimal.ZERO) <= 0) { logger.info("充电桩主动申请启动充电生成订单 余额不足, memberId:{}, MemberVO:{}", dto.getMemberId(), JSON.toJSONString(memberVO)); - throw new BusinessException(ReturnCodeEnum.CODE_BALANCE_IS_INSUFFICIENT); + throw new BusinessException("03", "用户账户余额不足"); } BigDecimal defaultAmount = Constants.BALANCE_PAY_MAX_AMOUNT_NEW; if (accountBalance.compareTo(defaultAmount) > 0) {