Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
yui.comn.mybatisx.extension.conditions.GenerateWrapper2 Maven / Gradle / Ivy
///**
//* Project: yui3-common-mybatisx
// * Class GenerateWrapper
// * Version 1.0
// * File Created at 2019年1月24日
// * $Id$
// * author yuyi
// * email [email protected]
// */
//package yui.comn.mybatisx.extension.conditions;
//
//import java.util.ArrayList;
//import java.util.Collection;
//import java.util.Collections;
//import java.util.Comparator;
//import java.util.List;
//import java.util.Map;
//import java.util.function.Function;
//
//import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
//import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
//import com.baomidou.mybatisplus.core.toolkit.StringPool;
//import com.baomidou.mybatisplus.core.toolkit.StringUtils;
//
//import yui.comn.mybatisx.core.conditions.query.FindWrapper;
//import yui.comn.mybatisx.core.toolkit.CollStrUtils;
//import yui.comn.mybatisx.extension.conditions.clauses.SelectClause;
//import yui.comn.mybatisx.extension.conditions.clauses.JoinClause;
//import yui.comn.mybatisx.extension.conditions.clauses.OrderClause;
//import yui.comn.mybatisx.extension.conditions.clauses.PageClause;
//import yui.comn.mybatisx.extension.conditions.clauses.QueryClause;
//import yui.comn.mybatisx.extension.conditions.clauses.RuleClause;
//import yui.comn.mybatisx.extension.conditions.clauses.WhereClause;
//
///**
// *
// * 生成查询类
// *
// * @author yuyi ([email protected] )
// */
//@SuppressWarnings("all")
//public class GenerateWrapper2 {
//
// public static void wrapperHandle(FindWrapper wrapper, QueryClause queryClause,
// Map queryMapper) {
// wrapperHandle(wrapper, queryClause, queryMapper, null);
// }
//
// public static void wrapperHandle(FindWrapper wrapper, QueryClause queryClause,
// Map queryMapper, Map fieldMapper) {
//
// joinHandle(wrapper, queryMapper, queryClause.getJ()); // on处理
//
// whereHandle(wrapper, queryMapper, queryClause.getW()); // 简单处理
// ruleHandle(wrapper, queryMapper, queryClause.getR()); // 复杂处理
//
// orderHandle(wrapper, queryMapper, queryClause.getO());
// pageHandle(wrapper, queryMapper, queryClause.getP());
//
// fieldHandle(wrapper, fieldMapper, queryClause.getS());
// }
//
// public static void fieldHandle(FindWrapper wrapper, Map fieldMapper, SelectClause fieldClause) {
// if (null != fieldMapper && null != fieldClause && StringUtils.checkValNotNull(fieldClause.getV())) {
// List fields = CollStrUtils.toStrList(fieldClause.getV());
// List columns = new ArrayList<>();
// for (String field : fields) {
// String mapper = fieldMapper.get(field);
// if (StringUtils.checkValNotNull(mapper)) {
// columns.add(mapper);
// }
// }
// String[] select = columns.toArray(new String[columns.size()]);
// if (ArrayUtils.isNotEmpty(select)) {
// wrapper.select(select);
// }
// }
// }
//
// public static void pageHandle(FindWrapper wrapper, Map queryMapper, PageClause pageClause) {
// if (null != pageClause) {
// boolean isSearchCount = 0 == pageClause.getC() ? true : false;
// wrapper.setPageNo(pageClause.getN());
// wrapper.setPageSize(pageClause.getS());
// wrapper.setSearchCount(isSearchCount);
// }
// }
//
// public static void orderHandle(FindWrapper wrapper, Map queryMapper, List orderList) {
// if (CollectionUtils.isNotEmpty(orderList)) {
// for (OrderClause orderClause : orderList) {
// String column = getColumn(queryMapper, orderClause.getK());
// SqlCompareMode mode = SqlCompareMode.get(orderClause.getT(), SqlCompareMode.ASC);
// if (mode == SqlCompareMode.ASC) {
// wrapper.orderByAsc(column);
// } else {
// wrapper.orderByDesc(column);
// }
// }
// }
// }
//
// public static void joinHandle(FindWrapper wrapper, Map queryMapper, List joinList) {
// if (CollectionUtils.isNotEmpty(joinList)) {
// // AtomicInteger paramNameSeq = new AtomicInteger(0);
// for (JoinClause joinClause : joinList) {
// FindWrapper onFw = new FindWrapper<>();
// onFw.getParamNameSeq().set(wrapper.getParamNameSeq().get());
//
// ruleHandle(onFw, queryMapper, joinClause.getR());
//
// wrapper.getParamNameSeq().set(onFw.getParamNameSeq().get());
// wrapper.getParamNameValuePairs().putAll(onFw.getParamNameValuePairs());
// wrapper.addSqlOn(joinClause.getN(), onFw.getSqlSegment());
// }
// }
// }
//
// public static void ruleHandle(FindWrapper wrapper, Map queryMapper, List ruleList) {
// if (CollectionUtils.isNotEmpty(ruleList)) {
// for (RuleClause ruleClause : ruleList) {
// Function, FindWrapper> func = new Function, FindWrapper>() {
// @Override
// public FindWrapper apply(FindWrapper t) {
// whereHandle(t, queryMapper, ruleClause.getW());
// return t;
// }
// };
// if (SqlCompareMode.OR.symbol().equalsIgnoreCase(ruleClause.getT())) {
// // fw.or(a -> a.eq("column", "zhangsan"));z
// wrapper.or(func);
// } else {
// wrapper.and(func);
// }
// }
// }
// }
//
// public static void whereHandle(FindWrapper wrapper, Map queryMapper, List whereList) {
// if (CollectionUtils.isNotEmpty(whereList)) {
// // 排序
// Collections.sort(whereList, new Comparator() {
// @Override
// public int compare(WhereClause o1, WhereClause o2) {
// if (o1.getS() >= o2.getS()) {
// return 1;
// }
// return -1;
// }
// });
//
// for (WhereClause whereClause : whereList) {
// String keyStr = whereClause.getK();
//
// // 处理分隔符
// String separatorChars = StringPool.UNDERSCORE + StringPool.UNDERSCORE;
// if (keyStr.contains(StringPool.COMMA)) {
// separatorChars = StringPool.COMMA;
// }
//
// String[] keys = StringUtils.split(keyStr, separatorChars);
//
// int ind = 0;
// for (String key : keys) {
// String column = getColumn(queryMapper, key);
//
// wrapper.or(ind++ > 0 || SqlCompareMode.OR.symbol().equals(whereClause.getT()));
//
// whereHandle(wrapper, queryMapper, whereClause, column);
// }
// }
// }
// }
//
// private static void whereHandle(FindWrapper wrapper, Map queryMapper, WhereClause whereClause, String column) {
// SqlCompareMode mode = SqlCompareMode.get(whereClause.getM(), SqlCompareMode.LK);
// Object val = whereClause.getV();
// // 数值类型不允许用模糊查询(LIKE查询),SqlCompareMode传过来是LK自动转EQ,如果想模糊查询,传过来的时候用字符串类型(加上引号)
// if (val instanceof Double && mode.name().equals(SqlCompareMode.LK.name())) {
// mode = SqlCompareMode.EQ;
// }
//
// switch (mode) {
// case EQ:
// wrapper.eq(column, val);
// break;
// case NE:
// wrapper.ne(column, val);
// break;
// case LT:
// wrapper.lt(column, val);
// break;
// case LE:
// wrapper.le(column, val);
// break;
// case GT:
// wrapper.gt(column, val);
// break;
// case GE:
// wrapper.ge(column, val);
// break;
// case LK:
// wrapper.like(column, val);
// break;
// case LLK:
// wrapper.likeLeft(column, val);
// break;
// case RLK:
// wrapper.likeRight(column, val);
// break;
// case NLK:
// wrapper.notLike(column, val);
// break;
// case IN:
// if (val instanceof Collection) {
// wrapper.in(column, (Collection) val);
// } else {
// wrapper.in(column, trimArrayElements(StringUtils.split(String.valueOf(val), StringPool.COMMA)));
// }
// break;
// case NIN:
// if (val instanceof Collection) {
// wrapper.notIn(column, val);
// } else {
// wrapper.notIn(column, trimArrayElements(StringUtils.split(String.valueOf(val), StringPool.COMMA)));
// }
// break;
// case IS:
// wrapper.isNull(column);
// break;
// case NIS:
// wrapper.isNotNull(column);
// break;
// case BT:
// if (val instanceof Collection) {
// List valArr = (List) val;
// wrapper.between(column, getStartDateTime(valArr.get(0)), getEndDateTime(valArr.get(1)));
// } else {
// String[] vals = trimArrayElements(StringUtils.split(String.valueOf(val), StringPool.COMMA));
// if (vals.length != 2) {
// throw new IllegalArgumentException("between mode param value length not equal 2");
// }
// wrapper.between(column, getStartDateTime(vals[0]), getEndDateTime(vals[1]));
// }
// break;
// default:
// wrapper.like(column, val);
// break;
// }
// }
//
// private static String getColumn(Map queryMapper, String key) {
// String column = null;
//
// if (null != queryMapper) {
// column = queryMapper.get(key.trim());
// }
//
// if (StringUtils.isEmpty(column)) {
// throw new RuntimeException("key:" + key + ", not find column");
// }
//
// return column;
// }
//
// private static String[] trimArrayElements(String[] array) {
// if (array == null || array.length == 0) {
// return new String[0];
// }
//
// String[] result = new String[array.length];
// for (int i = 0; i < array.length; i++) {
// String element = array[i];
// result[i] = (element != null ? element.trim() : null);
// }
// return result;
// }
//
// private static String getStartDateTime(String dateTime) {
// if (!dateTime.contains(":")) {
// return dateTime + " 00:00:00";
// }
// return dateTime;
// }
//
// private static String getEndDateTime(String dateTime) {
// if (!dateTime.contains(":")) {
// return dateTime + " 23:59:59";
// }
// return dateTime;
// }
//
// public static void main(String[] args) {
// int ind = 0;
// for (int i = 0; i < 10; i++) {
// System.out.println("a:" + i);
// System.out.println("b:" +ind);
// if (ind++ > 0) {
// System.out.println("c:" +ind);
// }
// }
//
// }
//}