package com.tzy.base.dto;

import com.tzy.common.annotation.Excel;
import lombok.Data;
import lombok.ToString;

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

@Data
@ToString
public class SysFinanceDto implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private Long id;

    /**
     * 操作类型
     * 收入=0
     * 退款=1
     */
    @Excel(name = "操作类型")
    private String type;

    /**
     * 组团信息id
     */
    private Long groupInfoId;

    /**
     * 组团名称
     */
    @Excel(name = "组团名称")
    private String groupInfoName;

    /**
     * 组团编码
     */
    @Excel(name = "组团编码")
    private String groupInfoCode;

    /**
     * 商家id
     */
    private Long merchantId;

    /**
     * 商家名称
     */
    @Excel(name = "商家名称")
    private String merchantName;

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

    /**
     * 用户名称
     */
    @Excel(name = "用户名称")
    private String userName;

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

    /**
     * 订单编码
     */
    @Excel(name = "订单编码")
    private String orderNo;

    /**
     * 购买数量
     */
    @Excel(name = "购买数量")
    private Long purchaseCount;

    /**
     * 应付款
     */
    @Excel(name = "应付款")
    private BigDecimal accountsPayable;

    /**
     * 实付款
     */
    @Excel(name = "实付款")
    private BigDecimal actualPayment;

    /**
     * 支付方式-交易类型
     */
    @Excel(name = "支付方式-交易类型")
    private String paymentType;

    /**
     * 支付流水号
     */
    @Excel(name = "支付流水号")
    private String paymentNum;

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

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

    /**
     * 优惠券
     */
    @Excel(name = "优惠券")
    private String coupon;

    /**
     * 折扣
     */
    @Excel(name = "折扣")
    private BigDecimal discount;

    /**
     * 预支付交易会话标识:支付时用
     */
    private String prepayId;

    /**
     * 支付通知id
     */
    private String paymentEvid;

    /**
     * 交易状态
     */
    @Excel(name = "交易状态")
    private String paymentStatus;

    /**
     * 交易状态描述
     */
    @Excel(name = "交易状态描述")
    private String paymentStatusDesc;

    /**
     * 付款银行
     */
    @Excel(name = "付款银行")
    private String paymentBankType;

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

    /**
     * 微信退款id
     */
    private String refundId;

    /**
     * 商户退款单号
     */
    @Excel(name = "商户退款单号")
    private String outRefundNo;

    /**
     * 退款金额
     */
    @Excel(name = "退款金额")
    private BigDecimal refundFee;

    /**
     * 退款时间
     */
    @Excel(name = "退款时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date refundTime;

    /**
     * 是否匿名
     */
    private Long anonymous;

    /**
     * 提货方式
     */
    @Excel(name = "提货方式")
    private String pickUpType;

    /**
     * 收货地址id
     */
    private Long shippingAddressId;

    /**
     * 收货姓名
     */
    @Excel(name = "收货姓名")
    private String shippingAddressLinkname;

    /**
     * 收货地址
     */
    @Excel(name = "收货地址")
    private String shippingAddress;

    /**
     * 收货联系方式
     */
    @Excel(name = "收货联系方式")
    private String shippingAddressPhone;

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

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

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

    /**
     * 发票组织类型：个人/企业
     */
    @Excel(name = "发票组织类型：个人/企业")
    private String invoiceOrgType;

    /**
     * 发票抬头
     */
    @Excel(name = "发票抬头")
    private String invoiceTitle;

    /**
     * 发票税号
     */
    @Excel(name = "发票税号")
    private String invoiceTaxNo;

    /**
     * 删除标记：0=正常，1=删除
     */
    private Long delFlg;

    /**
     * 订单状态
     */
    @Excel(name = "订单状态")
    private String status;

    private Date beginShipTime;

    private Date endShipTime;

    private Date beginRefundTime;

    private Date endRefundTime;

    private Date beginPaymentSuccessTime;

    private Date endPaymentSuccessTime;

    private Date beginPaymentTime;

    private Date endPaymentTime;

    private String remark;

    private Date createTime;

    private String createBy;

    private Date updateTime;

    private String updateBy;


}