From 867dde624b009fe1f288f292ea68699abd0600f7 Mon Sep 17 00:00:00 2001
From: rentaiming <806181062@qq.com>
Date: 星期五, 12 七月 2024 08:56:31 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java |   33 ++++++++++++++++++++++++++-------
 1 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java
index 9ad3bc1..a276ee2 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java
@@ -18,6 +18,7 @@
 import com.ruoyi.common.core.enums.OrderStatusEnum;
 import com.ruoyi.common.core.enums.PaymentMethodEnum;
 import com.ruoyi.common.core.enums.PointStatusEnum;
+import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.order.domain.Paylog;
 import com.ruoyi.order.mapper.OrderAuctionBondMapper;
@@ -228,7 +229,7 @@
                         return this.alipay(orderNO, subject, body, price, request);
                     } if (type == 2){
                         // 微信预下单
-                        return this.wxpay(2, orderNO, body, openId, price, request);
+                        return this.wxpay(2 ,orderNO, body, openId, price, request);
                     }
                 }else{
                     LambdaQueryWrapper<Order> wrapper1= Wrappers.lambdaQuery();
@@ -244,7 +245,7 @@
                         return this.alipay(orderNO, subject, body, price, request);
                     } if (type == 2) {
                         // 微信预下单
-                        return this.wxpay(2,page1.getOrderTimeSx(), orderNO, body,openId, price, request);
+                        return this.wxpay(2, orderNO, body,openId, price, request);
                     }
                 }
 
@@ -305,8 +306,16 @@
                             wrapper1.eq(OrderAuctionBond::getOrderNo,paylog1.getOutTradeNo());
                             wrapper1.eq(OrderAuctionBond::getDelFlag,0);
                             OrderAuctionBond one1 = orderAuctionBondMapper.selectOne(wrapper1);
+
+                            if (one1.getOrderTimeSx().isAfter(LocalDateTime.now())){
+                                boolean bo = refundForAlipay(paylog1.getOutTradeNo(), paylog1.getTradeNo(), paylog1.getPayMoney());
+                            }
+
+
                             one1.setBoundStatus(BondStatusEnum.PAID);
                             orderAuctionBondMapper.updateById(one1);
+
+
                         }else{
                             LambdaQueryWrapper<Order> wrapper1= Wrappers.lambdaQuery();
                             wrapper1.eq(Order::getOrderNo,paylog1.getOutTradeNo());
@@ -434,6 +443,20 @@
                             wrapper1.eq(OrderAuctionBond::getOrderNo,paylog.getOutTradeNo());
                             wrapper1.eq(OrderAuctionBond::getDelFlag,0);
                             OrderAuctionBond one1 = orderAuctionBondMapper.selectOne(wrapper1);
+                            if (one1.getOrderTimeSx().isAfter(LocalDateTime.now())){
+                                String refundMoney = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d);
+                                Integer refundFee = Integer.parseInt(refundMoney.substring(0, refundMoney.length() - 3));
+                                String money = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d);
+                                Integer totalFee = Integer.parseInt(money.substring(0, money.length() - 3));
+                                refundFee = Integer.parseInt(money.substring(0, money.length() - 3));
+
+                                String regEx = "[^0-9]";
+                                Pattern p = Pattern.compile(regEx);
+                                Matcher m = p.matcher(paylog.getOutTradeNo());
+                                String ma = m.replaceAll("").trim();
+                                refundForWxpay(4, paylog.getTradeNo(), paylog.getOutTradeNo(), "R" + ma, totalFee, refundFee, "2");
+                            }
+
                             one1.setBoundStatus(BondStatusEnum.PAID);
                             one1.setPaymentMethod(PaymentMethodEnum.WECHAT);
                             orderAuctionBondMapper.updateById(one1);
@@ -570,7 +593,7 @@
      * @param request
      * @return
      */
-    public static R<Map<String, Object>> wxpay(Integer apptype,LocalDateTime  sx,String outTradeNo, String body,String openId, Double price,
+    public static R<Map<String, Object>> wxpay(Integer apptype,String outTradeNo, String body,String openId, Double price,
                                                HttpServletRequest request) {
         // 获取预支付接口返回参数
         Map<String, Object> map1 = new HashMap<String, Object>();
@@ -610,10 +633,6 @@
             paraMap.put("body", body);
             //设置请求参数(商户订单号)
             paraMap.put("out_trade_no", outTradeNo);
-            if (sx!=null){
-                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
-                paraMap.put("time_expire",sx.format(formatter));
-            }
             //设置请求参数(总金额)
 
             String money=SinataUtil.doubleRetainTwo(price*100d);

--
Gitblit v1.7.1