配置充电停车优惠

This commit is contained in:
Guoqs
2025-02-18 13:36:15 +08:00
parent ced4a72cd8
commit c3e78af9e9
3 changed files with 35 additions and 13 deletions

View File

@@ -1773,19 +1773,31 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
*/
@Override
public OrderSplitResult realTimeOrderSplit(AfterSettleOrderDTO afterSettleOrderDTO) throws BaseAdaPayException {
// 查询订单信息
OrderBasicInfo orderBasicInfo = this.getOrderInfoByOrderCode(afterSettleOrderDTO.getOrderCode());
afterSettleOrderDTO.setOrderBasicInfo(orderBasicInfo);
// 校验订单支付金额,消费金额,退款金额
BigDecimal orderPayAmount = afterSettleOrderDTO.getOrderPayAmount(); // 支付金额
BigDecimal orderConsumeAmount = afterSettleOrderDTO.getOrderConsumeAmount(); // 消费金额
BigDecimal orderSettleAmount = afterSettleOrderDTO.getOrderSettleAmount();
BigDecimal orderRefundAmount = afterSettleOrderDTO.getOrderRefundAmount(); // 退款金额
if (orderSettleAmount.add(orderRefundAmount).compareTo(orderPayAmount) != 0) {
logger.info("realTimeOrderSplit-订单:{}, 支付金额与结算金额+退款金额不相等", afterSettleOrderDTO.getOrderCode());
return null;
// 如果是余额支付, 校验消费金额+ 退款金额 = 支付金额
if (StringUtils.equals(orderBasicInfo.getPayMode(), "1")) {
if (orderConsumeAmount.add(orderRefundAmount).compareTo(orderPayAmount) != 0) {
logger.info("realTimeOrderSplit-订单:{}, 支付金额与消费金额+退款金额不相等", afterSettleOrderDTO.getOrderCode());
return null;
}
}
// 查询订单信息
OrderBasicInfo orderBasicInfo = this.getOrderInfoByOrderCode(afterSettleOrderDTO.getOrderCode());
afterSettleOrderDTO.setOrderBasicInfo(orderBasicInfo);
// 如果是在线支付, 校验消费金额+ 退款金额 = 支付金额
if (StringUtils.equals(orderBasicInfo.getPayMode(), "4") || StringUtils.equals(orderBasicInfo.getPayMode(), "5")) {
if (orderSettleAmount.add(orderRefundAmount).compareTo(orderPayAmount) != 0) {
logger.info("realTimeOrderSplit-订单:{}, 支付金额与结算金额+退款金额不相等", afterSettleOrderDTO.getOrderCode());
return null;
}
}
// 订单结算金额,汇付分账
splittingMethod(afterSettleOrderDTO);

View File

@@ -57,6 +57,7 @@ import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.spec.InvalidKeySpecException;
import java.text.ParseException;
import java.time.LocalTime;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -698,6 +699,15 @@ public class CommonService {
String sumChargingTime = realTimeMonitorData.getSumChargingTime(); // 充电时长
String chargingDegree = realTimeMonitorData.getChargingDegree(); // 充电度数
String conditionType = String.valueOf(chargeParkingDiscount.getConditionType());
// 判断订单创建时间,是否在优惠时间段内
LocalTime createLocalTime = DateUtils.date2LocalDateTime(orderBasicInfo.getCreateTime()).toLocalTime();
if (createLocalTime.isBefore(chargeParkingDiscount.getStartTime()) || createLocalTime.isAfter(chargeParkingDiscount.getEndTime())) {
// 不在优惠时间段内
log.info("{}该订单不在优惠时间段({}-{})内", orderBasicInfo.getOrderCode(), chargeParkingDiscount.getStartTime(), chargeParkingDiscount.getEndTime());
return;
}
// 如果conditionType为1判断充电度数, 如果为2判断充电时长
boolean flag = false;
if (StringUtils.equals(conditionType, Constants.ONE)) {
@@ -713,14 +723,14 @@ public class CommonService {
}
if (!flag) {
// 不满足发券条件
log.info(orderBasicInfo.getOrderCode() + " 该订单不满足发券条件");
log.info("{} 该订单不满足发券条件", orderBasicInfo.getOrderCode());
return;
}
// 是否已经发券
String redisKey = CacheConstants.CAR_BIND_COUPON_BY_ORDER_CODE + orderBasicInfo.getOrderCode();
Object cacheObject = redisCache.getCacheObject(redisKey);
if (cacheObject != null) {
log.info(orderBasicInfo.getOrderCode() + " 该订单已经发券");
log.info("{} 该订单已经发券", orderBasicInfo.getOrderCode());
return;
}
// 绑定停车券

View File

@@ -118,11 +118,11 @@
<div class="margin-right foot4">
<div class="color60">可提现()</div>
<div class="margin-20 color">{{ adapayMember.avlBalance }}</div>
<el-button type="primary" v-if="adapayMember.avlBalance > withdrawalFee"
@click="dialogVisible = true">提现申请</el-button>
<div v-else>
<span class="text">该余额大于{{ withdrawalFee }}元时才可发起取现</span>
</div>
<!-- <el-button type="primary" v-if="adapayMember.avlBalance > withdrawalFee"-->
<!-- @click="dialogVisible = true">提现申请</el-button>-->
<!-- <div v-else>-->
<!-- <span class="text">该余额大于{{ withdrawalFee }}元时,才可发起取现</span>-->
<!-- </div>-->
</div>
<div class="margin-right foot4">
<div class="color60">总提现金额(元)</div>