update 卡启动、vin启动逻辑修改

This commit is contained in:
Lemon
2023-07-08 11:03:43 +08:00
parent d96e80eccf
commit 64a43f6844
4 changed files with 104 additions and 36 deletions

View File

@@ -233,7 +233,7 @@ public interface IOrderBasicInfoService {
List<OrderBasicInfo> getAppointmentOrder(LocalDateTime dateTime);
Map<String, Object> generateOrderByCard(GenerateOrderDTO dto);
Map<String, Object> generateOrderByCard(GenerateOrderDTO dto) throws Exception;
/**
* 联联平台 获取累计数据用
@@ -284,7 +284,7 @@ public interface IOrderBasicInfoService {
* @param dto
* @return
*/
String generateOrder(GenerateOrderDTO dto) throws ParseException;
OrderBasicInfo generateOrder(GenerateOrderDTO dto) throws ParseException;
void analysisPileParameter(BasicPileDTO dto);

View File

@@ -1577,7 +1577,79 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
* @return
*/
@Override
public Map<String, Object> generateOrderByCard(GenerateOrderDTO dto) {
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);
}
dto.setChargeAmount(totalAccountAmount); // 充电金额
dto.setPayMode(OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue()); // 1-余额支付
OrderBasicInfo basicInfo = generateOrder(dto);
if (basicInfo == null) {
return null;
}
if (StringUtils.equals(StartModeEnum.AUTH_CARD.getValue(), dto.getStartMode())) {
// 将卡状态改为启动锁定
PileAuthCard pileAuthCard = PileAuthCard.builder()
.id(dto.getPileAuthCardInfo().getId())
.logicCard(dto.getPileAuthCardInfo().getLogicCard())
.status("2")
.build();
pileAuthCardService.updatePileAuthCard(pileAuthCard);
} else if (StringUtils.equals(StartModeEnum.VIN_CODE.getValue(), dto.getStartMode())) {
// 将vin码改成启动锁定
dto.getMemberPlateNumberRelation().setVinStatus("2");
memberPlateNumberRelationService.updateMemberPlateNumberRelation(dto.getMemberPlateNumberRelation());
}
// 组装结果集
Map<String, Object> map = Maps.newHashMap();
map.put("orderCode", basicInfo.getOrderCode());
map.put("transactionCode", basicInfo.getTransactionCode());
map.put("accountBalance", totalAccountAmount);
logger.info("生成订单 result:{}", JSON.toJSONString(map));
// 支付订单
PayOrderDTO payOrderDTO = new PayOrderDTO();
payOrderDTO.setOrderCode(basicInfo.getOrderCode());
payOrderDTO.setPayAmount(totalAccountAmount);
payOrderDTO.setPayMode(dto.getPayMode());
payOrderDTO.setMemberId(dto.getMemberId());
// payOrderDTO.setCode();
// payOrderDTO.setLockValue();
payOrderDTO.setOrderBasicInfo(basicInfo);
payOrder(payOrderDTO);
// 推送小程序启动充电消息
// 通过memberId查询openId
MemberBasicInfo memberBasicInfo = memberBasicInfoService.selectInfoByMemberId(dto.getMemberId());
WechatSendMsgDTO sendMsgDTO = new WechatSendMsgDTO();
sendMsgDTO.setOpenId(memberBasicInfo.getOpenId());
sendMsgDTO.setOrderCode(basicInfo.getOrderCode());
wxAppletRemoteService.startChargingSendMsg(sendMsgDTO);
// return map;
String pileSn = dto.getPileSn();
String connectorCode = dto.getConnectorCode();
String startMode = dto.getStartMode();
@@ -1600,14 +1672,14 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
vinCode = relation.getVinCode();
}
// 通过memberId获取账户余额
MemberVO memberVO = memberBasicInfoService.queryMemberInfoByMemberId(memberId);
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);
}
// MemberVO memberVO = memberBasicInfoService.queryMemberInfoByMemberId(memberId);
// 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);
// }
String transactionCode = IdUtils.generateTransactionCode(pileSn, connectorCode);
// 通过桩号查询所属站点
@@ -2011,7 +2083,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
}
@Override
public String generateOrder(GenerateOrderDTO dto) throws ParseException {
public OrderBasicInfo generateOrder(GenerateOrderDTO dto) throws ParseException {
logger.info("generateOrder param:{}", JSONObject.toJSONString(dto));
// 处理前端传的参数
analysisPileParameter(dto);
@@ -2020,9 +2092,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
checkPileInfo(dto);
// 保存订单到数据库 saveOrder2Database
String orderCode = saveOrder2Database(dto);
OrderBasicInfo basicInfo = saveOrder2Database(dto);
return orderCode;
return basicInfo;
}
/**
@@ -2400,7 +2472,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
* @param dto
* @return
*/
private String saveOrder2Database(GenerateOrderDTO dto) throws ParseException {
private OrderBasicInfo saveOrder2Database(GenerateOrderDTO dto) throws ParseException {
String orderCode = IdUtils.getOrderCode();
String transactionCode = IdUtils.generateTransactionCode(dto.getPileSn(), dto.getConnectorCode());
@@ -2433,6 +2505,15 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
.settleAmount(BigDecimal.ZERO)
.startType(dto.getStartType())
.build();
if (StringUtils.equals(dto.getStartMode(), StartModeEnum.AUTH_CARD.getValue())) {
// 鉴权卡启动
orderBasicInfo.setLogicCard(dto.getPileAuthCardInfo().getLogicCard());
}
if (StringUtils.equals(dto.getStartMode(), StartModeEnum.VIN_CODE.getValue())) {
// vin启动
orderBasicInfo.setVinCode(dto.getMemberPlateNumberRelation().getVinCode());
}
if (StringUtils.equals(dto.getStartType(), StartTypeEnum.APPOINTMENT.getValue())) {
orderBasicInfo.setAppointmentTime(DateUtils.parseDate(dto.getAppointmentTime(), DateUtils.YYYY_MM_DD_HH_MM_SS));
}
@@ -2470,6 +2551,6 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
.orderDetail(orderDetail)
.build();
pileTransactionService.doCreateOrder(createOrderTransactionDTO);
return orderCode;
return orderBasicInfo;
}
}