package com.fs.company.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fs.common.annotation.Excel;
import com.fs.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

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

/**
 * 订单对象 fs_store_order
 *
 * @author fs
 * @date 2022-03-15
 */
public class StoreOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单ID */
    private Long id;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderCode;

    /** 额外订单号 */
    private String extendOrderId;

    private String payOrderId;

    private String bankOrderId;

    /** 用户id */
    private Long userId;

    /** 用户姓名 */
    @Excel(name = "收货人")
    private String realName;

    /** 用户电话 */
    @Excel(name = "手机号")
    private String userPhone;

    /** 详细地址 */
    @Excel(name = "详细地址")
    private String userAddress;

    /** 购物车id */
    private String cartId;

    /** 运费金额 */
    private BigDecimal freightPrice;

    /** 订单商品总数 */
    @Excel(name = "订单商品总数")
    private Long totalNum;

    /** 订单总价 */
    @Excel(name = "订单总价")
    private BigDecimal totalPrice;

    /** 邮费 */
    private BigDecimal totalPostage;

    /** 实际支付金额 */
    @Excel(name = "应付金额")
    private BigDecimal payPrice;

    /** 支付邮费 */
    private BigDecimal payPostage;

    @Excel(name = "物流代收")
    private BigDecimal payDelivery;

    @Excel(name = "支付金额")
    private BigDecimal payMoney;

    /** 抵扣金额 */
    private BigDecimal deductionPrice;

    /** 优惠券id */
    private Long couponId;

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

    /** 支付状态 */
    @Excel(name = "支付状态 1已支付 0未支付")
    private Integer paid;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /** 支付方式 */
    @Excel(name = "支付方式 1线上 2物流代收")
    private String payType;

    private Integer status;

    /** 0 未退款 1 申请中 2 已退款 */
    private Integer refundStatus;

    /** 退款图片 */
    @Excel(name = "退款图片")
    private String refundReasonWapImg;

    /** 退款用户说明 */
    @Excel(name = "退款用户说明")
    private String refundReasonWapExplain;

    /** 退款时间 */

    private Date refundReasonTime;

    /** 前台退款原因 */
    private String refundReasonWap;

    /** 不退款的理由 */
    private String refundReason;

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

    /** 快递公司编号 */
    @Excel(name = "快递公司编号")
    private String deliverySn;

    /** 快递名称/送货人姓名 */
    @Excel(name = "快递名称")
    private String deliveryName;

    /** 发货类型 */
    private String deliveryType;

    /** 快递单号/手机号 */
    @Excel(name = "快递单号")
    private String deliveryId;

    /** 消费赚取积分 */
    private BigDecimal gainIntegral;

    /** 使用积分 */
    @Excel(name = "使用积分")
    private BigDecimal useIntegral;

    /** 实际支付积分 */
    @Excel(name = "实际支付积分")
    private BigDecimal payIntegral;

    /** 给用户退了多少积分 */
    private BigDecimal backIntegral;

    /** 备注 */
    @Excel(name = "备注")
    private String mark;

    /** 是否删除 */
    private Integer isDel;

    /** 成本价 */
    private BigDecimal cost;

    /** 核销码 */
    private String verifyCode;

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

    /** 配送方式 1=快递 ，2=门店自提 */
    private Integer shippingType;

    /** 支付渠道(0微信公众号1微信小程序) */
    private Integer isChannel;

    /** 是否提醒 */
    private Integer isRemind;

    /** 是否系统删除 */
    private Integer isSysDel;

    private Integer isPrescribe;

    private Long prescribeId;

    private Long companyId;

    private Long companyUserId;

    private Integer isPackage;

    private String packageJson;

    private Integer orderType;

    private Long packageId;

    private Integer orderCreateType;

    private String storeHouseCode;



    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date finishTime;

    private Integer deliveryStatus;

    private Integer deliveryPayStatus;

    @Excel(name = "快递帐单日期")
    private String deliveryTime;

    @Excel(name = "快递结算日期")
    private String deliveryPayTime;

    private BigDecimal deliveryPayMoney;

    private BigDecimal tuiMoney;

    private Integer tuiMoneyStatus;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "回单导入时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date deliveryImportTime;

    private Long tuiUserId;

    private Integer tuiUserMoneyStatus;

    private Long deptId;

    private Integer isEditMoney;

    private Long customerId;

    private Integer isPayRemain;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date deliverySendTime;

    public Date getDeliverySendTime() {
        return deliverySendTime;
    }

    public void setDeliverySendTime(Date deliverySendTime) {
        this.deliverySendTime = deliverySendTime;
    }

    public Integer getIsPayRemain() {
        return isPayRemain;
    }

    public void setIsPayRemain(Integer isPayRemain) {
        this.isPayRemain = isPayRemain;
    }

    public Long getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    public Integer getTuiUserMoneyStatus() {
        return tuiUserMoneyStatus;
    }

    public void setTuiUserMoneyStatus(Integer tuiUserMoneyStatus) {
        this.tuiUserMoneyStatus = tuiUserMoneyStatus;
    }

    public Integer getIsEditMoney() {
        return isEditMoney;
    }

    public void setIsEditMoney(Integer isEditMoney) {
        this.isEditMoney = isEditMoney;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public String getStoreHouseCode() {
        return storeHouseCode;
    }

    public void setStoreHouseCode(String storeHouseCode) {
        this.storeHouseCode = storeHouseCode;
    }

    public Integer getOrderCreateType() {
        return orderCreateType;
    }

    public void setOrderCreateType(Integer orderCreateType) {
        this.orderCreateType = orderCreateType;
    }

    public Long getTuiUserId() {
        return tuiUserId;
    }

    public void setTuiUserId(Long tuiUserId) {
        this.tuiUserId = tuiUserId;
    }

    public Date getDeliveryImportTime() {
        return deliveryImportTime;
    }

    public void setDeliveryImportTime(Date deliveryImportTime) {
        this.deliveryImportTime = deliveryImportTime;
    }

    public Integer getTuiMoneyStatus() {
        return tuiMoneyStatus;
    }

    public void setTuiMoneyStatus(Integer tuiMoneyStatus) {
        this.tuiMoneyStatus = tuiMoneyStatus;
    }

    public BigDecimal getTuiMoney() {
        return tuiMoney;
    }

    public void setTuiMoney(BigDecimal tuiMoney) {
        this.tuiMoney = tuiMoney;
    }

    public String getPayOrderId() {
        return payOrderId;
    }

    public void setPayOrderId(String payOrderId) {
        this.payOrderId = payOrderId;
    }

    public String getBankOrderId() {
        return bankOrderId;
    }

    public void setBankOrderId(String bankOrderId) {
        this.bankOrderId = bankOrderId;
    }

    public BigDecimal getDeliveryPayMoney() {
        return deliveryPayMoney;
    }

    public void setDeliveryPayMoney(BigDecimal deliveryPayMoney) {
        this.deliveryPayMoney = deliveryPayMoney;
    }

    public Integer getDeliveryStatus() {
        return deliveryStatus;
    }

    public void setDeliveryStatus(Integer deliveryStatus) {
        this.deliveryStatus = deliveryStatus;
    }

    public Integer getDeliveryPayStatus() {
        return deliveryPayStatus;
    }

    public void setDeliveryPayStatus(Integer deliveryPayStatus) {
        this.deliveryPayStatus = deliveryPayStatus;
    }

    public String getDeliveryTime() {
        return deliveryTime;
    }

    public void setDeliveryTime(String deliveryTime) {
        this.deliveryTime = deliveryTime;
    }

    public String getDeliveryPayTime() {
        return deliveryPayTime;
    }

    public void setDeliveryPayTime(String deliveryPayTime) {
        this.deliveryPayTime = deliveryPayTime;
    }

    public Date getFinishTime() {
        return finishTime;
    }

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

    public Long getPackageId() {
        return packageId;
    }

    public void setPackageId(Long packageId) {
        this.packageId = packageId;
    }

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public String getPackageJson() {
        return packageJson;
    }

    public void setPackageJson(String packageJson) {
        this.packageJson = packageJson;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public BigDecimal getPayMoney() {
        return payMoney;
    }

    public void setPayMoney(BigDecimal payMoney) {
        this.payMoney = payMoney;
    }

    public BigDecimal getPayDelivery() {
        return payDelivery;
    }

    public void setPayDelivery(BigDecimal payDelivery) {
        this.payDelivery = payDelivery;
    }

    public Integer getIsPackage() {
        return isPackage;
    }

    public void setIsPackage(Integer isPackage) {
        this.isPackage = isPackage;
    }

    public Long getCompanyId() {
        return companyId;
    }

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

    public Long getCompanyUserId() {
        return companyUserId;
    }

    public void setCompanyUserId(Long companyUserId) {
        this.companyUserId = companyUserId;
    }

    public Long getPrescribeId() {
        return prescribeId;
    }

    public void setPrescribeId(Long prescribeId) {
        this.prescribeId = prescribeId;
    }

    public Integer getIsPrescribe() {
        return isPrescribe;
    }

    public void setIsPrescribe(Integer isPrescribe) {
        this.isPrescribe = isPrescribe;
    }

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

    public Long getId()
    {
        return id;
    }
    public void setOrderCode(String orderCode)
    {
        this.orderCode = orderCode;
    }

    public String getOrderCode()
    {
        return orderCode;
    }
    public void setExtendOrderId(String extendOrderId)
    {
        this.extendOrderId = extendOrderId;
    }

    public String getExtendOrderId()
    {
        return extendOrderId;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setRealName(String realName)
    {
        this.realName = realName;
    }

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

    public String getUserPhone()
    {
        return userPhone;
    }
    public void setUserAddress(String userAddress)
    {
        this.userAddress = userAddress;
    }

    public String getUserAddress()
    {
        return userAddress;
    }
    public void setCartId(String cartId)
    {
        this.cartId = cartId;
    }

    public String getCartId()
    {
        return cartId;
    }
    public void setFreightPrice(BigDecimal freightPrice)
    {
        this.freightPrice = freightPrice;
    }

    public BigDecimal getFreightPrice()
    {
        return freightPrice;
    }
    public void setTotalNum(Long totalNum)
    {
        this.totalNum = totalNum;
    }

    public Long getTotalNum()
    {
        return totalNum;
    }
    public void setTotalPrice(BigDecimal totalPrice)
    {
        this.totalPrice = totalPrice;
    }

    public BigDecimal getTotalPrice()
    {
        return totalPrice;
    }
    public void setTotalPostage(BigDecimal totalPostage)
    {
        this.totalPostage = totalPostage;
    }

    public BigDecimal getTotalPostage()
    {
        return totalPostage;
    }
    public void setPayPrice(BigDecimal payPrice)
    {
        this.payPrice = payPrice;
    }

    public BigDecimal getPayPrice()
    {
        return payPrice;
    }
    public void setPayPostage(BigDecimal payPostage)
    {
        this.payPostage = payPostage;
    }

    public BigDecimal getPayPostage()
    {
        return payPostage;
    }
    public void setDeductionPrice(BigDecimal deductionPrice)
    {
        this.deductionPrice = deductionPrice;
    }

    public BigDecimal getDeductionPrice()
    {
        return deductionPrice;
    }
    public void setCouponId(Long couponId)
    {
        this.couponId = couponId;
    }

    public Long getCouponId()
    {
        return couponId;
    }
    public void setCouponPrice(BigDecimal couponPrice)
    {
        this.couponPrice = couponPrice;
    }

    public BigDecimal getCouponPrice()
    {
        return couponPrice;
    }
    public void setPaid(Integer paid)
    {
        this.paid = paid;
    }

    public Integer getPaid()
    {
        return paid;
    }
    public void setPayTime(Date payTime)
    {
        this.payTime = payTime;
    }

    public Date getPayTime()
    {
        return payTime;
    }
    public void setPayType(String payType)
    {
        this.payType = payType;
    }

    public String getPayType()
    {
        return payType;
    }
    public void setStatus(Integer status)
    {
        this.status = status;
    }

    public Integer getStatus()
    {
        return status;
    }
    public void setRefundStatus(Integer refundStatus)
    {
        this.refundStatus = refundStatus;
    }

    public Integer getRefundStatus()
    {
        return refundStatus;
    }
    public void setRefundReasonWapImg(String refundReasonWapImg)
    {
        this.refundReasonWapImg = refundReasonWapImg;
    }

    public String getRefundReasonWapImg()
    {
        return refundReasonWapImg;
    }
    public void setRefundReasonWapExplain(String refundReasonWapExplain)
    {
        this.refundReasonWapExplain = refundReasonWapExplain;
    }

    public String getRefundReasonWapExplain()
    {
        return refundReasonWapExplain;
    }
    public void setRefundReasonTime(Date refundReasonTime)
    {
        this.refundReasonTime = refundReasonTime;
    }

    public Date getRefundReasonTime()
    {
        return refundReasonTime;
    }
    public void setRefundReasonWap(String refundReasonWap)
    {
        this.refundReasonWap = refundReasonWap;
    }

    public String getRefundReasonWap()
    {
        return refundReasonWap;
    }
    public void setRefundReason(String refundReason)
    {
        this.refundReason = refundReason;
    }

    public String getRefundReason()
    {
        return refundReason;
    }
    public void setRefundPrice(BigDecimal refundPrice)
    {
        this.refundPrice = refundPrice;
    }

    public BigDecimal getRefundPrice()
    {
        return refundPrice;
    }
    public void setDeliverySn(String deliverySn)
    {
        this.deliverySn = deliverySn;
    }

    public String getDeliverySn()
    {
        return deliverySn;
    }
    public void setDeliveryName(String deliveryName)
    {
        this.deliveryName = deliveryName;
    }

    public String getDeliveryName()
    {
        return deliveryName;
    }
    public void setDeliveryType(String deliveryType)
    {
        this.deliveryType = deliveryType;
    }

    public String getDeliveryType()
    {
        return deliveryType;
    }
    public void setDeliveryId(String deliveryId)
    {
        this.deliveryId = deliveryId;
    }

    public String getDeliveryId()
    {
        return deliveryId;
    }
    public void setGainIntegral(BigDecimal gainIntegral)
    {
        this.gainIntegral = gainIntegral;
    }

    public BigDecimal getGainIntegral()
    {
        return gainIntegral;
    }
    public void setUseIntegral(BigDecimal useIntegral)
    {
        this.useIntegral = useIntegral;
    }

    public BigDecimal getUseIntegral()
    {
        return useIntegral;
    }
    public void setPayIntegral(BigDecimal payIntegral)
    {
        this.payIntegral = payIntegral;
    }

    public BigDecimal getPayIntegral()
    {
        return payIntegral;
    }
    public void setBackIntegral(BigDecimal backIntegral)
    {
        this.backIntegral = backIntegral;
    }

    public BigDecimal getBackIntegral()
    {
        return backIntegral;
    }
    public void setMark(String mark)
    {
        this.mark = mark;
    }

    public String getMark()
    {
        return mark;
    }
    public void setIsDel(Integer isDel)
    {
        this.isDel = isDel;
    }

    public Integer getIsDel()
    {
        return isDel;
    }
    public void setCost(BigDecimal cost)
    {
        this.cost = cost;
    }

    public BigDecimal getCost()
    {
        return cost;
    }
    public void setVerifyCode(String verifyCode)
    {
        this.verifyCode = verifyCode;
    }

    public String getVerifyCode()
    {
        return verifyCode;
    }
    public void setStoreId(Long storeId)
    {
        this.storeId = storeId;
    }

    public Long getStoreId()
    {
        return storeId;
    }
    public void setShippingType(Integer shippingType)
    {
        this.shippingType = shippingType;
    }

    public Integer getShippingType()
    {
        return shippingType;
    }
    public void setIsChannel(Integer isChannel)
    {
        this.isChannel = isChannel;
    }

    public Integer getIsChannel()
    {
        return isChannel;
    }
    public void setIsRemind(Integer isRemind)
    {
        this.isRemind = isRemind;
    }

    public Integer getIsRemind()
    {
        return isRemind;
    }
    public void setIsSysDel(Integer isSysDel)
    {
        this.isSysDel = isSysDel;
    }

    public Integer getIsSysDel()
    {
        return isSysDel;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("orderCode", getOrderCode())
            .append("extendOrderId", getExtendOrderId())
            .append("userId", getUserId())
            .append("realName", getRealName())
            .append("userPhone", getUserPhone())
            .append("userAddress", getUserAddress())
            .append("cartId", getCartId())
            .append("freightPrice", getFreightPrice())
            .append("totalNum", getTotalNum())
            .append("totalPrice", getTotalPrice())
            .append("totalPostage", getTotalPostage())
            .append("payPrice", getPayPrice())
            .append("payPostage", getPayPostage())
            .append("deductionPrice", getDeductionPrice())
            .append("couponId", getCouponId())
            .append("couponPrice", getCouponPrice())
            .append("paid", getPaid())
            .append("payTime", getPayTime())
            .append("payType", getPayType())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("status", getStatus())
            .append("refundStatus", getRefundStatus())
            .append("refundReasonWapImg", getRefundReasonWapImg())
            .append("refundReasonWapExplain", getRefundReasonWapExplain())
            .append("refundReasonTime", getRefundReasonTime())
            .append("refundReasonWap", getRefundReasonWap())
            .append("refundReason", getRefundReason())
            .append("refundPrice", getRefundPrice())
            .append("deliverySn", getDeliverySn())
            .append("deliveryName", getDeliveryName())
            .append("deliveryType", getDeliveryType())
            .append("deliveryId", getDeliveryId())
            .append("gainIntegral", getGainIntegral())
            .append("useIntegral", getUseIntegral())
            .append("payIntegral", getPayIntegral())
            .append("backIntegral", getBackIntegral())
            .append("mark", getMark())
            .append("isDel", getIsDel())
            .append("remark", getRemark())
            .append("cost", getCost())
            .append("verifyCode", getVerifyCode())
            .append("storeId", getStoreId())
            .append("shippingType", getShippingType())
            .append("isChannel", getIsChannel())
            .append("isRemind", getIsRemind())
            .append("isSysDel", getIsSysDel())
            .toString();
    }
}
