diff --git a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java index 1d5e535c6..8d98fb3e1 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -693,11 +693,13 @@ public class OrderService { if (CollectionUtils.isNotEmpty(orderRefundInfoList)) { // 已退款金额 BigDecimal refunded = orderRefundInfoList.stream() - .map(x -> new BigDecimal(x.getReverseAmt())) + .map(x -> Objects.nonNull(x.getReverseAmt()) ? new BigDecimal(x.getReverseAmt()) : BigDecimal.ZERO) .reduce(BigDecimal.ZERO,BigDecimal::add); - chargingAmount = orderBasicInfo.getPayAmount().subtract(refunded).toString(); - log.info("订单:{}, 已经存在退款记录:{}, 支付金额{}, 退款金额:{}, 重新计算消费金额为:{}", - orderBasicInfo.getOrderCode(), JSON.toJSONString(orderRefundInfoList), orderBasicInfo.getPayAmount(), refunded, chargingAmount); + if (Objects.nonNull(orderBasicInfo.getPayAmount())) { + chargingAmount = orderBasicInfo.getPayAmount().subtract(refunded).toString(); + log.info("订单:{}, 已经存在退款记录:{}, 支付金额{}, 退款金额:{}, 重新计算消费金额为:{}", + orderBasicInfo.getOrderCode(), JSON.toJSONString(orderRefundInfoList), orderBasicInfo.getPayAmount(), refunded, chargingAmount); + } } // 组装交易记录数据 @@ -721,8 +723,7 @@ public class OrderService { try { commonService.commonPushOrderInfo(orderBasicInfo); } catch (Exception e) { - log.error("人工结算订单 推送第三方平台订单信息error, ", e); - e.printStackTrace(); + log.error("人工结算订单 推送第三方平台订单信息error, orderCode:{}", orderBasicInfo.getOrderCode(), e); } }); return true; diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java index 031bffd92..3d910c00b 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java @@ -430,7 +430,7 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic { if (CollectionUtils.isNotEmpty(orderRefundInfoList)) { // 已退款金额 BigDecimal refunded = orderRefundInfoList.stream() - .map(x -> new BigDecimal(x.getReverseAmt())) + .map(x -> Objects.nonNull(x.getReverseAmt()) ? new BigDecimal(x.getReverseAmt()) : BigDecimal.ZERO) .reduce(BigDecimal.ZERO,BigDecimal::add); if (refunded.compareTo(refundAmount) >= 0) { logger.info("执行订单退款-校验已退款金额,orderCode:{}, 应退款金额:{}, 已经退款金额:{}, 不再执行退款", orderBasicInfo.getOrderCode(), refundAmount, refunded); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderDetailInfoVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderDetailInfoVO.java index 1641b1edb..d4545a3be 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderDetailInfoVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderDetailInfoVO.java @@ -5,10 +5,7 @@ import com.jsowell.pile.vo.base.OrderAmountDetailVO; import com.jsowell.pile.vo.base.OrderPeriodAmountVO; import com.jsowell.pile.vo.base.PileInfoVO; import com.jsowell.pile.vo.uniapp.MemberVO; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; import java.util.List; @@ -117,6 +114,7 @@ public class OrderDetailInfoVO { @Setter @NoArgsConstructor @AllArgsConstructor + @Builder public static class OrderRefundInfo{ private String paymentId; // 支付交易对象id private String reverseId; // 支付撤销对象id