mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 11:05:18 +08:00
update 卡启动、vin启动逻辑修改
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user