update 订单逻辑改造工厂模式

This commit is contained in:
2023-09-01 16:14:04 +08:00
parent fbe64887f5
commit 74e97e2671
3 changed files with 50 additions and 32 deletions

View File

@@ -116,6 +116,11 @@ public abstract class AbstractOrderLogic implements InitializingBean {
*/ */
public abstract void settleOrder(TransactionRecordsData data, OrderBasicInfo orderBasicInfo); public abstract void settleOrder(TransactionRecordsData data, OrderBasicInfo orderBasicInfo);
/**
* 订单退款
*/
public abstract void refundOrder(OrderBasicInfo orderBasicInfo);
/** /**

View File

@@ -367,21 +367,7 @@ public class DelayMerchantOrderLogic extends AbstractOrderLogic {
transactionService.doUpdateOrder(dto); transactionService.doUpdateOrder(dto);
// 订单退款 // 订单退款
try { refundOrder(orderBasicInfo);
String payMode = orderBasicInfo.getPayMode();
if (StringUtils.equals(payMode, OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue())) {
// 余额支付
balancePaymentOrderRefund(orderBasicInfo);
} else if (StringUtils.equals(payMode, OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue())) {
// 微信支付
onlinePaymentOrderRefund(orderBasicInfo);
} else {
// 白名单支付
logger.info("订单:{}使用白名单支付,不进行退款处理", orderBasicInfo.getOrderCode());
}
} catch (Exception e) {
logger.error("{}-订单退款逻辑异常orderCode:{}", this.getClass().getSimpleName(), orderBasicInfo.getOrderCode(), e);
}
// 将卡/vin状态解锁 // 将卡/vin状态解锁
if (!StringUtils.equals("0000000000000000", data.getLogicCard())) { if (!StringUtils.equals("0000000000000000", data.getLogicCard())) {
@@ -416,10 +402,30 @@ public class DelayMerchantOrderLogic extends AbstractOrderLogic {
} }
} }
@Override
public void refundOrder(OrderBasicInfo orderBasicInfo) {
try {
String payMode = orderBasicInfo.getPayMode();
if (StringUtils.equals(payMode, OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue())) {
// 余额支付
balancePaymentOrderRefund(orderBasicInfo);
} else if (StringUtils.equals(payMode, OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue())) {
// 微信支付
onlinePaymentOrderRefund(orderBasicInfo);
} else {
// 白名单支付
logger.info("订单:{}使用白名单支付,不进行退款处理", orderBasicInfo.getOrderCode());
}
} catch (Exception e) {
logger.error("{}-订单退款逻辑异常orderCode:{}", this.getClass().getSimpleName(), orderBasicInfo.getOrderCode(), e);
}
}
/** /**
* 余额支付订单退款 * 余额支付订单退款
*/ */
private void balancePaymentOrderRefund(OrderBasicInfo orderBasicInfo) { @Transactional(rollbackFor = Exception.class)
public void balancePaymentOrderRefund(OrderBasicInfo orderBasicInfo) {
logger.info("{}-余额支付订单退款start orderBasicInfo:{}", this.getClass().getSimpleName(), JSON.toJSONString(orderBasicInfo)); logger.info("{}-余额支付订单退款start orderBasicInfo:{}", this.getClass().getSimpleName(), JSON.toJSONString(orderBasicInfo));
// 订单编号 // 订单编号
String orderCode = orderBasicInfo.getOrderCode(); String orderCode = orderBasicInfo.getOrderCode();

View File

@@ -29,6 +29,7 @@ import com.jsowell.pile.vo.web.UpdateMemberBalanceDTO;
import com.jsowell.wxpay.dto.WechatSendMsgDTO; import com.jsowell.wxpay.dto.WechatSendMsgDTO;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.ParseException; import java.text.ParseException;
@@ -350,21 +351,7 @@ public class NotDelayMerchantOrderLogic extends AbstractOrderLogic{
transactionService.doUpdateOrder(dto); transactionService.doUpdateOrder(dto);
// 订单退款 // 订单退款
try { refundOrder(orderBasicInfo);
String payMode = orderBasicInfo.getPayMode();
if (StringUtils.equals(payMode, OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue())) {
// 余额支付
balancePaymentOrderRefund(orderBasicInfo);
} else if (StringUtils.equals(payMode, OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue())) {
// 微信支付
onlinePaymentOrderRefund(orderBasicInfo);
} else {
// 白名单支付
logger.info("订单:{}使用白名单支付,不进行退款处理", orderBasicInfo.getOrderCode());
}
} catch (Exception e) {
logger.error("{}-订单退款逻辑异常orderCode:{}", this.getClass().getSimpleName(), orderBasicInfo.getOrderCode(), e);
}
// 将卡/vin状态解锁 // 将卡/vin状态解锁
if (!StringUtils.equals("0000000000000000", data.getLogicCard())) { if (!StringUtils.equals("0000000000000000", data.getLogicCard())) {
@@ -387,6 +374,25 @@ public class NotDelayMerchantOrderLogic extends AbstractOrderLogic{
logger.info("结算订单end:{} OrderTransactionDTO:{}", orderBasicInfo.getOrderCode(), JSONObject.toJSONString(dto)); logger.info("结算订单end:{} OrderTransactionDTO:{}", orderBasicInfo.getOrderCode(), JSONObject.toJSONString(dto));
} }
@Override
public void refundOrder(OrderBasicInfo orderBasicInfo) {
try {
String payMode = orderBasicInfo.getPayMode();
if (StringUtils.equals(payMode, OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue())) {
// 余额支付
balancePaymentOrderRefund(orderBasicInfo);
} else if (StringUtils.equals(payMode, OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue())) {
// 微信支付
onlinePaymentOrderRefund(orderBasicInfo);
} else {
// 白名单支付
logger.info("订单:{}使用白名单支付,不进行退款处理", orderBasicInfo.getOrderCode());
}
} catch (Exception e) {
logger.error("{}-订单退款逻辑异常orderCode:{}", this.getClass().getSimpleName(), orderBasicInfo.getOrderCode(), e);
}
}
// uniApp 发送停止充电订阅消息 // uniApp 发送停止充电订阅消息
private void sendMsg(OrderBasicInfo orderBasicInfo) { private void sendMsg(OrderBasicInfo orderBasicInfo) {
try { try {
@@ -404,7 +410,8 @@ public class NotDelayMerchantOrderLogic extends AbstractOrderLogic{
* *
* @param orderBasicInfo * @param orderBasicInfo
*/ */
private void balancePaymentOrderRefund(OrderBasicInfo orderBasicInfo) { @Transactional(rollbackFor = Exception.class)
public void balancePaymentOrderRefund(OrderBasicInfo orderBasicInfo) {
logger.info("{}-余额支付订单退款start orderBasicInfo:{}", this.getClass().getSimpleName(), JSON.toJSONString(orderBasicInfo)); logger.info("{}-余额支付订单退款start orderBasicInfo:{}", this.getClass().getSimpleName(), JSON.toJSONString(orderBasicInfo));
// 订单编号 // 订单编号
String orderCode = orderBasicInfo.getOrderCode(); String orderCode = orderBasicInfo.getOrderCode();