wlzboy
6 天以前 3bbd80a63ac7728ac01b641a48a26befcb171a0f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package com.ruoyi.payment.domain.model;
 
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
 
/**
 * 支付订单 - 聚合根
 * 
 * @author ruoyi
 */
@Data
public class PaymentOrder implements Serializable {
    private static final long serialVersionUID = 1L;
 
    /** 订单ID */
    private Long id;
 
    /** 业务订单号 */
    private String bizOrderId;
 
    /** 金额(分) */
    private Integer amount;
 
    /** 币种 */
    private String currency;
 
    /** 支付渠道 */
    private String channel;
 
    /** 订单状态 */
    private String status;
 
    /** 订单标题 */
    private String subject;
 
    /** 订单描述 */
    private String description;
 
    /** 业务回调地址 */
    private String callbackUrl;
 
    /** 过期时间 */
    private LocalDateTime expireAt;
 
    /** 最新交易ID */
    private Long latestTransactionId;
 
    /** 渠道交易号 */
    private String channelTradeNo;
 
    /** 支付成功时间 */
    private LocalDateTime paidAt;
 
    /** 乐观锁版本号 */
    private Integer version;
 
    /** 创建时间 */
    private LocalDateTime createdAt;
 
    /** 更新时间 */
    private LocalDateTime updatedAt;
    
    /** 商品明细列表 */
    private List<GoodsDetail> goodsDetails;
 
    /**
     * 判断订单是否已过期
     */
    public boolean isExpired() {
        return expireAt != null && LocalDateTime.now().isAfter(expireAt);
    }
 
    /**
     * 判断订单是否可以支付
     */
    public boolean canPay() {
        return "PENDING".equals(status) && !isExpired();
    }
 
    /**
     * 判断订单是否已成功
     */
    public boolean isSuccess() {
        return "SUCCEEDED".equals(status);
    }
}