diff --git a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java index 2f0a1d4..82d49a9 100644 --- a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java +++ b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java @@ -659,6 +659,12 @@ public class BuyOrderController { return R.error("订单对应用户不存在"); } + BuyOrderRefund buyOrderRefund = buyOrderRefundService.getOne(new QueryWrapper().eq("order_id",buyOrder.getOrderId())); + if(buyOrderRefund!=null){ + return R.error("请勿重复申请退款"); + }else{ + buyOrderRefund = new BuyOrderRefund(); + } if (Constants.ORDER_STATUS_TO_BE_PAID.equals(buyOrder.getOrderStatus()) || Constants.ORDER_STATUS_FAIL.equals(buyOrder.getOrderStatus()) || Constants.ORDER_STATUS_REFUND.equals(buyOrder.getOrderStatus()) @@ -666,9 +672,6 @@ public class BuyOrderController { return R.error("当前订单状态不支持退单"); } - buyOrder.setOrderStatus(Constants.ORDER_STATUS_REFUND); - buyOrderService.updateById(buyOrder); - BigDecimal refundFee = buyOrder.getRealMoney(); BigDecimal shippingMoney = buyOrder.getShippingMoney()==null?BigDecimal.ZERO:buyOrder.getShippingMoney(); int deductShipping = params.containsKey("deductShipping") && params.get("deductShipping")!=null?Integer.parseInt(params.get("deductShipping").toString()):0; @@ -679,7 +682,6 @@ public class BuyOrderController { String remark = params.containsKey("remark") && params.get("remark").toString()!=null?params.get("remark").toString():""; String refundNo = buyOrderRefundService.genRefundNo(); - BuyOrderRefund buyOrderRefund = new BuyOrderRefund(); buyOrderRefund.setRefundNo(refundNo); buyOrderRefund.setOrderId(buyOrder.getOrderId()); buyOrderRefund.setOrderSn(buyOrder.getOrderSn()); @@ -702,8 +704,13 @@ public class BuyOrderController { myUserService.updateById(user); buyOrderRefundLogService.insertRefundLog(refundId,1,1); buyOrderService.refundOrder(buyOrder,user,refundId); + //更改订单状态为已付款 + buyOrder.setOrderStatus(Constants.ORDER_STATUS_REFUND); + buyOrderService.updateById(buyOrder); + } } else if (Constants.PAYMENT_METHOD_WECHAT_PAY.equals(buyOrder.getPaymentMethod())) { + buyOrderRefundLogService.insertRefundLog(refundId,4,0); if (refundFee.compareTo(BigDecimal.ZERO) > 0) { Map refundParams = new HashMap<>(); refundParams.put("orderSn", buyOrder.getOrderSn()); @@ -713,10 +720,13 @@ public class BuyOrderController { JSONObject resultJson = JSONObject.parseObject(refundResult); if (!"SUCCESS".equals(resultJson.getString("status"))) { return R.error("微信退款申请失败"); + }else{ + buyOrderRefundLogService.insertRefundLog(refundId,4,2); } - buyOrderRefundLogService.insertRefundLog(refundId,4,0); + } } else if (Constants.PAYMENT_METHOD_ALI_PAY.equals(buyOrder.getPaymentMethod())) { + buyOrderRefundLogService.insertRefundLog(refundId,3,0); if (refundFee.compareTo(BigDecimal.ZERO) > 0) { Map refundParams = new HashMap<>(); refundParams.put("orderSn", buyOrder.getOrderSn()); @@ -728,11 +738,11 @@ public class BuyOrderController { || !"10000".equals(responseJson.getString("code")) || !"Y".equals(responseJson.getString("fund_change"))) { return R.error("支付宝退款申请失败"); + }else{ + buyOrderRefundLogService.insertRefundLog(refundId,3,2); } - buyOrderRefundLogService.insertRefundLog(refundId,3,1); } } - return R.ok("ok"); }