diff --git a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java index 096157927..424881a74 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java @@ -317,7 +317,7 @@ public class MemberService { if (StringUtils.isNotBlank(dto.getVinCode())) { // 判断当前vin是否被绑定 MemberPlateNumberRelation memberPlateInfoByVinCode = memberPlateNumberRelationService.getMemberPlateInfoByVinCode(dto.getVinCode()); - if (memberPlateInfoByVinCode == null) { + if (memberPlateInfoByVinCode != null) { throw new BusinessException(ReturnCodeEnum.CODE_THIS_VIN_HAS_BEEN_BINDING); } relation.setVinCode(dto.getVinCode().toUpperCase(Locale.ROOT)); diff --git a/jsowell-admin/src/test/java/SpringBootTestController.java b/jsowell-admin/src/test/java/SpringBootTestController.java index 36df71005..8202fd7c7 100644 --- a/jsowell-admin/src/test/java/SpringBootTestController.java +++ b/jsowell-admin/src/test/java/SpringBootTestController.java @@ -182,6 +182,12 @@ public class SpringBootTestController { private IMemberBasicInfoService memberBasicInfoService; + @Test + public void testVin() { + String vinCode = "LRWYGCFS3PC844497"; + MemberPlateNumberRelation memberPlateInfoByVinCode = memberPlateNumberRelationService.getMemberPlateInfoByVinCode(vinCode); + System.out.println(memberPlateInfoByVinCode); + } @Test public void testUpdateConnectorStatus() { 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 9de3268e4..6a6d143d1 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 @@ -160,6 +160,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { @Autowired private PileRemoteService pileRemoteService; + @Autowired + private IPileStationWhitelistService pileStationWhitelistService; + /** * 条件查询订单基本信息 * @@ -1579,25 +1582,40 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { */ @Override public Map generateOrderByCard(GenerateOrderDTO dto) throws Exception { - // 通过memberId获取账户余额 - MemberVO memberVO = memberBasicInfoService.queryMemberInfoByMemberId(dto.getMemberId()); - if (memberVO == null) { - throw new BusinessException(ReturnCodeEnum.CODE_GET_MEMBER_ACCOUNT_AMOUNT_ERROR); - } - BigDecimal totalAccountAmount = memberVO.getTotalAccountAmount(); - if (totalAccountAmount.compareTo(BigDecimal.ZERO) <= 0) { - throw new BusinessException(ReturnCodeEnum.CODE_BALANCE_IS_INSUFFICIENT); - } + // BigDecimal totalAccountAmount = BigDecimal.ZERO; + BigDecimal accountBalance = BigDecimal.ZERO; + String payMode; // 判断当前用户是否为平台测试员 PlatformTesterVO platformTesterVO = memberBasicInfoService.selectPlatformTesterStatus(dto.getMemberId()); + PileBasicInfo pileBasicInfo = pileBasicInfoService.selectPileBasicInfoBySN(dto.getPileSn()); + PileStationWhitelist pileStationWhitelist = pileStationWhitelistService.queryWhitelistByMemberId(String.valueOf(pileBasicInfo.getStationId()), dto.getMemberId()); + if(platformTesterVO != null && StringUtils.equals(Constants.ONE, platformTesterVO.getStatus())) { // 是平台测试员 - dto.setChargeAmount(new BigDecimal("500")); - dto.setPayMode(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue()); - } - dto.setChargeAmount(totalAccountAmount); // 充电金额 - dto.setPayMode(OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue()); // 1-余额支付 + accountBalance = new BigDecimal("500"); + payMode = OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue(); + }else if(pileStationWhitelist != null) { + // 站点白名单 + accountBalance = new BigDecimal("500"); + payMode = OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue(); + } else { + // 通过memberId获取账户余额 + MemberVO memberVO = memberBasicInfoService.queryMemberInfoByMemberId(dto.getMemberId()); + if (memberVO == null) { + throw new BusinessException(ReturnCodeEnum.CODE_GET_MEMBER_ACCOUNT_AMOUNT_ERROR); + } + if (accountBalance.compareTo(BigDecimal.ZERO) <= 0) { + throw new BusinessException(ReturnCodeEnum.CODE_BALANCE_IS_INSUFFICIENT); + } + accountBalance = memberVO.getTotalAccountAmount(); + payMode = OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue(); + // accountBalance = memberVO.getTotalAccountAmount(); + // dto.setChargeAmount(totalAccountAmount); // 充电金额 + // dto.setPayMode(OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue()); // 1-余额支付 + } + dto.setChargeAmount(accountBalance); + dto.setPayMode(payMode); /* 生成订单 */ @@ -1623,14 +1641,14 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { Map map = Maps.newHashMap(); map.put("orderCode", basicInfo.getOrderCode()); map.put("transactionCode", basicInfo.getTransactionCode()); - map.put("accountBalance", totalAccountAmount); + map.put("accountBalance", accountBalance); logger.info("生成订单 result:{}", JSON.toJSONString(map)); // 支付订单 PayOrderDTO payOrderDTO = new PayOrderDTO(); payOrderDTO.setOrderCode(basicInfo.getOrderCode()); - payOrderDTO.setPayAmount(totalAccountAmount); + payOrderDTO.setPayAmount(accountBalance); payOrderDTO.setPayMode(dto.getPayMode()); payOrderDTO.setMemberId(dto.getMemberId()); // payOrderDTO.setCode();