You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
3.6 KiB
80 lines
3.6 KiB
package com.ynxbd.wx.wxfactory.bean.refund;
|
|
|
|
import lombok.Getter;
|
|
import lombok.NoArgsConstructor;
|
|
import lombok.Setter;
|
|
import lombok.ToString;
|
|
import weixin.popular.bean.DynamicField;
|
|
import weixin.popular.bean.paymch.Coupon;
|
|
import weixin.popular.bean.paymch.MchBase;
|
|
|
|
import javax.xml.bind.annotation.XmlAccessType;
|
|
import javax.xml.bind.annotation.XmlAccessorType;
|
|
import javax.xml.bind.annotation.XmlRootElement;
|
|
import javax.xml.bind.annotation.XmlTransient;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
|
|
@Getter
|
|
@Setter
|
|
@NoArgsConstructor
|
|
@ToString
|
|
@XmlRootElement(name = "xml")
|
|
@XmlAccessorType(XmlAccessType.FIELD)
|
|
public class WxRefundQueryRoot extends MchBase implements DynamicField {
|
|
private String device_info;
|
|
private String transaction_id;
|
|
private String out_trade_no;
|
|
private Integer total_fee;
|
|
private Integer settlement_total_fee;
|
|
private String fee_type;
|
|
private Integer cash_fee;
|
|
private Integer refund_count;
|
|
private String refund_account;
|
|
private Integer total_refund_count;
|
|
@XmlTransient
|
|
private List<WxRefundItem> items;
|
|
|
|
public void buildDynamicField(Map<String, String> dataMap) {
|
|
if (dataMap != null) {
|
|
String refund_countStr = dataMap.get("refund_count");
|
|
if (refund_countStr != null) {
|
|
List<WxRefundItem> list = new ArrayList<>();
|
|
|
|
WxRefundItem item;
|
|
List<Coupon> couponList;
|
|
for (int i = 0; i < Integer.parseInt(refund_countStr); ++i) {
|
|
item = new WxRefundItem();
|
|
item.setOut_refund_no(dataMap.get("out_refund_no_" + i));
|
|
item.setRefund_id(dataMap.get("refund_id_" + i));
|
|
item.setRefund_channel(dataMap.get("refund_channel_" + i));
|
|
item.setRefund_fee(dataMap.get("refund_fee_" + i) == null ? null : Integer.parseInt(dataMap.get("refund_fee_" + i)));
|
|
item.setSettlement_refund_fee(dataMap.get("settlement_refund_fee_" + i) == null ? null : Integer.parseInt(dataMap.get("settlement_refund_fee_" + i)));
|
|
item.setCoupon_type(dataMap.get("coupon_type_" + i));
|
|
item.setCoupon_refund_fee(dataMap.get("coupon_refund_fee_" + i) == null ? null : Integer.parseInt(dataMap.get("coupon_refund_fee_" + i)));
|
|
item.setCoupon_refund_count(dataMap.get("coupon_refund_count_" + i) == null ? null : Integer.parseInt(dataMap.get("coupon_refund_count_" + i)));
|
|
item.setCoupon_refund(dataMap.get("coupon_refund_" + i));
|
|
item.setRefund_status(dataMap.get("refund_status_" + i));
|
|
item.setRefund_recv_accout(dataMap.get("refund_recv_accout_" + i));
|
|
// 新增
|
|
item.setRefund_success_time(dataMap.get("refund_success_time_" + i));
|
|
item.setN(i);
|
|
if (item.getCoupon_refund_count() != null) {
|
|
couponList = new ArrayList<>();
|
|
|
|
for (int j = 0; j < item.getCoupon_refund_count(); ++j) {
|
|
Coupon coupon = new Coupon(null, dataMap.get("coupon_refund_id_" + i + "_" + j), dataMap.get("coupon_refund_fee_" + i + "_" + j) == null ? null : Integer.parseInt(dataMap.get("coupon_refund_fee_" + i + "_" + j)), j);
|
|
couponList.add(coupon);
|
|
}
|
|
item.setCoupons(couponList);
|
|
}
|
|
list.add(item);
|
|
}
|
|
this.items = list;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|