View Javadoc
1   package com.foxinmy.weixin4j.payment.mch;
2   
3   import java.io.Serializable;
4   import java.util.Date;
5   import java.util.List;
6   
7   import javax.xml.bind.annotation.XmlAccessType;
8   import javax.xml.bind.annotation.XmlAccessorType;
9   import javax.xml.bind.annotation.XmlElement;
10  import javax.xml.bind.annotation.XmlRootElement;
11  
12  import com.alibaba.fastjson.annotation.JSONField;
13  import com.foxinmy.weixin4j.payment.coupon.RefundCouponInfo;
14  import com.foxinmy.weixin4j.type.mch.CouponType;
15  import com.foxinmy.weixin4j.type.mch.RefundChannel;
16  import com.foxinmy.weixin4j.type.mch.RefundStatus;
17  import com.foxinmy.weixin4j.util.DateUtil;
18  import com.foxinmy.weixin4j.xml.ListsuffixResult;
19  
20  /**
21   * 退款详细
22   * 
23   * @className RefundDetail
24   * @author jinyu(foxinmy@gmail.com)
25   * @date 2016年7月21日
26   * @since JDK 1.6
27   * @deprecated 迁移到子模块weixin4j-pay
28   */
29  @Deprecated
30  @XmlRootElement
31  @XmlAccessorType(XmlAccessType.FIELD)
32  public class RefundDetail implements Serializable {
33  	private static final long serialVersionUID = 1402738803019986864L;
34  
35  	protected RefundDetail() {
36  		// jaxb required
37  	}
38  
39  	/**
40  	 * 商户退款单号
41  	 */
42  	@XmlElement(name = "out_refund_no")
43  	@JSONField(name = "out_refund_no")
44  	private String outRefundNo;
45  	/**
46  	 * 微信退款单号
47  	 */
48  	@XmlElement(name = "refund_id")
49  	@JSONField(name = "refund_id")
50  	private String refundId;
51  	/**
52  	 * 退款渠道:ORIGINAL—原路退款,默认 BALANCE—退回到余额
53  	 */
54  	@XmlElement(name = "refund_channel")
55  	@JSONField(name = "refund_channel")
56  	private String refundChannel;
57  	/**
58  	 * 退款总金额,单位为分,可以做部分退款
59  	 */
60  	@XmlElement(name = "refund_fee")
61  	@JSONField(name = "refund_fee")
62  	private int refundFee;
63  	/**
64  	 * 退款状态
65  	 */
66  	@XmlElement(name = "refund_status")
67  	@JSONField(name = "refund_status")
68  	private String refundStatus;
69  	/**
70  	 * 退款金额:退款金额=申请退款金额-非充值代金券退款金额,退款金额<=申请退款金额
71  	 */
72  	@XmlElement(name = "settlement_refund_fee")
73  	@JSONField(name = "settlement_refund_fee")
74  	private Integer settlementRefundFee;
75  	/**
76  	 * 代金券退款金额:代金券退款金额<=退款金额,退款金额-代金券或立减优惠退款金额为现金,
77  	 */
78  	@XmlElement(name = "coupon_refund_fee")
79  	@JSONField(name = "coupon_refund_fee")
80  	private Integer couponRefundFee;
81  	/**
82  	 * 代金券或立减优惠使用数量
83  	 */
84  	@XmlElement(name = "coupon_refund_count")
85  	@JSONField(name = "coupon_refund_count")
86  	private Integer couponRefundCount;
87  	/**
88  	 * 代金券类型
89  	 * 
90  	 * @see com.foxinmy.weixin4j.type.mch.CouponType
91  	 */
92  	@XmlElement(name = "coupon_type")
93  	@JSONField(name = "coupon_type")
94  	private String couponType;
95  	/**
96  	 * 退款入账账户:取当前退款单的退款入账方 1)退回银行卡: {银行名称}{卡类型}{卡尾号} 2)退回支付用户零钱: 支付用户零钱
97  	 */
98  	@XmlElement(name = "refund_recv_accout")
99  	@JSONField(name = "refund_recv_accout")
100 	private String refundRecvAccout;
101 	/**
102 	 * 退款成功时间,当退款状态为退款成功时有返回
103 	 */
104 	@XmlElement(name = "refund_success_time")
105 	@JSONField(name = "refund_success_time")
106 	private String refundSuccessTime;
107 	/**
108 	 * 退款代金券信息
109 	 * 
110 	 * @see com.foxinmy.weixin4j.payment.coupon.RefundCouponInfo
111 	 */
112 	@ListsuffixResult
113 	private List<RefundCouponInfo> couponList;
114 
115 	public String getOutRefundNo() {
116 		return outRefundNo;
117 	}
118 
119 	public String getRefundId() {
120 		return refundId;
121 	}
122 
123 	public String getRefundChannel() {
124 		return refundChannel;
125 	}
126 
127 	@JSONField(serialize = false)
128 	public RefundChannel getFormatRefundChannel() {
129 		return refundChannel != null ? RefundChannel.valueOf(refundChannel
130 				.toUpperCase()) : null;
131 	}
132 
133 	public int getRefundFee() {
134 		return refundFee;
135 	}
136 
137 	public String getRefundStatus() {
138 		return refundStatus;
139 	}
140 
141 	@JSONField(serialize = false)
142 	public RefundStatus getFormatRefundStatus() {
143 		return refundStatus != null ? RefundStatus.valueOf(refundStatus
144 				.toUpperCase()) : null;
145 	}
146 
147 	public List<RefundCouponInfo> getCouponList() {
148 		return couponList;
149 	}
150 
151 	public void setCouponList(List<RefundCouponInfo> couponList) {
152 		this.couponList = couponList;
153 	}
154 
155 	public Integer getSettlementRefundFee() {
156 		return settlementRefundFee;
157 	}
158 
159 	/**
160 	 * <font color="red">调用接口获取单位为分,get方法转换为元方便使用</font>
161 	 * 
162 	 * @return 元单位
163 	 */
164 	@JSONField(serialize = false)
165 	public double getFormatSettlementRefundFee() {
166 		return settlementRefundFee != null ? settlementRefundFee / 100d : 0d;
167 	}
168 
169 	public Integer getCouponRefundFee() {
170 		return couponRefundFee;
171 	}
172 
173 	/**
174 	 * <font color="red">调用接口获取单位为分,get方法转换为元方便使用</font>
175 	 * 
176 	 * @return 元单位
177 	 */
178 	@JSONField(serialize = false)
179 	public double getFormatCouponRefundFee() {
180 		return couponRefundFee != null ? couponRefundFee / 100d : 0d;
181 	}
182 
183 	public Integer getCouponRefundCount() {
184 		return couponRefundCount;
185 	}
186 
187 	public String getCouponType() {
188 		return couponType;
189 	}
190 
191 	@JSONField(serialize = false)
192 	public CouponType getFormatCouponType() {
193 		return couponType != null ? CouponType
194 				.valueOf(couponType.toUpperCase()) : null;
195 	}
196 
197 	public String getRefundRecvAccout() {
198 		return refundRecvAccout;
199 	}
200 
201 	public String getRefundSuccessTime() {
202 		return refundSuccessTime;
203 	}
204 	
205 	@JSONField(serialize = false)
206 	public Date getFormatRefundSuccessTime() {
207 		return refundSuccessTime != null ? DateUtil.parse2yyyyMMddHHmmss(refundSuccessTime) : null;
208 	}
209 
210 	@Override
211 	public String toString() {
212 		return "RefundDetail [outRefundNo=" + outRefundNo + ", refundId="
213 				+ refundId + ", refundChannel=" + refundChannel
214 				+ ", refundFee=" + refundFee + ", refundStatus=" + refundStatus
215 				+ ", settlementRefundFee=" + settlementRefundFee
216 				+ ", couponRefundFee=" + couponRefundFee
217 				+ ", couponRefundCount=" + couponRefundCount + ", couponType="
218 				+ couponType + ", refundRecvAccout=" + refundRecvAccout
219 				+ ", couponList=" + couponList + "]";
220 	}
221 }