package com.doumee.config.wx; 
 | 
  
 | 
  
 | 
import com.google.gson.annotations.SerializedName; 
 | 
import com.wechat.pay.java.core.cipher.PrivacyDecryptor; 
 | 
import lombok.Data; 
 | 
  
 | 
import java.util.Objects; 
 | 
  
 | 
/** 
 | 
 * 商户单号查询转账单实体类信息 
 | 
 * 
 | 
 * @author: suhai 
 | 
 * @date: 2025/05/13  11:28 
 | 
 */ 
 | 
@Data 
 | 
public class TransferDetailEntityNew { 
 | 
    /** 商户号 Y 说明:微信支付分配的商户号 */ 
 | 
    @SerializedName("mch_id") 
 | 
    private String mchId; 
 | 
  
 | 
    /** 商户单号 Y 说明:商户系统内部的商家单号,要求此参数只能由数字、大小写字母组成,在商户系统内部唯一 */ 
 | 
    @SerializedName("out_bill_no") 
 | 
    private String outBillNo; 
 | 
  
 | 
    /** 商家转账订单号 Y 说明:商家转账订单的主键,唯一定义此资源的标识 */ 
 | 
    @SerializedName("transfer_bill_no") 
 | 
    private String transferBillNo; 
 | 
  
 | 
    /** 商户appid Y 说明:申请商户号的appid或商户号绑定的appid(企业号corpid即为此appid) */ 
 | 
    @SerializedName("appid") 
 | 
    private String appid; 
 | 
  
 | 
    /** 单据状态 Y 说明:单据状态  */ 
 | 
    @SerializedName("state") 
 | 
    private String state; 
 | 
  
 | 
    /** 转账金额 Y 说明:转账金额单位为“分”。*/ 
 | 
    @SerializedName("transfer_amount") 
 | 
    private Integer transferAmount; 
 | 
  
 | 
    /** 转账备注 Y 说明:转账备注,用户收款时可见该备注信息,UTF8编码,最多允许32个字符。*/ 
 | 
    @SerializedName("transfer_remark") 
 | 
    private String transferRemark; 
 | 
  
 | 
    /** 失败原因 N 说明:订单已失败或者已退资金时,返回失败原因。 */ 
 | 
    @SerializedName("fail_reason") 
 | 
    private String failReason; 
 | 
  
 | 
    /** 收款用户OpenID Y 说明:商户AppID下,某用户的OpenID  */ 
 | 
    @SerializedName("openid") 
 | 
    private String openid; 
 | 
  
 | 
    /** 收款用户姓名 N 说明:收款方真实姓名。需要加密传入,支持标准RSA算法和国密算法,公钥由微信侧提供。 
 | 
     转账金额 >= 2,000元时,该笔明细必须填写 
 | 
     若商户传入收款用户姓名,微信支付会校验收款用户与输入姓名是否一致,并提供电子回单 */ 
 | 
    @SerializedName("user_name") 
 | 
    private String userName; 
 | 
  
 | 
    /** 单据创建时间 N 说明:单据受理成功时返回,按照使用rfc3339所定义的格式,格式为yyyy-MM-DDThh:mm:ss+TIMEZONE */ 
 | 
    @SerializedName("create_time") 
 | 
    private String createTime; 
 | 
  
 | 
    /** 最后一次状态变更时间 N 说明:单据最后更新时间,按照使用rfc3339所定义的格式,格式为yyyy-MM-DDThh:mm:ss+TIMEZONE */ 
 | 
    @SerializedName("update_time") 
 | 
    private String updateTime; 
 | 
  
 | 
    public String getMchId() { 
 | 
        return mchId; 
 | 
    } 
 | 
  
 | 
    public void setMchId(String mchId) { 
 | 
        this.mchId = mchId; 
 | 
    } 
 | 
  
 | 
    public String getOutBillNo() { 
 | 
        return outBillNo; 
 | 
    } 
 | 
  
 | 
    public void setOutBillNo(String outBillNo) { 
 | 
        this.outBillNo = outBillNo; 
 | 
    } 
 | 
  
 | 
    public String getTransferBillNo() { 
 | 
        return transferBillNo; 
 | 
    } 
 | 
  
 | 
    public void setTransferBillNo(String transferBillNo) { 
 | 
        this.transferBillNo = transferBillNo; 
 | 
    } 
 | 
  
 | 
    public String getAppid() { 
 | 
        return appid; 
 | 
    } 
 | 
  
 | 
    public void setAppid(String appid) { 
 | 
        this.appid = appid; 
 | 
    } 
 | 
  
 | 
    public String getState() { 
 | 
        return state; 
 | 
    } 
 | 
  
 | 
    public void setState(String state) { 
 | 
        this.state = state; 
 | 
    } 
 | 
  
 | 
    public Integer getTransferAmount() { 
 | 
        return transferAmount; 
 | 
    } 
 | 
  
 | 
    public void setTransferAmount(Integer transferAmount) { 
 | 
        this.transferAmount = transferAmount; 
 | 
    } 
 | 
  
 | 
    public String getTransferRemark() { 
 | 
        return transferRemark; 
 | 
    } 
 | 
  
 | 
    public void setTransferRemark(String transferRemark) { 
 | 
        this.transferRemark = transferRemark; 
 | 
    } 
 | 
  
 | 
    public String getFailReason() { 
 | 
        return failReason; 
 | 
    } 
 | 
  
 | 
    public void setFailReason(String failReason) { 
 | 
        this.failReason = failReason; 
 | 
    } 
 | 
  
 | 
    public String getOpenid() { 
 | 
        return openid; 
 | 
    } 
 | 
  
 | 
    public void setOpenid(String openid) { 
 | 
        this.openid = openid; 
 | 
    } 
 | 
  
 | 
    public String getUserName() { 
 | 
        return userName; 
 | 
    } 
 | 
  
 | 
    public void setUserName(String userName) { 
 | 
        this.userName = userName; 
 | 
    } 
 | 
  
 | 
    public String getCreateTime() { 
 | 
        return createTime; 
 | 
    } 
 | 
  
 | 
    public void setCreateTime(String createTime) { 
 | 
        this.createTime = createTime; 
 | 
    } 
 | 
  
 | 
    public String getUpdateTime() { 
 | 
        return updateTime; 
 | 
    } 
 | 
  
 | 
    public void setUpdateTime(String updateTime) { 
 | 
        this.updateTime = updateTime; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public boolean equals(Object o) { 
 | 
        if (o == null || getClass() != o.getClass()) return false; 
 | 
        TransferDetailEntityNew that = (TransferDetailEntityNew) o; 
 | 
        return Objects.equals(mchId, that.mchId) && Objects.equals(outBillNo, that.outBillNo) && Objects.equals(transferBillNo, that.transferBillNo) && Objects.equals(appid, that.appid) && Objects.equals(state, that.state) && Objects.equals(transferAmount, that.transferAmount) && Objects.equals(transferRemark, that.transferRemark) && Objects.equals(failReason, that.failReason) && Objects.equals(openid, that.openid) && Objects.equals(userName, that.userName) && Objects.equals(createTime, that.createTime) && Objects.equals(updateTime, that.updateTime); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public int hashCode() { 
 | 
        return Objects.hash(mchId, outBillNo, transferBillNo, appid, state, transferAmount, transferRemark, failReason, openid, userName, createTime, updateTime); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public String toString() { 
 | 
        return "TransferDetailEntityNew{" + 
 | 
                "mchId='" + mchId + '\'' + 
 | 
                ", outBillNo='" + outBillNo + '\'' + 
 | 
                ", transferBillNo='" + transferBillNo + '\'' + 
 | 
                ", appid='" + appid + '\'' + 
 | 
                ", state='" + state + '\'' + 
 | 
                ", transferAmount=" + transferAmount + 
 | 
                ", transferRemark='" + transferRemark + '\'' + 
 | 
                ", failReason='" + failReason + '\'' + 
 | 
                ", openid='" + openid + '\'' + 
 | 
                ", userName='" + userName + '\'' + 
 | 
                ", createTime='" + createTime + '\'' + 
 | 
                ", updateTime='" + updateTime + '\'' + 
 | 
                '}'; 
 | 
    } 
 | 
  
 | 
    public TransferDetailEntityNew cloneWithCipher(PrivacyDecryptor encryptor) { 
 | 
        TransferDetailEntityNew copy = new TransferDetailEntityNew(); 
 | 
        copy.mchId = mchId; 
 | 
        copy.outBillNo = outBillNo; 
 | 
        copy.transferBillNo = transferBillNo; 
 | 
        copy.appid = appid; 
 | 
        copy.state = state; 
 | 
        copy.transferAmount = transferAmount; 
 | 
        copy.transferRemark = transferRemark; 
 | 
        copy.failReason = failReason; 
 | 
        copy.openid = openid; 
 | 
        if (userName != null && !userName.isEmpty()) { 
 | 
            copy.userName = encryptor.decrypt(userName); 
 | 
        } 
 | 
        copy.createTime = createTime; 
 | 
        copy.updateTime = updateTime; 
 | 
        return copy; 
 | 
    } 
 | 
} 
 |