diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/TempController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/TempController.java index d1d5897be..df8da1ece 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/TempController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/TempController.java @@ -404,4 +404,18 @@ public class TempController extends BaseController { orderService.adapayRefund(dto); return new RestApiResponse<>(); } + + /** + * 批量订单退款 + * 支持在线支付/余额支付 + */ + @PostMapping("/batchRefundOrder") + public RestApiResponse batchRefundOrder(@RequestBody QueryOrderDTO dto) { + try { + tempService.batchRefundOrder(dto.getOrderCodeList()); + } catch (Exception e) { + logger.error("批量订单退款error", e); + } + return new RestApiResponse<>(); + } } diff --git a/jsowell-admin/src/main/java/com/jsowell/service/TempService.java b/jsowell-admin/src/main/java/com/jsowell/service/TempService.java index 58f0b6587..590c41031 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/TempService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/TempService.java @@ -428,4 +428,17 @@ public class TempService { resultMap.put("unClearingList", unClearingList); return resultMap; } + + public void batchRefundOrder(List orderCodeList) throws BaseAdaPayException { + List orderBasicInfos = orderBasicInfoService.queryOrderList(orderCodeList); + for (OrderBasicInfo orderBasicInfo : orderBasicInfos) { + String payMode = orderBasicInfo.getPayMode(); + if (StringUtils.equals(payMode, OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue())) { + orderBasicInfoService.retryRefundOrder(orderBasicInfo); + } else { + orderBasicInfoService.orderPaymentSettlementAndRefund(orderBasicInfo); + } + // logger.info("批量进行问题订单退款,orderCode:{}, result:{}", orderBasicInfo.getOrderCode(), JSON.toJSONString(result)); + } + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java index 5dea8cd75..871090ec8 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java @@ -338,8 +338,11 @@ public interface IOrderBasicInfoService { * @param orderCode 订单编号 */ void retryRefundOrder(String orderCode) throws BaseAdaPayException; + void retryRefundOrder(OrderBasicInfo orderBasicInfo) throws BaseAdaPayException; - void returnUpdateOrderBasicInfo(OrderBasicInfo orderBasicInfo, TransactionRecordsData data); + OrderSettleResult orderPaymentSettlementAndRefund(OrderBasicInfo orderBasicInfo); + + void returnUpdateOrderBasicInfo(OrderBasicInfo orderBasicInfo, TransactionRecordsData data); OrderDetail returnUpdateOrderDetail(OrderBasicInfo orderBasicInfo, TransactionRecordsData data); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 137c28041..c2efcb3cd 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -732,7 +732,8 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { * 订单分账逻辑 * 订单结算完成,就执行清分and退款 */ - private OrderSettleResult orderPaymentSettlementAndRefund(OrderBasicInfo orderBasicInfo) { + @Override + public OrderSettleResult orderPaymentSettlementAndRefund(OrderBasicInfo orderBasicInfo) { String merchantId = orderBasicInfo.getMerchantId(); String orderCode = orderBasicInfo.getOrderCode(); // 获取一级运营商信息 @@ -1146,7 +1147,8 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { // } // } - private void balancePaymentOrderRefundV2(OrderBasicInfo orderBasicInfo) { + @Transactional(rollbackFor = Exception.class) + public void balancePaymentOrderRefundV2(OrderBasicInfo orderBasicInfo) { // 订单编号 String orderCode = orderBasicInfo.getOrderCode(); // 订单消费金额 @@ -2982,6 +2984,13 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { public void retryRefundOrder(String orderCode) throws BaseAdaPayException { // 查询订单信息 OrderBasicInfo orderBasicInfo = getOrderInfoByOrderCode(orderCode); + retryRefundOrder(orderBasicInfo); + } + + @Override + public void retryRefundOrder(OrderBasicInfo orderBasicInfo) throws BaseAdaPayException { + String orderCode = orderBasicInfo.getOrderCode(); + // 查询订单信息 if (orderBasicInfo == null) { throw new BusinessException(ReturnCodeEnum.CODE_QUERY_ORDER_INFO_IS_NULL); }