diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java index 1264c89e9..a470642bd 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java @@ -727,4 +727,25 @@ public class TempController extends BaseController { } return response; } + + + /** + * 重试订单退款接口/重试退款按钮 (批量) + * http://localhost:8080/order/retryRefundOrderBatch + */ + @PostMapping("/retryRefundOrderBatch") + public RestApiResponse retryRefundOrderBatch(@RequestBody ApplyRefundDTO dto) { + RestApiResponse response; + try { + orderBasicInfoService.retryRefundOrderList(dto.getOrderCoderList()); + response = new RestApiResponse<>(); + } catch (BusinessException e) { + logger.error("批量重试订单退款接口 error,", e); + response = new RestApiResponse<>(e.getCode(), e.getMessage()); + } catch (Exception e) { + logger.error("批量重试订单退款接口 error,", e); + response = new RestApiResponse<>(e); + } + return response; + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/ApplyRefundDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/ApplyRefundDTO.java index 8413479e5..8cf570c64 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/ApplyRefundDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/ApplyRefundDTO.java @@ -51,4 +51,6 @@ public class ApplyRefundDTO { * 钱包编号 */ private String walletCode; + + private List orderCoderList; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java index cc714c18c..3024aad8a 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java @@ -541,4 +541,6 @@ public interface OrderBasicInfoService{ * @return */ List tempGetOrderCodes(QueryOrderDTO dto); + + void retryRefundOrderList(List orderCoderList); } 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 ee5a86676..f70641f13 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 @@ -2328,7 +2328,23 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { if (CollectionUtils.isEmpty(orderCodeList)) { return resultList; } - return orderBasicInfoMapper.queryOrderList(orderCodeList); + List orderBasicInfos = orderBasicInfoMapper.queryOrderList(orderCodeList); + for (OrderBasicInfo orderBasicInfo : orderBasicInfos) { + String orderCode = orderBasicInfo.getOrderCode(); + // 给每个订单查询结果设置缓存 + // 如果orderCode是00000000000000000000000000000000,直接continue + if (StringUtils.equals(Constants.ILLEGAL_TRANSACTION_CODE, orderCode)) { + continue; + } + // 查缓存 + String redisKey = CacheConstants.GET_ORDER_INFO_BY_ORDER_CODE + orderCode; + OrderBasicInfo redisInfo = redisCache.getCacheObject(redisKey); + // 如果该订单缓存为空,重新设置缓存 + if (redisInfo == null) { + redisCache.setCacheObject(redisKey, orderBasicInfo, 5, TimeUnit.MINUTES); + } + } + return orderBasicInfos; } /** @@ -3997,6 +4013,20 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { } } + public void retryRefundOrderList(List orderCodeList) { + // 批量查订单信息 + List orderBasicInfos = queryOrderList(orderCodeList); + if (CollectionUtils.isNotEmpty(orderBasicInfos)) { + orderBasicInfos.forEach(orderBasicInfo -> { + try { + retryRefundOrder(orderBasicInfo); + } catch (BaseAdaPayException e) { + throw new RuntimeException(e); + } + }); + } + } + @Override public void retryRefundOrder(OrderBasicInfo orderBasicInfo) throws BaseAdaPayException { if (orderBasicInfo == null) {