/**
   * This method was generated by MyBatis Generator. This method corresponds to the database table
   * `trade_move_check`
   *
   * @mbggenerated
   */
  public String selectByExample(TradeMoveCheckExample example) {
    SQL sql = new SQL();
    if (example != null && example.isDistinct()) {
      sql.SELECT_DISTINCT("id");
    } else {
      sql.SELECT("id");
    }
    sql.SELECT("order_id");
    sql.SELECT("order_sn");
    sql.SELECT("order_no");
    sql.SELECT("is_move_success");
    sql.SELECT("is_in_info");
    sql.SELECT("info_flag");
    sql.SELECT("info_desc");
    sql.SELECT("create_time");
    sql.SELECT("update_time");
    sql.FROM("`trade_move_check`");
    applyWhere(sql, example, false);

    if (example != null && example.getOrderByClause() != null) {
      sql.ORDER_BY(example.getOrderByClause());
    }

    String sqlStr = sql.toString();
    if (example.getPage() != null) {
      sqlStr =
          sqlStr
              + " limit "
              + example.getPage().getOffset()
              + ","
              + example.getPage().getLimit()
              + "";
    }
    return sqlStr;
  }
  /**
   * This method was generated by MyBatis Generator. This method corresponds to the database table
   * `trade_move_check`
   *
   * @mbggenerated
   */
  protected void applyWhere(SQL sql, TradeMoveCheckExample example, boolean includeExamplePhrase) {
    if (example == null) {
      return;
    }

    String parmPhrase1;
    String parmPhrase1_th;
    String parmPhrase2;
    String parmPhrase2_th;
    String parmPhrase3;
    String parmPhrase3_th;
    if (includeExamplePhrase) {
      parmPhrase1 = "%s #{example.oredCriteria[%d].allCriteria[%d].value}";
      parmPhrase1_th = "%s #{example.oredCriteria[%d].allCriteria[%d].value,typeHandler=%s}";
      parmPhrase2 =
          "%s #{example.oredCriteria[%d].allCriteria[%d].value} and #{example.oredCriteria[%d].criteria[%d].secondValue}";
      parmPhrase2_th =
          "%s #{example.oredCriteria[%d].allCriteria[%d].value,typeHandler=%s} and #{example.oredCriteria[%d].criteria[%d].secondValue,typeHandler=%s}";
      parmPhrase3 = "#{example.oredCriteria[%d].allCriteria[%d].value[%d]}";
      parmPhrase3_th = "#{example.oredCriteria[%d].allCriteria[%d].value[%d],typeHandler=%s}";
    } else {
      parmPhrase1 = "%s #{oredCriteria[%d].allCriteria[%d].value}";
      parmPhrase1_th = "%s #{oredCriteria[%d].allCriteria[%d].value,typeHandler=%s}";
      parmPhrase2 =
          "%s #{oredCriteria[%d].allCriteria[%d].value} and #{oredCriteria[%d].criteria[%d].secondValue}";
      parmPhrase2_th =
          "%s #{oredCriteria[%d].allCriteria[%d].value,typeHandler=%s} and #{oredCriteria[%d].criteria[%d].secondValue,typeHandler=%s}";
      parmPhrase3 = "#{oredCriteria[%d].allCriteria[%d].value[%d]}";
      parmPhrase3_th = "#{oredCriteria[%d].allCriteria[%d].value[%d],typeHandler=%s}";
    }

    StringBuilder sb = new StringBuilder();
    List<Criteria> oredCriteria = example.getOredCriteria();
    boolean firstCriteria = true;
    for (int i = 0; i < oredCriteria.size(); i++) {
      Criteria criteria = oredCriteria.get(i);
      if (criteria.isValid()) {
        if (firstCriteria) {
          firstCriteria = false;
        } else {
          sb.append(" or ");
        }

        sb.append('(');
        List<Criterion> criterions = criteria.getAllCriteria();
        boolean firstCriterion = true;
        for (int j = 0; j < criterions.size(); j++) {
          Criterion criterion = criterions.get(j);
          if (firstCriterion) {
            firstCriterion = false;
          } else {
            sb.append(" and ");
          }

          if (criterion.isNoValue()) {
            sb.append(criterion.getCondition());
          } else if (criterion.isSingleValue()) {
            if (criterion.getTypeHandler() == null) {
              sb.append(String.format(parmPhrase1, criterion.getCondition(), i, j));
            } else {
              sb.append(
                  String.format(
                      parmPhrase1_th, criterion.getCondition(), i, j, criterion.getTypeHandler()));
            }
          } else if (criterion.isBetweenValue()) {
            if (criterion.getTypeHandler() == null) {
              sb.append(String.format(parmPhrase2, criterion.getCondition(), i, j, i, j));
            } else {
              sb.append(
                  String.format(
                      parmPhrase2_th,
                      criterion.getCondition(),
                      i,
                      j,
                      criterion.getTypeHandler(),
                      i,
                      j,
                      criterion.getTypeHandler()));
            }
          } else if (criterion.isListValue()) {
            sb.append(criterion.getCondition());
            sb.append(" (");
            List<?> listItems = (List<?>) criterion.getValue();
            boolean comma = false;
            for (int k = 0; k < listItems.size(); k++) {
              if (comma) {
                sb.append(", ");
              } else {
                comma = true;
              }
              if (criterion.getTypeHandler() == null) {
                sb.append(String.format(parmPhrase3, i, j, k));
              } else {
                sb.append(String.format(parmPhrase3_th, i, j, k, criterion.getTypeHandler()));
              }
            }
            sb.append(')');
          }
        }
        sb.append(')');
      }
    }

    if (sb.length() > 0) {
      sql.WHERE(sb.toString());
    }
  }