2026-06-26 20b96473f2520590a0dca6b775b81e3ea06a77a0
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
package cn.iocoder.yudao.module.trade.dal.dataobject.aftersale;
 
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
import cn.iocoder.yudao.module.trade.enums.aftersale.AfterSaleStatusEnum;
import cn.iocoder.yudao.module.trade.enums.aftersale.AfterSaleTypeEnum;
import cn.iocoder.yudao.module.trade.enums.aftersale.AfterSaleWayEnum;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.Jackson3TypeHandler;
import lombok.Data;
 
import java.time.LocalDateTime;
import java.util.List;
 
/**
 * 售后订单,用于处理 {@link TradeOrderDO} 交易订单的退款退货流程
 *
 * @author 芋道源码
 */
@TableName(value = "trade_after_sale", autoResultMap = true)
@KeySequence("trade_after_sale_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
public class AfterSaleDO extends BaseDO {
 
    /**
     * 售后编号,主键自增
     */
    private Long id;
    /**
     * 售后单号
     *
     * 例如说,1146347329394184195
     */
    private String no;
    /**
     * 退款状态
     *
     * 枚举 {@link AfterSaleStatusEnum}
     */
    private Integer status;
    /**
     * 售后方式
     *
     * 枚举 {@link AfterSaleWayEnum}
     */
    private Integer way;
    /**
     * 售后类型
     *
     * 枚举 {@link AfterSaleTypeEnum}
     */
    private Integer type;
    /**
     * 用户编号
     *
     * 关联 MemberUserDO 的 id 编号
     */
    private Long userId;
    /**
     * 申请原因
     *
     * type = 退款,对应 trade_after_sale_refund_reason 类型
     * type = 退货退款,对应 trade_after_sale_refund_and_return_reason 类型
     */
    private String applyReason;
    /**
     * 补充描述
     */
    private String applyDescription;
    /**
     * 补充凭证图片
     *
     * 数组,以逗号分隔
     */
    @TableField(typeHandler = Jackson3TypeHandler.class)
    private List<String> applyPicUrls;
 
    // ========== 交易订单相关 ==========
    /**
     * 交易订单编号
     *
     * 关联 {@link TradeOrderDO#getId()}
     */
    private Long orderId;
    /**
     * 订单流水号
     *
     * 冗余 {@link TradeOrderDO#getNo()}
     */
    private String orderNo;
    /**
     * 交易订单项编号
     *
     * 关联 {@link TradeOrderItemDO#getId()}
     */
    private Long orderItemId;
    /**
     * 商品 SPU 编号
     *
     * 关联 ProductSpuDO 的 id 字段
     * 冗余 {@link TradeOrderItemDO#getSpuId()}
     */
    private Long spuId;
    /**
     * 商品 SPU 名称
     *
     * 关联 ProductSkuDO 的 name 字段
     * 冗余 {@link TradeOrderItemDO#getSpuName()}
     */
    private String spuName;
    /**
     * 商品 SKU 编号
     *
     * 关联 ProductSkuDO 的编号
     */
    private Long skuId;
    /**
     * 属性数组,JSON 格式
     *
     * 冗余 {@link TradeOrderItemDO#getProperties()}
     */
    @TableField(typeHandler = Jackson3TypeHandler.class)
    private List<TradeOrderItemDO.Property> properties;
    /**
     * 商品图片
     *
     * 冗余 {@link TradeOrderItemDO#getPicUrl()}
     */
    private String picUrl;
    /**
     * 退货商品数量
     */
    private Integer count;
 
    // ========== 审批相关 ==========
 
    /**
     * 审批时间
     */
    private LocalDateTime auditTime;
    /**
     * 审批人
     *
     * 关联 AdminUserDO 的 id 编号
     */
    private Long auditUserId;
    /**
     * 审批备注
     *
     * 注意,只有审批不通过才会填写
     */
    private String auditReason;
 
    // ========== 退款相关 ==========
    /**
     * 退款金额,单位:分。
     */
    private Integer refundPrice;
    /**
     * 支付退款编号
     *
     * 对接 pay-module-biz 支付服务的退款订单编号,即 PayRefundDO 的 id 编号
     */
    private Long payRefundId;
    /**
     * 退款时间
     */
    private LocalDateTime refundTime;
 
    // ========== 退货相关 ==========
    /**
     * 退货物流公司编号
     *
     * 关联 LogisticsDO 的 id 编号
     */
    private Long logisticsId;
    /**
     * 退货物流单号
     */
    private String logisticsNo;
    /**
     * 退货时间
     */
    private LocalDateTime deliveryTime;
    /**
     * 收货时间
     */
    private LocalDateTime receiveTime;
    /**
     * 收货备注
     *
     * 注意,只有拒绝收货才会填写
     */
    private String receiveReason;
 
}