update 电单车

This commit is contained in:
Guoqs
2024-09-23 11:41:19 +08:00
parent 9f9bb44e74
commit 16630437fb
11 changed files with 72 additions and 14 deletions

View File

@@ -36,7 +36,6 @@ import org.springframework.beans.factory.annotation.Value;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -123,7 +122,7 @@ public abstract class AbstractProgramLogic implements InitializingBean {
/**
* 生成订单
*/
public abstract OrderBasicInfo generateOrder(GenerateOrderDTO dto) throws ParseException;
public abstract OrderBasicInfo generateOrder(GenerateOrderDTO dto) throws Exception;
/**
* 支付订单

View File

@@ -69,7 +69,7 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic {
* @param dto
*/
@Override
public OrderBasicInfo generateOrder(GenerateOrderDTO dto) throws ParseException {
public OrderBasicInfo generateOrder(GenerateOrderDTO dto) throws Exception {
// 处理前端传的参数
orderBasicInfoService.analysisPileParameter(dto);
@@ -112,9 +112,33 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic {
// 无transactionCode, 表示由平台端启动充电, 需要验证充电桩状态
orderBasicInfoService.checkPileInfoForEBike(dto);
}
// 校验该桩号枪口是否有待支付订单
checkPileConnectorOrder(dto);
return orderBasicInfoService.saveOrderForEBike(dto);
}
/**
* 校验该桩号枪口是否有待支付订单
*/
private void checkPileConnectorOrder(GenerateOrderDTO dto) {
String pileConnectorCode = dto.getPileConnectorCode();
List<OrderBasicInfo> orderBasicInfoList = orderBasicInfoService.queryOrdersByPileConnectorCodeAndStatus(pileConnectorCode, null, OrderPayStatusEnum.unpaid.getValue());
if (CollectionUtils.isNotEmpty(orderBasicInfoList)) {
List<OrderBasicInfo> collect = orderBasicInfoList.stream()
// 这个会员有待支付订单
.filter(x -> StringUtils.equals(x.getMemberId(), dto.getMemberId()))
// 10分钟内的订单
.filter(x -> DateUtils.intervalTime(x.getCreateTime(), DateUtils.getNowDate()) < 10 * 60 * 1000)
.collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(collect)) {
throw new BusinessException(ReturnCodeEnum.CODE_PENDING_PAYMENT_ORDERS_EXIST_ERROR);
}
}
}
/**
* 支付订单
* @param dto
@@ -933,7 +957,7 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic {
OrderBasicInfo orderBasicInfo;
try {
orderBasicInfo = generateOrder(generateOrderDTO);
} catch (ParseException e) {
} catch (Exception e) {
throw new RuntimeException(e);
}
// 支付订单