This commit is contained in:
Lemon
2023-07-11 15:31:26 +08:00
parent f85bc681b7
commit 8564e95866
3 changed files with 41 additions and 17 deletions

View File

@@ -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<String, Object> 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<String, Object> 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();