
package com.tmerclub.cloud.common.order.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;


/**
 * 订单excel信息
 *
 * @author YXF
 * @date 2020-3-9
 */

@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)
public class OrderExcelVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    /**
     * excel 信息
     */
    public static final String EXCEL_NAME = "订单信息";
    /**
     * 哪一行开始导出
     */
    public static final int MERGE_ROW_INDEX = 2;
    /**
     * 需要合并的列数组
     */
    public static final int[] MERGE_COLUMN_INDEX = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};

    @ExcelProperty(value = {"订单信息", "序号"}, index = 0)
    private String seq;

    @ExcelProperty(value = {"订单信息", "订单ID"}, index = 1)
    private String orderId;

    @ColumnWidth(20)
    @DateTimeFormat("yyyy-MM-dd")
    @ExcelProperty(value = {"订单信息", "下单时间"}, index = 2)
    private Date createTime;

    @ExcelProperty(value = {"订单信息", "配送类型"}, index = 3)
    private String deliveryType;

    @ExcelProperty(value = {"订单信息", "收货人姓名"}, index = 4)
    private String consignee;

    @ExcelProperty(value = {"订单信息", "收货人手机"}, index = 5)
    private String mobile;

    @ExcelProperty(value = {"订单信息", "收货地址"}, index = 6)
    private String receivingAddr;

    @ExcelProperty(value = {"订单信息", "订单总额"}, index = 7)
    private String total;

    @ExcelProperty(value = {"订单信息", "运费金额"}, index = 8)
    private String freightAmount;

    @ExcelProperty(value = {"订单信息", "优惠总额"}, index = 9)
    private String reduceAmount;

    @ExcelProperty(value = {"订单信息", "使用积分"}, index = 10)
    private String orderScore;

    @ExcelProperty(value = {"订单信息", "实际支付"}, index = 11)
    private String actualTotal;

    @ExcelProperty(value = {"订单信息", "支付类型"}, index = 12)
    private String payType;

    @ExcelProperty(value = {"订单信息", "订单状态"}, index = 13)
    private String status;

    @ExcelProperty(value = {"订单信息", "订单售后状态"}, index = 14)
    private String refundStatus;

    @ExcelProperty(value = {"订单信息", "订单类别"}, index = 15)
    private String orderMold;

    @ExcelProperty({"订单项信息", "商品名称"})
    private String spuName;

    @ExcelProperty({"订单项信息", "sku名称"})
    private String skuName;

    @ExcelProperty({"订单项信息", "商品价格"})
    private String price;

    @ExcelProperty({"订单项信息", "商品数量"})
    private Integer count;

    @ExcelProperty({"订单项信息", "商品总金额"})
    private String spuTotalAmount;

    @ExcelProperty({"订单项信息", "优惠金额"})
    private String shareReduce;

    @ExcelProperty({"订单项信息", "实际金额"})
    private String actualTotalItem;

    @ExcelProperty({"订单项信息", "使用积分"})
    private Long useScore;

    @ExcelProperty({"订单项信息", "售后状态"})
    private String refundStatusItem;

    @ExcelIgnore
    private List<OrderItemLangVO> orderItemLangList;

    public String getOrderMold() {
        return orderMold;
    }

    public void setOrderMold(String orderMold) {
        this.orderMold = orderMold;
    }

    public String getSeq() {
        return seq;
    }

    public void setSeq(String seq) {
        this.seq = seq;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public Date getCreateTime() {
        return createTime;
    }

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

    public String getDeliveryType() {
        return deliveryType;
    }

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

    public String getConsignee() {
        return consignee;
    }

    public void setConsignee(String consignee) {
        this.consignee = consignee;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getReceivingAddr() {
        return receivingAddr;
    }

    public void setReceivingAddr(String receivingAddr) {
        this.receivingAddr = receivingAddr;
    }

    public String getTotal() {
        return total;
    }

    public void setTotal(String total) {
        this.total = total;
    }

    public String getFreightAmount() {
        return freightAmount;
    }

    public void setFreightAmount(String freightAmount) {
        this.freightAmount = freightAmount;
    }

    public String getReduceAmount() {
        return reduceAmount;
    }

    public void setReduceAmount(String reduceAmount) {
        this.reduceAmount = reduceAmount;
    }

    public String getOrderScore() {
        return orderScore;
    }

    public void setOrderScore(String orderScore) {
        this.orderScore = orderScore;
    }

    public String getActualTotal() {
        return actualTotal;
    }

    public void setActualTotal(String actualTotal) {
        this.actualTotal = actualTotal;
    }

    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    public String getStatus() {
        return status;
    }

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

    public String getRefundStatus() {
        return refundStatus;
    }

    public void setRefundStatus(String refundStatus) {
        this.refundStatus = refundStatus;
    }

    public String getSpuName() {
        return spuName;
    }

    public void setSpuName(String spuName) {
        this.spuName = spuName;
    }

    public String getSkuName() {
        return skuName;
    }

    public void setSkuName(String skuName) {
        this.skuName = skuName;
    }

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public Integer getCount() {
        return count;
    }

    public void setCount(Integer count) {
        this.count = count;
    }

    public String getSpuTotalAmount() {
        return spuTotalAmount;
    }

    public void setSpuTotalAmount(String spuTotalAmount) {
        this.spuTotalAmount = spuTotalAmount;
    }

    public String getShareReduce() {
        return shareReduce;
    }

    public void setShareReduce(String shareReduce) {
        this.shareReduce = shareReduce;
    }

    public String getActualTotalItem() {
        return actualTotalItem;
    }

    public void setActualTotalItem(String actualTotalItem) {
        this.actualTotalItem = actualTotalItem;
    }

    public Long getUseScore() {
        return useScore;
    }

    public void setUseScore(Long useScore) {
        this.useScore = useScore;
    }

    public String getRefundStatusItem() {
        return refundStatusItem;
    }

    public void setRefundStatusItem(String refundStatusItem) {
        this.refundStatusItem = refundStatusItem;
    }

    public List<OrderItemLangVO> getOrderItemLangList() {
        return orderItemLangList;
    }

    public void setOrderItemLangList(List<OrderItemLangVO> orderItemLangList) {
        this.orderItemLangList = orderItemLangList;
    }

    @Override
    public String toString() {
        return "OrderExcelVO{" +
                "seq='" + seq + '\'' +
                ", orderId='" + orderId + '\'' +
                ", createTime=" + createTime +
                ", deliveryType='" + deliveryType + '\'' +
                ", consignee='" + consignee + '\'' +
                ", mobile='" + mobile + '\'' +
                ", receivingAddr='" + receivingAddr + '\'' +
                ", total='" + total + '\'' +
                ", freightAmount='" + freightAmount + '\'' +
                ", reduceAmount='" + reduceAmount + '\'' +
                ", orderScore='" + orderScore + '\'' +
                ", actualTotal='" + actualTotal + '\'' +
                ", payType='" + payType + '\'' +
                ", status='" + status + '\'' +
                ", refundStatus='" + refundStatus + '\'' +
                ", orderMold='" + orderMold + '\'' +
                ", spuName='" + spuName + '\'' +
                ", skuName='" + skuName + '\'' +
                ", price='" + price + '\'' +
                ", count=" + count +
                ", spuTotalAmount='" + spuTotalAmount + '\'' +
                ", shareReduce='" + shareReduce + '\'' +
                ", actualTotalItem='" + actualTotalItem + '\'' +
                ", useScore=" + useScore +
                ", refundStatusItem='" + refundStatusItem + '\'' +
                ", orderItemLangList=" + orderItemLangList +
                '}';
    }
}
