|  | @@ -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);
 | 
											
												
													
														|  | 
 |  | +                }
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  }
 |  |  }
 |