|
@@ -178,7 +178,6 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
|
public HttpResponseResult<Boolean> doAuth(AuthOperaReq authOperaReq, SysUser user) {
|
|
public HttpResponseResult<Boolean> doAuth(AuthOperaReq authOperaReq, SysUser user) {
|
|
Long[] ids = StringUtil.toLongArray(StringPool.COMMA, authOperaReq.getId());
|
|
Long[] ids = StringUtil.toLongArray(StringPool.COMMA, authOperaReq.getId());
|
|
for (Long id : ids) {
|
|
for (Long id : ids) {
|
|
@@ -196,7 +195,6 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
|
|
orderRefund.setOperateId(user.getId());
|
|
orderRefund.setOperateId(user.getId());
|
|
orderRefund.setOperateReason(authOperaReq.getReason());
|
|
orderRefund.setOperateReason(authOperaReq.getReason());
|
|
orderRefund.setUpdateTime(new Date());
|
|
orderRefund.setUpdateTime(new Date());
|
|
- updateById(orderRefund);
|
|
|
|
|
|
|
|
if (authOperaReq.getPass()) {
|
|
if (authOperaReq.getPass()) {
|
|
//通过调用退款接口
|
|
//通过调用退款接口
|
|
@@ -220,7 +218,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
- @Transactional
|
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
public HttpResponseResult<UserOrderRefundBill> orderRefund(String orderNo, String reason) {
|
|
public HttpResponseResult<UserOrderRefundBill> orderRefund(String orderNo, String reason) {
|
|
UserOrderVo detail = orderService.detail(orderNo, null);
|
|
UserOrderVo detail = orderService.detail(orderNo, null);
|
|
|
|
|
|
@@ -289,12 +287,12 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
return doOrderRefund(orderRefunds);
|
|
return doOrderRefund(orderRefunds);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
public void refundPaymentCallBack(PaymentCallBack data) {
|
|
public void refundPaymentCallBack(PaymentCallBack data) {
|
|
if (TradeStatusEnum.succeeded.equals(data.getStatus())) {//退款成功
|
|
if (TradeStatusEnum.succeeded.equals(data.getStatus())) {//退款成功
|
|
paymentRefundSucceededHandle(data);
|
|
paymentRefundSucceededHandle(data);
|
|
@@ -303,7 +301,8 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- private HttpResponseResult<UserOrderRefundBill> doOrderRefund(UserOrderRefund orderRefund) {
|
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ HttpResponseResult<UserOrderRefundBill> doOrderRefund(UserOrderRefund orderRefund) {
|
|
UserOrderPayment payment = orderPaymentService.getOne(Wrappers.<UserOrderPayment>lambdaQuery()
|
|
UserOrderPayment payment = orderPaymentService.getOne(Wrappers.<UserOrderPayment>lambdaQuery()
|
|
.eq(UserOrderPayment::getOrderNo, orderRefund.getOrderNo())
|
|
.eq(UserOrderPayment::getOrderNo, orderRefund.getOrderNo())
|
|
.eq(UserOrderPayment::getStatus, TradeStatusEnum.succeeded)
|
|
.eq(UserOrderPayment::getStatus, TradeStatusEnum.succeeded)
|
|
@@ -313,20 +312,22 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
|
|
throw new BizException("订单状态异常");
|
|
throw new BizException("订单状态异常");
|
|
}
|
|
}
|
|
|
|
|
|
- //单号生成
|
|
|
|
- Long billNo = idGeneratorService.generatorId("billNo");
|
|
|
|
-
|
|
|
|
RefundBill refundBill = new RefundBill(payment.getOpenType(),
|
|
RefundBill refundBill = new RefundBill(payment.getOpenType(),
|
|
PaymentClientEnum.valueOf(payment.getPaymentClient()), payment.getPayChannel());
|
|
PaymentClientEnum.valueOf(payment.getPaymentClient()), payment.getPayChannel());
|
|
refundBill.setTradeNo(payment.getTransNo());
|
|
refundBill.setTradeNo(payment.getTransNo());
|
|
refundBill.setPaymentNo(payment.getPaymentNo());
|
|
refundBill.setPaymentNo(payment.getPaymentNo());
|
|
|
|
+
|
|
|
|
+ //单号生成
|
|
|
|
+ Long billNo = idGeneratorService.generatorId("billNo");
|
|
refundBill.setRefundNo(billNo.toString());
|
|
refundBill.setRefundNo(billNo.toString());
|
|
|
|
+
|
|
refundBill.setOrderAmt(payment.getPayAmt());
|
|
refundBill.setOrderAmt(payment.getPayAmt());
|
|
refundBill.setRefundAmt(orderRefund.getActualAmount());
|
|
refundBill.setRefundAmt(orderRefund.getActualAmount());
|
|
refundBill.setReason(orderRefund.getReason());
|
|
refundBill.setReason(orderRefund.getReason());
|
|
|
|
|
|
BaseResult<RefundBill> refundBillBaseResult = paymentClient.refundPayment(refundBill);
|
|
BaseResult<RefundBill> refundBillBaseResult = paymentClient.refundPayment(refundBill);
|
|
log.info("退款返回: {} ", JSONObject.toJSONString(refundBillBaseResult));
|
|
log.info("退款返回: {} ", JSONObject.toJSONString(refundBillBaseResult));
|
|
|
|
+
|
|
//入退款单表
|
|
//入退款单表
|
|
UserOrderRefundBill orderRefundBill = new UserOrderRefundBill();
|
|
UserOrderRefundBill orderRefundBill = new UserOrderRefundBill();
|
|
orderRefundBill.setRefundId(orderRefund.getId());
|
|
orderRefundBill.setRefundId(orderRefund.getId());
|
|
@@ -340,6 +341,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
|
|
orderRefundBill.setPayFailMsg(refundBillBaseResult.getMsg());
|
|
orderRefundBill.setPayFailMsg(refundBillBaseResult.getMsg());
|
|
}
|
|
}
|
|
refundBillService.save(orderRefundBill);
|
|
refundBillService.save(orderRefundBill);
|
|
|
|
+ updateById(orderRefund);
|
|
return HttpResponseResult.succeed(orderRefundBill);
|
|
return HttpResponseResult.succeed(orderRefundBill);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -366,26 +368,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
|
|
one.setUpdateTime(new Date());
|
|
one.setUpdateTime(new Date());
|
|
refundBillService.updateById(one);
|
|
refundBillService.updateById(one);
|
|
|
|
|
|
- //处理业务
|
|
|
|
- UserOrderRefund orderRefund = getById(one.getRefundId());
|
|
|
|
- if (StringUtil.isEmpty(orderRefund.getOredrDetilIds())) {
|
|
|
|
- List<Long> ids = new ArrayList<>();
|
|
|
|
- for (String id : orderRefund.getOredrDetilIds().split(",")) {
|
|
|
|
- ids.add(Long.parseLong(id));
|
|
|
|
- }
|
|
|
|
- OrderDetailSearch search = new OrderDetailSearch();
|
|
|
|
- search.setIds(ids);
|
|
|
|
- search.setOrderNo(orderRefund.getOrderNo());
|
|
|
|
- List<UserOrderDetailVo> userOrderDetails = orderDetailService.selectList(search);
|
|
|
|
-
|
|
|
|
- for (UserOrderDetailVo vo : userOrderDetails) {
|
|
|
|
- Consumer<UserOrderDetailVo> refundAfterConsumer = refundSuccess.get(vo.getGoodType());
|
|
|
|
- if (!Objects.isNull(refundAfterConsumer)) {
|
|
|
|
- refundAfterConsumer.accept(vo);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
|
|
+ orderRefundSuccessBizHandle(one.getRefundId());
|
|
}
|
|
}
|
|
|
|
|
|
/***
|
|
/***
|
|
@@ -413,8 +396,17 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
|
|
one.setUpdateTime(new Date());
|
|
one.setUpdateTime(new Date());
|
|
refundBillService.updateById(one);
|
|
refundBillService.updateById(one);
|
|
|
|
|
|
|
|
+ orderRefundFailBizHandle(one.getRefundId());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 处理退款成功业务
|
|
|
|
+ *
|
|
|
|
+ * @param refundId 退款单id
|
|
|
|
+ */
|
|
|
|
+ private void orderRefundSuccessBizHandle(Long refundId) {
|
|
//处理业务
|
|
//处理业务
|
|
- UserOrderRefund orderRefund = getById(one.getRefundId());
|
|
|
|
|
|
+ UserOrderRefund orderRefund = getById(refundId);
|
|
if (StringUtil.isEmpty(orderRefund.getOredrDetilIds())) {
|
|
if (StringUtil.isEmpty(orderRefund.getOredrDetilIds())) {
|
|
List<Long> ids = new ArrayList<>();
|
|
List<Long> ids = new ArrayList<>();
|
|
for (String id : orderRefund.getOredrDetilIds().split(",")) {
|
|
for (String id : orderRefund.getOredrDetilIds().split(",")) {
|
|
@@ -426,12 +418,39 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
|
|
List<UserOrderDetailVo> userOrderDetails = orderDetailService.selectList(search);
|
|
List<UserOrderDetailVo> userOrderDetails = orderDetailService.selectList(search);
|
|
|
|
|
|
for (UserOrderDetailVo vo : userOrderDetails) {
|
|
for (UserOrderDetailVo vo : userOrderDetails) {
|
|
- Consumer<UserOrderDetailVo> refundAfterConsumer = refundFailed.get(vo.getGoodType());
|
|
|
|
|
|
+ Consumer<UserOrderDetailVo> refundAfterConsumer = refundSuccess.get(vo.getGoodType());
|
|
if (!Objects.isNull(refundAfterConsumer)) {
|
|
if (!Objects.isNull(refundAfterConsumer)) {
|
|
refundAfterConsumer.accept(vo);
|
|
refundAfterConsumer.accept(vo);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 处理退款失败业务
|
|
|
|
+ *
|
|
|
|
+ * @param refundId 退款单id
|
|
|
|
+ */
|
|
|
|
+ private void orderRefundFailBizHandle(Long refundId) {
|
|
|
|
+ //处理业务
|
|
|
|
+ UserOrderRefund orderRefund = getById(refundId);
|
|
|
|
+
|
|
|
|
+ if (StringUtil.isEmpty(orderRefund.getOredrDetilIds())) {
|
|
|
|
+ List<Long> ids = new ArrayList<>();
|
|
|
|
+ for (String id : orderRefund.getOredrDetilIds().split(",")) {
|
|
|
|
+ ids.add(Long.parseLong(id));
|
|
|
|
+ }
|
|
|
|
+ OrderDetailSearch search = new OrderDetailSearch();
|
|
|
|
+ search.setIds(ids);
|
|
|
|
+ search.setOrderNo(orderRefund.getOrderNo());
|
|
|
|
+ List<UserOrderDetailVo> userOrderDetails = orderDetailService.selectList(search);
|
|
|
|
+
|
|
|
|
+ for (UserOrderDetailVo vo : userOrderDetails) {
|
|
|
|
+ Consumer<UserOrderDetailVo> refundAfterConsumer = refundFailed.get(vo.getGoodType());
|
|
|
|
+ if (!Objects.isNull(refundAfterConsumer)) {
|
|
|
|
+ refundAfterConsumer.accept(vo);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|