andrew před 4 roky
rodič
revize
1849f474b9

+ 1
- 1
src/main/java/com/yunzhi/niucai/common/CommConstants.java Zobrazit soubor

@@ -40,7 +40,7 @@ public class CommConstants {
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 Zobrazit soubor

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

+ 6
- 0
src/main/java/com/yunzhi/niucai/entity/TaOrder.java Zobrazit soubor

@@ -59,4 +59,10 @@ public class TaOrder implements Serializable {
59 59
 
60 60
     @ApiModelProperty(value = "商户网站唯一订单号")
61 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 Zobrazit soubor

@@ -0,0 +1,32 @@
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
+}