he2802 3 anos atrás
pai
commit
72c23361b3

+ 22 - 18
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsRefundServiceImpl.java

@@ -136,25 +136,29 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
             //题库商品
 
         }
-        OrderGoodsRefund add = BeanUtil.toBean(bo, OrderGoodsRefund.class);
-        validEntityBeforeSave(add);
-        add.setCreateTime(DateUtils.getNowTime());
-        add.setUpdateTime(DateUtils.getNowTime());
-        //退款单号
-        String out_trade_no = DateUtils.getDateOrderSn();
-        add.setRefundSn(out_trade_no);
-        add.setRefundFee(orderGoods.getGoodsReceived());
-        add.setUserId(order.getUserId());
-        if(this.save(add)){
-            Map<String, String> payResult =  iWxPayService.refund(out_trade_no,order.getTransid(),add.getRefundFee(),order.getPayPrice());
-            if("OK".equals(payResult.get("return_msg"))&&StrUtil.isNotEmpty(payResult.get("refund_id"))){
-                return refundCall(payResult.get("refund_id"),add.getRefundId(),orderGoods.getOrderGoodsId(),order);
-            }else{
-
-                throw new CustomException("退款错误"+ JSON.toJSONString(payResult));
-            }
+        OrderGoodsRefund add = getOne(new LambdaQueryWrapper<OrderGoodsRefund>().eq(OrderGoodsRefund::getGoodsId,bo.getGoodsId()).eq(OrderGoodsRefund::getOrderSn,bo.getOrderSn()));
+        String out_trade_no = null;
+        if(Validator.isNotEmpty(add)){
+            out_trade_no = add.getRefundSn();
+        }else{
+            add = BeanUtil.toBean(bo, OrderGoodsRefund.class);
+            validEntityBeforeSave(add);
+            add.setCreateTime(DateUtils.getNowTime());
+            add.setUpdateTime(DateUtils.getNowTime());
+            //退款单号
+             out_trade_no = DateUtils.getDateOrderSn();
+            add.setRefundSn(out_trade_no);
+            add.setRefundFee(orderGoods.getGoodsReceived());
+            add.setUserId(order.getUserId());
+            this.save(add);
+        }
+        Map<String, String> payResult =  iWxPayService.refund(out_trade_no,order.getTransid(),add.getRefundFee(),order.getPayPrice());
+        if("OK".equals(payResult.get("return_msg"))&&Validator.isNotEmpty(payResult.get("refund_id"))){
+            return refundCall(payResult.get("refund_id"),add.getRefundId(),orderGoods.getOrderGoodsId(),order);
+        }else{
+
+            throw new CustomException("退款错误"+ JSON.toJSONString(payResult));
         }
-        return false;
     }
 
     public Boolean refundCall(String WxpayRefundId,Long refundId,Long orderGoodsId,Order order){