|
@@ -64,6 +64,17 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 分组
|
|
|
+ */
|
|
|
+ public <K, V> Where<T> groupBy(SFunction<K, V> function) {
|
|
|
+ return groupBy(sql.getSqlFieldName(function));
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> groupBy(String alias, SFunction<K, V> function) {
|
|
|
+ return groupBy(sql.getSqlFieldName(alias, function));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* between
|
|
|
*/
|
|
|
public <K, V> Where<T> between(SFunction<K, V> function, Object val1, Object val2) {
|
|
@@ -74,6 +85,15 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
return between(sql.getSqlFieldName(alias, function), val1, val2);
|
|
|
}
|
|
|
|
|
|
+ public <K, V> Where<T> between(boolean condition, SFunction<K, V> function, Object val1, Object val2) {
|
|
|
+ return between(condition, sql.getSqlFieldName(function), val1, val2);
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> between(boolean condition, String alias, SFunction<K, V> function, Object val1, Object val2) {
|
|
|
+ return between(condition, sql.getSqlFieldName(alias, function), val1, val2);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public Where<T> between(String sqlFieldName, Object val1, Object val2) {
|
|
|
return between(ObjectUtil.isAllNotEmpty(val1, val2), sqlFieldName, val1, val2);
|
|
|
}
|
|
@@ -89,6 +109,15 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
return eq(sql.getSqlFieldName(alias, function), value);
|
|
|
}
|
|
|
|
|
|
+ public <K, V> Where<T> eq(boolean condition, SFunction<K, V> function, Object value) {
|
|
|
+ return eq(condition, sql.getSqlFieldName(function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> eq(boolean condition, String alias, SFunction<K, V> function, Object value) {
|
|
|
+ return eq(condition, sql.getSqlFieldName(alias, function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public Where<T> eq(String sqlFieldName, Object value) {
|
|
|
return eq(ObjectUtil.isNotEmpty(value), sqlFieldName, value);
|
|
|
}
|
|
@@ -104,6 +133,15 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
return ne(sql.getSqlFieldName(alias, function), value);
|
|
|
}
|
|
|
|
|
|
+ public <K, V> Where<T> ne(boolean condition, SFunction<K, V> function, Object value) {
|
|
|
+ return ne(condition, sql.getSqlFieldName(function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> ne(boolean condition, String alias, SFunction<K, V> function, Object value) {
|
|
|
+ return ne(condition, sql.getSqlFieldName(alias, function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public Where<T> ne(String sqlFieldName, Object value) {
|
|
|
return ne(ObjectUtil.isNotEmpty(value), sqlFieldName, value);
|
|
|
}
|
|
@@ -119,6 +157,15 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
return ge(sql.getSqlFieldName(alias, function), value);
|
|
|
}
|
|
|
|
|
|
+ public <K, V> Where<T> ge(boolean condition, SFunction<K, V> function, Object value) {
|
|
|
+ return ge(condition, sql.getSqlFieldName(function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> ge(boolean condition, String alias, SFunction<K, V> function, Object value) {
|
|
|
+ return ge(condition, sql.getSqlFieldName(alias, function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public Where<T> ge(String sqlFieldName, Object value) {
|
|
|
return ge(ObjectUtil.isNotEmpty(value), sqlFieldName, value);
|
|
|
}
|
|
@@ -134,6 +181,15 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
return gt(sql.getSqlFieldName(alias, function), value);
|
|
|
}
|
|
|
|
|
|
+ public <K, V> Where<T> gt(boolean condition, SFunction<K, V> function, Object value) {
|
|
|
+ return gt(condition, sql.getSqlFieldName(function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> gt(boolean condition, String alias, SFunction<K, V> function, Object value) {
|
|
|
+ return gt(condition, sql.getSqlFieldName(alias, function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public Where<T> gt(String sqlFieldName, Object value) {
|
|
|
return gt(ObjectUtil.isNotEmpty(value), sqlFieldName, value);
|
|
|
}
|
|
@@ -149,6 +205,15 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
return le(sql.getSqlFieldName(alias, function), value);
|
|
|
}
|
|
|
|
|
|
+ public <K, V> Where<T> le(boolean condition, SFunction<K, V> function, Object value) {
|
|
|
+ return le(condition, sql.getSqlFieldName(function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> le(boolean condition, String alias, SFunction<K, V> function, Object value) {
|
|
|
+ return le(condition, sql.getSqlFieldName(alias, function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public Where<T> le(String sqlFieldName, Object value) {
|
|
|
return le(ObjectUtil.isNotEmpty(value), sqlFieldName, value);
|
|
|
}
|
|
@@ -164,6 +229,15 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
return lt(sql.getSqlFieldName(alias, function), value);
|
|
|
}
|
|
|
|
|
|
+ public <K, V> Where<T> lt(boolean condition, SFunction<K, V> function, Object value) {
|
|
|
+ return lt(condition, sql.getSqlFieldName(function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> lt(boolean condition, String alias, SFunction<K, V> function, Object value) {
|
|
|
+ return lt(condition, sql.getSqlFieldName(alias, function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public Where<T> lt(String sqlFieldName, Object value) {
|
|
|
return lt(ObjectUtil.isNotEmpty(value), sqlFieldName, value);
|
|
|
}
|
|
@@ -179,6 +253,15 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
return like(sql.getSqlFieldName(alias, function), value);
|
|
|
}
|
|
|
|
|
|
+ public <K, V> Where<T> like(boolean condition, SFunction<K, V> function, Object value) {
|
|
|
+ return like(condition, sql.getSqlFieldName(function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> like(boolean condition, String alias, SFunction<K, V> function, Object value) {
|
|
|
+ return like(condition, sql.getSqlFieldName(alias, function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public Where<T> like(String sqlFieldName, Object value) {
|
|
|
return apply(ObjectUtil.isNotEmpty(value), "INSTR(" + sqlFieldName + ", {0}) > 0", value);
|
|
|
}
|
|
@@ -194,6 +277,15 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
return notLike(sql.getSqlFieldName(alias, function), value);
|
|
|
}
|
|
|
|
|
|
+ public <K, V> Where<T> notLike(boolean condition, SFunction<K, V> function, Object value) {
|
|
|
+ return notLike(condition, sql.getSqlFieldName(function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> notLike(boolean condition, String alias, SFunction<K, V> function, Object value) {
|
|
|
+ return notLike(condition, sql.getSqlFieldName(alias, function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public Where<T> notLike(String sqlFieldName, Object value) {
|
|
|
return notLike(ObjectUtil.isNotEmpty(value), sqlFieldName, value);
|
|
|
}
|
|
@@ -209,6 +301,15 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
return likeLeft(sql.getSqlFieldName(alias, function), value);
|
|
|
}
|
|
|
|
|
|
+ public <K, V> Where<T> likeLeft(boolean condition, SFunction<K, V> function, Object value) {
|
|
|
+ return likeLeft(condition, sql.getSqlFieldName(function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> likeLeft(boolean condition, String alias, SFunction<K, V> function, Object value) {
|
|
|
+ return likeLeft(condition, sql.getSqlFieldName(alias, function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public Where<T> likeLeft(String sqlFieldName, Object value) {
|
|
|
return likeLeft(ObjectUtil.isNotEmpty(value), sqlFieldName, value);
|
|
|
}
|
|
@@ -224,6 +325,15 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
return likeRight(sql.getSqlFieldName(alias, function), value);
|
|
|
}
|
|
|
|
|
|
+ public <K, V> Where<T> likeRight(boolean condition, SFunction<K, V> function, Object value) {
|
|
|
+ return likeRight(condition, sql.getSqlFieldName(function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> likeRight(boolean condition, String alias, SFunction<K, V> function, Object value) {
|
|
|
+ return likeRight(condition, sql.getSqlFieldName(alias, function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public Where<T> likeRight(String sqlFieldName, Object value) {
|
|
|
return likeRight(ObjectUtil.isNotEmpty(value), sqlFieldName, value);
|
|
|
}
|
|
@@ -247,10 +357,28 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
return in(sql.getSqlFieldName(alias, function), value);
|
|
|
}
|
|
|
|
|
|
+ public <K, V> Where<T> in(boolean condition, SFunction<K, V> function, Collection<?> value) {
|
|
|
+ return in(condition, sql.getSqlFieldName(function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> in(boolean condition, String alias, SFunction<K, V> function, Collection<?> value) {
|
|
|
+ return in(condition, sql.getSqlFieldName(alias, function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> in(boolean condition, SFunction<K, V> function, Object... value) {
|
|
|
+ return in(condition, sql.getSqlFieldName(function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> in(boolean condition, String alias, SFunction<K, V> function, Object... value) {
|
|
|
+ return in(condition, sql.getSqlFieldName(alias, function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public Where<T> in(String sqlFieldName, Collection<?> value) {
|
|
|
return in(ObjectUtil.isNotEmpty(value), sqlFieldName, value);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
public Where<T> in(String sqlFieldName, Object... value) {
|
|
|
return in(ObjectUtil.isNotEmpty(value), sqlFieldName, value);
|
|
|
}
|
|
@@ -274,15 +402,71 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
return notIn(sql.getSqlFieldName(alias, function), value);
|
|
|
}
|
|
|
|
|
|
+ public <K, V> Where<T> notIn(boolean condition, SFunction<K, V> function, Collection<?> value) {
|
|
|
+ return notIn(condition, sql.getSqlFieldName(function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> notIn(boolean condition, String alias, SFunction<K, V> function, Collection<?> value) {
|
|
|
+ return notIn(condition, sql.getSqlFieldName(alias, function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> notIn(boolean condition, SFunction<K, V> function, Object... value) {
|
|
|
+ return notIn(condition, sql.getSqlFieldName(function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> notIn(boolean condition, String alias, SFunction<K, V> function, Object... value) {
|
|
|
+ return notIn(condition, sql.getSqlFieldName(alias, function), value);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public Where<T> notIn(String sqlFieldName, Collection<?> value) {
|
|
|
return notIn(ObjectUtil.isNotEmpty(value), sqlFieldName, value);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
public Where<T> notIn(String sqlFieldName, Object... value) {
|
|
|
return notIn(ObjectUtil.isNotEmpty(value), sqlFieldName, value);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * isNull
|
|
|
+ */
|
|
|
+ public <K, V> Where<T> isNull(SFunction<K, V> function) {
|
|
|
+ return isNull(sql.getSqlFieldName(function));
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> isNull(String alias, SFunction<K, V> function) {
|
|
|
+ return isNull(sql.getSqlFieldName(alias, function));
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> isNull(boolean condition, SFunction<K, V> function) {
|
|
|
+ return isNull(condition, sql.getSqlFieldName(function));
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> isNull(boolean condition, String alias, SFunction<K, V> function) {
|
|
|
+ return isNull(condition, sql.getSqlFieldName(alias, function));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * isNotNull
|
|
|
+ */
|
|
|
+ public <K, V> Where<T> isNotNull(SFunction<K, V> function) {
|
|
|
+ return isNotNull(sql.getSqlFieldName(function));
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> isNotNull(String alias, SFunction<K, V> function) {
|
|
|
+ return isNotNull(sql.getSqlFieldName(alias, function));
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> isNotNull(boolean condition, SFunction<K, V> function) {
|
|
|
+ return isNotNull(condition, sql.getSqlFieldName(function));
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> isNotNull(boolean condition, String alias, SFunction<K, V> function) {
|
|
|
+ return isNotNull(condition, sql.getSqlFieldName(alias, function));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* findInSet
|
|
|
*/
|
|
|
public <K, V> Where<T> findInSet(SFunction<K, V> function, Object value) {
|
|
@@ -293,6 +477,14 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
return apply(ObjectUtil.isNotEmpty(value), "FIND_IN_SET({0}, " + sql.getSqlFieldName(alias, function) + ")", value);
|
|
|
}
|
|
|
|
|
|
+ public <K, V> Where<T> findInSet(boolean condition, SFunction<K, V> function, Object value) {
|
|
|
+ return apply(condition, "FIND_IN_SET({0}, " + sql.getSqlFieldName(function) + ")", value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K, V> Where<T> findInSet(boolean condition, String alias, SFunction<K, V> function, Object value) {
|
|
|
+ return apply(condition, "FIND_IN_SET({0}, " + sql.getSqlFieldName(alias, function) + ")", value);
|
|
|
+ }
|
|
|
+
|
|
|
public List<T> list() {
|
|
|
List<Map<String, Object>> list = Sql.mapper.list(sql.getSql(), this);
|
|
|
return BeanUtil.copyToList(list, sql.resultCls);
|
|
@@ -300,7 +492,6 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
|
|
|
public Page<T> page(Page<?> page) {
|
|
|
Page<Map<String, Object>> tempResult = Sql.mapper.page(sql.getSql(), page, this);
|
|
|
-
|
|
|
Page<T> result = new Page<>();
|
|
|
result.setRecords(BeanUtil.copyToList(tempResult.getRecords(), sql.resultCls));
|
|
|
result.setPages(tempResult.getPages());
|
|
@@ -327,4 +518,4 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
return list().stream().collect(Collectors.groupingBy(kFun));
|
|
|
}
|
|
|
|
|
|
-}
|
|
|
+}
|