package com.liquidnet.service.account.wallet.entity;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.time.LocalDateTime;
import java.util.List;

public class FinBizTransExtraExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public FinBizTransExtraExample() {
        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 andTransNoIsNull() {
            addCriterion("FBTE0 is null");
            return (Criteria) this;
        }

        public Criteria andTransNoIsNotNull() {
            addCriterion("FBTE0 is not null");
            return (Criteria) this;
        }

        public Criteria andTransNoEqualTo(String value) {
            addCriterion("FBTE0 =", value, "transNo");
            return (Criteria) this;
        }

        public Criteria andTransNoNotEqualTo(String value) {
            addCriterion("FBTE0 <>", value, "transNo");
            return (Criteria) this;
        }

        public Criteria andTransNoGreaterThan(String value) {
            addCriterion("FBTE0 >", value, "transNo");
            return (Criteria) this;
        }

        public Criteria andTransNoGreaterThanOrEqualTo(String value) {
            addCriterion("FBTE0 >=", value, "transNo");
            return (Criteria) this;
        }

        public Criteria andTransNoLessThan(String value) {
            addCriterion("FBTE0 <", value, "transNo");
            return (Criteria) this;
        }

        public Criteria andTransNoLessThanOrEqualTo(String value) {
            addCriterion("FBTE0 <=", value, "transNo");
            return (Criteria) this;
        }

        public Criteria andTransNoLike(String value) {
            addCriterion("FBTE0 like", value, "transNo");
            return (Criteria) this;
        }

        public Criteria andTransNoNotLike(String value) {
            addCriterion("FBTE0 not like", value, "transNo");
            return (Criteria) this;
        }

        public Criteria andTransNoIn(List<String> values) {
            addCriterion("FBTE0 in", values, "transNo");
            return (Criteria) this;
        }

        public Criteria andTransNoNotIn(List<String> values) {
            addCriterion("FBTE0 not in", values, "transNo");
            return (Criteria) this;
        }

        public Criteria andTransNoBetween(String value1, String value2) {
            addCriterion("FBTE0 between", value1, value2, "transNo");
            return (Criteria) this;
        }

        public Criteria andTransNoNotBetween(String value1, String value2) {
            addCriterion("FBTE0 not between", value1, value2, "transNo");
            return (Criteria) this;
        }

        public Criteria andWalletNoIsNull() {
            addCriterion("FBTE1 is null");
            return (Criteria) this;
        }

        public Criteria andWalletNoIsNotNull() {
            addCriterion("FBTE1 is not null");
            return (Criteria) this;
        }

        public Criteria andWalletNoEqualTo(String value) {
            addCriterion("FBTE1 =", value, "walletNo");
            return (Criteria) this;
        }

        public Criteria andWalletNoNotEqualTo(String value) {
            addCriterion("FBTE1 <>", value, "walletNo");
            return (Criteria) this;
        }

        public Criteria andWalletNoGreaterThan(String value) {
            addCriterion("FBTE1 >", value, "walletNo");
            return (Criteria) this;
        }

        public Criteria andWalletNoGreaterThanOrEqualTo(String value) {
            addCriterion("FBTE1 >=", value, "walletNo");
            return (Criteria) this;
        }

        public Criteria andWalletNoLessThan(String value) {
            addCriterion("FBTE1 <", value, "walletNo");
            return (Criteria) this;
        }

        public Criteria andWalletNoLessThanOrEqualTo(String value) {
            addCriterion("FBTE1 <=", value, "walletNo");
            return (Criteria) this;
        }

        public Criteria andWalletNoLike(String value) {
            addCriterion("FBTE1 like", value, "walletNo");
            return (Criteria) this;
        }

        public Criteria andWalletNoNotLike(String value) {
            addCriterion("FBTE1 not like", value, "walletNo");
            return (Criteria) this;
        }

        public Criteria andWalletNoIn(List<String> values) {
            addCriterion("FBTE1 in", values, "walletNo");
            return (Criteria) this;
        }

        public Criteria andWalletNoNotIn(List<String> values) {
            addCriterion("FBTE1 not in", values, "walletNo");
            return (Criteria) this;
        }

        public Criteria andWalletNoBetween(String value1, String value2) {
            addCriterion("FBTE1 between", value1, value2, "walletNo");
            return (Criteria) this;
        }

        public Criteria andWalletNoNotBetween(String value1, String value2) {
            addCriterion("FBTE1 not between", value1, value2, "walletNo");
            return (Criteria) this;
        }

        public Criteria andBalanceAvailableIsNull() {
            addCriterion("FBTE2 is null");
            return (Criteria) this;
        }

        public Criteria andBalanceAvailableIsNotNull() {
            addCriterion("FBTE2 is not null");
            return (Criteria) this;
        }

        public Criteria andBalanceAvailableEqualTo(BigDecimal value) {
            addCriterion("FBTE2 =", value, "balanceAvailable");
            return (Criteria) this;
        }

        public Criteria andBalanceAvailableNotEqualTo(BigDecimal value) {
            addCriterion("FBTE2 <>", value, "balanceAvailable");
            return (Criteria) this;
        }

        public Criteria andBalanceAvailableGreaterThan(BigDecimal value) {
            addCriterion("FBTE2 >", value, "balanceAvailable");
            return (Criteria) this;
        }

        public Criteria andBalanceAvailableGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("FBTE2 >=", value, "balanceAvailable");
            return (Criteria) this;
        }

        public Criteria andBalanceAvailableLessThan(BigDecimal value) {
            addCriterion("FBTE2 <", value, "balanceAvailable");
            return (Criteria) this;
        }

        public Criteria andBalanceAvailableLessThanOrEqualTo(BigDecimal value) {
            addCriterion("FBTE2 <=", value, "balanceAvailable");
            return (Criteria) this;
        }

        public Criteria andBalanceAvailableIn(List<BigDecimal> values) {
            addCriterion("FBTE2 in", values, "balanceAvailable");
            return (Criteria) this;
        }

        public Criteria andBalanceAvailableNotIn(List<BigDecimal> values) {
            addCriterion("FBTE2 not in", values, "balanceAvailable");
            return (Criteria) this;
        }

        public Criteria andBalanceAvailableBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("FBTE2 between", value1, value2, "balanceAvailable");
            return (Criteria) this;
        }

        public Criteria andBalanceAvailableNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("FBTE2 not between", value1, value2, "balanceAvailable");
            return (Criteria) this;
        }

        public Criteria andBalancePendingIsNull() {
            addCriterion("FBTE3 is null");
            return (Criteria) this;
        }

        public Criteria andBalancePendingIsNotNull() {
            addCriterion("FBTE3 is not null");
            return (Criteria) this;
        }

        public Criteria andBalancePendingEqualTo(BigDecimal value) {
            addCriterion("FBTE3 =", value, "balancePending");
            return (Criteria) this;
        }

        public Criteria andBalancePendingNotEqualTo(BigDecimal value) {
            addCriterion("FBTE3 <>", value, "balancePending");
            return (Criteria) this;
        }

        public Criteria andBalancePendingGreaterThan(BigDecimal value) {
            addCriterion("FBTE3 >", value, "balancePending");
            return (Criteria) this;
        }

        public Criteria andBalancePendingGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("FBTE3 >=", value, "balancePending");
            return (Criteria) this;
        }

        public Criteria andBalancePendingLessThan(BigDecimal value) {
            addCriterion("FBTE3 <", value, "balancePending");
            return (Criteria) this;
        }

        public Criteria andBalancePendingLessThanOrEqualTo(BigDecimal value) {
            addCriterion("FBTE3 <=", value, "balancePending");
            return (Criteria) this;
        }

        public Criteria andBalancePendingIn(List<BigDecimal> values) {
            addCriterion("FBTE3 in", values, "balancePending");
            return (Criteria) this;
        }

        public Criteria andBalancePendingNotIn(List<BigDecimal> values) {
            addCriterion("FBTE3 not in", values, "balancePending");
            return (Criteria) this;
        }

        public Criteria andBalancePendingBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("FBTE3 between", value1, value2, "balancePending");
            return (Criteria) this;
        }

        public Criteria andBalancePendingNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("FBTE3 not between", value1, value2, "balancePending");
            return (Criteria) this;
        }

        public Criteria andBalanceFrozenIsNull() {
            addCriterion("FBTE4 is null");
            return (Criteria) this;
        }

        public Criteria andBalanceFrozenIsNotNull() {
            addCriterion("FBTE4 is not null");
            return (Criteria) this;
        }

        public Criteria andBalanceFrozenEqualTo(BigDecimal value) {
            addCriterion("FBTE4 =", value, "balanceFrozen");
            return (Criteria) this;
        }

        public Criteria andBalanceFrozenNotEqualTo(BigDecimal value) {
            addCriterion("FBTE4 <>", value, "balanceFrozen");
            return (Criteria) this;
        }

        public Criteria andBalanceFrozenGreaterThan(BigDecimal value) {
            addCriterion("FBTE4 >", value, "balanceFrozen");
            return (Criteria) this;
        }

        public Criteria andBalanceFrozenGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("FBTE4 >=", value, "balanceFrozen");
            return (Criteria) this;
        }

        public Criteria andBalanceFrozenLessThan(BigDecimal value) {
            addCriterion("FBTE4 <", value, "balanceFrozen");
            return (Criteria) this;
        }

        public Criteria andBalanceFrozenLessThanOrEqualTo(BigDecimal value) {
            addCriterion("FBTE4 <=", value, "balanceFrozen");
            return (Criteria) this;
        }

        public Criteria andBalanceFrozenIn(List<BigDecimal> values) {
            addCriterion("FBTE4 in", values, "balanceFrozen");
            return (Criteria) this;
        }

        public Criteria andBalanceFrozenNotIn(List<BigDecimal> values) {
            addCriterion("FBTE4 not in", values, "balanceFrozen");
            return (Criteria) this;
        }

        public Criteria andBalanceFrozenBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("FBTE4 between", value1, value2, "balanceFrozen");
            return (Criteria) this;
        }

        public Criteria andBalanceFrozenNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("FBTE4 not between", value1, value2, "balanceFrozen");
            return (Criteria) this;
        }

        public Criteria andReceivedIsNull() {
            addCriterion("FBTE5 is null");
            return (Criteria) this;
        }

        public Criteria andReceivedIsNotNull() {
            addCriterion("FBTE5 is not null");
            return (Criteria) this;
        }

        public Criteria andReceivedEqualTo(Integer value) {
            addCriterion("FBTE5 =", value, "received");
            return (Criteria) this;
        }

        public Criteria andReceivedNotEqualTo(Integer value) {
            addCriterion("FBTE5 <>", value, "received");
            return (Criteria) this;
        }

        public Criteria andReceivedGreaterThan(Integer value) {
            addCriterion("FBTE5 >", value, "received");
            return (Criteria) this;
        }

        public Criteria andReceivedGreaterThanOrEqualTo(Integer value) {
            addCriterion("FBTE5 >=", value, "received");
            return (Criteria) this;
        }

        public Criteria andReceivedLessThan(Integer value) {
            addCriterion("FBTE5 <", value, "received");
            return (Criteria) this;
        }

        public Criteria andReceivedLessThanOrEqualTo(Integer value) {
            addCriterion("FBTE5 <=", value, "received");
            return (Criteria) this;
        }

        public Criteria andReceivedIn(List<Integer> values) {
            addCriterion("FBTE5 in", values, "received");
            return (Criteria) this;
        }

        public Criteria andReceivedNotIn(List<Integer> values) {
            addCriterion("FBTE5 not in", values, "received");
            return (Criteria) this;
        }

        public Criteria andReceivedBetween(Integer value1, Integer value2) {
            addCriterion("FBTE5 between", value1, value2, "received");
            return (Criteria) this;
        }

        public Criteria andReceivedNotBetween(Integer value1, Integer value2) {
            addCriterion("FBTE5 not between", value1, value2, "received");
            return (Criteria) this;
        }

        public Criteria andCalTimeIsNull() {
            addCriterion("FBTE6 is null");
            return (Criteria) this;
        }

        public Criteria andCalTimeIsNotNull() {
            addCriterion("FBTE6 is not null");
            return (Criteria) this;
        }

        public Criteria andCalTimeEqualTo(LocalDateTime value) {
            addCriterion("FBTE6 =", value, "calTime");
            return (Criteria) this;
        }

        public Criteria andCalNotEqualTo(LocalDateTime value) {
            addCriterion("FBTE6 <>", value, "calTime");
            return (Criteria) this;
        }

        public Criteria andCalTimeGreaterThan(LocalDateTime value) {
            addCriterion("FBTE6 >", value, "calTime");
            return (Criteria) this;
        }

        public Criteria andCalTimeGreaterThanOrEqualTo(LocalDateTime value) {
            addCriterion("FBTE6 >=", value, "calTime");
            return (Criteria) this;
        }

        public Criteria andCalTimeLessThan(LocalDateTime value) {
            addCriterion("FBTE6 <", value, "calTime");
            return (Criteria) this;
        }

        public Criteria andCalTimeLessThanOrEqualTo(LocalDateTime value) {
            addCriterion("FBTE6 <=", value, "calTime");
            return (Criteria) this;
        }

        public Criteria andCalTimeIn(List<LocalDateTime> values) {
            addCriterion("FBTE6 in", values, "calTime");
            return (Criteria) this;
        }

        public Criteria andCalTimeNotIn(List<LocalDateTime> values) {
            addCriterion("FBTE6 not in", values, "calTime");
            return (Criteria) this;
        }

        public Criteria andCalTimeBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("FBTE6 between", value1, value2, "calTime");
            return (Criteria) this;
        }

        public Criteria andCalTimeNotBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("FBTE6 not between", value1, value2, "calTime");
            return (Criteria) this;
        }

        public Criteria andReceivedTimeIsNull() {
            addCriterion("FBTE7 is null");
            return (Criteria) this;
        }

        public Criteria andReceivedTimeIsNotNull() {
            addCriterion("FBTE7 is not null");
            return (Criteria) this;
        }

        public Criteria andReceivedTimeEqualTo(LocalDateTime value) {
            addCriterion("FBTE7 =", value, "receivedTime");
            return (Criteria) this;
        }

        public Criteria andReceivedTimeNotEqualTo(LocalDateTime value) {
            addCriterion("FBTE7 <>", value, "receivedTime");
            return (Criteria) this;
        }

        public Criteria andReceivedTimeGreaterThan(LocalDateTime value) {
            addCriterion("FBTE7 >", value, "receivedTime");
            return (Criteria) this;
        }

        public Criteria andReceivedTimeGreaterThanOrEqualTo(LocalDateTime value) {
            addCriterion("FBTE7 >=", value, "receivedTime");
            return (Criteria) this;
        }

        public Criteria andReceivedTimeLessThan(LocalDateTime value) {
            addCriterion("FBTE7 <", value, "receivedTime");
            return (Criteria) this;
        }

        public Criteria andReceivedTimeLessThanOrEqualTo(LocalDateTime value) {
            addCriterion("FBTE7 <=", value, "receivedTime");
            return (Criteria) this;
        }

        public Criteria andReceivedTimeIn(List<LocalDateTime> values) {
            addCriterion("FBTE7 in", values, "receivedTime");
            return (Criteria) this;
        }

        public Criteria andReceivedTimeNotIn(List<LocalDateTime> values) {
            addCriterion("FBTE7 not in", values, "receivedTime");
            return (Criteria) this;
        }

        public Criteria andReceivedTimeBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("FBTE7 between", value1, value2, "receivedTime");
            return (Criteria) this;
        }

        public Criteria andReceivedTimeNotBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("FBTE7 not between", value1, value2, "receivedTime");
            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);
        }
    }
}
