package com.zm.order.tool.server.query;

import com.alibaba.fastjson.JSON;
import com.zm.order.tool.server.model.BasePageQuery;


import java.util.Date;
import java.util.List;

/**
 * @Description 搜索订单查询参数
 * @Author: ph
 * @Date: 2019/11/1 15:22
 */
public class SearchOrderQuery extends BasePageQuery {

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

    /**
     * bizType
     */
    private Integer bizType;

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

    /**
     * 门店id集合
     */
    private List<Long> storeIdList;

    /**
     * 用户id
     */
    private List<Long> userIdList;

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

    /**
     * 订单号列表
     */
    private List<String> orderNoList;

    /**
     * 店内单号
     */
    private String storeOrderNo;

    /**
     * 支付时间开始
     */
    private Date payAtStart;

    /**
     * 支付时间结束
     */
    private Date payAtEnd;

    /**
     * 支付状态列表
     */
    private List<Integer> payStatusList;

    private Boolean respCount;

    /**
     * 支付状态
     */
    private Integer payStatus;

    /**
     * 买家手机号
     */
    private String mobile;

    /**
     * 下单时间开始
     */
    private Date orderAtStart;

    /**
     * 下单时间结束
     */
    private Date orderAtEnd;

    /**
     * 下单时间开始
     */
    private Date updatedAtStart;

    /**
     * 下单时间结束
     */
    private Date updatedAtEnd;

    /**
     * 订单类型
     */
    private List<Integer> orderTypeList;

    /**
     * 订单子类型
     */
    private Integer orderSubType;

    /**
     * 履约类型
     */
    private Integer performanceType;

    /**
     * 订单来源
     */
    private Integer source;

    /**
     * 来源列表
     */
    private List<Integer> sourceList;

    /**
     * 来源单号
     */
    private String sourceNo;

    /**
     * 支付类型
     */
    private List<Integer> payTypeList;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 状态列表
     */
    private List<Integer> statusList;

    /**
     * 排除状态列表
     */
    private List<Integer> excludeStatusList;

    /**
     * 排除支付类型列表
     */
    private List<Integer> excludePayTypeList;

    /**
     * 履约平台
     */
    private List<String> performancePlatformList;

    /**
     * 是否立即履约
     */
    private Integer isImmediatePerformance;

    /**
     * 履约状态
     */
    private Integer performanceStatus;

    /**
     * 支付模式
     */
    private Integer payModel;

    /**
     * 是否打印
     */
    private Integer isReceipt;

    /**
     * 打印终端
     */
    private String receiptTerminal;

    /**
     * 是否使用钱包
     */
    private Integer useWallet;

    /**
     * 是否使用第三方
     */
    private Integer useThird;

    /**
     * 地址id列表
     */
    private List<Integer> addrIdList;

    /**
     * 售后状态
     */
    private Integer afterSaleStatus;

    /**
     * 接单状态
     */
    private Integer receiveStatus;

    /**
     * 是否预约时间为空
     */
    private Integer isReserveTakeoutTimeEmpty;

    /**
     * 是否独立收款
     */
    private Integer isAlone;

    /**
     * 排序字段
     */
    private String sortField;

    /**
     * 排序顺序
     */
    private String sortOrder;

    /**
     * 排除订单类型
     */
    private List<Integer> excludeOrderTypeList;

    /**
     * 商家ID集合
     */
    private List<Long> sellerIdList;

    /**
     * 优惠类型
     */
    private Integer discountType;

    /**
     * 制作时间是否为空(1为空 ,没有就不为空)
     */
    private Integer isProductionEnd;

    /**
     * 排除订单时间完成时间(1为0,没有就不为空)
     */
    private Integer isCompleted;

    /**
     * 商品订单来源
     * 0：门店
     * 1：商城
     */
    private Integer goodsOrderSource;

    /**
     * 定时任务查询一
     */
    private Boolean conditionFlag1;

    /**
     * 判断查询数量还是列表  数量为 false 列表为 true
     */
    private Boolean conditionFlag2;

    /**
     * 定时任务查询一结束时间参数
     */
    private Date flag1EndTime;

    /**
     * 定时任务查询一开始时间参数
     */
    private Date flag1StartTime;

    /**
     * 是否支付
     */
    private Integer isPay;

    /**
     * 是否导出
     */
    private Boolean searchAfter;

    /**
     * 最后一个id
     */
    private Long lastId;

    /**
     * 数量
     */
    private Integer size;


    /**
     * 桌号
     */
    private String performancePlatform;

    /**
     * 订单类型
     */
    private Integer orderType;

    /**
     * 是否统计用户
     */
    private Boolean isCountUser = false;

    /**
     * 平台支付
     */
    private Integer usePlatForm;

    /**
     * 统计数量字段
     */
    private String amountField;

    /**
     * 支付或完成时间开始
     */
    private Date payOrCompleteAtStart;

    /**
     * 支付或完成时间结束
     */
    private Date payOrCompleteAtEnd;

    /**
     * 活动id列表
     */
    private List<Long> activityIdList;

    /**
     * 优惠id列表
     */
    private List<String> discountIdList;

    /**
     * 优惠类型列表
     */
    private List<Integer> discountTypeList;

    /**
     * 活动id
     */
    private Long activityId;

    /**
     * 删除类型
     */
    private List<Integer> deleteTypeList;

    /**
     * 是否实时
     */
    private Integer isRealTime;

    /**
     * 退款完成标识
     */
    private Integer refundCompleted;

    /**
     * 导出类型
     */
    private Integer exportType;


    public List<Long> getStoreIdList() {
        return storeIdList;
    }

    public void setStoreIdList(List<Long> storeIdList) {
        this.storeIdList = storeIdList;
    }
    /**
     * 待接单逻辑查询标记 1：a = 1 and (b = 2 or c = 3)
     */
    private Integer plusFlag1;

    /**
     * 智慧营销订单查询标记（优惠订单查询） 1：discountAmount > 0 OR orderType = 3
     */
    private Integer plusFlag2;

    /**
     * 前端可显示订单标记 1： NOT (orderType IN (2,3) AND pay_status=0)
     */
    private Integer plusFlag3;

    /**
     * 企小店逻辑查询标记：thirdPayNo or payNo，先查thirdPayNo，结果不存在再查询payNo
     */
    private Integer plusFlag4;

    /**
     * 是否使用优惠 0：未使用 1：使用
     */
    private Integer discount;

    private Integer specialDeleted;

    /**
     * 设置请求es header中的seller id参数
     */
    private List<Long> indexRouteSeller;

    /**
     * 第三方支付单号
     */
    private String thirdPayNo;

    /**
     * 支付单号
     */
    private String payNo;

    /**
     * 全局搜索
     */
    private String globalSearch;

    private List<Long> orderIdList;

    public List<Long> getIndexRouteSeller() {
        return indexRouteSeller;
    }

    public void setIndexRouteSeller(List<Long> indexRouteSeller) {
        this.indexRouteSeller = indexRouteSeller;
    }

    public Integer getSpecialDeleted() {
        return specialDeleted;
    }

    public void setSpecialDeleted(Integer specialDeleted) {
        this.specialDeleted = specialDeleted;
    }

    public List<Long> getOrderIdList() {
        return orderIdList;
    }

    public void setOrderIdList(List<Long> orderIdList) {
        this.orderIdList = orderIdList;
    }

    public Integer getGoodsOrderSource() {
        return goodsOrderSource;
    }

    public void setGoodsOrderSource(Integer goodsOrderSource) {
        this.goodsOrderSource = goodsOrderSource;
    }

    public Long getSellerId() {
        return sellerId;
    }

    public void setSellerId(Long sellerId) {
        this.sellerId = sellerId;
    }

    public Long getStoreId() {
        return storeId;
    }

    public void setStoreId(Long storeId) {
        this.storeId = storeId;
    }

    public List<Long> getUserIdList() {
        return userIdList;
    }

    public void setUserIdList(List<Long> userIdList) {
        this.userIdList = userIdList;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public Boolean getRespCount() {
        return respCount;
    }

    public void setRespCount(Boolean respCount) {
        this.respCount = respCount;
    }

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

    public List<String> getOrderNoList() {
        return orderNoList;
    }

    public void setOrderNoList(List<String> orderNoList) {
        this.orderNoList = orderNoList;
    }

    public String getStoreOrderNo() {
        return storeOrderNo;
    }

    public void setStoreOrderNo(String storeOrderNo) {
        this.storeOrderNo = storeOrderNo;
    }

    public Date getPayAtStart() {
        return payAtStart;
    }

    public void setPayAtStart(Date payAtStart) {
        this.payAtStart = payAtStart;
    }

    public Date getPayAtEnd() {
        return payAtEnd;
    }

    public void setPayAtEnd(Date payAtEnd) {
        this.payAtEnd = payAtEnd;
    }

    public List<Integer> getPayStatusList() {
        return payStatusList;
    }

    public void setPayStatusList(List<Integer> payStatusList) {
        this.payStatusList = payStatusList;
    }

    public Integer getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }

    public String getMobile() {
        return mobile;
    }

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

    public Date getOrderAtStart() {
        return orderAtStart;
    }

    public Date getUpdatedAtStart() {
        return updatedAtStart;
    }

    public void setUpdatedAtStart(Date updatedAtStart) {
        this.updatedAtStart = updatedAtStart;
    }

    public Date getUpdatedAtEnd() {
        return updatedAtEnd;
    }

    public void setUpdatedAtEnd(Date updatedAtEnd) {
        this.updatedAtEnd = updatedAtEnd;
    }

    public void setOrderAtStart(Date orderAtStart) {
        this.orderAtStart = orderAtStart;
    }

    public Date getOrderAtEnd() {
        return orderAtEnd;
    }

    public void setOrderAtEnd(Date orderAtEnd) {
        this.orderAtEnd = orderAtEnd;
    }

    public List<Integer> getOrderTypeList() {
        return orderTypeList;
    }

    public void setOrderTypeList(List<Integer> orderTypeList) {
        this.orderTypeList = orderTypeList;
    }

    public Integer getOrderSubType() {
        return orderSubType;
    }

    public void setOrderSubType(Integer orderSubType) {
        this.orderSubType = orderSubType;
    }

    public Integer getPerformanceType() {
        return performanceType;
    }

    public void setPerformanceType(Integer performanceType) {
        this.performanceType = performanceType;
    }

    public Integer getSource() {
        return source;
    }

    public void setSource(Integer source) {
        this.source = source;
    }

    public List<Integer> getSourceList() {
        return sourceList;
    }

    public void setSourceList(List<Integer> sourceList) {
        this.sourceList = sourceList;
    }

    public String getSourceNo() {
        return sourceNo;
    }

    public void setSourceNo(String sourceNo) {
        this.sourceNo = sourceNo;
    }

    public List<Integer> getPayTypeList() {
        return payTypeList;
    }

    public void setPayTypeList(List<Integer> payTypeList) {
        this.payTypeList = payTypeList;
    }

    public Integer getStatus() {
        return status;
    }

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

    public List<Integer> getStatusList() {
        return statusList;
    }

    public void setStatusList(List<Integer> statusList) {
        this.statusList = statusList;
    }

    public List<Integer> getExcludeStatusList() {
        return excludeStatusList;
    }

    public void setExcludeStatusList(List<Integer> excludeStatusList) {
        this.excludeStatusList = excludeStatusList;
    }

    public List<Integer> getExcludePayTypeList() {
        return excludePayTypeList;
    }

    public void setExcludePayTypeList(List<Integer> excludePayTypeList) {
        this.excludePayTypeList = excludePayTypeList;
    }

    public List<String> getPerformancePlatformList() {
        return performancePlatformList;
    }

    public void setPerformancePlatformList(List<String> performancePlatformList) {
        this.performancePlatformList = performancePlatformList;
    }

    public Integer getIsImmediatePerformance() {
        return isImmediatePerformance;
    }

    public void setIsImmediatePerformance(Integer isImmediatePerformance) {
        this.isImmediatePerformance = isImmediatePerformance;
    }

    public Integer getPerformanceStatus() {
        return performanceStatus;
    }

    public void setPerformanceStatus(Integer performanceStatus) {
        this.performanceStatus = performanceStatus;
    }

    public Integer getPayModel() {
        return payModel;
    }

    public void setPayModel(Integer payModel) {
        this.payModel = payModel;
    }

    public Integer getIsReceipt() {
        return isReceipt;
    }

    public void setIsReceipt(Integer isReceipt) {
        this.isReceipt = isReceipt;
    }

    public String getReceiptTerminal() {
        return receiptTerminal;
    }

    public void setReceiptTerminal(String receiptTerminal) {
        this.receiptTerminal = receiptTerminal;
    }

    public Integer getUseWallet() {
        return useWallet;
    }

    public void setUseWallet(Integer useWallet) {
        this.useWallet = useWallet;
    }

    public Integer getUseThird() {
        return useThird;
    }

    public void setUseThird(Integer useThird) {
        this.useThird = useThird;
    }

    public List<Integer> getAddrIdList() {
        return addrIdList;
    }

    public void setAddrIdList(List<Integer> addrIdList) {
        this.addrIdList = addrIdList;
    }

    public Integer getAfterSaleStatus() {
        return afterSaleStatus;
    }

    public void setAfterSaleStatus(Integer afterSaleStatus) {
        this.afterSaleStatus = afterSaleStatus;
    }

    public Integer getReceiveStatus() {
        return receiveStatus;
    }

    public void setReceiveStatus(Integer receiveStatus) {
        this.receiveStatus = receiveStatus;
    }

    public Integer getIsReserveTakeoutTimeEmpty() {
        return isReserveTakeoutTimeEmpty;
    }

    public void setIsReserveTakeoutTimeEmpty(Integer isReserveTakeoutTimeEmpty) {
        this.isReserveTakeoutTimeEmpty = isReserveTakeoutTimeEmpty;
    }

    public Integer getIsAlone() {
        return isAlone;
    }

    public void setIsAlone(Integer isAlone) {
        this.isAlone = isAlone;
    }

    public String getSortField() {
        return sortField;
    }

    public void setSortField(String sortField) {
        this.sortField = sortField;
    }

    public String getSortOrder() {
        return sortOrder;
    }

    public void setSortOrder(String sortOrder) {
        this.sortOrder = sortOrder;
    }

    public List<Integer> getExcludeOrderTypeList() {
        return excludeOrderTypeList;
    }

    public void setExcludeOrderTypeList(List<Integer> excludeOrderTypeList) {
        this.excludeOrderTypeList = excludeOrderTypeList;
    }

    public List<Long> getSellerIdList() {
        return sellerIdList;
    }

    public void setSellerIdList(List<Long> sellerIdList) {
        this.sellerIdList = sellerIdList;
    }

    public Integer getDiscountType() {
        return discountType;
    }

    public void setDiscountType(Integer discountType) {
        this.discountType = discountType;
    }

    public Integer getIsProductionEnd() {
        return isProductionEnd;
    }

    public void setIsProductionEnd(Integer isProductionEnd) {
        this.isProductionEnd = isProductionEnd;
    }

    public Integer getIsCompleted() {
        return isCompleted;
    }

    public void setIsCompleted(Integer isCompleted) {
        this.isCompleted = isCompleted;
    }

    public Boolean getConditionFlag1() {
        return conditionFlag1;
    }

    public void setConditionFlag1(Boolean conditionFlag1) {
        this.conditionFlag1 = conditionFlag1;
    }

    public Boolean getConditionFlag2() {
        return conditionFlag2;
    }

    public Integer getBizType() {
        return bizType;
    }

    public void setBizType(Integer bizType) {
        this.bizType = bizType;
    }

    public void setConditionFlag2(Boolean conditionFlag2) {
        this.conditionFlag2 = conditionFlag2;
    }

    public Date getFlag1EndTime() {
        return flag1EndTime;
    }

    public void setFlag1EndTime(Date flag1EndTime) {
        this.flag1EndTime = flag1EndTime;
    }

    public Date getFlag1StartTime() {
        return flag1StartTime;
    }

    public void setFlag1StartTime(Date flag1StartTime) {
        this.flag1StartTime = flag1StartTime;
    }

    public Integer getIsPay() {
        return isPay;
    }

    public void setIsPay(Integer isPay) {
        this.isPay = isPay;
    }

    public Boolean getSearchAfter() {
        return searchAfter;
    }

    public void setSearchAfter(Boolean searchAfter) {
        this.searchAfter = searchAfter;
    }

    public Long getLastId() {
        return lastId;
    }

    public void setLastId(Long lastId) {
        this.lastId = lastId;
    }

    public Integer getSize() {
        return size;
    }

    public void setSize(Integer size) {
        this.size = size;
    }

    public String getPerformancePlatform() {
        return performancePlatform;
    }

    public void setPerformancePlatform(String performancePlatform) {
        this.performancePlatform = performancePlatform;
    }

    public Integer getOrderType() {
        return orderType;
    }

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

    public Boolean getCountUser() {
        return isCountUser;
    }

    public void setCountUser(Boolean countUser) {
        isCountUser = countUser;
    }

    public Integer getUsePlatForm() {
        return usePlatForm;
    }

    public void setUsePlatForm(Integer usePlatForm) {
        this.usePlatForm = usePlatForm;
    }

    public String getAmountField() {
        return amountField;
    }

    public void setAmountField(String amountField) {
        this.amountField = amountField;
    }

    public Date getPayOrCompleteAtStart() {
        return payOrCompleteAtStart;
    }

    public void setPayOrCompleteAtStart(Date payOrCompleteAtStart) {
        this.payOrCompleteAtStart = payOrCompleteAtStart;
    }

    public Date getPayOrCompleteAtEnd() {
        return payOrCompleteAtEnd;
    }

    public void setPayOrCompleteAtEnd(Date payOrCompleteAtEnd) {
        this.payOrCompleteAtEnd = payOrCompleteAtEnd;
    }

    public List<Long> getActivityIdList() {
        return activityIdList;
    }

    public void setActivityIdList(List<Long> activityIdList) {
        this.activityIdList = activityIdList;
    }

    public List<String> getDiscountIdList() {
        return discountIdList;
    }

    public void setDiscountIdList(List<String> discountIdList) {
        this.discountIdList = discountIdList;
    }

    public List<Integer> getDiscountTypeList() {
        return discountTypeList;
    }

    public void setDiscountTypeList(List<Integer> discountTypeList) {
        this.discountTypeList = discountTypeList;
    }

    public Long getActivityId() {
        return activityId;
    }

    public void setActivityId(Long activityId) {
        this.activityId = activityId;
    }

    public List<Integer> getDeleteTypeList() {
        return deleteTypeList;
    }

    public void setDeleteTypeList(List<Integer> deleteTypeList) {
        this.deleteTypeList = deleteTypeList;
    }

    public Integer getIsRealTime() {
        return isRealTime;
    }

    public void setIsRealTime(Integer isRealTime) {
        this.isRealTime = isRealTime;
    }

    public Integer getRefundCompleted() {
        return refundCompleted;
    }

    public void setRefundCompleted(Integer refundCompleted) {
        this.refundCompleted = refundCompleted;
    }

    public Integer getExportType() {
        return exportType;
    }

    public void setExportType(Integer exportType) {
        this.exportType = exportType;
    }

    public Integer getPlusFlag1() {
        return plusFlag1;
    }

    public void setPlusFlag1(Integer plusFlag1) {
        this.plusFlag1 = plusFlag1;
    }

    public Integer getPlusFlag2() {
        return plusFlag2;
    }

    public void setPlusFlag2(Integer plusFlag2) {
        this.plusFlag2 = plusFlag2;
    }

    public Integer getPlusFlag3() {
        return plusFlag3;
    }

    public void setPlusFlag3(Integer plusFlag3) {
        this.plusFlag3 = plusFlag3;
    }

    public Integer getPlusFlag4() {
        return plusFlag4;
    }

    public void setPlusFlag4(Integer plusFlag4) {
        this.plusFlag4 = plusFlag4;
    }

    public Integer getDiscount() {
        return discount;
    }

    public void setDiscount(Integer discount) {
        this.discount = discount;
    }

    public String getThirdPayNo() {
        return thirdPayNo;
    }

    public void setThirdPayNo(String thirdPayNo) {
        this.thirdPayNo = thirdPayNo;
    }

    public String getPayNo() {
        return payNo;
    }

    public void setPayNo(String payNo) {
        this.payNo = payNo;
    }

    public String getGlobalSearch() {
        return globalSearch;
    }

    public void setGlobalSearch(String globalSearch) {
        this.globalSearch = globalSearch;
    }

    @Override
    public String toString() {
        return JSON.toJSONString(this);
    }
}
