package com.hfkj.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * bs_trade_order
 * @author 
 */
/**
 * 
 * 代码由工具生成
 * 
 **/
public class BsTradeOrder implements Serializable {
    /**
     * 主键
     */
    private Long id;

    /**
     * 公司id
     */
    private Long companyId;

    /**
     * 代理商id
     */
    private Long agentId;

    /**
     * 业务员id
     */
    private Long salesmanId;

    /**
     * 业务员名称
     */
    private String salesmanName;

    /**
     * 商户id
     */
    private Long merId;

    /**
     * 商户名称
     */
    private String merName;

    /**
     * 商户简称
     */
    private String merAbbreviate;

    /**
     * 商户号
     */
    private String merNo;

    /**
     * 门店id
     */
    private Long storeId;

    /**
     * 门店名称
     */
    private String storeName;

    /**
     * 设备id
     */
    private Long deviceId;

    /**
     * 设备编号SN
     */
    private String deviceSn;

    /**
     * 二维码id
     */
    private Long qrCodeId;

    /**
     * 二维序列号
     */
    private String qrCodeSn;

    /**
     * 平台类型  1：拉卡拉
     */
    private Integer platformType;

    /**
     * 平台商户号
     */
    private String platformMerNo;

    /**
     * 平台流水号
     */
    private String platformTradeNo;

    /**
     * 平台对账单流水号
     */
    private String platformLogNo;

    /**
     * 平台appid
     */
    private String platformAppid;

    /**
     * 平台费率
     */
    private BigDecimal platformRate;

    /**
     * 平台收取佣金
     */
    private BigDecimal platformCommission;

    /**
     * 支付平台appid
     */
    private String payAppid;

    /**
     * 支付用户id
     */
    private String payUserId;

    /**
     * 支付模式： 
微信：WECHAT  
支付宝：ALIPAY   
银联：UQRCODEPAY   
【建行】龙支付：DRAGON
     */
    private String payMode;

    /**
     * 商户交易流水
     */
    private String outTradeNo;

    /**
     * 交易金额
     */
    private BigDecimal tradeAmount;

    /**
     * 是否满足门店优惠条件
     */
    private Boolean storeDiscountSatisfy;

    /**
     * 门店优惠id
     */
    private Long storeDiscountId;

    /**
     * 门店优惠名称
     */
    private String storeDiscountName;

    /**
     * 门店优惠类型
     */
    private Integer storeDiscountType;

    /**
     * 门店优惠条件(满减价格)
     */
    private BigDecimal storeDiscountCondition;

    /**
     * 门店优惠金额
     */
    private BigDecimal storeDiscountPrice;

    /**
     * 门店优惠成本金额
     */
    private BigDecimal storeDiscountFinalCostPrice;

    /**
     * 门店实际优惠金额
     */
    private BigDecimal storeDiscountActualPrice;

    /**
     * 门店活动利润金额
     */
    private BigDecimal storeDiscountProfitPrice;

    /**
     * 客户id
     */
    private Integer userId;

    /**
     * 客户手机号
     */
    private String userPhone;

    /**
     * 客户优惠券id
     */
    private Long userDiscountId;

    /**
     * 客户优惠券名称
     */
    private String userDiscountName;

    /**
     * 客户优惠券类型
     */
    private Integer userDiscountType;

    /**
     * 客户优惠券金额
     */
    private BigDecimal userDiscountPrice;

    /**
     * 客户优惠券实际优惠金额
     */
    private BigDecimal userDiscountActualPrice;

    /**
     * 交易实际金额
     */
    private BigDecimal tradeActualAmount;

    /**
     * 商家交易入账金额
     */
    private BigDecimal incomeAmount;

    /**
     * 账户端交易流水号
     */
    private String accTradeNo;

    /**
     * 账户端应结订单金额
     */
    private BigDecimal accSettleAmount;

    /**
     * 账户端商户优惠金额，单位分
     */
    private BigDecimal accMdiscountAmount;

    /**
     * 账户端账户端优惠金额，单位分
     */
    private BigDecimal accDiscountAmount;

    /**
     * 交易手续费
     */
    private BigDecimal shdFeeAmt;

    /**
     * 费率
     */
    private BigDecimal feeRate;

    /**
     * 结算金额
     */
    private BigDecimal settleAmount;

    /**
     * 结算日期
     */
    private Date settleDate;

    /**
     * 账户端付款码
     */
    private String accPaymentCode;

    /**
     * 银行卡  00：借记 01：贷记 02：微信零钱 03：支付宝花呗 04：支付宝其他 05：数字货币 06：拉卡拉支付账户 99：未知
     */
    private String cardType;

    /**
     * 状态  1：待支付  2：支付中  3：支付成功 4 ：支付失败  5：已取消  6：已退款
     */
    private Integer status;

    /**
     * 是否分账  0：否  1：是
     */
    private Boolean profitSharingStatus;

    /**
     * 支付时间
     */
    private Date payTime;

    /**
     * 预下单有效期（分）
     */
    private Integer timeoutExpress;

    /**
     * 标题
     */
    private String subject;

    /**
     * 支付通知地址
     */
    private String payNotifyUrl;

    /**
     * 附加域
     */
    private String attach;

    /**
     * 特殊字段
     */
    private String specialField;

    /**
     * 退款类型  1：全额退款  2：部分退款
     */
    private Integer refundType;

    /**
     * 退款金额
     */
    private BigDecimal refundPrice;

    /**
     * 创建方式   1：扫一扫   2：被扫    3：API
     */
    private Integer createType;

    /**
     * 接入方式    JSAPI，NATIVE
     */
    private String transType;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 取消时间
     */
    private Date cancelTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 请求ip
     */
    private String requestIp;

    private String ext1;

    private String ext2;

    private String ext3;

    private static final long serialVersionUID = 1L;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Long companyId) {
        this.companyId = companyId;
    }

    public Long getAgentId() {
        return agentId;
    }

    public void setAgentId(Long agentId) {
        this.agentId = agentId;
    }

    public Long getSalesmanId() {
        return salesmanId;
    }

    public void setSalesmanId(Long salesmanId) {
        this.salesmanId = salesmanId;
    }

    public String getSalesmanName() {
        return salesmanName;
    }

    public void setSalesmanName(String salesmanName) {
        this.salesmanName = salesmanName;
    }

    public Long getMerId() {
        return merId;
    }

    public void setMerId(Long merId) {
        this.merId = merId;
    }

    public String getMerName() {
        return merName;
    }

    public void setMerName(String merName) {
        this.merName = merName;
    }

    public String getMerAbbreviate() {
        return merAbbreviate;
    }

    public void setMerAbbreviate(String merAbbreviate) {
        this.merAbbreviate = merAbbreviate;
    }

    public String getMerNo() {
        return merNo;
    }

    public void setMerNo(String merNo) {
        this.merNo = merNo;
    }

    public Long getStoreId() {
        return storeId;
    }

    public void setStoreId(Long storeId) {
        this.storeId = storeId;
    }

    public String getStoreName() {
        return storeName;
    }

    public void setStoreName(String storeName) {
        this.storeName = storeName;
    }

    public Long getDeviceId() {
        return deviceId;
    }

    public void setDeviceId(Long deviceId) {
        this.deviceId = deviceId;
    }

    public String getDeviceSn() {
        return deviceSn;
    }

    public void setDeviceSn(String deviceSn) {
        this.deviceSn = deviceSn;
    }

    public Long getQrCodeId() {
        return qrCodeId;
    }

    public void setQrCodeId(Long qrCodeId) {
        this.qrCodeId = qrCodeId;
    }

    public String getQrCodeSn() {
        return qrCodeSn;
    }

    public void setQrCodeSn(String qrCodeSn) {
        this.qrCodeSn = qrCodeSn;
    }

    public Integer getPlatformType() {
        return platformType;
    }

    public void setPlatformType(Integer platformType) {
        this.platformType = platformType;
    }

    public String getPlatformMerNo() {
        return platformMerNo;
    }

    public void setPlatformMerNo(String platformMerNo) {
        this.platformMerNo = platformMerNo;
    }

    public String getPlatformTradeNo() {
        return platformTradeNo;
    }

    public void setPlatformTradeNo(String platformTradeNo) {
        this.platformTradeNo = platformTradeNo;
    }

    public String getPlatformLogNo() {
        return platformLogNo;
    }

    public void setPlatformLogNo(String platformLogNo) {
        this.platformLogNo = platformLogNo;
    }

    public String getPlatformAppid() {
        return platformAppid;
    }

    public void setPlatformAppid(String platformAppid) {
        this.platformAppid = platformAppid;
    }

    public BigDecimal getPlatformRate() {
        return platformRate;
    }

    public void setPlatformRate(BigDecimal platformRate) {
        this.platformRate = platformRate;
    }

    public BigDecimal getPlatformCommission() {
        return platformCommission;
    }

    public void setPlatformCommission(BigDecimal platformCommission) {
        this.platformCommission = platformCommission;
    }

    public String getPayAppid() {
        return payAppid;
    }

    public void setPayAppid(String payAppid) {
        this.payAppid = payAppid;
    }

    public String getPayUserId() {
        return payUserId;
    }

    public void setPayUserId(String payUserId) {
        this.payUserId = payUserId;
    }

    public String getPayMode() {
        return payMode;
    }

    public void setPayMode(String payMode) {
        this.payMode = payMode;
    }

    public String getOutTradeNo() {
        return outTradeNo;
    }

    public void setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }

    public BigDecimal getTradeAmount() {
        return tradeAmount;
    }

    public void setTradeAmount(BigDecimal tradeAmount) {
        this.tradeAmount = tradeAmount;
    }

    public Boolean getStoreDiscountSatisfy() {
        return storeDiscountSatisfy;
    }

    public void setStoreDiscountSatisfy(Boolean storeDiscountSatisfy) {
        this.storeDiscountSatisfy = storeDiscountSatisfy;
    }

    public Long getStoreDiscountId() {
        return storeDiscountId;
    }

    public void setStoreDiscountId(Long storeDiscountId) {
        this.storeDiscountId = storeDiscountId;
    }

    public String getStoreDiscountName() {
        return storeDiscountName;
    }

    public void setStoreDiscountName(String storeDiscountName) {
        this.storeDiscountName = storeDiscountName;
    }

    public Integer getStoreDiscountType() {
        return storeDiscountType;
    }

    public void setStoreDiscountType(Integer storeDiscountType) {
        this.storeDiscountType = storeDiscountType;
    }

    public BigDecimal getStoreDiscountCondition() {
        return storeDiscountCondition;
    }

    public void setStoreDiscountCondition(BigDecimal storeDiscountCondition) {
        this.storeDiscountCondition = storeDiscountCondition;
    }

    public BigDecimal getStoreDiscountPrice() {
        return storeDiscountPrice;
    }

    public void setStoreDiscountPrice(BigDecimal storeDiscountPrice) {
        this.storeDiscountPrice = storeDiscountPrice;
    }

    public BigDecimal getStoreDiscountFinalCostPrice() {
        return storeDiscountFinalCostPrice;
    }

    public void setStoreDiscountFinalCostPrice(BigDecimal storeDiscountFinalCostPrice) {
        this.storeDiscountFinalCostPrice = storeDiscountFinalCostPrice;
    }

    public BigDecimal getStoreDiscountActualPrice() {
        return storeDiscountActualPrice;
    }

    public void setStoreDiscountActualPrice(BigDecimal storeDiscountActualPrice) {
        this.storeDiscountActualPrice = storeDiscountActualPrice;
    }

    public BigDecimal getStoreDiscountProfitPrice() {
        return storeDiscountProfitPrice;
    }

    public void setStoreDiscountProfitPrice(BigDecimal storeDiscountProfitPrice) {
        this.storeDiscountProfitPrice = storeDiscountProfitPrice;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getUserPhone() {
        return userPhone;
    }

    public void setUserPhone(String userPhone) {
        this.userPhone = userPhone;
    }

    public Long getUserDiscountId() {
        return userDiscountId;
    }

    public void setUserDiscountId(Long userDiscountId) {
        this.userDiscountId = userDiscountId;
    }

    public String getUserDiscountName() {
        return userDiscountName;
    }

    public void setUserDiscountName(String userDiscountName) {
        this.userDiscountName = userDiscountName;
    }

    public Integer getUserDiscountType() {
        return userDiscountType;
    }

    public void setUserDiscountType(Integer userDiscountType) {
        this.userDiscountType = userDiscountType;
    }

    public BigDecimal getUserDiscountPrice() {
        return userDiscountPrice;
    }

    public void setUserDiscountPrice(BigDecimal userDiscountPrice) {
        this.userDiscountPrice = userDiscountPrice;
    }

    public BigDecimal getUserDiscountActualPrice() {
        return userDiscountActualPrice;
    }

    public void setUserDiscountActualPrice(BigDecimal userDiscountActualPrice) {
        this.userDiscountActualPrice = userDiscountActualPrice;
    }

    public BigDecimal getTradeActualAmount() {
        return tradeActualAmount;
    }

    public void setTradeActualAmount(BigDecimal tradeActualAmount) {
        this.tradeActualAmount = tradeActualAmount;
    }

    public BigDecimal getIncomeAmount() {
        return incomeAmount;
    }

    public void setIncomeAmount(BigDecimal incomeAmount) {
        this.incomeAmount = incomeAmount;
    }

    public String getAccTradeNo() {
        return accTradeNo;
    }

    public void setAccTradeNo(String accTradeNo) {
        this.accTradeNo = accTradeNo;
    }

    public BigDecimal getAccSettleAmount() {
        return accSettleAmount;
    }

    public void setAccSettleAmount(BigDecimal accSettleAmount) {
        this.accSettleAmount = accSettleAmount;
    }

    public BigDecimal getAccMdiscountAmount() {
        return accMdiscountAmount;
    }

    public void setAccMdiscountAmount(BigDecimal accMdiscountAmount) {
        this.accMdiscountAmount = accMdiscountAmount;
    }

    public BigDecimal getAccDiscountAmount() {
        return accDiscountAmount;
    }

    public void setAccDiscountAmount(BigDecimal accDiscountAmount) {
        this.accDiscountAmount = accDiscountAmount;
    }

    public BigDecimal getShdFeeAmt() {
        return shdFeeAmt;
    }

    public void setShdFeeAmt(BigDecimal shdFeeAmt) {
        this.shdFeeAmt = shdFeeAmt;
    }

    public BigDecimal getFeeRate() {
        return feeRate;
    }

    public void setFeeRate(BigDecimal feeRate) {
        this.feeRate = feeRate;
    }

    public BigDecimal getSettleAmount() {
        return settleAmount;
    }

    public void setSettleAmount(BigDecimal settleAmount) {
        this.settleAmount = settleAmount;
    }

    public Date getSettleDate() {
        return settleDate;
    }

    public void setSettleDate(Date settleDate) {
        this.settleDate = settleDate;
    }

    public String getAccPaymentCode() {
        return accPaymentCode;
    }

    public void setAccPaymentCode(String accPaymentCode) {
        this.accPaymentCode = accPaymentCode;
    }

    public String getCardType() {
        return cardType;
    }

    public void setCardType(String cardType) {
        this.cardType = cardType;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Boolean getProfitSharingStatus() {
        return profitSharingStatus;
    }

    public void setProfitSharingStatus(Boolean profitSharingStatus) {
        this.profitSharingStatus = profitSharingStatus;
    }

    public Date getPayTime() {
        return payTime;
    }

    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }

    public Integer getTimeoutExpress() {
        return timeoutExpress;
    }

    public void setTimeoutExpress(Integer timeoutExpress) {
        this.timeoutExpress = timeoutExpress;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public String getPayNotifyUrl() {
        return payNotifyUrl;
    }

    public void setPayNotifyUrl(String payNotifyUrl) {
        this.payNotifyUrl = payNotifyUrl;
    }

    public String getAttach() {
        return attach;
    }

    public void setAttach(String attach) {
        this.attach = attach;
    }

    public String getSpecialField() {
        return specialField;
    }

    public void setSpecialField(String specialField) {
        this.specialField = specialField;
    }

    public Integer getRefundType() {
        return refundType;
    }

    public void setRefundType(Integer refundType) {
        this.refundType = refundType;
    }

    public BigDecimal getRefundPrice() {
        return refundPrice;
    }

    public void setRefundPrice(BigDecimal refundPrice) {
        this.refundPrice = refundPrice;
    }

    public Integer getCreateType() {
        return createType;
    }

    public void setCreateType(Integer createType) {
        this.createType = createType;
    }

    public String getTransType() {
        return transType;
    }

    public void setTransType(String transType) {
        this.transType = transType;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getCancelTime() {
        return cancelTime;
    }

    public void setCancelTime(Date cancelTime) {
        this.cancelTime = cancelTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getRequestIp() {
        return requestIp;
    }

    public void setRequestIp(String requestIp) {
        this.requestIp = requestIp;
    }

    public String getExt1() {
        return ext1;
    }

    public void setExt1(String ext1) {
        this.ext1 = ext1;
    }

    public String getExt2() {
        return ext2;
    }

    public void setExt2(String ext2) {
        this.ext2 = ext2;
    }

    public String getExt3() {
        return ext3;
    }

    public void setExt3(String ext3) {
        this.ext3 = ext3;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        BsTradeOrder other = (BsTradeOrder) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getCompanyId() == null ? other.getCompanyId() == null : this.getCompanyId().equals(other.getCompanyId()))
            && (this.getAgentId() == null ? other.getAgentId() == null : this.getAgentId().equals(other.getAgentId()))
            && (this.getSalesmanId() == null ? other.getSalesmanId() == null : this.getSalesmanId().equals(other.getSalesmanId()))
            && (this.getSalesmanName() == null ? other.getSalesmanName() == null : this.getSalesmanName().equals(other.getSalesmanName()))
            && (this.getMerId() == null ? other.getMerId() == null : this.getMerId().equals(other.getMerId()))
            && (this.getMerName() == null ? other.getMerName() == null : this.getMerName().equals(other.getMerName()))
            && (this.getMerAbbreviate() == null ? other.getMerAbbreviate() == null : this.getMerAbbreviate().equals(other.getMerAbbreviate()))
            && (this.getMerNo() == null ? other.getMerNo() == null : this.getMerNo().equals(other.getMerNo()))
            && (this.getStoreId() == null ? other.getStoreId() == null : this.getStoreId().equals(other.getStoreId()))
            && (this.getStoreName() == null ? other.getStoreName() == null : this.getStoreName().equals(other.getStoreName()))
            && (this.getDeviceId() == null ? other.getDeviceId() == null : this.getDeviceId().equals(other.getDeviceId()))
            && (this.getDeviceSn() == null ? other.getDeviceSn() == null : this.getDeviceSn().equals(other.getDeviceSn()))
            && (this.getQrCodeId() == null ? other.getQrCodeId() == null : this.getQrCodeId().equals(other.getQrCodeId()))
            && (this.getQrCodeSn() == null ? other.getQrCodeSn() == null : this.getQrCodeSn().equals(other.getQrCodeSn()))
            && (this.getPlatformType() == null ? other.getPlatformType() == null : this.getPlatformType().equals(other.getPlatformType()))
            && (this.getPlatformMerNo() == null ? other.getPlatformMerNo() == null : this.getPlatformMerNo().equals(other.getPlatformMerNo()))
            && (this.getPlatformTradeNo() == null ? other.getPlatformTradeNo() == null : this.getPlatformTradeNo().equals(other.getPlatformTradeNo()))
            && (this.getPlatformLogNo() == null ? other.getPlatformLogNo() == null : this.getPlatformLogNo().equals(other.getPlatformLogNo()))
            && (this.getPlatformAppid() == null ? other.getPlatformAppid() == null : this.getPlatformAppid().equals(other.getPlatformAppid()))
            && (this.getPlatformRate() == null ? other.getPlatformRate() == null : this.getPlatformRate().equals(other.getPlatformRate()))
            && (this.getPlatformCommission() == null ? other.getPlatformCommission() == null : this.getPlatformCommission().equals(other.getPlatformCommission()))
            && (this.getPayAppid() == null ? other.getPayAppid() == null : this.getPayAppid().equals(other.getPayAppid()))
            && (this.getPayUserId() == null ? other.getPayUserId() == null : this.getPayUserId().equals(other.getPayUserId()))
            && (this.getPayMode() == null ? other.getPayMode() == null : this.getPayMode().equals(other.getPayMode()))
            && (this.getOutTradeNo() == null ? other.getOutTradeNo() == null : this.getOutTradeNo().equals(other.getOutTradeNo()))
            && (this.getTradeAmount() == null ? other.getTradeAmount() == null : this.getTradeAmount().equals(other.getTradeAmount()))
            && (this.getStoreDiscountSatisfy() == null ? other.getStoreDiscountSatisfy() == null : this.getStoreDiscountSatisfy().equals(other.getStoreDiscountSatisfy()))
            && (this.getStoreDiscountId() == null ? other.getStoreDiscountId() == null : this.getStoreDiscountId().equals(other.getStoreDiscountId()))
            && (this.getStoreDiscountName() == null ? other.getStoreDiscountName() == null : this.getStoreDiscountName().equals(other.getStoreDiscountName()))
            && (this.getStoreDiscountType() == null ? other.getStoreDiscountType() == null : this.getStoreDiscountType().equals(other.getStoreDiscountType()))
            && (this.getStoreDiscountCondition() == null ? other.getStoreDiscountCondition() == null : this.getStoreDiscountCondition().equals(other.getStoreDiscountCondition()))
            && (this.getStoreDiscountPrice() == null ? other.getStoreDiscountPrice() == null : this.getStoreDiscountPrice().equals(other.getStoreDiscountPrice()))
            && (this.getStoreDiscountFinalCostPrice() == null ? other.getStoreDiscountFinalCostPrice() == null : this.getStoreDiscountFinalCostPrice().equals(other.getStoreDiscountFinalCostPrice()))
            && (this.getStoreDiscountActualPrice() == null ? other.getStoreDiscountActualPrice() == null : this.getStoreDiscountActualPrice().equals(other.getStoreDiscountActualPrice()))
            && (this.getStoreDiscountProfitPrice() == null ? other.getStoreDiscountProfitPrice() == null : this.getStoreDiscountProfitPrice().equals(other.getStoreDiscountProfitPrice()))
            && (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
            && (this.getUserPhone() == null ? other.getUserPhone() == null : this.getUserPhone().equals(other.getUserPhone()))
            && (this.getUserDiscountId() == null ? other.getUserDiscountId() == null : this.getUserDiscountId().equals(other.getUserDiscountId()))
            && (this.getUserDiscountName() == null ? other.getUserDiscountName() == null : this.getUserDiscountName().equals(other.getUserDiscountName()))
            && (this.getUserDiscountType() == null ? other.getUserDiscountType() == null : this.getUserDiscountType().equals(other.getUserDiscountType()))
            && (this.getUserDiscountPrice() == null ? other.getUserDiscountPrice() == null : this.getUserDiscountPrice().equals(other.getUserDiscountPrice()))
            && (this.getUserDiscountActualPrice() == null ? other.getUserDiscountActualPrice() == null : this.getUserDiscountActualPrice().equals(other.getUserDiscountActualPrice()))
            && (this.getTradeActualAmount() == null ? other.getTradeActualAmount() == null : this.getTradeActualAmount().equals(other.getTradeActualAmount()))
            && (this.getIncomeAmount() == null ? other.getIncomeAmount() == null : this.getIncomeAmount().equals(other.getIncomeAmount()))
            && (this.getAccTradeNo() == null ? other.getAccTradeNo() == null : this.getAccTradeNo().equals(other.getAccTradeNo()))
            && (this.getAccSettleAmount() == null ? other.getAccSettleAmount() == null : this.getAccSettleAmount().equals(other.getAccSettleAmount()))
            && (this.getAccMdiscountAmount() == null ? other.getAccMdiscountAmount() == null : this.getAccMdiscountAmount().equals(other.getAccMdiscountAmount()))
            && (this.getAccDiscountAmount() == null ? other.getAccDiscountAmount() == null : this.getAccDiscountAmount().equals(other.getAccDiscountAmount()))
            && (this.getShdFeeAmt() == null ? other.getShdFeeAmt() == null : this.getShdFeeAmt().equals(other.getShdFeeAmt()))
            && (this.getFeeRate() == null ? other.getFeeRate() == null : this.getFeeRate().equals(other.getFeeRate()))
            && (this.getSettleAmount() == null ? other.getSettleAmount() == null : this.getSettleAmount().equals(other.getSettleAmount()))
            && (this.getSettleDate() == null ? other.getSettleDate() == null : this.getSettleDate().equals(other.getSettleDate()))
            && (this.getAccPaymentCode() == null ? other.getAccPaymentCode() == null : this.getAccPaymentCode().equals(other.getAccPaymentCode()))
            && (this.getCardType() == null ? other.getCardType() == null : this.getCardType().equals(other.getCardType()))
            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
            && (this.getProfitSharingStatus() == null ? other.getProfitSharingStatus() == null : this.getProfitSharingStatus().equals(other.getProfitSharingStatus()))
            && (this.getPayTime() == null ? other.getPayTime() == null : this.getPayTime().equals(other.getPayTime()))
            && (this.getTimeoutExpress() == null ? other.getTimeoutExpress() == null : this.getTimeoutExpress().equals(other.getTimeoutExpress()))
            && (this.getSubject() == null ? other.getSubject() == null : this.getSubject().equals(other.getSubject()))
            && (this.getPayNotifyUrl() == null ? other.getPayNotifyUrl() == null : this.getPayNotifyUrl().equals(other.getPayNotifyUrl()))
            && (this.getAttach() == null ? other.getAttach() == null : this.getAttach().equals(other.getAttach()))
            && (this.getSpecialField() == null ? other.getSpecialField() == null : this.getSpecialField().equals(other.getSpecialField()))
            && (this.getRefundType() == null ? other.getRefundType() == null : this.getRefundType().equals(other.getRefundType()))
            && (this.getRefundPrice() == null ? other.getRefundPrice() == null : this.getRefundPrice().equals(other.getRefundPrice()))
            && (this.getCreateType() == null ? other.getCreateType() == null : this.getCreateType().equals(other.getCreateType()))
            && (this.getTransType() == null ? other.getTransType() == null : this.getTransType().equals(other.getTransType()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getCancelTime() == null ? other.getCancelTime() == null : this.getCancelTime().equals(other.getCancelTime()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getRequestIp() == null ? other.getRequestIp() == null : this.getRequestIp().equals(other.getRequestIp()))
            && (this.getExt1() == null ? other.getExt1() == null : this.getExt1().equals(other.getExt1()))
            && (this.getExt2() == null ? other.getExt2() == null : this.getExt2().equals(other.getExt2()))
            && (this.getExt3() == null ? other.getExt3() == null : this.getExt3().equals(other.getExt3()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getCompanyId() == null) ? 0 : getCompanyId().hashCode());
        result = prime * result + ((getAgentId() == null) ? 0 : getAgentId().hashCode());
        result = prime * result + ((getSalesmanId() == null) ? 0 : getSalesmanId().hashCode());
        result = prime * result + ((getSalesmanName() == null) ? 0 : getSalesmanName().hashCode());
        result = prime * result + ((getMerId() == null) ? 0 : getMerId().hashCode());
        result = prime * result + ((getMerName() == null) ? 0 : getMerName().hashCode());
        result = prime * result + ((getMerAbbreviate() == null) ? 0 : getMerAbbreviate().hashCode());
        result = prime * result + ((getMerNo() == null) ? 0 : getMerNo().hashCode());
        result = prime * result + ((getStoreId() == null) ? 0 : getStoreId().hashCode());
        result = prime * result + ((getStoreName() == null) ? 0 : getStoreName().hashCode());
        result = prime * result + ((getDeviceId() == null) ? 0 : getDeviceId().hashCode());
        result = prime * result + ((getDeviceSn() == null) ? 0 : getDeviceSn().hashCode());
        result = prime * result + ((getQrCodeId() == null) ? 0 : getQrCodeId().hashCode());
        result = prime * result + ((getQrCodeSn() == null) ? 0 : getQrCodeSn().hashCode());
        result = prime * result + ((getPlatformType() == null) ? 0 : getPlatformType().hashCode());
        result = prime * result + ((getPlatformMerNo() == null) ? 0 : getPlatformMerNo().hashCode());
        result = prime * result + ((getPlatformTradeNo() == null) ? 0 : getPlatformTradeNo().hashCode());
        result = prime * result + ((getPlatformLogNo() == null) ? 0 : getPlatformLogNo().hashCode());
        result = prime * result + ((getPlatformAppid() == null) ? 0 : getPlatformAppid().hashCode());
        result = prime * result + ((getPlatformRate() == null) ? 0 : getPlatformRate().hashCode());
        result = prime * result + ((getPlatformCommission() == null) ? 0 : getPlatformCommission().hashCode());
        result = prime * result + ((getPayAppid() == null) ? 0 : getPayAppid().hashCode());
        result = prime * result + ((getPayUserId() == null) ? 0 : getPayUserId().hashCode());
        result = prime * result + ((getPayMode() == null) ? 0 : getPayMode().hashCode());
        result = prime * result + ((getOutTradeNo() == null) ? 0 : getOutTradeNo().hashCode());
        result = prime * result + ((getTradeAmount() == null) ? 0 : getTradeAmount().hashCode());
        result = prime * result + ((getStoreDiscountSatisfy() == null) ? 0 : getStoreDiscountSatisfy().hashCode());
        result = prime * result + ((getStoreDiscountId() == null) ? 0 : getStoreDiscountId().hashCode());
        result = prime * result + ((getStoreDiscountName() == null) ? 0 : getStoreDiscountName().hashCode());
        result = prime * result + ((getStoreDiscountType() == null) ? 0 : getStoreDiscountType().hashCode());
        result = prime * result + ((getStoreDiscountCondition() == null) ? 0 : getStoreDiscountCondition().hashCode());
        result = prime * result + ((getStoreDiscountPrice() == null) ? 0 : getStoreDiscountPrice().hashCode());
        result = prime * result + ((getStoreDiscountFinalCostPrice() == null) ? 0 : getStoreDiscountFinalCostPrice().hashCode());
        result = prime * result + ((getStoreDiscountActualPrice() == null) ? 0 : getStoreDiscountActualPrice().hashCode());
        result = prime * result + ((getStoreDiscountProfitPrice() == null) ? 0 : getStoreDiscountProfitPrice().hashCode());
        result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
        result = prime * result + ((getUserPhone() == null) ? 0 : getUserPhone().hashCode());
        result = prime * result + ((getUserDiscountId() == null) ? 0 : getUserDiscountId().hashCode());
        result = prime * result + ((getUserDiscountName() == null) ? 0 : getUserDiscountName().hashCode());
        result = prime * result + ((getUserDiscountType() == null) ? 0 : getUserDiscountType().hashCode());
        result = prime * result + ((getUserDiscountPrice() == null) ? 0 : getUserDiscountPrice().hashCode());
        result = prime * result + ((getUserDiscountActualPrice() == null) ? 0 : getUserDiscountActualPrice().hashCode());
        result = prime * result + ((getTradeActualAmount() == null) ? 0 : getTradeActualAmount().hashCode());
        result = prime * result + ((getIncomeAmount() == null) ? 0 : getIncomeAmount().hashCode());
        result = prime * result + ((getAccTradeNo() == null) ? 0 : getAccTradeNo().hashCode());
        result = prime * result + ((getAccSettleAmount() == null) ? 0 : getAccSettleAmount().hashCode());
        result = prime * result + ((getAccMdiscountAmount() == null) ? 0 : getAccMdiscountAmount().hashCode());
        result = prime * result + ((getAccDiscountAmount() == null) ? 0 : getAccDiscountAmount().hashCode());
        result = prime * result + ((getShdFeeAmt() == null) ? 0 : getShdFeeAmt().hashCode());
        result = prime * result + ((getFeeRate() == null) ? 0 : getFeeRate().hashCode());
        result = prime * result + ((getSettleAmount() == null) ? 0 : getSettleAmount().hashCode());
        result = prime * result + ((getSettleDate() == null) ? 0 : getSettleDate().hashCode());
        result = prime * result + ((getAccPaymentCode() == null) ? 0 : getAccPaymentCode().hashCode());
        result = prime * result + ((getCardType() == null) ? 0 : getCardType().hashCode());
        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
        result = prime * result + ((getProfitSharingStatus() == null) ? 0 : getProfitSharingStatus().hashCode());
        result = prime * result + ((getPayTime() == null) ? 0 : getPayTime().hashCode());
        result = prime * result + ((getTimeoutExpress() == null) ? 0 : getTimeoutExpress().hashCode());
        result = prime * result + ((getSubject() == null) ? 0 : getSubject().hashCode());
        result = prime * result + ((getPayNotifyUrl() == null) ? 0 : getPayNotifyUrl().hashCode());
        result = prime * result + ((getAttach() == null) ? 0 : getAttach().hashCode());
        result = prime * result + ((getSpecialField() == null) ? 0 : getSpecialField().hashCode());
        result = prime * result + ((getRefundType() == null) ? 0 : getRefundType().hashCode());
        result = prime * result + ((getRefundPrice() == null) ? 0 : getRefundPrice().hashCode());
        result = prime * result + ((getCreateType() == null) ? 0 : getCreateType().hashCode());
        result = prime * result + ((getTransType() == null) ? 0 : getTransType().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getCancelTime() == null) ? 0 : getCancelTime().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getRequestIp() == null) ? 0 : getRequestIp().hashCode());
        result = prime * result + ((getExt1() == null) ? 0 : getExt1().hashCode());
        result = prime * result + ((getExt2() == null) ? 0 : getExt2().hashCode());
        result = prime * result + ((getExt3() == null) ? 0 : getExt3().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", companyId=").append(companyId);
        sb.append(", agentId=").append(agentId);
        sb.append(", salesmanId=").append(salesmanId);
        sb.append(", salesmanName=").append(salesmanName);
        sb.append(", merId=").append(merId);
        sb.append(", merName=").append(merName);
        sb.append(", merAbbreviate=").append(merAbbreviate);
        sb.append(", merNo=").append(merNo);
        sb.append(", storeId=").append(storeId);
        sb.append(", storeName=").append(storeName);
        sb.append(", deviceId=").append(deviceId);
        sb.append(", deviceSn=").append(deviceSn);
        sb.append(", qrCodeId=").append(qrCodeId);
        sb.append(", qrCodeSn=").append(qrCodeSn);
        sb.append(", platformType=").append(platformType);
        sb.append(", platformMerNo=").append(platformMerNo);
        sb.append(", platformTradeNo=").append(platformTradeNo);
        sb.append(", platformLogNo=").append(platformLogNo);
        sb.append(", platformAppid=").append(platformAppid);
        sb.append(", platformRate=").append(platformRate);
        sb.append(", platformCommission=").append(platformCommission);
        sb.append(", payAppid=").append(payAppid);
        sb.append(", payUserId=").append(payUserId);
        sb.append(", payMode=").append(payMode);
        sb.append(", outTradeNo=").append(outTradeNo);
        sb.append(", tradeAmount=").append(tradeAmount);
        sb.append(", storeDiscountSatisfy=").append(storeDiscountSatisfy);
        sb.append(", storeDiscountId=").append(storeDiscountId);
        sb.append(", storeDiscountName=").append(storeDiscountName);
        sb.append(", storeDiscountType=").append(storeDiscountType);
        sb.append(", storeDiscountCondition=").append(storeDiscountCondition);
        sb.append(", storeDiscountPrice=").append(storeDiscountPrice);
        sb.append(", storeDiscountFinalCostPrice=").append(storeDiscountFinalCostPrice);
        sb.append(", storeDiscountActualPrice=").append(storeDiscountActualPrice);
        sb.append(", storeDiscountProfitPrice=").append(storeDiscountProfitPrice);
        sb.append(", userId=").append(userId);
        sb.append(", userPhone=").append(userPhone);
        sb.append(", userDiscountId=").append(userDiscountId);
        sb.append(", userDiscountName=").append(userDiscountName);
        sb.append(", userDiscountType=").append(userDiscountType);
        sb.append(", userDiscountPrice=").append(userDiscountPrice);
        sb.append(", userDiscountActualPrice=").append(userDiscountActualPrice);
        sb.append(", tradeActualAmount=").append(tradeActualAmount);
        sb.append(", incomeAmount=").append(incomeAmount);
        sb.append(", accTradeNo=").append(accTradeNo);
        sb.append(", accSettleAmount=").append(accSettleAmount);
        sb.append(", accMdiscountAmount=").append(accMdiscountAmount);
        sb.append(", accDiscountAmount=").append(accDiscountAmount);
        sb.append(", shdFeeAmt=").append(shdFeeAmt);
        sb.append(", feeRate=").append(feeRate);
        sb.append(", settleAmount=").append(settleAmount);
        sb.append(", settleDate=").append(settleDate);
        sb.append(", accPaymentCode=").append(accPaymentCode);
        sb.append(", cardType=").append(cardType);
        sb.append(", status=").append(status);
        sb.append(", profitSharingStatus=").append(profitSharingStatus);
        sb.append(", payTime=").append(payTime);
        sb.append(", timeoutExpress=").append(timeoutExpress);
        sb.append(", subject=").append(subject);
        sb.append(", payNotifyUrl=").append(payNotifyUrl);
        sb.append(", attach=").append(attach);
        sb.append(", specialField=").append(specialField);
        sb.append(", refundType=").append(refundType);
        sb.append(", refundPrice=").append(refundPrice);
        sb.append(", createType=").append(createType);
        sb.append(", transType=").append(transType);
        sb.append(", createTime=").append(createTime);
        sb.append(", cancelTime=").append(cancelTime);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", requestIp=").append(requestIp);
        sb.append(", ext1=").append(ext1);
        sb.append(", ext2=").append(ext2);
        sb.append(", ext3=").append(ext3);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}