package cn.superdesk.uniorder.dao.entity.thirdpart.qchjc.accounting;

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

public class QchjcAccountingScoreCustomerEntityExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public QchjcAccountingScoreCustomerEntityExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andUnifiedIdIsNull() {
            addCriterion("unified_id is null");
            return (Criteria) this;
        }

        public Criteria andUnifiedIdIsNotNull() {
            addCriterion("unified_id is not null");
            return (Criteria) this;
        }

        public Criteria andUnifiedIdEqualTo(Long value) {
            addCriterion("unified_id =", value, "unifiedId");
            return (Criteria) this;
        }

        public Criteria andUnifiedIdNotEqualTo(Long value) {
            addCriterion("unified_id <>", value, "unifiedId");
            return (Criteria) this;
        }

        public Criteria andUnifiedIdGreaterThan(Long value) {
            addCriterion("unified_id >", value, "unifiedId");
            return (Criteria) this;
        }

        public Criteria andUnifiedIdGreaterThanOrEqualTo(Long value) {
            addCriterion("unified_id >=", value, "unifiedId");
            return (Criteria) this;
        }

        public Criteria andUnifiedIdLessThan(Long value) {
            addCriterion("unified_id <", value, "unifiedId");
            return (Criteria) this;
        }

        public Criteria andUnifiedIdLessThanOrEqualTo(Long value) {
            addCriterion("unified_id <=", value, "unifiedId");
            return (Criteria) this;
        }

        public Criteria andUnifiedIdIn(List<Long> values) {
            addCriterion("unified_id in", values, "unifiedId");
            return (Criteria) this;
        }

        public Criteria andUnifiedIdNotIn(List<Long> values) {
            addCriterion("unified_id not in", values, "unifiedId");
            return (Criteria) this;
        }

        public Criteria andUnifiedIdBetween(Long value1, Long value2) {
            addCriterion("unified_id between", value1, value2, "unifiedId");
            return (Criteria) this;
        }

        public Criteria andUnifiedIdNotBetween(Long value1, Long value2) {
            addCriterion("unified_id not between", value1, value2, "unifiedId");
            return (Criteria) this;
        }

        public Criteria andAccountingOrderSnIsNull() {
            addCriterion("accounting_order_sn is null");
            return (Criteria) this;
        }

        public Criteria andAccountingOrderSnIsNotNull() {
            addCriterion("accounting_order_sn is not null");
            return (Criteria) this;
        }

        public Criteria andAccountingOrderSnEqualTo(String value) {
            addCriterion("accounting_order_sn =", value, "accountingOrderSn");
            return (Criteria) this;
        }

        public Criteria andAccountingOrderSnNotEqualTo(String value) {
            addCriterion("accounting_order_sn <>", value, "accountingOrderSn");
            return (Criteria) this;
        }

        public Criteria andAccountingOrderSnGreaterThan(String value) {
            addCriterion("accounting_order_sn >", value, "accountingOrderSn");
            return (Criteria) this;
        }

        public Criteria andAccountingOrderSnGreaterThanOrEqualTo(String value) {
            addCriterion("accounting_order_sn >=", value, "accountingOrderSn");
            return (Criteria) this;
        }

        public Criteria andAccountingOrderSnLessThan(String value) {
            addCriterion("accounting_order_sn <", value, "accountingOrderSn");
            return (Criteria) this;
        }

        public Criteria andAccountingOrderSnLessThanOrEqualTo(String value) {
            addCriterion("accounting_order_sn <=", value, "accountingOrderSn");
            return (Criteria) this;
        }

        public Criteria andAccountingOrderSnLike(String value) {
            addCriterion("accounting_order_sn like", value, "accountingOrderSn");
            return (Criteria) this;
        }

        public Criteria andAccountingOrderSnNotLike(String value) {
            addCriterion("accounting_order_sn not like", value, "accountingOrderSn");
            return (Criteria) this;
        }

        public Criteria andAccountingOrderSnIn(List<String> values) {
            addCriterion("accounting_order_sn in", values, "accountingOrderSn");
            return (Criteria) this;
        }

        public Criteria andAccountingOrderSnNotIn(List<String> values) {
            addCriterion("accounting_order_sn not in", values, "accountingOrderSn");
            return (Criteria) this;
        }

        public Criteria andAccountingOrderSnBetween(String value1, String value2) {
            addCriterion("accounting_order_sn between", value1, value2, "accountingOrderSn");
            return (Criteria) this;
        }

        public Criteria andAccountingOrderSnNotBetween(String value1, String value2) {
            addCriterion("accounting_order_sn not between", value1, value2, "accountingOrderSn");
            return (Criteria) this;
        }

        public Criteria andServiceNoIsNull() {
            addCriterion("service_no is null");
            return (Criteria) this;
        }

        public Criteria andServiceNoIsNotNull() {
            addCriterion("service_no is not null");
            return (Criteria) this;
        }

        public Criteria andServiceNoEqualTo(String value) {
            addCriterion("service_no =", value, "serviceNo");
            return (Criteria) this;
        }

        public Criteria andServiceNoNotEqualTo(String value) {
            addCriterion("service_no <>", value, "serviceNo");
            return (Criteria) this;
        }

        public Criteria andServiceNoGreaterThan(String value) {
            addCriterion("service_no >", value, "serviceNo");
            return (Criteria) this;
        }

        public Criteria andServiceNoGreaterThanOrEqualTo(String value) {
            addCriterion("service_no >=", value, "serviceNo");
            return (Criteria) this;
        }

        public Criteria andServiceNoLessThan(String value) {
            addCriterion("service_no <", value, "serviceNo");
            return (Criteria) this;
        }

        public Criteria andServiceNoLessThanOrEqualTo(String value) {
            addCriterion("service_no <=", value, "serviceNo");
            return (Criteria) this;
        }

        public Criteria andServiceNoLike(String value) {
            addCriterion("service_no like", value, "serviceNo");
            return (Criteria) this;
        }

        public Criteria andServiceNoNotLike(String value) {
            addCriterion("service_no not like", value, "serviceNo");
            return (Criteria) this;
        }

        public Criteria andServiceNoIn(List<String> values) {
            addCriterion("service_no in", values, "serviceNo");
            return (Criteria) this;
        }

        public Criteria andServiceNoNotIn(List<String> values) {
            addCriterion("service_no not in", values, "serviceNo");
            return (Criteria) this;
        }

        public Criteria andServiceNoBetween(String value1, String value2) {
            addCriterion("service_no between", value1, value2, "serviceNo");
            return (Criteria) this;
        }

        public Criteria andServiceNoNotBetween(String value1, String value2) {
            addCriterion("service_no not between", value1, value2, "serviceNo");
            return (Criteria) this;
        }

        public Criteria andAccountingAmountIsNull() {
            addCriterion("accounting_amount is null");
            return (Criteria) this;
        }

        public Criteria andAccountingAmountIsNotNull() {
            addCriterion("accounting_amount is not null");
            return (Criteria) this;
        }

        public Criteria andAccountingAmountEqualTo(BigDecimal value) {
            addCriterion("accounting_amount =", value, "accountingAmount");
            return (Criteria) this;
        }

        public Criteria andAccountingAmountNotEqualTo(BigDecimal value) {
            addCriterion("accounting_amount <>", value, "accountingAmount");
            return (Criteria) this;
        }

        public Criteria andAccountingAmountGreaterThan(BigDecimal value) {
            addCriterion("accounting_amount >", value, "accountingAmount");
            return (Criteria) this;
        }

        public Criteria andAccountingAmountGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("accounting_amount >=", value, "accountingAmount");
            return (Criteria) this;
        }

        public Criteria andAccountingAmountLessThan(BigDecimal value) {
            addCriterion("accounting_amount <", value, "accountingAmount");
            return (Criteria) this;
        }

        public Criteria andAccountingAmountLessThanOrEqualTo(BigDecimal value) {
            addCriterion("accounting_amount <=", value, "accountingAmount");
            return (Criteria) this;
        }

        public Criteria andAccountingAmountIn(List<BigDecimal> values) {
            addCriterion("accounting_amount in", values, "accountingAmount");
            return (Criteria) this;
        }

        public Criteria andAccountingAmountNotIn(List<BigDecimal> values) {
            addCriterion("accounting_amount not in", values, "accountingAmount");
            return (Criteria) this;
        }

        public Criteria andAccountingAmountBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("accounting_amount between", value1, value2, "accountingAmount");
            return (Criteria) this;
        }

        public Criteria andAccountingAmountNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("accounting_amount not between", value1, value2, "accountingAmount");
            return (Criteria) this;
        }

        public Criteria andStatisticsTotalAmountIsNull() {
            addCriterion("statistics_total_amount is null");
            return (Criteria) this;
        }

        public Criteria andStatisticsTotalAmountIsNotNull() {
            addCriterion("statistics_total_amount is not null");
            return (Criteria) this;
        }

        public Criteria andStatisticsTotalAmountEqualTo(BigDecimal value) {
            addCriterion("statistics_total_amount =", value, "statisticsTotalAmount");
            return (Criteria) this;
        }

        public Criteria andStatisticsTotalAmountNotEqualTo(BigDecimal value) {
            addCriterion("statistics_total_amount <>", value, "statisticsTotalAmount");
            return (Criteria) this;
        }

        public Criteria andStatisticsTotalAmountGreaterThan(BigDecimal value) {
            addCriterion("statistics_total_amount >", value, "statisticsTotalAmount");
            return (Criteria) this;
        }

        public Criteria andStatisticsTotalAmountGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("statistics_total_amount >=", value, "statisticsTotalAmount");
            return (Criteria) this;
        }

        public Criteria andStatisticsTotalAmountLessThan(BigDecimal value) {
            addCriterion("statistics_total_amount <", value, "statisticsTotalAmount");
            return (Criteria) this;
        }

        public Criteria andStatisticsTotalAmountLessThanOrEqualTo(BigDecimal value) {
            addCriterion("statistics_total_amount <=", value, "statisticsTotalAmount");
            return (Criteria) this;
        }

        public Criteria andStatisticsTotalAmountIn(List<BigDecimal> values) {
            addCriterion("statistics_total_amount in", values, "statisticsTotalAmount");
            return (Criteria) this;
        }

        public Criteria andStatisticsTotalAmountNotIn(List<BigDecimal> values) {
            addCriterion("statistics_total_amount not in", values, "statisticsTotalAmount");
            return (Criteria) this;
        }

        public Criteria andStatisticsTotalAmountBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("statistics_total_amount between", value1, value2, "statisticsTotalAmount");
            return (Criteria) this;
        }

        public Criteria andStatisticsTotalAmountNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("statistics_total_amount not between", value1, value2, "statisticsTotalAmount");
            return (Criteria) this;
        }

        public Criteria andUnAccountingAmountIsNull() {
            addCriterion("un_accounting_amount is null");
            return (Criteria) this;
        }

        public Criteria andUnAccountingAmountIsNotNull() {
            addCriterion("un_accounting_amount is not null");
            return (Criteria) this;
        }

        public Criteria andUnAccountingAmountEqualTo(BigDecimal value) {
            addCriterion("un_accounting_amount =", value, "unAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andUnAccountingAmountNotEqualTo(BigDecimal value) {
            addCriterion("un_accounting_amount <>", value, "unAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andUnAccountingAmountGreaterThan(BigDecimal value) {
            addCriterion("un_accounting_amount >", value, "unAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andUnAccountingAmountGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("un_accounting_amount >=", value, "unAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andUnAccountingAmountLessThan(BigDecimal value) {
            addCriterion("un_accounting_amount <", value, "unAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andUnAccountingAmountLessThanOrEqualTo(BigDecimal value) {
            addCriterion("un_accounting_amount <=", value, "unAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andUnAccountingAmountIn(List<BigDecimal> values) {
            addCriterion("un_accounting_amount in", values, "unAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andUnAccountingAmountNotIn(List<BigDecimal> values) {
            addCriterion("un_accounting_amount not in", values, "unAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andUnAccountingAmountBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("un_accounting_amount between", value1, value2, "unAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andUnAccountingAmountNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("un_accounting_amount not between", value1, value2, "unAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andJcUnAccountingAmountIsNull() {
            addCriterion("jc_un_accounting_amount is null");
            return (Criteria) this;
        }

        public Criteria andJcUnAccountingAmountIsNotNull() {
            addCriterion("jc_un_accounting_amount is not null");
            return (Criteria) this;
        }

        public Criteria andJcUnAccountingAmountEqualTo(BigDecimal value) {
            addCriterion("jc_un_accounting_amount =", value, "jcUnAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andJcUnAccountingAmountNotEqualTo(BigDecimal value) {
            addCriterion("jc_un_accounting_amount <>", value, "jcUnAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andJcUnAccountingAmountGreaterThan(BigDecimal value) {
            addCriterion("jc_un_accounting_amount >", value, "jcUnAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andJcUnAccountingAmountGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("jc_un_accounting_amount >=", value, "jcUnAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andJcUnAccountingAmountLessThan(BigDecimal value) {
            addCriterion("jc_un_accounting_amount <", value, "jcUnAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andJcUnAccountingAmountLessThanOrEqualTo(BigDecimal value) {
            addCriterion("jc_un_accounting_amount <=", value, "jcUnAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andJcUnAccountingAmountIn(List<BigDecimal> values) {
            addCriterion("jc_un_accounting_amount in", values, "jcUnAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andJcUnAccountingAmountNotIn(List<BigDecimal> values) {
            addCriterion("jc_un_accounting_amount not in", values, "jcUnAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andJcUnAccountingAmountBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("jc_un_accounting_amount between", value1, value2, "jcUnAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andJcUnAccountingAmountNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("jc_un_accounting_amount not between", value1, value2, "jcUnAccountingAmount");
            return (Criteria) this;
        }

        public Criteria andAccountingStatusIsNull() {
            addCriterion("accounting_status is null");
            return (Criteria) this;
        }

        public Criteria andAccountingStatusIsNotNull() {
            addCriterion("accounting_status is not null");
            return (Criteria) this;
        }

        public Criteria andAccountingStatusEqualTo(Integer value) {
            addCriterion("accounting_status =", value, "accountingStatus");
            return (Criteria) this;
        }

        public Criteria andAccountingStatusNotEqualTo(Integer value) {
            addCriterion("accounting_status <>", value, "accountingStatus");
            return (Criteria) this;
        }

        public Criteria andAccountingStatusGreaterThan(Integer value) {
            addCriterion("accounting_status >", value, "accountingStatus");
            return (Criteria) this;
        }

        public Criteria andAccountingStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("accounting_status >=", value, "accountingStatus");
            return (Criteria) this;
        }

        public Criteria andAccountingStatusLessThan(Integer value) {
            addCriterion("accounting_status <", value, "accountingStatus");
            return (Criteria) this;
        }

        public Criteria andAccountingStatusLessThanOrEqualTo(Integer value) {
            addCriterion("accounting_status <=", value, "accountingStatus");
            return (Criteria) this;
        }

        public Criteria andAccountingStatusIn(List<Integer> values) {
            addCriterion("accounting_status in", values, "accountingStatus");
            return (Criteria) this;
        }

        public Criteria andAccountingStatusNotIn(List<Integer> values) {
            addCriterion("accounting_status not in", values, "accountingStatus");
            return (Criteria) this;
        }

        public Criteria andAccountingStatusBetween(Integer value1, Integer value2) {
            addCriterion("accounting_status between", value1, value2, "accountingStatus");
            return (Criteria) this;
        }

        public Criteria andAccountingStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("accounting_status not between", value1, value2, "accountingStatus");
            return (Criteria) this;
        }

        public Criteria andInvoiceTypeIsNull() {
            addCriterion("invoice_type is null");
            return (Criteria) this;
        }

        public Criteria andInvoiceTypeIsNotNull() {
            addCriterion("invoice_type is not null");
            return (Criteria) this;
        }

        public Criteria andInvoiceTypeEqualTo(Integer value) {
            addCriterion("invoice_type =", value, "invoiceType");
            return (Criteria) this;
        }

        public Criteria andInvoiceTypeNotEqualTo(Integer value) {
            addCriterion("invoice_type <>", value, "invoiceType");
            return (Criteria) this;
        }

        public Criteria andInvoiceTypeGreaterThan(Integer value) {
            addCriterion("invoice_type >", value, "invoiceType");
            return (Criteria) this;
        }

        public Criteria andInvoiceTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("invoice_type >=", value, "invoiceType");
            return (Criteria) this;
        }

        public Criteria andInvoiceTypeLessThan(Integer value) {
            addCriterion("invoice_type <", value, "invoiceType");
            return (Criteria) this;
        }

        public Criteria andInvoiceTypeLessThanOrEqualTo(Integer value) {
            addCriterion("invoice_type <=", value, "invoiceType");
            return (Criteria) this;
        }

        public Criteria andInvoiceTypeIn(List<Integer> values) {
            addCriterion("invoice_type in", values, "invoiceType");
            return (Criteria) this;
        }

        public Criteria andInvoiceTypeNotIn(List<Integer> values) {
            addCriterion("invoice_type not in", values, "invoiceType");
            return (Criteria) this;
        }

        public Criteria andInvoiceTypeBetween(Integer value1, Integer value2) {
            addCriterion("invoice_type between", value1, value2, "invoiceType");
            return (Criteria) this;
        }

        public Criteria andInvoiceTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("invoice_type not between", value1, value2, "invoiceType");
            return (Criteria) this;
        }

        public Criteria andInvoiceStatusIsNull() {
            addCriterion("invoice_status is null");
            return (Criteria) this;
        }

        public Criteria andInvoiceStatusIsNotNull() {
            addCriterion("invoice_status is not null");
            return (Criteria) this;
        }

        public Criteria andInvoiceStatusEqualTo(Integer value) {
            addCriterion("invoice_status =", value, "invoiceStatus");
            return (Criteria) this;
        }

        public Criteria andInvoiceStatusNotEqualTo(Integer value) {
            addCriterion("invoice_status <>", value, "invoiceStatus");
            return (Criteria) this;
        }

        public Criteria andInvoiceStatusGreaterThan(Integer value) {
            addCriterion("invoice_status >", value, "invoiceStatus");
            return (Criteria) this;
        }

        public Criteria andInvoiceStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("invoice_status >=", value, "invoiceStatus");
            return (Criteria) this;
        }

        public Criteria andInvoiceStatusLessThan(Integer value) {
            addCriterion("invoice_status <", value, "invoiceStatus");
            return (Criteria) this;
        }

        public Criteria andInvoiceStatusLessThanOrEqualTo(Integer value) {
            addCriterion("invoice_status <=", value, "invoiceStatus");
            return (Criteria) this;
        }

        public Criteria andInvoiceStatusIn(List<Integer> values) {
            addCriterion("invoice_status in", values, "invoiceStatus");
            return (Criteria) this;
        }

        public Criteria andInvoiceStatusNotIn(List<Integer> values) {
            addCriterion("invoice_status not in", values, "invoiceStatus");
            return (Criteria) this;
        }

        public Criteria andInvoiceStatusBetween(Integer value1, Integer value2) {
            addCriterion("invoice_status between", value1, value2, "invoiceStatus");
            return (Criteria) this;
        }

        public Criteria andInvoiceStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("invoice_status not between", value1, value2, "invoiceStatus");
            return (Criteria) this;
        }

        public Criteria andInvoiceCompanyNameIsNull() {
            addCriterion("invoice_company_name is null");
            return (Criteria) this;
        }

        public Criteria andInvoiceCompanyNameIsNotNull() {
            addCriterion("invoice_company_name is not null");
            return (Criteria) this;
        }

        public Criteria andInvoiceCompanyNameEqualTo(String value) {
            addCriterion("invoice_company_name =", value, "invoiceCompanyName");
            return (Criteria) this;
        }

        public Criteria andInvoiceCompanyNameNotEqualTo(String value) {
            addCriterion("invoice_company_name <>", value, "invoiceCompanyName");
            return (Criteria) this;
        }

        public Criteria andInvoiceCompanyNameGreaterThan(String value) {
            addCriterion("invoice_company_name >", value, "invoiceCompanyName");
            return (Criteria) this;
        }

        public Criteria andInvoiceCompanyNameGreaterThanOrEqualTo(String value) {
            addCriterion("invoice_company_name >=", value, "invoiceCompanyName");
            return (Criteria) this;
        }

        public Criteria andInvoiceCompanyNameLessThan(String value) {
            addCriterion("invoice_company_name <", value, "invoiceCompanyName");
            return (Criteria) this;
        }

        public Criteria andInvoiceCompanyNameLessThanOrEqualTo(String value) {
            addCriterion("invoice_company_name <=", value, "invoiceCompanyName");
            return (Criteria) this;
        }

        public Criteria andInvoiceCompanyNameLike(String value) {
            addCriterion("invoice_company_name like", value, "invoiceCompanyName");
            return (Criteria) this;
        }

        public Criteria andInvoiceCompanyNameNotLike(String value) {
            addCriterion("invoice_company_name not like", value, "invoiceCompanyName");
            return (Criteria) this;
        }

        public Criteria andInvoiceCompanyNameIn(List<String> values) {
            addCriterion("invoice_company_name in", values, "invoiceCompanyName");
            return (Criteria) this;
        }

        public Criteria andInvoiceCompanyNameNotIn(List<String> values) {
            addCriterion("invoice_company_name not in", values, "invoiceCompanyName");
            return (Criteria) this;
        }

        public Criteria andInvoiceCompanyNameBetween(String value1, String value2) {
            addCriterion("invoice_company_name between", value1, value2, "invoiceCompanyName");
            return (Criteria) this;
        }

        public Criteria andInvoiceCompanyNameNotBetween(String value1, String value2) {
            addCriterion("invoice_company_name not between", value1, value2, "invoiceCompanyName");
            return (Criteria) this;
        }

        public Criteria andInvoiceTaxpayersIDCodeIsNull() {
            addCriterion("invoice_taxpayers_i_d_code is null");
            return (Criteria) this;
        }

        public Criteria andInvoiceTaxpayersIDCodeIsNotNull() {
            addCriterion("invoice_taxpayers_i_d_code is not null");
            return (Criteria) this;
        }

        public Criteria andInvoiceTaxpayersIDCodeEqualTo(String value) {
            addCriterion("invoice_taxpayers_i_d_code =", value, "invoiceTaxpayersIDCode");
            return (Criteria) this;
        }

        public Criteria andInvoiceTaxpayersIDCodeNotEqualTo(String value) {
            addCriterion("invoice_taxpayers_i_d_code <>", value, "invoiceTaxpayersIDCode");
            return (Criteria) this;
        }

        public Criteria andInvoiceTaxpayersIDCodeGreaterThan(String value) {
            addCriterion("invoice_taxpayers_i_d_code >", value, "invoiceTaxpayersIDCode");
            return (Criteria) this;
        }

        public Criteria andInvoiceTaxpayersIDCodeGreaterThanOrEqualTo(String value) {
            addCriterion("invoice_taxpayers_i_d_code >=", value, "invoiceTaxpayersIDCode");
            return (Criteria) this;
        }

        public Criteria andInvoiceTaxpayersIDCodeLessThan(String value) {
            addCriterion("invoice_taxpayers_i_d_code <", value, "invoiceTaxpayersIDCode");
            return (Criteria) this;
        }

        public Criteria andInvoiceTaxpayersIDCodeLessThanOrEqualTo(String value) {
            addCriterion("invoice_taxpayers_i_d_code <=", value, "invoiceTaxpayersIDCode");
            return (Criteria) this;
        }

        public Criteria andInvoiceTaxpayersIDCodeLike(String value) {
            addCriterion("invoice_taxpayers_i_d_code like", value, "invoiceTaxpayersIDCode");
            return (Criteria) this;
        }

        public Criteria andInvoiceTaxpayersIDCodeNotLike(String value) {
            addCriterion("invoice_taxpayers_i_d_code not like", value, "invoiceTaxpayersIDCode");
            return (Criteria) this;
        }

        public Criteria andInvoiceTaxpayersIDCodeIn(List<String> values) {
            addCriterion("invoice_taxpayers_i_d_code in", values, "invoiceTaxpayersIDCode");
            return (Criteria) this;
        }

        public Criteria andInvoiceTaxpayersIDCodeNotIn(List<String> values) {
            addCriterion("invoice_taxpayers_i_d_code not in", values, "invoiceTaxpayersIDCode");
            return (Criteria) this;
        }

        public Criteria andInvoiceTaxpayersIDCodeBetween(String value1, String value2) {
            addCriterion("invoice_taxpayers_i_d_code between", value1, value2, "invoiceTaxpayersIDCode");
            return (Criteria) this;
        }

        public Criteria andInvoiceTaxpayersIDCodeNotBetween(String value1, String value2) {
            addCriterion("invoice_taxpayers_i_d_code not between", value1, value2, "invoiceTaxpayersIDCode");
            return (Criteria) this;
        }

        public Criteria andEnterpriseIdIsNull() {
            addCriterion("enterprise_id is null");
            return (Criteria) this;
        }

        public Criteria andEnterpriseIdIsNotNull() {
            addCriterion("enterprise_id is not null");
            return (Criteria) this;
        }

        public Criteria andEnterpriseIdEqualTo(String value) {
            addCriterion("enterprise_id =", value, "enterpriseId");
            return (Criteria) this;
        }

        public Criteria andEnterpriseIdNotEqualTo(String value) {
            addCriterion("enterprise_id <>", value, "enterpriseId");
            return (Criteria) this;
        }

        public Criteria andEnterpriseIdGreaterThan(String value) {
            addCriterion("enterprise_id >", value, "enterpriseId");
            return (Criteria) this;
        }

        public Criteria andEnterpriseIdGreaterThanOrEqualTo(String value) {
            addCriterion("enterprise_id >=", value, "enterpriseId");
            return (Criteria) this;
        }

        public Criteria andEnterpriseIdLessThan(String value) {
            addCriterion("enterprise_id <", value, "enterpriseId");
            return (Criteria) this;
        }

        public Criteria andEnterpriseIdLessThanOrEqualTo(String value) {
            addCriterion("enterprise_id <=", value, "enterpriseId");
            return (Criteria) this;
        }

        public Criteria andEnterpriseIdLike(String value) {
            addCriterion("enterprise_id like", value, "enterpriseId");
            return (Criteria) this;
        }

        public Criteria andEnterpriseIdNotLike(String value) {
            addCriterion("enterprise_id not like", value, "enterpriseId");
            return (Criteria) this;
        }

        public Criteria andEnterpriseIdIn(List<String> values) {
            addCriterion("enterprise_id in", values, "enterpriseId");
            return (Criteria) this;
        }

        public Criteria andEnterpriseIdNotIn(List<String> values) {
            addCriterion("enterprise_id not in", values, "enterpriseId");
            return (Criteria) this;
        }

        public Criteria andEnterpriseIdBetween(String value1, String value2) {
            addCriterion("enterprise_id between", value1, value2, "enterpriseId");
            return (Criteria) this;
        }

        public Criteria andEnterpriseIdNotBetween(String value1, String value2) {
            addCriterion("enterprise_id not between", value1, value2, "enterpriseId");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserIdIsNull() {
            addCriterion("purchase_user_id is null");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserIdIsNotNull() {
            addCriterion("purchase_user_id is not null");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserIdEqualTo(String value) {
            addCriterion("purchase_user_id =", value, "purchaseUserId");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserIdNotEqualTo(String value) {
            addCriterion("purchase_user_id <>", value, "purchaseUserId");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserIdGreaterThan(String value) {
            addCriterion("purchase_user_id >", value, "purchaseUserId");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserIdGreaterThanOrEqualTo(String value) {
            addCriterion("purchase_user_id >=", value, "purchaseUserId");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserIdLessThan(String value) {
            addCriterion("purchase_user_id <", value, "purchaseUserId");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserIdLessThanOrEqualTo(String value) {
            addCriterion("purchase_user_id <=", value, "purchaseUserId");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserIdLike(String value) {
            addCriterion("purchase_user_id like", value, "purchaseUserId");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserIdNotLike(String value) {
            addCriterion("purchase_user_id not like", value, "purchaseUserId");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserIdIn(List<String> values) {
            addCriterion("purchase_user_id in", values, "purchaseUserId");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserIdNotIn(List<String> values) {
            addCriterion("purchase_user_id not in", values, "purchaseUserId");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserIdBetween(String value1, String value2) {
            addCriterion("purchase_user_id between", value1, value2, "purchaseUserId");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserIdNotBetween(String value1, String value2) {
            addCriterion("purchase_user_id not between", value1, value2, "purchaseUserId");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserNameIsNull() {
            addCriterion("purchase_user_name is null");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserNameIsNotNull() {
            addCriterion("purchase_user_name is not null");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserNameEqualTo(String value) {
            addCriterion("purchase_user_name =", value, "purchaseUserName");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserNameNotEqualTo(String value) {
            addCriterion("purchase_user_name <>", value, "purchaseUserName");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserNameGreaterThan(String value) {
            addCriterion("purchase_user_name >", value, "purchaseUserName");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserNameGreaterThanOrEqualTo(String value) {
            addCriterion("purchase_user_name >=", value, "purchaseUserName");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserNameLessThan(String value) {
            addCriterion("purchase_user_name <", value, "purchaseUserName");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserNameLessThanOrEqualTo(String value) {
            addCriterion("purchase_user_name <=", value, "purchaseUserName");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserNameLike(String value) {
            addCriterion("purchase_user_name like", value, "purchaseUserName");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserNameNotLike(String value) {
            addCriterion("purchase_user_name not like", value, "purchaseUserName");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserNameIn(List<String> values) {
            addCriterion("purchase_user_name in", values, "purchaseUserName");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserNameNotIn(List<String> values) {
            addCriterion("purchase_user_name not in", values, "purchaseUserName");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserNameBetween(String value1, String value2) {
            addCriterion("purchase_user_name between", value1, value2, "purchaseUserName");
            return (Criteria) this;
        }

        public Criteria andPurchaseUserNameNotBetween(String value1, String value2) {
            addCriterion("purchase_user_name not between", value1, value2, "purchaseUserName");
            return (Criteria) this;
        }

        public Criteria andPurchasePhoneIsNull() {
            addCriterion("purchase_phone is null");
            return (Criteria) this;
        }

        public Criteria andPurchasePhoneIsNotNull() {
            addCriterion("purchase_phone is not null");
            return (Criteria) this;
        }

        public Criteria andPurchasePhoneEqualTo(String value) {
            addCriterion("purchase_phone =", value, "purchasePhone");
            return (Criteria) this;
        }

        public Criteria andPurchasePhoneNotEqualTo(String value) {
            addCriterion("purchase_phone <>", value, "purchasePhone");
            return (Criteria) this;
        }

        public Criteria andPurchasePhoneGreaterThan(String value) {
            addCriterion("purchase_phone >", value, "purchasePhone");
            return (Criteria) this;
        }

        public Criteria andPurchasePhoneGreaterThanOrEqualTo(String value) {
            addCriterion("purchase_phone >=", value, "purchasePhone");
            return (Criteria) this;
        }

        public Criteria andPurchasePhoneLessThan(String value) {
            addCriterion("purchase_phone <", value, "purchasePhone");
            return (Criteria) this;
        }

        public Criteria andPurchasePhoneLessThanOrEqualTo(String value) {
            addCriterion("purchase_phone <=", value, "purchasePhone");
            return (Criteria) this;
        }

        public Criteria andPurchasePhoneLike(String value) {
            addCriterion("purchase_phone like", value, "purchasePhone");
            return (Criteria) this;
        }

        public Criteria andPurchasePhoneNotLike(String value) {
            addCriterion("purchase_phone not like", value, "purchasePhone");
            return (Criteria) this;
        }

        public Criteria andPurchasePhoneIn(List<String> values) {
            addCriterion("purchase_phone in", values, "purchasePhone");
            return (Criteria) this;
        }

        public Criteria andPurchasePhoneNotIn(List<String> values) {
            addCriterion("purchase_phone not in", values, "purchasePhone");
            return (Criteria) this;
        }

        public Criteria andPurchasePhoneBetween(String value1, String value2) {
            addCriterion("purchase_phone between", value1, value2, "purchasePhone");
            return (Criteria) this;
        }

        public Criteria andPurchasePhoneNotBetween(String value1, String value2) {
            addCriterion("purchase_phone not between", value1, value2, "purchasePhone");
            return (Criteria) this;
        }

        public Criteria andPurchaseAddressIsNull() {
            addCriterion("purchase_address is null");
            return (Criteria) this;
        }

        public Criteria andPurchaseAddressIsNotNull() {
            addCriterion("purchase_address is not null");
            return (Criteria) this;
        }

        public Criteria andPurchaseAddressEqualTo(String value) {
            addCriterion("purchase_address =", value, "purchaseAddress");
            return (Criteria) this;
        }

        public Criteria andPurchaseAddressNotEqualTo(String value) {
            addCriterion("purchase_address <>", value, "purchaseAddress");
            return (Criteria) this;
        }

        public Criteria andPurchaseAddressGreaterThan(String value) {
            addCriterion("purchase_address >", value, "purchaseAddress");
            return (Criteria) this;
        }

        public Criteria andPurchaseAddressGreaterThanOrEqualTo(String value) {
            addCriterion("purchase_address >=", value, "purchaseAddress");
            return (Criteria) this;
        }

        public Criteria andPurchaseAddressLessThan(String value) {
            addCriterion("purchase_address <", value, "purchaseAddress");
            return (Criteria) this;
        }

        public Criteria andPurchaseAddressLessThanOrEqualTo(String value) {
            addCriterion("purchase_address <=", value, "purchaseAddress");
            return (Criteria) this;
        }

        public Criteria andPurchaseAddressLike(String value) {
            addCriterion("purchase_address like", value, "purchaseAddress");
            return (Criteria) this;
        }

        public Criteria andPurchaseAddressNotLike(String value) {
            addCriterion("purchase_address not like", value, "purchaseAddress");
            return (Criteria) this;
        }

        public Criteria andPurchaseAddressIn(List<String> values) {
            addCriterion("purchase_address in", values, "purchaseAddress");
            return (Criteria) this;
        }

        public Criteria andPurchaseAddressNotIn(List<String> values) {
            addCriterion("purchase_address not in", values, "purchaseAddress");
            return (Criteria) this;
        }

        public Criteria andPurchaseAddressBetween(String value1, String value2) {
            addCriterion("purchase_address between", value1, value2, "purchaseAddress");
            return (Criteria) this;
        }

        public Criteria andPurchaseAddressNotBetween(String value1, String value2) {
            addCriterion("purchase_address not between", value1, value2, "purchaseAddress");
            return (Criteria) this;
        }

        public Criteria andPurchaseEmailIsNull() {
            addCriterion("purchase_email is null");
            return (Criteria) this;
        }

        public Criteria andPurchaseEmailIsNotNull() {
            addCriterion("purchase_email is not null");
            return (Criteria) this;
        }

        public Criteria andPurchaseEmailEqualTo(String value) {
            addCriterion("purchase_email =", value, "purchaseEmail");
            return (Criteria) this;
        }

        public Criteria andPurchaseEmailNotEqualTo(String value) {
            addCriterion("purchase_email <>", value, "purchaseEmail");
            return (Criteria) this;
        }

        public Criteria andPurchaseEmailGreaterThan(String value) {
            addCriterion("purchase_email >", value, "purchaseEmail");
            return (Criteria) this;
        }

        public Criteria andPurchaseEmailGreaterThanOrEqualTo(String value) {
            addCriterion("purchase_email >=", value, "purchaseEmail");
            return (Criteria) this;
        }

        public Criteria andPurchaseEmailLessThan(String value) {
            addCriterion("purchase_email <", value, "purchaseEmail");
            return (Criteria) this;
        }

        public Criteria andPurchaseEmailLessThanOrEqualTo(String value) {
            addCriterion("purchase_email <=", value, "purchaseEmail");
            return (Criteria) this;
        }

        public Criteria andPurchaseEmailLike(String value) {
            addCriterion("purchase_email like", value, "purchaseEmail");
            return (Criteria) this;
        }

        public Criteria andPurchaseEmailNotLike(String value) {
            addCriterion("purchase_email not like", value, "purchaseEmail");
            return (Criteria) this;
        }

        public Criteria andPurchaseEmailIn(List<String> values) {
            addCriterion("purchase_email in", values, "purchaseEmail");
            return (Criteria) this;
        }

        public Criteria andPurchaseEmailNotIn(List<String> values) {
            addCriterion("purchase_email not in", values, "purchaseEmail");
            return (Criteria) this;
        }

        public Criteria andPurchaseEmailBetween(String value1, String value2) {
            addCriterion("purchase_email between", value1, value2, "purchaseEmail");
            return (Criteria) this;
        }

        public Criteria andPurchaseEmailNotBetween(String value1, String value2) {
            addCriterion("purchase_email not between", value1, value2, "purchaseEmail");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtIdIsNull() {
            addCriterion("purchase_virt_id is null");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtIdIsNotNull() {
            addCriterion("purchase_virt_id is not null");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtIdEqualTo(String value) {
            addCriterion("purchase_virt_id =", value, "purchaseVirtId");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtIdNotEqualTo(String value) {
            addCriterion("purchase_virt_id <>", value, "purchaseVirtId");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtIdGreaterThan(String value) {
            addCriterion("purchase_virt_id >", value, "purchaseVirtId");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtIdGreaterThanOrEqualTo(String value) {
            addCriterion("purchase_virt_id >=", value, "purchaseVirtId");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtIdLessThan(String value) {
            addCriterion("purchase_virt_id <", value, "purchaseVirtId");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtIdLessThanOrEqualTo(String value) {
            addCriterion("purchase_virt_id <=", value, "purchaseVirtId");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtIdLike(String value) {
            addCriterion("purchase_virt_id like", value, "purchaseVirtId");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtIdNotLike(String value) {
            addCriterion("purchase_virt_id not like", value, "purchaseVirtId");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtIdIn(List<String> values) {
            addCriterion("purchase_virt_id in", values, "purchaseVirtId");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtIdNotIn(List<String> values) {
            addCriterion("purchase_virt_id not in", values, "purchaseVirtId");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtIdBetween(String value1, String value2) {
            addCriterion("purchase_virt_id between", value1, value2, "purchaseVirtId");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtIdNotBetween(String value1, String value2) {
            addCriterion("purchase_virt_id not between", value1, value2, "purchaseVirtId");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtNameIsNull() {
            addCriterion("purchase_virt_name is null");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtNameIsNotNull() {
            addCriterion("purchase_virt_name is not null");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtNameEqualTo(String value) {
            addCriterion("purchase_virt_name =", value, "purchaseVirtName");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtNameNotEqualTo(String value) {
            addCriterion("purchase_virt_name <>", value, "purchaseVirtName");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtNameGreaterThan(String value) {
            addCriterion("purchase_virt_name >", value, "purchaseVirtName");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtNameGreaterThanOrEqualTo(String value) {
            addCriterion("purchase_virt_name >=", value, "purchaseVirtName");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtNameLessThan(String value) {
            addCriterion("purchase_virt_name <", value, "purchaseVirtName");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtNameLessThanOrEqualTo(String value) {
            addCriterion("purchase_virt_name <=", value, "purchaseVirtName");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtNameLike(String value) {
            addCriterion("purchase_virt_name like", value, "purchaseVirtName");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtNameNotLike(String value) {
            addCriterion("purchase_virt_name not like", value, "purchaseVirtName");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtNameIn(List<String> values) {
            addCriterion("purchase_virt_name in", values, "purchaseVirtName");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtNameNotIn(List<String> values) {
            addCriterion("purchase_virt_name not in", values, "purchaseVirtName");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtNameBetween(String value1, String value2) {
            addCriterion("purchase_virt_name between", value1, value2, "purchaseVirtName");
            return (Criteria) this;
        }

        public Criteria andPurchaseVirtNameNotBetween(String value1, String value2) {
            addCriterion("purchase_virt_name not between", value1, value2, "purchaseVirtName");
            return (Criteria) this;
        }

        public Criteria andIsSendEmailIsNull() {
            addCriterion("is_send_email is null");
            return (Criteria) this;
        }

        public Criteria andIsSendEmailIsNotNull() {
            addCriterion("is_send_email is not null");
            return (Criteria) this;
        }

        public Criteria andIsSendEmailEqualTo(Integer value) {
            addCriterion("is_send_email =", value, "isSendEmail");
            return (Criteria) this;
        }

        public Criteria andIsSendEmailNotEqualTo(Integer value) {
            addCriterion("is_send_email <>", value, "isSendEmail");
            return (Criteria) this;
        }

        public Criteria andIsSendEmailGreaterThan(Integer value) {
            addCriterion("is_send_email >", value, "isSendEmail");
            return (Criteria) this;
        }

        public Criteria andIsSendEmailGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_send_email >=", value, "isSendEmail");
            return (Criteria) this;
        }

        public Criteria andIsSendEmailLessThan(Integer value) {
            addCriterion("is_send_email <", value, "isSendEmail");
            return (Criteria) this;
        }

        public Criteria andIsSendEmailLessThanOrEqualTo(Integer value) {
            addCriterion("is_send_email <=", value, "isSendEmail");
            return (Criteria) this;
        }

        public Criteria andIsSendEmailIn(List<Integer> values) {
            addCriterion("is_send_email in", values, "isSendEmail");
            return (Criteria) this;
        }

        public Criteria andIsSendEmailNotIn(List<Integer> values) {
            addCriterion("is_send_email not in", values, "isSendEmail");
            return (Criteria) this;
        }

        public Criteria andIsSendEmailBetween(Integer value1, Integer value2) {
            addCriterion("is_send_email between", value1, value2, "isSendEmail");
            return (Criteria) this;
        }

        public Criteria andIsSendEmailNotBetween(Integer value1, Integer value2) {
            addCriterion("is_send_email not between", value1, value2, "isSendEmail");
            return (Criteria) this;
        }

        public Criteria andSendEmailTimeIsNull() {
            addCriterion("send_email_time is null");
            return (Criteria) this;
        }

        public Criteria andSendEmailTimeIsNotNull() {
            addCriterion("send_email_time is not null");
            return (Criteria) this;
        }

        public Criteria andSendEmailTimeEqualTo(Date value) {
            addCriterion("send_email_time =", value, "sendEmailTime");
            return (Criteria) this;
        }

        public Criteria andSendEmailTimeNotEqualTo(Date value) {
            addCriterion("send_email_time <>", value, "sendEmailTime");
            return (Criteria) this;
        }

        public Criteria andSendEmailTimeGreaterThan(Date value) {
            addCriterion("send_email_time >", value, "sendEmailTime");
            return (Criteria) this;
        }

        public Criteria andSendEmailTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("send_email_time >=", value, "sendEmailTime");
            return (Criteria) this;
        }

        public Criteria andSendEmailTimeLessThan(Date value) {
            addCriterion("send_email_time <", value, "sendEmailTime");
            return (Criteria) this;
        }

        public Criteria andSendEmailTimeLessThanOrEqualTo(Date value) {
            addCriterion("send_email_time <=", value, "sendEmailTime");
            return (Criteria) this;
        }

        public Criteria andSendEmailTimeIn(List<Date> values) {
            addCriterion("send_email_time in", values, "sendEmailTime");
            return (Criteria) this;
        }

        public Criteria andSendEmailTimeNotIn(List<Date> values) {
            addCriterion("send_email_time not in", values, "sendEmailTime");
            return (Criteria) this;
        }

        public Criteria andSendEmailTimeBetween(Date value1, Date value2) {
            addCriterion("send_email_time between", value1, value2, "sendEmailTime");
            return (Criteria) this;
        }

        public Criteria andSendEmailTimeNotBetween(Date value1, Date value2) {
            addCriterion("send_email_time not between", value1, value2, "sendEmailTime");
            return (Criteria) this;
        }

        public Criteria andDateTypeIsNull() {
            addCriterion("date_type is null");
            return (Criteria) this;
        }

        public Criteria andDateTypeIsNotNull() {
            addCriterion("date_type is not null");
            return (Criteria) this;
        }

        public Criteria andDateTypeEqualTo(Integer value) {
            addCriterion("date_type =", value, "dateType");
            return (Criteria) this;
        }

        public Criteria andDateTypeNotEqualTo(Integer value) {
            addCriterion("date_type <>", value, "dateType");
            return (Criteria) this;
        }

        public Criteria andDateTypeGreaterThan(Integer value) {
            addCriterion("date_type >", value, "dateType");
            return (Criteria) this;
        }

        public Criteria andDateTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("date_type >=", value, "dateType");
            return (Criteria) this;
        }

        public Criteria andDateTypeLessThan(Integer value) {
            addCriterion("date_type <", value, "dateType");
            return (Criteria) this;
        }

        public Criteria andDateTypeLessThanOrEqualTo(Integer value) {
            addCriterion("date_type <=", value, "dateType");
            return (Criteria) this;
        }

        public Criteria andDateTypeIn(List<Integer> values) {
            addCriterion("date_type in", values, "dateType");
            return (Criteria) this;
        }

        public Criteria andDateTypeNotIn(List<Integer> values) {
            addCriterion("date_type not in", values, "dateType");
            return (Criteria) this;
        }

        public Criteria andDateTypeBetween(Integer value1, Integer value2) {
            addCriterion("date_type between", value1, value2, "dateType");
            return (Criteria) this;
        }

        public Criteria andDateTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("date_type not between", value1, value2, "dateType");
            return (Criteria) this;
        }

        public Criteria andStartTimeIsNull() {
            addCriterion("start_time is null");
            return (Criteria) this;
        }

        public Criteria andStartTimeIsNotNull() {
            addCriterion("start_time is not null");
            return (Criteria) this;
        }

        public Criteria andStartTimeEqualTo(Date value) {
            addCriterion("start_time =", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotEqualTo(Date value) {
            addCriterion("start_time <>", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeGreaterThan(Date value) {
            addCriterion("start_time >", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("start_time >=", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeLessThan(Date value) {
            addCriterion("start_time <", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeLessThanOrEqualTo(Date value) {
            addCriterion("start_time <=", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeIn(List<Date> values) {
            addCriterion("start_time in", values, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotIn(List<Date> values) {
            addCriterion("start_time not in", values, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeBetween(Date value1, Date value2) {
            addCriterion("start_time between", value1, value2, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotBetween(Date value1, Date value2) {
            addCriterion("start_time not between", value1, value2, "startTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeIsNull() {
            addCriterion("end_time is null");
            return (Criteria) this;
        }

        public Criteria andEndTimeIsNotNull() {
            addCriterion("end_time is not null");
            return (Criteria) this;
        }

        public Criteria andEndTimeEqualTo(Date value) {
            addCriterion("end_time =", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotEqualTo(Date value) {
            addCriterion("end_time <>", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeGreaterThan(Date value) {
            addCriterion("end_time >", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("end_time >=", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLessThan(Date value) {
            addCriterion("end_time <", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLessThanOrEqualTo(Date value) {
            addCriterion("end_time <=", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeIn(List<Date> values) {
            addCriterion("end_time in", values, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotIn(List<Date> values) {
            addCriterion("end_time not in", values, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeBetween(Date value1, Date value2) {
            addCriterion("end_time between", value1, value2, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotBetween(Date value1, Date value2) {
            addCriterion("end_time not between", value1, value2, "endTime");
            return (Criteria) this;
        }

        public Criteria andBackAccountStatusIsNull() {
            addCriterion("back_account_status is null");
            return (Criteria) this;
        }

        public Criteria andBackAccountStatusIsNotNull() {
            addCriterion("back_account_status is not null");
            return (Criteria) this;
        }

        public Criteria andBackAccountStatusEqualTo(Integer value) {
            addCriterion("back_account_status =", value, "backAccountStatus");
            return (Criteria) this;
        }

        public Criteria andBackAccountStatusNotEqualTo(Integer value) {
            addCriterion("back_account_status <>", value, "backAccountStatus");
            return (Criteria) this;
        }

        public Criteria andBackAccountStatusGreaterThan(Integer value) {
            addCriterion("back_account_status >", value, "backAccountStatus");
            return (Criteria) this;
        }

        public Criteria andBackAccountStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("back_account_status >=", value, "backAccountStatus");
            return (Criteria) this;
        }

        public Criteria andBackAccountStatusLessThan(Integer value) {
            addCriterion("back_account_status <", value, "backAccountStatus");
            return (Criteria) this;
        }

        public Criteria andBackAccountStatusLessThanOrEqualTo(Integer value) {
            addCriterion("back_account_status <=", value, "backAccountStatus");
            return (Criteria) this;
        }

        public Criteria andBackAccountStatusIn(List<Integer> values) {
            addCriterion("back_account_status in", values, "backAccountStatus");
            return (Criteria) this;
        }

        public Criteria andBackAccountStatusNotIn(List<Integer> values) {
            addCriterion("back_account_status not in", values, "backAccountStatus");
            return (Criteria) this;
        }

        public Criteria andBackAccountStatusBetween(Integer value1, Integer value2) {
            addCriterion("back_account_status between", value1, value2, "backAccountStatus");
            return (Criteria) this;
        }

        public Criteria andBackAccountStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("back_account_status not between", value1, value2, "backAccountStatus");
            return (Criteria) this;
        }

        public Criteria andBankInfoIdIsNull() {
            addCriterion("bank_info_id is null");
            return (Criteria) this;
        }

        public Criteria andBankInfoIdIsNotNull() {
            addCriterion("bank_info_id is not null");
            return (Criteria) this;
        }

        public Criteria andBankInfoIdEqualTo(Long value) {
            addCriterion("bank_info_id =", value, "bankInfoId");
            return (Criteria) this;
        }

        public Criteria andBankInfoIdNotEqualTo(Long value) {
            addCriterion("bank_info_id <>", value, "bankInfoId");
            return (Criteria) this;
        }

        public Criteria andBankInfoIdGreaterThan(Long value) {
            addCriterion("bank_info_id >", value, "bankInfoId");
            return (Criteria) this;
        }

        public Criteria andBankInfoIdGreaterThanOrEqualTo(Long value) {
            addCriterion("bank_info_id >=", value, "bankInfoId");
            return (Criteria) this;
        }

        public Criteria andBankInfoIdLessThan(Long value) {
            addCriterion("bank_info_id <", value, "bankInfoId");
            return (Criteria) this;
        }

        public Criteria andBankInfoIdLessThanOrEqualTo(Long value) {
            addCriterion("bank_info_id <=", value, "bankInfoId");
            return (Criteria) this;
        }

        public Criteria andBankInfoIdIn(List<Long> values) {
            addCriterion("bank_info_id in", values, "bankInfoId");
            return (Criteria) this;
        }

        public Criteria andBankInfoIdNotIn(List<Long> values) {
            addCriterion("bank_info_id not in", values, "bankInfoId");
            return (Criteria) this;
        }

        public Criteria andBankInfoIdBetween(Long value1, Long value2) {
            addCriterion("bank_info_id between", value1, value2, "bankInfoId");
            return (Criteria) this;
        }

        public Criteria andBankInfoIdNotBetween(Long value1, Long value2) {
            addCriterion("bank_info_id not between", value1, value2, "bankInfoId");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdIsNull() {
            addCriterion("create_user_id is null");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdIsNotNull() {
            addCriterion("create_user_id is not null");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdEqualTo(String value) {
            addCriterion("create_user_id =", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdNotEqualTo(String value) {
            addCriterion("create_user_id <>", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdGreaterThan(String value) {
            addCriterion("create_user_id >", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdGreaterThanOrEqualTo(String value) {
            addCriterion("create_user_id >=", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdLessThan(String value) {
            addCriterion("create_user_id <", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdLessThanOrEqualTo(String value) {
            addCriterion("create_user_id <=", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdLike(String value) {
            addCriterion("create_user_id like", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdNotLike(String value) {
            addCriterion("create_user_id not like", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdIn(List<String> values) {
            addCriterion("create_user_id in", values, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdNotIn(List<String> values) {
            addCriterion("create_user_id not in", values, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdBetween(String value1, String value2) {
            addCriterion("create_user_id between", value1, value2, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdNotBetween(String value1, String value2) {
            addCriterion("create_user_id not between", value1, value2, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameIsNull() {
            addCriterion("create_user_name is null");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameIsNotNull() {
            addCriterion("create_user_name is not null");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameEqualTo(String value) {
            addCriterion("create_user_name =", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameNotEqualTo(String value) {
            addCriterion("create_user_name <>", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameGreaterThan(String value) {
            addCriterion("create_user_name >", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameGreaterThanOrEqualTo(String value) {
            addCriterion("create_user_name >=", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameLessThan(String value) {
            addCriterion("create_user_name <", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameLessThanOrEqualTo(String value) {
            addCriterion("create_user_name <=", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameLike(String value) {
            addCriterion("create_user_name like", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameNotLike(String value) {
            addCriterion("create_user_name not like", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameIn(List<String> values) {
            addCriterion("create_user_name in", values, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameNotIn(List<String> values) {
            addCriterion("create_user_name not in", values, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameBetween(String value1, String value2) {
            addCriterion("create_user_name between", value1, value2, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameNotBetween(String value1, String value2) {
            addCriterion("create_user_name not between", value1, value2, "createUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdIsNull() {
            addCriterion("update_user_id is null");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdIsNotNull() {
            addCriterion("update_user_id is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdEqualTo(String value) {
            addCriterion("update_user_id =", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdNotEqualTo(String value) {
            addCriterion("update_user_id <>", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdGreaterThan(String value) {
            addCriterion("update_user_id >", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdGreaterThanOrEqualTo(String value) {
            addCriterion("update_user_id >=", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdLessThan(String value) {
            addCriterion("update_user_id <", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdLessThanOrEqualTo(String value) {
            addCriterion("update_user_id <=", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdLike(String value) {
            addCriterion("update_user_id like", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdNotLike(String value) {
            addCriterion("update_user_id not like", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdIn(List<String> values) {
            addCriterion("update_user_id in", values, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdNotIn(List<String> values) {
            addCriterion("update_user_id not in", values, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdBetween(String value1, String value2) {
            addCriterion("update_user_id between", value1, value2, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdNotBetween(String value1, String value2) {
            addCriterion("update_user_id not between", value1, value2, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameIsNull() {
            addCriterion("update_user_name is null");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameIsNotNull() {
            addCriterion("update_user_name is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameEqualTo(String value) {
            addCriterion("update_user_name =", value, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameNotEqualTo(String value) {
            addCriterion("update_user_name <>", value, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameGreaterThan(String value) {
            addCriterion("update_user_name >", value, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameGreaterThanOrEqualTo(String value) {
            addCriterion("update_user_name >=", value, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameLessThan(String value) {
            addCriterion("update_user_name <", value, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameLessThanOrEqualTo(String value) {
            addCriterion("update_user_name <=", value, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameLike(String value) {
            addCriterion("update_user_name like", value, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameNotLike(String value) {
            addCriterion("update_user_name not like", value, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameIn(List<String> values) {
            addCriterion("update_user_name in", values, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameNotIn(List<String> values) {
            addCriterion("update_user_name not in", values, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameBetween(String value1, String value2) {
            addCriterion("update_user_name between", value1, value2, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameNotBetween(String value1, String value2) {
            addCriterion("update_user_name not between", value1, value2, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andPayTypeIsNull() {
            addCriterion("pay_type is null");
            return (Criteria) this;
        }

        public Criteria andPayTypeIsNotNull() {
            addCriterion("pay_type is not null");
            return (Criteria) this;
        }

        public Criteria andPayTypeEqualTo(Integer value) {
            addCriterion("pay_type =", value, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeNotEqualTo(Integer value) {
            addCriterion("pay_type <>", value, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeGreaterThan(Integer value) {
            addCriterion("pay_type >", value, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("pay_type >=", value, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeLessThan(Integer value) {
            addCriterion("pay_type <", value, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeLessThanOrEqualTo(Integer value) {
            addCriterion("pay_type <=", value, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeIn(List<Integer> values) {
            addCriterion("pay_type in", values, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeNotIn(List<Integer> values) {
            addCriterion("pay_type not in", values, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeBetween(Integer value1, Integer value2) {
            addCriterion("pay_type between", value1, value2, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("pay_type not between", value1, value2, "payType");
            return (Criteria) this;
        }

        public Criteria andPayStatusIsNull() {
            addCriterion("pay_status is null");
            return (Criteria) this;
        }

        public Criteria andPayStatusIsNotNull() {
            addCriterion("pay_status is not null");
            return (Criteria) this;
        }

        public Criteria andPayStatusEqualTo(Integer value) {
            addCriterion("pay_status =", value, "payStatus");
            return (Criteria) this;
        }

        public Criteria andPayStatusNotEqualTo(Integer value) {
            addCriterion("pay_status <>", value, "payStatus");
            return (Criteria) this;
        }

        public Criteria andPayStatusGreaterThan(Integer value) {
            addCriterion("pay_status >", value, "payStatus");
            return (Criteria) this;
        }

        public Criteria andPayStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("pay_status >=", value, "payStatus");
            return (Criteria) this;
        }

        public Criteria andPayStatusLessThan(Integer value) {
            addCriterion("pay_status <", value, "payStatus");
            return (Criteria) this;
        }

        public Criteria andPayStatusLessThanOrEqualTo(Integer value) {
            addCriterion("pay_status <=", value, "payStatus");
            return (Criteria) this;
        }

        public Criteria andPayStatusIn(List<Integer> values) {
            addCriterion("pay_status in", values, "payStatus");
            return (Criteria) this;
        }

        public Criteria andPayStatusNotIn(List<Integer> values) {
            addCriterion("pay_status not in", values, "payStatus");
            return (Criteria) this;
        }

        public Criteria andPayStatusBetween(Integer value1, Integer value2) {
            addCriterion("pay_status between", value1, value2, "payStatus");
            return (Criteria) this;
        }

        public Criteria andPayStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("pay_status not between", value1, value2, "payStatus");
            return (Criteria) this;
        }

        public Criteria andWxQrcodeImgUrlIsNull() {
            addCriterion("wx_qrcode_img_url is null");
            return (Criteria) this;
        }

        public Criteria andWxQrcodeImgUrlIsNotNull() {
            addCriterion("wx_qrcode_img_url is not null");
            return (Criteria) this;
        }

        public Criteria andWxQrcodeImgUrlEqualTo(String value) {
            addCriterion("wx_qrcode_img_url =", value, "wxQrcodeImgUrl");
            return (Criteria) this;
        }

        public Criteria andWxQrcodeImgUrlNotEqualTo(String value) {
            addCriterion("wx_qrcode_img_url <>", value, "wxQrcodeImgUrl");
            return (Criteria) this;
        }

        public Criteria andWxQrcodeImgUrlGreaterThan(String value) {
            addCriterion("wx_qrcode_img_url >", value, "wxQrcodeImgUrl");
            return (Criteria) this;
        }

        public Criteria andWxQrcodeImgUrlGreaterThanOrEqualTo(String value) {
            addCriterion("wx_qrcode_img_url >=", value, "wxQrcodeImgUrl");
            return (Criteria) this;
        }

        public Criteria andWxQrcodeImgUrlLessThan(String value) {
            addCriterion("wx_qrcode_img_url <", value, "wxQrcodeImgUrl");
            return (Criteria) this;
        }

        public Criteria andWxQrcodeImgUrlLessThanOrEqualTo(String value) {
            addCriterion("wx_qrcode_img_url <=", value, "wxQrcodeImgUrl");
            return (Criteria) this;
        }

        public Criteria andWxQrcodeImgUrlLike(String value) {
            addCriterion("wx_qrcode_img_url like", value, "wxQrcodeImgUrl");
            return (Criteria) this;
        }

        public Criteria andWxQrcodeImgUrlNotLike(String value) {
            addCriterion("wx_qrcode_img_url not like", value, "wxQrcodeImgUrl");
            return (Criteria) this;
        }

        public Criteria andWxQrcodeImgUrlIn(List<String> values) {
            addCriterion("wx_qrcode_img_url in", values, "wxQrcodeImgUrl");
            return (Criteria) this;
        }

        public Criteria andWxQrcodeImgUrlNotIn(List<String> values) {
            addCriterion("wx_qrcode_img_url not in", values, "wxQrcodeImgUrl");
            return (Criteria) this;
        }

        public Criteria andWxQrcodeImgUrlBetween(String value1, String value2) {
            addCriterion("wx_qrcode_img_url between", value1, value2, "wxQrcodeImgUrl");
            return (Criteria) this;
        }

        public Criteria andWxQrcodeImgUrlNotBetween(String value1, String value2) {
            addCriterion("wx_qrcode_img_url not between", value1, value2, "wxQrcodeImgUrl");
            return (Criteria) this;
        }

        public Criteria andDeletedIsNull() {
            addCriterion("deleted is null");
            return (Criteria) this;
        }

        public Criteria andDeletedIsNotNull() {
            addCriterion("deleted is not null");
            return (Criteria) this;
        }

        public Criteria andDeletedEqualTo(Integer value) {
            addCriterion("deleted =", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotEqualTo(Integer value) {
            addCriterion("deleted <>", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedGreaterThan(Integer value) {
            addCriterion("deleted >", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedGreaterThanOrEqualTo(Integer value) {
            addCriterion("deleted >=", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedLessThan(Integer value) {
            addCriterion("deleted <", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedLessThanOrEqualTo(Integer value) {
            addCriterion("deleted <=", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedIn(List<Integer> values) {
            addCriterion("deleted in", values, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotIn(List<Integer> values) {
            addCriterion("deleted not in", values, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedBetween(Integer value1, Integer value2) {
            addCriterion("deleted between", value1, value2, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotBetween(Integer value1, Integer value2) {
            addCriterion("deleted not between", value1, value2, "deleted");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNull() {
            addCriterion("remark is null");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNotNull() {
            addCriterion("remark is not null");
            return (Criteria) this;
        }

        public Criteria andRemarkEqualTo(String value) {
            addCriterion("remark =", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotEqualTo(String value) {
            addCriterion("remark <>", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThan(String value) {
            addCriterion("remark >", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("remark >=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThan(String value) {
            addCriterion("remark <", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThanOrEqualTo(String value) {
            addCriterion("remark <=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLike(String value) {
            addCriterion("remark like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotLike(String value) {
            addCriterion("remark not like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkIn(List<String> values) {
            addCriterion("remark in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotIn(List<String> values) {
            addCriterion("remark not in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkBetween(String value1, String value2) {
            addCriterion("remark between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotBetween(String value1, String value2) {
            addCriterion("remark not between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andSyncTimeIsNull() {
            addCriterion("sync_time is null");
            return (Criteria) this;
        }

        public Criteria andSyncTimeIsNotNull() {
            addCriterion("sync_time is not null");
            return (Criteria) this;
        }

        public Criteria andSyncTimeEqualTo(Date value) {
            addCriterion("sync_time =", value, "syncTime");
            return (Criteria) this;
        }

        public Criteria andSyncTimeNotEqualTo(Date value) {
            addCriterion("sync_time <>", value, "syncTime");
            return (Criteria) this;
        }

        public Criteria andSyncTimeGreaterThan(Date value) {
            addCriterion("sync_time >", value, "syncTime");
            return (Criteria) this;
        }

        public Criteria andSyncTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("sync_time >=", value, "syncTime");
            return (Criteria) this;
        }

        public Criteria andSyncTimeLessThan(Date value) {
            addCriterion("sync_time <", value, "syncTime");
            return (Criteria) this;
        }

        public Criteria andSyncTimeLessThanOrEqualTo(Date value) {
            addCriterion("sync_time <=", value, "syncTime");
            return (Criteria) this;
        }

        public Criteria andSyncTimeIn(List<Date> values) {
            addCriterion("sync_time in", values, "syncTime");
            return (Criteria) this;
        }

        public Criteria andSyncTimeNotIn(List<Date> values) {
            addCriterion("sync_time not in", values, "syncTime");
            return (Criteria) this;
        }

        public Criteria andSyncTimeBetween(Date value1, Date value2) {
            addCriterion("sync_time between", value1, value2, "syncTime");
            return (Criteria) this;
        }

        public Criteria andSyncTimeNotBetween(Date value1, Date value2) {
            addCriterion("sync_time not between", value1, value2, "syncTime");
            return (Criteria) this;
        }

        public Criteria andStorageStatusIsNull() {
            addCriterion("storage_status is null");
            return (Criteria) this;
        }

        public Criteria andStorageStatusIsNotNull() {
            addCriterion("storage_status is not null");
            return (Criteria) this;
        }

        public Criteria andStorageStatusEqualTo(Integer value) {
            addCriterion("storage_status =", value, "storageStatus");
            return (Criteria) this;
        }

        public Criteria andStorageStatusNotEqualTo(Integer value) {
            addCriterion("storage_status <>", value, "storageStatus");
            return (Criteria) this;
        }

        public Criteria andStorageStatusGreaterThan(Integer value) {
            addCriterion("storage_status >", value, "storageStatus");
            return (Criteria) this;
        }

        public Criteria andStorageStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("storage_status >=", value, "storageStatus");
            return (Criteria) this;
        }

        public Criteria andStorageStatusLessThan(Integer value) {
            addCriterion("storage_status <", value, "storageStatus");
            return (Criteria) this;
        }

        public Criteria andStorageStatusLessThanOrEqualTo(Integer value) {
            addCriterion("storage_status <=", value, "storageStatus");
            return (Criteria) this;
        }

        public Criteria andStorageStatusIn(List<Integer> values) {
            addCriterion("storage_status in", values, "storageStatus");
            return (Criteria) this;
        }

        public Criteria andStorageStatusNotIn(List<Integer> values) {
            addCriterion("storage_status not in", values, "storageStatus");
            return (Criteria) this;
        }

        public Criteria andStorageStatusBetween(Integer value1, Integer value2) {
            addCriterion("storage_status between", value1, value2, "storageStatus");
            return (Criteria) this;
        }

        public Criteria andStorageStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("storage_status not between", value1, value2, "storageStatus");
            return (Criteria) this;
        }

        public Criteria andStorageReasonIsNull() {
            addCriterion("storage_reason is null");
            return (Criteria) this;
        }

        public Criteria andStorageReasonIsNotNull() {
            addCriterion("storage_reason is not null");
            return (Criteria) this;
        }

        public Criteria andStorageReasonEqualTo(String value) {
            addCriterion("storage_reason =", value, "storageReason");
            return (Criteria) this;
        }

        public Criteria andStorageReasonNotEqualTo(String value) {
            addCriterion("storage_reason <>", value, "storageReason");
            return (Criteria) this;
        }

        public Criteria andStorageReasonGreaterThan(String value) {
            addCriterion("storage_reason >", value, "storageReason");
            return (Criteria) this;
        }

        public Criteria andStorageReasonGreaterThanOrEqualTo(String value) {
            addCriterion("storage_reason >=", value, "storageReason");
            return (Criteria) this;
        }

        public Criteria andStorageReasonLessThan(String value) {
            addCriterion("storage_reason <", value, "storageReason");
            return (Criteria) this;
        }

        public Criteria andStorageReasonLessThanOrEqualTo(String value) {
            addCriterion("storage_reason <=", value, "storageReason");
            return (Criteria) this;
        }

        public Criteria andStorageReasonLike(String value) {
            addCriterion("storage_reason like", value, "storageReason");
            return (Criteria) this;
        }

        public Criteria andStorageReasonNotLike(String value) {
            addCriterion("storage_reason not like", value, "storageReason");
            return (Criteria) this;
        }

        public Criteria andStorageReasonIn(List<String> values) {
            addCriterion("storage_reason in", values, "storageReason");
            return (Criteria) this;
        }

        public Criteria andStorageReasonNotIn(List<String> values) {
            addCriterion("storage_reason not in", values, "storageReason");
            return (Criteria) this;
        }

        public Criteria andStorageReasonBetween(String value1, String value2) {
            addCriterion("storage_reason between", value1, value2, "storageReason");
            return (Criteria) this;
        }

        public Criteria andStorageReasonNotBetween(String value1, String value2) {
            addCriterion("storage_reason not between", value1, value2, "storageReason");
            return (Criteria) this;
        }

        public Criteria andStorageTimeIsNull() {
            addCriterion("storage_time is null");
            return (Criteria) this;
        }

        public Criteria andStorageTimeIsNotNull() {
            addCriterion("storage_time is not null");
            return (Criteria) this;
        }

        public Criteria andStorageTimeEqualTo(Date value) {
            addCriterion("storage_time =", value, "storageTime");
            return (Criteria) this;
        }

        public Criteria andStorageTimeNotEqualTo(Date value) {
            addCriterion("storage_time <>", value, "storageTime");
            return (Criteria) this;
        }

        public Criteria andStorageTimeGreaterThan(Date value) {
            addCriterion("storage_time >", value, "storageTime");
            return (Criteria) this;
        }

        public Criteria andStorageTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("storage_time >=", value, "storageTime");
            return (Criteria) this;
        }

        public Criteria andStorageTimeLessThan(Date value) {
            addCriterion("storage_time <", value, "storageTime");
            return (Criteria) this;
        }

        public Criteria andStorageTimeLessThanOrEqualTo(Date value) {
            addCriterion("storage_time <=", value, "storageTime");
            return (Criteria) this;
        }

        public Criteria andStorageTimeIn(List<Date> values) {
            addCriterion("storage_time in", values, "storageTime");
            return (Criteria) this;
        }

        public Criteria andStorageTimeNotIn(List<Date> values) {
            addCriterion("storage_time not in", values, "storageTime");
            return (Criteria) this;
        }

        public Criteria andStorageTimeBetween(Date value1, Date value2) {
            addCriterion("storage_time between", value1, value2, "storageTime");
            return (Criteria) this;
        }

        public Criteria andStorageTimeNotBetween(Date value1, Date value2) {
            addCriterion("storage_time not between", value1, value2, "storageTime");
            return (Criteria) this;
        }

        public Criteria andInvoiceCountIsNull() {
            addCriterion("invoice_count is null");
            return (Criteria) this;
        }

        public Criteria andInvoiceCountIsNotNull() {
            addCriterion("invoice_count is not null");
            return (Criteria) this;
        }

        public Criteria andInvoiceCountEqualTo(Integer value) {
            addCriterion("invoice_count =", value, "invoiceCount");
            return (Criteria) this;
        }

        public Criteria andInvoiceCountNotEqualTo(Integer value) {
            addCriterion("invoice_count <>", value, "invoiceCount");
            return (Criteria) this;
        }

        public Criteria andInvoiceCountGreaterThan(Integer value) {
            addCriterion("invoice_count >", value, "invoiceCount");
            return (Criteria) this;
        }

        public Criteria andInvoiceCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("invoice_count >=", value, "invoiceCount");
            return (Criteria) this;
        }

        public Criteria andInvoiceCountLessThan(Integer value) {
            addCriterion("invoice_count <", value, "invoiceCount");
            return (Criteria) this;
        }

        public Criteria andInvoiceCountLessThanOrEqualTo(Integer value) {
            addCriterion("invoice_count <=", value, "invoiceCount");
            return (Criteria) this;
        }

        public Criteria andInvoiceCountIn(List<Integer> values) {
            addCriterion("invoice_count in", values, "invoiceCount");
            return (Criteria) this;
        }

        public Criteria andInvoiceCountNotIn(List<Integer> values) {
            addCriterion("invoice_count not in", values, "invoiceCount");
            return (Criteria) this;
        }

        public Criteria andInvoiceCountBetween(Integer value1, Integer value2) {
            addCriterion("invoice_count between", value1, value2, "invoiceCount");
            return (Criteria) this;
        }

        public Criteria andInvoiceCountNotBetween(Integer value1, Integer value2) {
            addCriterion("invoice_count not between", value1, value2, "invoiceCount");
            return (Criteria) this;
        }

        public Criteria andReceiveInvoiceStatusIsNull() {
            addCriterion("receive_invoice_status is null");
            return (Criteria) this;
        }

        public Criteria andReceiveInvoiceStatusIsNotNull() {
            addCriterion("receive_invoice_status is not null");
            return (Criteria) this;
        }

        public Criteria andReceiveInvoiceStatusEqualTo(Integer value) {
            addCriterion("receive_invoice_status =", value, "receiveInvoiceStatus");
            return (Criteria) this;
        }

        public Criteria andReceiveInvoiceStatusNotEqualTo(Integer value) {
            addCriterion("receive_invoice_status <>", value, "receiveInvoiceStatus");
            return (Criteria) this;
        }

        public Criteria andReceiveInvoiceStatusGreaterThan(Integer value) {
            addCriterion("receive_invoice_status >", value, "receiveInvoiceStatus");
            return (Criteria) this;
        }

        public Criteria andReceiveInvoiceStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("receive_invoice_status >=", value, "receiveInvoiceStatus");
            return (Criteria) this;
        }

        public Criteria andReceiveInvoiceStatusLessThan(Integer value) {
            addCriterion("receive_invoice_status <", value, "receiveInvoiceStatus");
            return (Criteria) this;
        }

        public Criteria andReceiveInvoiceStatusLessThanOrEqualTo(Integer value) {
            addCriterion("receive_invoice_status <=", value, "receiveInvoiceStatus");
            return (Criteria) this;
        }

        public Criteria andReceiveInvoiceStatusIn(List<Integer> values) {
            addCriterion("receive_invoice_status in", values, "receiveInvoiceStatus");
            return (Criteria) this;
        }

        public Criteria andReceiveInvoiceStatusNotIn(List<Integer> values) {
            addCriterion("receive_invoice_status not in", values, "receiveInvoiceStatus");
            return (Criteria) this;
        }

        public Criteria andReceiveInvoiceStatusBetween(Integer value1, Integer value2) {
            addCriterion("receive_invoice_status between", value1, value2, "receiveInvoiceStatus");
            return (Criteria) this;
        }

        public Criteria andReceiveInvoiceStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("receive_invoice_status not between", value1, value2, "receiveInvoiceStatus");
            return (Criteria) this;
        }

        public Criteria andOrderGoodsCountIsNull() {
            addCriterion("order_goods_count is null");
            return (Criteria) this;
        }

        public Criteria andOrderGoodsCountIsNotNull() {
            addCriterion("order_goods_count is not null");
            return (Criteria) this;
        }

        public Criteria andOrderGoodsCountEqualTo(Integer value) {
            addCriterion("order_goods_count =", value, "orderGoodsCount");
            return (Criteria) this;
        }

        public Criteria andOrderGoodsCountNotEqualTo(Integer value) {
            addCriterion("order_goods_count <>", value, "orderGoodsCount");
            return (Criteria) this;
        }

        public Criteria andOrderGoodsCountGreaterThan(Integer value) {
            addCriterion("order_goods_count >", value, "orderGoodsCount");
            return (Criteria) this;
        }

        public Criteria andOrderGoodsCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("order_goods_count >=", value, "orderGoodsCount");
            return (Criteria) this;
        }

        public Criteria andOrderGoodsCountLessThan(Integer value) {
            addCriterion("order_goods_count <", value, "orderGoodsCount");
            return (Criteria) this;
        }

        public Criteria andOrderGoodsCountLessThanOrEqualTo(Integer value) {
            addCriterion("order_goods_count <=", value, "orderGoodsCount");
            return (Criteria) this;
        }

        public Criteria andOrderGoodsCountIn(List<Integer> values) {
            addCriterion("order_goods_count in", values, "orderGoodsCount");
            return (Criteria) this;
        }

        public Criteria andOrderGoodsCountNotIn(List<Integer> values) {
            addCriterion("order_goods_count not in", values, "orderGoodsCount");
            return (Criteria) this;
        }

        public Criteria andOrderGoodsCountBetween(Integer value1, Integer value2) {
            addCriterion("order_goods_count between", value1, value2, "orderGoodsCount");
            return (Criteria) this;
        }

        public Criteria andOrderGoodsCountNotBetween(Integer value1, Integer value2) {
            addCriterion("order_goods_count not between", value1, value2, "orderGoodsCount");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}