update 0x31鉴权失败原因

This commit is contained in:
Lemon
2024-08-28 10:49:57 +08:00
parent 9478e435f9
commit 653ace40e6
2 changed files with 25 additions and 6 deletions

View File

@@ -26,6 +26,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.Map; import java.util.Map;
/** /**
@@ -123,7 +124,7 @@ public class ConfirmStartChargingRequestHandler extends AbstractYkcHandler {
.vinCode(vinCode) .vinCode(vinCode)
.build(); .build();
byte[] defeatReasonByteArr = Constants.zeroByteArray;
/** /**
* 刷卡启动充电 * 刷卡启动充电
*/ */
@@ -189,7 +190,12 @@ public class ConfirmStartChargingRequestHandler extends AbstractYkcHandler {
// 通过vin码查询数据库绑定用户信息 // 通过vin码查询数据库绑定用户信息
MemberPlateNumberRelation plateInfo = memberPlateNumberRelationService.getMemberPlateInfoByVinCode(vinCode); MemberPlateNumberRelation plateInfo = memberPlateNumberRelationService.getMemberPlateInfoByVinCode(vinCode);
if (plateInfo == null) { 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())) { // if (!StringUtils.equals("1", plateInfo.getVinStatus())) {
// // 1- 正常使用 // // 1- 正常使用
@@ -216,8 +222,13 @@ public class ConfirmStartChargingRequestHandler extends AbstractYkcHandler {
transactionCode = Constants.ILLEGAL_TRANSACTION_CODE; transactionCode = Constants.ILLEGAL_TRANSACTION_CODE;
accountBalanceByteArr = BytesUtil.checkLengthAndBehindAppendZero(accountBalanceByteArr, 8); accountBalanceByteArr = BytesUtil.checkLengthAndBehindAppendZero(accountBalanceByteArr, 8);
authenticationFlagByteArr = Constants.zeroByteArray; 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) { }catch (Exception e) {
transactionCode = Constants.ILLEGAL_TRANSACTION_CODE; transactionCode = Constants.ILLEGAL_TRANSACTION_CODE;
accountBalanceByteArr = BytesUtil.checkLengthAndBehindAppendZero(accountBalanceByteArr, 8); accountBalanceByteArr = BytesUtil.checkLengthAndBehindAppendZero(accountBalanceByteArr, 8);
@@ -245,7 +256,7 @@ public class ConfirmStartChargingRequestHandler extends AbstractYkcHandler {
* 0x0A 该桩存在未结账记录 * 0x0A 该桩存在未结账记录
* 0x0B 该桩不支持刷卡 * 0x0B 该桩不支持刷卡
*/ */
byte[] defeatReasonByteArr = Constants.zeroByteArray; // byte[] defeatReasonByteArr = Constants.zeroByteArray;
// 保存报文 // 保存报文
String jsonMsg = JSON.toJSONString(confirmStartChargingData); String jsonMsg = JSON.toJSONString(confirmStartChargingData);
@@ -318,4 +329,12 @@ public class ConfirmStartChargingRequestHandler extends AbstractYkcHandler {
return null; 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);
}
} }

View File

@@ -2434,12 +2434,12 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
// 通过memberId获取账户余额 // 通过memberId获取账户余额
MemberVO memberVO = memberBasicInfoService.queryMemberInfoByMemberId(dto.getMemberId(), merchantId); MemberVO memberVO = memberBasicInfoService.queryMemberInfoByMemberId(dto.getMemberId(), merchantId);
if (memberVO == null) { if (memberVO == null) {
throw new BusinessException(ReturnCodeEnum.CODE_GET_MEMBER_ACCOUNT_AMOUNT_ERROR); throw new BusinessException("01", "查询用户账户为空");
} }
accountBalance = memberVO.getTotalBalance(); accountBalance = memberVO.getTotalBalance();
if (accountBalance.compareTo(BigDecimal.ZERO) <= 0) { if (accountBalance.compareTo(BigDecimal.ZERO) <= 0) {
logger.info("充电桩主动申请启动充电生成订单 余额不足, memberId:{}, MemberVO:{}", dto.getMemberId(), JSON.toJSONString(memberVO)); 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; BigDecimal defaultAmount = Constants.BALANCE_PAY_MAX_AMOUNT_NEW;
if (accountBalance.compareTo(defaultAmount) > 0) { if (accountBalance.compareTo(defaultAmount) > 0) {