| 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; | 
|     } | 
| } |