package com.game.business.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.game.common.annotation.Excel;
import com.game.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModel;
import lombok.Data;

/**
 * 购物订单对象 shop_business_order
 *
 * @author game
 * @date 2024-09-06
 */
@ApiModel(value = "shop_business_order", description = "购物订单")
@TableName(value= "shop_business_order")
@Data
public class ShopBusinessOrder
        {
private static final long serialVersionUID=1L;

    /** $column.columnComment */
    @ApiModelProperty(value = "$column.columnComment")
    @TableId(value = "id" , type = IdType.AUTO)
    private Long id;

    /** 添加时间 */
    @ApiModelProperty(value = "添加时间")
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @Excel(name = "添加时间" , width = 30, dateFormat = "yyyy-MM-dd hh:mm:ss")
    @TableField(value = "add_time")
    private Date addTime;

    /**  收货人地址 */
    @ApiModelProperty(value = " 收货人地址")
    @Excel(name = " 收货人地址")
    @TableField(value = "address")
    private String address;

    /**  收货人地址id */
    @ApiModelProperty(value = " 收货人地址id")
    @Excel(name = " 收货人地址id")
    @TableField(value = "address_id")
    private Long addressId;

    /**  用户id */
    @ApiModelProperty(value = " 用户id")
    @Excel(name = " 用户id")
    @TableField(value = "anchor_id")
    private Long anchorId;

    /**  申请退款审核不通过原因 */
    @ApiModelProperty(value = " 申请退款审核不通过原因")
    @Excel(name = " 申请退款审核不通过原因")
    @TableField(value = "audit_failure_reason")
    private String auditFailureReason;

    /**  商家id */
    @ApiModelProperty(value = " 商家id")
    @Excel(name = " 商家id")
    @TableField(value = "business_id")
    private Long businessId;

    /**  商家logo */
    @ApiModelProperty(value = " 商家logo")
    @Excel(name = " 商家logo")
    @TableField(value = "business_logo")
    private String businessLogo;

    /**  商家名称 */
    @ApiModelProperty(value = " 商家名称")
    @Excel(name = " 商家名称")
    @TableField(value = "business_name")
    private String businessName;

    /**  订单来源id */
    @ApiModelProperty(value = " 订单来源id")
    @Excel(name = " 订单来源id")
    @TableField(value = "goods_channel_id")
    private Long goodsChannelId;

    /** 是否人工退款 1：是 2：否 */
    @ApiModelProperty(value = "是否人工退款 1：是 2：否")
    @Excel(name = "是否人工退款 1：是 2：否")
    @TableField(value = "is_manual_refund")
    private Long isManualRefund;

    /**  发货物流id */
    @ApiModelProperty(value = " 发货物流id")
    @Excel(name = " 发货物流id")
    @TableField(value = "logistics_id")
    private Long logisticsId;

    /** 人工退款金额 */
    @ApiModelProperty(value = "人工退款金额")
    @Excel(name = "人工退款金额")
    @TableField(value = "manual_refund_money")
    private BigDecimal manualRefundMoney;

    /** 人工退款操作人 */
    @ApiModelProperty(value = "人工退款操作人")
    @Excel(name = "人工退款操作人")
    @TableField(value = "manual_refund_operator")
    private String manualRefundOperator;

    /** 人工退款方式 1:支付宝 2:微信 3:人工转账 */
    @ApiModelProperty(value = "人工退款方式 1:支付宝 2:微信 3:人工转账")
    @Excel(name = "人工退款方式 1:支付宝 2:微信 3:人工转账")
    @TableField(value = "manual_refund_type")
    private Long manualRefundType;

    /**  收货人姓名 */
    @ApiModelProperty(value = " 收货人姓名")
    @Excel(name = " 收货人姓名")
    @TableField(value = "name")
    private String name;

    /**  订单金额 */
    @ApiModelProperty(value = " 订单金额")
    @Excel(name = " 订单金额")
    @TableField(value = "order_amount")
    private BigDecimal orderAmount;

    /**  订单号 */
    @ApiModelProperty(value = " 订单号")
    @Excel(name = " 订单号")
    @TableField(value = "order_num")
    private String orderNum;

    /**  父订单(支付订单)id */
    @ApiModelProperty(value = " 父订单(支付订单)id")
    @Excel(name = " 父订单(支付订单)id")
    @TableField(value = "pay_id")
    private Long payId;

    /**  收货人手机号 */
    @ApiModelProperty(value = " 收货人手机号")
    @Excel(name = " 收货人手机号")
    @TableField(value = "phone_num")
    private String phoneNum;

    /**  用户支付订单号（平台的） */
    @ApiModelProperty(value = " 用户支付订单号（平台的）")
    @Excel(name = " 用户支付订单号" , readConverterExp = "平=台的")
    @TableField(value = "platform_pay_order")
    private String platformPayOrder;

    /** 退货订单状态 1:待审核 2:待发货 3:待收货 4:退款中 5:退款完成 6:退款失败 7:审核拒绝 */
    @ApiModelProperty(value = "退货订单状态 1:待审核 2:待发货 3:待收货 4:退款中 5:退款完成 6:退款失败 7:审核拒绝")
    @Excel(name = "退货订单状态 1:待审核 2:待发货 3:待收货 4:退款中 5:退款完成 6:退款失败 7:审核拒绝")
    @TableField(value = "quit_status")
    private Long quitStatus;

    /**  申请退款原因 */
    @ApiModelProperty(value = " 申请退款原因")
    @Excel(name = " 申请退款原因")
    @TableField(value = "reason")
    private String reason;

    /**  退货物流id */
    @ApiModelProperty(value = " 退货物流id")
    @Excel(name = " 退货物流id")
    @TableField(value = "refund_logistics_id")
    private Long refundLogisticsId;

    /** 申请退款备注 */
    @ApiModelProperty(value = "申请退款备注")
    @Excel(name = "申请退款备注")
    @TableField(value = "refund_notes")
    private String refundNotes;

    /** 退款备注图片 */
    @ApiModelProperty(value = "退款备注图片")
    @Excel(name = "退款备注图片")
    @TableField(value = "refund_notes_images")
    private String refundNotesImages;

    /** 退款订单号 */
    @ApiModelProperty(value = "退款订单号")
    @Excel(name = "退款订单号")
    @TableField(value = "refund_order_num")
    private String refundOrderNum;

    /** 退款完成时间 */
    @ApiModelProperty(value = "退款完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "退款完成时间" , width = 30, dateFormat = "yyyy-MM-dd")
    @TableField(value = "refund_time")
    private Date refundTime;

    /** 退款类型 1.仅退款 2.退货退款 */
    @ApiModelProperty(value = "退款类型 1.仅退款 2.退货退款")
    @Excel(name = "退款类型 1.仅退款 2.退货退款")
    @TableField(value = "refund_type")
    private Long refundType;

    /** 备注 */
    @ApiModelProperty(value = "备注")
    @Excel(name = "备注")
    @TableField(value = "remake")
    private String remake;

    /** 订单状态 1:待付款 2:待发货 3:待收货 4:订单完成 5:已取消 */
    @ApiModelProperty(value = "订单状态 1:待付款 2:待发货 3:待收货 4:订单完成 5:已取消")
    @Excel(name = "订单状态 1:待付款 2:待发货 3:待收货 4:订单完成 5:已取消")
    @TableField(value = "status")
    private Long status;

    /**  任务id */
    @ApiModelProperty(value = " 任务id")
    @Excel(name = " 任务id")
    @TableField(value = "task_id")
    private Long taskId;

    /**  交易金额(实付金额) */
    @ApiModelProperty(value = " 交易金额(实付金额)")
    @Excel(name = " 交易金额(实付金额)")
    @TableField(value = "transaction_amount")
    private BigDecimal transactionAmount;

    /** 交易成功时间 */
    @ApiModelProperty(value = "交易成功时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "交易成功时间" , width = 30, dateFormat = "yyyy-MM-dd")
    @TableField(value = "transaction_time")
    private Date transactionTime;

    /**  用户id */
    @ApiModelProperty(value = " 用户id")
    @Excel(name = " 用户id")
    @TableField(value = "uid")
    private Long uid;

    @TableField(exist = false)
    private String productNames;

    @TableField(exist = false)
    private String beginTime;

    @TableField(exist = false)
    private String endTime;

}