|
@@ -25,6 +25,7 @@ import com.yonge.cooleshow.biz.dal.vo.UserOrderVo;
|
|
|
import com.yonge.cooleshow.biz.dal.vo.res.RefundCreateRes;
|
|
|
import com.yonge.cooleshow.common.entity.HttpResponseResult;
|
|
|
import com.yonge.cooleshow.common.service.IdGeneratorService;
|
|
|
+import com.yonge.toolset.base.exception.BizException;
|
|
|
import com.yonge.toolset.base.result.BaseResult;
|
|
|
import com.yonge.toolset.payment.base.enums.PaymentClientEnum;
|
|
|
import com.yonge.toolset.payment.base.enums.TradeStatusEnum;
|
|
@@ -134,19 +135,23 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
|
|
|
if (CollectionUtils.isNotEmpty(collect)) {
|
|
|
|
|
|
Function<OrderRefundReq, HttpResponseResult<RefundCreateRes>> refundCreateFunction = refundCreate.get(vo.getGoodType());
|
|
|
- if (Objects.isNull(refundCreateFunction)) {
|
|
|
+ if (!Objects.isNull(refundCreateFunction)) {
|
|
|
refundReq.setOredrDetil(vo);
|
|
|
HttpResponseResult<RefundCreateRes> apply = refundCreateFunction.apply(refundReq);
|
|
|
if (apply.getStatus()) {
|
|
|
detilIds.add(vo.getId());
|
|
|
- actualPrice.add(apply.getData().getActualPrice());
|
|
|
+ actualPrice = actualPrice.add(apply.getData().getActualPrice());
|
|
|
}
|
|
|
} else {
|
|
|
detilIds.add(vo.getId());
|
|
|
- actualPrice.add(vo.getActualPrice());
|
|
|
+ actualPrice = actualPrice.add(vo.getActualPrice());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ if(actualPrice.doubleValue() <= 0){
|
|
|
+ throw new BizException("退款金额不能为0");
|
|
|
+ }
|
|
|
+
|
|
|
String join = StringUtil.join(detilIds, ",");
|
|
|
|
|
|
UserOrderRefund orderRefunds = new UserOrderRefund();
|
|
@@ -163,7 +168,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
|
|
|
List<Long> collect = refundReq.getOredrDetilIds().stream().filter(o -> o.equals(vo.getId())).collect(Collectors.toList());
|
|
|
if (CollectionUtils.isNotEmpty(collect)) {
|
|
|
Consumer<UserOrderDetailVo> refundAfterConsumer = refundAfter.get(vo.getGoodType());
|
|
|
- if (Objects.isNull(refundAfterConsumer)) {
|
|
|
+ if (!Objects.isNull(refundAfterConsumer)) {
|
|
|
refundAfterConsumer.accept(vo);
|
|
|
}
|
|
|
}
|
|
@@ -202,7 +207,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
|
|
|
}
|
|
|
//调用业务方法
|
|
|
Consumer<UserOrderDetailVo> refundCancelConsumer = refundCancel.get(detail.getGoodType());
|
|
|
- if (Objects.isNull(refundCancelConsumer)) {
|
|
|
+ if (!Objects.isNull(refundCancelConsumer)) {
|
|
|
refundCancelConsumer.accept(detail);
|
|
|
}
|
|
|
}
|
|
@@ -247,16 +252,16 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
|
|
|
}
|
|
|
|
|
|
Function<OrderRefundReq, HttpResponseResult<RefundCreateRes>> refundCreateFunction = refundCreate.get(vo.getGoodType());
|
|
|
- if (Objects.isNull(refundCreateFunction)) {
|
|
|
+ if (!Objects.isNull(refundCreateFunction)) {
|
|
|
orderRefundReq.setOredrDetil(vo);
|
|
|
HttpResponseResult<RefundCreateRes> apply = refundCreateFunction.apply(orderRefundReq);
|
|
|
if (apply.getStatus()) {
|
|
|
detilIds.add(vo.getId());
|
|
|
- actualPrice.add(apply.getData().getActualPrice());
|
|
|
+ actualPrice = actualPrice.add(apply.getData().getActualPrice());
|
|
|
}
|
|
|
} else {
|
|
|
detilIds.add(vo.getId());
|
|
|
- actualPrice.add(vo.getActualPrice());
|
|
|
+ actualPrice = actualPrice.add(vo.getActualPrice());
|
|
|
}
|
|
|
}
|
|
|
String join = StringUtil.join(detilIds, ",");
|
|
@@ -275,7 +280,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
|
|
|
List<Long> collect = orderRefundReq.getOredrDetilIds().stream().filter(o -> o.equals(vo.getId())).collect(Collectors.toList());
|
|
|
if (CollectionUtils.isNotEmpty(collect)) {
|
|
|
Consumer<UserOrderDetailVo> refundAfterConsumer = refundAfter.get(vo.getGoodType());
|
|
|
- if (Objects.isNull(refundAfterConsumer)) {
|
|
|
+ if (!Objects.isNull(refundAfterConsumer)) {
|
|
|
refundAfterConsumer.accept(vo);
|
|
|
}
|
|
|
}
|
|
@@ -300,13 +305,19 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
|
|
|
.eq(UserOrderPayment::getStatus, TradeStatusEnum.succeeded)
|
|
|
);
|
|
|
|
|
|
+ if (null == payment || !TradeStatusEnum.succeeded.equals(payment.getStatus())) {
|
|
|
+ throw new BizException("订单状态异常");
|
|
|
+ }
|
|
|
+
|
|
|
//单号生成
|
|
|
Long billNo = idGeneratorService.generatorId("billNo");
|
|
|
|
|
|
RefundBill refundBill = new RefundBill(payment.getOpenType(),
|
|
|
PaymentClientEnum.valueOf(payment.getPaymentClient()), payment.getPayChannel());
|
|
|
- refundBill.setId(payment.getTransNo());
|
|
|
+ refundBill.setTradeNo(payment.getTransNo());
|
|
|
+ refundBill.setPaymentNo(payment.getPaymentNo());
|
|
|
refundBill.setRefundNo(billNo.toString());
|
|
|
+ refundBill.setOrderAmt(payment.getPayAmt());
|
|
|
refundBill.setRefundAmt(orderRefund.getActualAmount());
|
|
|
refundBill.setReason(orderRefund.getReason());
|
|
|
|
|
@@ -365,7 +376,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
|
|
|
|
|
|
for (UserOrderDetailVo vo : userOrderDetails) {
|
|
|
Consumer<UserOrderDetailVo> refundAfterConsumer = refundSuccess.get(vo.getGoodType());
|
|
|
- if (Objects.isNull(refundAfterConsumer)) {
|
|
|
+ if (!Objects.isNull(refundAfterConsumer)) {
|
|
|
refundAfterConsumer.accept(vo);
|
|
|
}
|
|
|
}
|
|
@@ -412,7 +423,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
|
|
|
|
|
|
for (UserOrderDetailVo vo : userOrderDetails) {
|
|
|
Consumer<UserOrderDetailVo> refundAfterConsumer = refundFailed.get(vo.getGoodType());
|
|
|
- if (Objects.isNull(refundAfterConsumer)) {
|
|
|
+ if (!Objects.isNull(refundAfterConsumer)) {
|
|
|
refundAfterConsumer.accept(vo);
|
|
|
}
|
|
|
}
|