andrew 4 vuotta sitten
vanhempi
commit
1849f474b9

+ 1
- 1
src/main/java/com/yunzhi/niucai/common/CommConstants.java Näytä tiedosto

40
     /**
40
     /**
41
      * 重新置为有效状态
41
      * 重新置为有效状态
42
      */
42
      */
43
-    public final static Integer SRTATUS_EFFECTIVE = 3;
43
+    public final static Integer SRTATUS_EFFECTIVE = 1;
44
 
44
 
45
     /**
45
     /**
46
      * 支付成功
46
      * 支付成功

+ 4
- 0
src/main/java/com/yunzhi/niucai/controller/AliPayController.java Näytä tiedosto

24
 import javax.servlet.http.HttpServletRequest;
24
 import javax.servlet.http.HttpServletRequest;
25
 import java.math.BigInteger;
25
 import java.math.BigInteger;
26
 import java.security.SecureRandom;
26
 import java.security.SecureRandom;
27
+import java.time.LocalDateTime;
27
 import java.util.Date;
28
 import java.util.Date;
28
 import java.util.Iterator;
29
 import java.util.Iterator;
29
 import java.util.Map;
30
 import java.util.Map;
52
         // 更新商户订单号并改为支付中
53
         // 更新商户订单号并改为支付中
53
         taOrder.setOutTradeNo(outTradeNo);
54
         taOrder.setOutTradeNo(outTradeNo);
54
         taOrder.setStatus(CommConstants.SRTATUS_PAYING);
55
         taOrder.setStatus(CommConstants.SRTATUS_PAYING);
56
+        taOrder.setUpdateDate(LocalDateTime.now());
55
         taOrderService.updateById(taOrder);
57
         taOrderService.updateById(taOrder);
56
         return ResponseBean.success(pay);
58
         return ResponseBean.success(pay);
57
     }
59
     }
85
         String outTradeNo = request.getParameter("out_trade_no");
87
         String outTradeNo = request.getParameter("out_trade_no");
86
         String tradeStatus = request.getParameter("trade_status");
88
         String tradeStatus = request.getParameter("trade_status");
87
         TaOrder taOrder = taOrderService.getOne(new QueryWrapper<TaOrder>().eq("out_trade_no", outTradeNo));
89
         TaOrder taOrder = taOrderService.getOne(new QueryWrapper<TaOrder>().eq("out_trade_no", outTradeNo));
90
+        taOrder.setUpdateDate(LocalDateTime.now());
88
         // 支付失败
91
         // 支付失败
89
         if (!tradeStatus.equals(CommConstants.TRADE_STATUS_SUCCESS)){
92
         if (!tradeStatus.equals(CommConstants.TRADE_STATUS_SUCCESS)){
90
             taOrder.setStatus(CommConstants.SRTATUS_EFFECTIVE);
93
             taOrder.setStatus(CommConstants.SRTATUS_EFFECTIVE);
94
         //支付成功 更新为已支付状态
97
         //支付成功 更新为已支付状态
95
         taOrder.setIsPayed(true);
98
         taOrder.setIsPayed(true);
96
         taOrder.setStatus(CommConstants.SRTATUS_EFFECTIVE);
99
         taOrder.setStatus(CommConstants.SRTATUS_EFFECTIVE);
100
+        taOrder.setTradeNo(tradeNo);
97
         taOrderService.updateById(taOrder);
101
         taOrderService.updateById(taOrder);
98
     }
102
     }
99
 }
103
 }

+ 6
- 0
src/main/java/com/yunzhi/niucai/entity/TaOrder.java Näytä tiedosto

59
 
59
 
60
     @ApiModelProperty(value = "商户网站唯一订单号")
60
     @ApiModelProperty(value = "商户网站唯一订单号")
61
     private String outTradeNo;
61
     private String outTradeNo;
62
+
63
+    @ApiModelProperty(value = "支付平台流水")
64
+    private String tradeNo;
65
+
66
+    @ApiModelProperty(value = "更新时间")
67
+    private LocalDateTime updateDate;
62
 }
68
 }

+ 32
- 0
src/main/java/com/yunzhi/niucai/task/OrderTask.java Näytä tiedosto

1
+package com.yunzhi.niucai.task;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.yunzhi.niucai.common.CommConstants;
5
+import com.yunzhi.niucai.entity.TaOrder;
6
+import com.yunzhi.niucai.service.ITaOrderService;
7
+import org.springframework.beans.factory.annotation.Autowired;
8
+import org.springframework.scheduling.annotation.Scheduled;
9
+import org.springframework.stereotype.Component;
10
+
11
+import java.time.LocalDateTime;
12
+import java.util.List;
13
+
14
+@Component
15
+public class OrderTask {
16
+
17
+    @Autowired
18
+    private ITaOrderService taOrderService;
19
+    /**
20
+     * 改变支付中的状态为有效状态
21
+     */
22
+    @Scheduled(cron = "* 0/30 * * * ? ")
23
+    public void changeOrderStatus(){
24
+        QueryWrapper<TaOrder> taOrderQueryWrapper = new QueryWrapper<>();
25
+        taOrderQueryWrapper.eq("status", CommConstants.SRTATUS_PAYING);
26
+        taOrderQueryWrapper.isNotNull("out_trade_no");
27
+        taOrderQueryWrapper.gt("update_date", LocalDateTime.now().plusMinutes(30));
28
+        List<TaOrder> list = taOrderService.list(taOrderQueryWrapper);
29
+        list.forEach(e -> e.setStatus(CommConstants.SRTATUS_EFFECTIVE));
30
+        taOrderService.updateBatchById(list);
31
+    }
32
+}