package com.hfkj.entity;

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

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

    /**
     * 订单号
     */
    private String orderNo;

    /**
     * 子订单号
     */
    private String childOrderNo;

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

    /**
     * 产品类型
     */
    private Integer productType;

    /**
     * 产品id
     */
    private Long productId;

    /**
     * 产品名称
     */
    private String productName;

    /**
     * 产品图片
     */
    private String productImg;

    /**
     * 产品规格id
     */
    private Long productSpecId;

    /**
     * 产品规格名称
     */
    private String productSpecName;

    /**
     * 产品单价
     */
    private BigDecimal productPrice;

    /**
     * 产品数量
     */
    private Integer productCount;

    /**
     * 产品总价（单价 * 数量）
     */
    private BigDecimal productTotalPrice;

    /**
     * 总优惠金额（优惠券优惠金额 + 积分抵扣）
     */
    private BigDecimal totalDeductionPrice;

    /**
     * 优惠券优惠金额
     */
    private BigDecimal couponDiscountPrice;

    /**
     * 积分抵扣优惠金额
     */
    private Long integralDiscountPrice;

    /**
     * 产品实际金额
     */
    private BigDecimal productActualPrice;

    /**
     * 可退款数量
     */
    private Integer surplusRefundCount;

    /**
     * 可退款金额
     */
    private BigDecimal surplusRefundPrice;

    /**
     * 可退款积分金额
     */
    private Long surplusRefundIntegral;

    /**
     * 订单状态：
1. 待支付
2. 已支付
3. 已完成
4. 已退款
5. 已取消
6. 退款中
     */
    private Integer status;

    /**
     * 结算账户key
     */
    private String settleAccount;

    /**
     * 结算账户
     */
    private String settleAccountKey;

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

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

    /**
     * 完成时间
     */
    private Date finishTime;

    private String ext1;

    private String ext2;

    private String ext3;

    /**
     * 渠道订单号
     */
    private String channelOrderNo;

    private static final long serialVersionUID = 1L;

    public Long getId() {
        return id;
    }

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

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getChildOrderNo() {
        return childOrderNo;
    }

    public void setChildOrderNo(String childOrderNo) {
        this.childOrderNo = childOrderNo;
    }

    public Long getMerId() {
        return merId;
    }

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

    public Integer getProductType() {
        return productType;
    }

    public void setProductType(Integer productType) {
        this.productType = productType;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getProductImg() {
        return productImg;
    }

    public void setProductImg(String productImg) {
        this.productImg = productImg;
    }

    public Long getProductSpecId() {
        return productSpecId;
    }

    public void setProductSpecId(Long productSpecId) {
        this.productSpecId = productSpecId;
    }

    public String getProductSpecName() {
        return productSpecName;
    }

    public void setProductSpecName(String productSpecName) {
        this.productSpecName = productSpecName;
    }

    public BigDecimal getProductPrice() {
        return productPrice;
    }

    public void setProductPrice(BigDecimal productPrice) {
        this.productPrice = productPrice;
    }

    public Integer getProductCount() {
        return productCount;
    }

    public void setProductCount(Integer productCount) {
        this.productCount = productCount;
    }

    public BigDecimal getProductTotalPrice() {
        return productTotalPrice;
    }

    public void setProductTotalPrice(BigDecimal productTotalPrice) {
        this.productTotalPrice = productTotalPrice;
    }

    public BigDecimal getTotalDeductionPrice() {
        return totalDeductionPrice;
    }

    public void setTotalDeductionPrice(BigDecimal totalDeductionPrice) {
        this.totalDeductionPrice = totalDeductionPrice;
    }

    public BigDecimal getCouponDiscountPrice() {
        return couponDiscountPrice;
    }

    public void setCouponDiscountPrice(BigDecimal couponDiscountPrice) {
        this.couponDiscountPrice = couponDiscountPrice;
    }

    public Long getIntegralDiscountPrice() {
        return integralDiscountPrice;
    }

    public void setIntegralDiscountPrice(Long integralDiscountPrice) {
        this.integralDiscountPrice = integralDiscountPrice;
    }

    public BigDecimal getProductActualPrice() {
        return productActualPrice;
    }

    public void setProductActualPrice(BigDecimal productActualPrice) {
        this.productActualPrice = productActualPrice;
    }

    public Integer getSurplusRefundCount() {
        return surplusRefundCount;
    }

    public void setSurplusRefundCount(Integer surplusRefundCount) {
        this.surplusRefundCount = surplusRefundCount;
    }

    public BigDecimal getSurplusRefundPrice() {
        return surplusRefundPrice;
    }

    public void setSurplusRefundPrice(BigDecimal surplusRefundPrice) {
        this.surplusRefundPrice = surplusRefundPrice;
    }

    public Long getSurplusRefundIntegral() {
        return surplusRefundIntegral;
    }

    public void setSurplusRefundIntegral(Long surplusRefundIntegral) {
        this.surplusRefundIntegral = surplusRefundIntegral;
    }

    public Integer getStatus() {
        return status;
    }

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

    public String getSettleAccount() {
        return settleAccount;
    }

    public void setSettleAccount(String settleAccount) {
        this.settleAccount = settleAccount;
    }

    public String getSettleAccountKey() {
        return settleAccountKey;
    }

    public void setSettleAccountKey(String settleAccountKey) {
        this.settleAccountKey = settleAccountKey;
    }

    public Date getCreateTime() {
        return createTime;
    }

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

    public Date getUpdateTime() {
        return updateTime;
    }

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

    public Date getFinishTime() {
        return finishTime;
    }

    public void setFinishTime(Date finishTime) {
        this.finishTime = finishTime;
    }

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

    public String getChannelOrderNo() {
        return channelOrderNo;
    }

    public void setChannelOrderNo(String channelOrderNo) {
        this.channelOrderNo = channelOrderNo;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        BsOrderChild other = (BsOrderChild) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getOrderNo() == null ? other.getOrderNo() == null : this.getOrderNo().equals(other.getOrderNo()))
            && (this.getChildOrderNo() == null ? other.getChildOrderNo() == null : this.getChildOrderNo().equals(other.getChildOrderNo()))
            && (this.getMerId() == null ? other.getMerId() == null : this.getMerId().equals(other.getMerId()))
            && (this.getProductType() == null ? other.getProductType() == null : this.getProductType().equals(other.getProductType()))
            && (this.getProductId() == null ? other.getProductId() == null : this.getProductId().equals(other.getProductId()))
            && (this.getProductName() == null ? other.getProductName() == null : this.getProductName().equals(other.getProductName()))
            && (this.getProductImg() == null ? other.getProductImg() == null : this.getProductImg().equals(other.getProductImg()))
            && (this.getProductSpecId() == null ? other.getProductSpecId() == null : this.getProductSpecId().equals(other.getProductSpecId()))
            && (this.getProductSpecName() == null ? other.getProductSpecName() == null : this.getProductSpecName().equals(other.getProductSpecName()))
            && (this.getProductPrice() == null ? other.getProductPrice() == null : this.getProductPrice().equals(other.getProductPrice()))
            && (this.getProductCount() == null ? other.getProductCount() == null : this.getProductCount().equals(other.getProductCount()))
            && (this.getProductTotalPrice() == null ? other.getProductTotalPrice() == null : this.getProductTotalPrice().equals(other.getProductTotalPrice()))
            && (this.getTotalDeductionPrice() == null ? other.getTotalDeductionPrice() == null : this.getTotalDeductionPrice().equals(other.getTotalDeductionPrice()))
            && (this.getCouponDiscountPrice() == null ? other.getCouponDiscountPrice() == null : this.getCouponDiscountPrice().equals(other.getCouponDiscountPrice()))
            && (this.getIntegralDiscountPrice() == null ? other.getIntegralDiscountPrice() == null : this.getIntegralDiscountPrice().equals(other.getIntegralDiscountPrice()))
            && (this.getProductActualPrice() == null ? other.getProductActualPrice() == null : this.getProductActualPrice().equals(other.getProductActualPrice()))
            && (this.getSurplusRefundCount() == null ? other.getSurplusRefundCount() == null : this.getSurplusRefundCount().equals(other.getSurplusRefundCount()))
            && (this.getSurplusRefundPrice() == null ? other.getSurplusRefundPrice() == null : this.getSurplusRefundPrice().equals(other.getSurplusRefundPrice()))
            && (this.getSurplusRefundIntegral() == null ? other.getSurplusRefundIntegral() == null : this.getSurplusRefundIntegral().equals(other.getSurplusRefundIntegral()))
            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
            && (this.getSettleAccount() == null ? other.getSettleAccount() == null : this.getSettleAccount().equals(other.getSettleAccount()))
            && (this.getSettleAccountKey() == null ? other.getSettleAccountKey() == null : this.getSettleAccountKey().equals(other.getSettleAccountKey()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getFinishTime() == null ? other.getFinishTime() == null : this.getFinishTime().equals(other.getFinishTime()))
            && (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()))
            && (this.getChannelOrderNo() == null ? other.getChannelOrderNo() == null : this.getChannelOrderNo().equals(other.getChannelOrderNo()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getOrderNo() == null) ? 0 : getOrderNo().hashCode());
        result = prime * result + ((getChildOrderNo() == null) ? 0 : getChildOrderNo().hashCode());
        result = prime * result + ((getMerId() == null) ? 0 : getMerId().hashCode());
        result = prime * result + ((getProductType() == null) ? 0 : getProductType().hashCode());
        result = prime * result + ((getProductId() == null) ? 0 : getProductId().hashCode());
        result = prime * result + ((getProductName() == null) ? 0 : getProductName().hashCode());
        result = prime * result + ((getProductImg() == null) ? 0 : getProductImg().hashCode());
        result = prime * result + ((getProductSpecId() == null) ? 0 : getProductSpecId().hashCode());
        result = prime * result + ((getProductSpecName() == null) ? 0 : getProductSpecName().hashCode());
        result = prime * result + ((getProductPrice() == null) ? 0 : getProductPrice().hashCode());
        result = prime * result + ((getProductCount() == null) ? 0 : getProductCount().hashCode());
        result = prime * result + ((getProductTotalPrice() == null) ? 0 : getProductTotalPrice().hashCode());
        result = prime * result + ((getTotalDeductionPrice() == null) ? 0 : getTotalDeductionPrice().hashCode());
        result = prime * result + ((getCouponDiscountPrice() == null) ? 0 : getCouponDiscountPrice().hashCode());
        result = prime * result + ((getIntegralDiscountPrice() == null) ? 0 : getIntegralDiscountPrice().hashCode());
        result = prime * result + ((getProductActualPrice() == null) ? 0 : getProductActualPrice().hashCode());
        result = prime * result + ((getSurplusRefundCount() == null) ? 0 : getSurplusRefundCount().hashCode());
        result = prime * result + ((getSurplusRefundPrice() == null) ? 0 : getSurplusRefundPrice().hashCode());
        result = prime * result + ((getSurplusRefundIntegral() == null) ? 0 : getSurplusRefundIntegral().hashCode());
        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
        result = prime * result + ((getSettleAccount() == null) ? 0 : getSettleAccount().hashCode());
        result = prime * result + ((getSettleAccountKey() == null) ? 0 : getSettleAccountKey().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getFinishTime() == null) ? 0 : getFinishTime().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());
        result = prime * result + ((getChannelOrderNo() == null) ? 0 : getChannelOrderNo().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(", orderNo=").append(orderNo);
        sb.append(", childOrderNo=").append(childOrderNo);
        sb.append(", merId=").append(merId);
        sb.append(", productType=").append(productType);
        sb.append(", productId=").append(productId);
        sb.append(", productName=").append(productName);
        sb.append(", productImg=").append(productImg);
        sb.append(", productSpecId=").append(productSpecId);
        sb.append(", productSpecName=").append(productSpecName);
        sb.append(", productPrice=").append(productPrice);
        sb.append(", productCount=").append(productCount);
        sb.append(", productTotalPrice=").append(productTotalPrice);
        sb.append(", totalDeductionPrice=").append(totalDeductionPrice);
        sb.append(", couponDiscountPrice=").append(couponDiscountPrice);
        sb.append(", integralDiscountPrice=").append(integralDiscountPrice);
        sb.append(", productActualPrice=").append(productActualPrice);
        sb.append(", surplusRefundCount=").append(surplusRefundCount);
        sb.append(", surplusRefundPrice=").append(surplusRefundPrice);
        sb.append(", surplusRefundIntegral=").append(surplusRefundIntegral);
        sb.append(", status=").append(status);
        sb.append(", settleAccount=").append(settleAccount);
        sb.append(", settleAccountKey=").append(settleAccountKey);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", finishTime=").append(finishTime);
        sb.append(", ext1=").append(ext1);
        sb.append(", ext2=").append(ext2);
        sb.append(", ext3=").append(ext3);
        sb.append(", channelOrderNo=").append(channelOrderNo);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}