|
|
@@ -1,6 +1,5 @@
|
|
|
package cn.iocoder.yudao.framework.mybatis.core.mapper;
|
|
|
|
|
|
-
|
|
|
import java.lang.reflect.Field;
|
|
|
import java.lang.reflect.Method;
|
|
|
import java.lang.reflect.Modifier;
|
|
|
@@ -12,13 +11,11 @@ import org.apache.ibatis.ognl.OgnlRuntime;
|
|
|
import org.springframework.core.annotation.AnnotationUtils;
|
|
|
import org.springframework.util.ObjectUtils;
|
|
|
|
|
|
-
|
|
|
import com.baomidou.mybatisplus.annotation.TableField;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* @Description 拼接查询条件工具类
|
|
|
*/
|
|
|
@@ -34,10 +31,10 @@ public class QueryWrapperUtil {
|
|
|
Class<?> tmpClazz = clazz;
|
|
|
List<Field> fieldList = new ArrayList<>();
|
|
|
while (tmpClazz != null) {
|
|
|
- //处理去掉静态属性
|
|
|
- for (Field f:tmpClazz.getDeclaredFields()) {
|
|
|
- if(!Modifier.isStatic(f.getModifiers())) {
|
|
|
- fieldList.add(f);
|
|
|
+ // 处理去掉静态属性
|
|
|
+ for (Field f : tmpClazz.getDeclaredFields()) {
|
|
|
+ if (!Modifier.isStatic(f.getModifiers())) {
|
|
|
+ fieldList.add(f);
|
|
|
}
|
|
|
}
|
|
|
tmpClazz = tmpClazz.getSuperclass();
|
|
|
@@ -83,9 +80,9 @@ public class QueryWrapperUtil {
|
|
|
// Method method = clazz.getDeclaredMethod(propertyName);
|
|
|
// 获取getter方法
|
|
|
// Method method = propertyDescriptor.getReadMethod();
|
|
|
- //String getMethod = getMethod(name);
|
|
|
+ // String getMethod = getMethod(name);
|
|
|
Method method = getMethod(clazz, name);
|
|
|
- if(method==null) {
|
|
|
+ if (method == null) {
|
|
|
continue;
|
|
|
}
|
|
|
Object fieldValue = method.invoke(obj);
|
|
|
@@ -118,6 +115,9 @@ public class QueryWrapperUtil {
|
|
|
case GT:
|
|
|
queryWrapper.gt(!ObjectUtils.isEmpty(fieldValue), fieldName, fieldValue);
|
|
|
break;
|
|
|
+ case EQ:
|
|
|
+ queryWrapper.eq(!ObjectUtils.isEmpty(fieldValue), fieldName, fieldValue);
|
|
|
+ break;
|
|
|
case GE:
|
|
|
queryWrapper.ge(!ObjectUtils.isEmpty(fieldValue), fieldName, fieldValue);
|
|
|
break;
|
|
|
@@ -142,6 +142,37 @@ public class QueryWrapperUtil {
|
|
|
case DESC:
|
|
|
queryWrapper.orderByDesc(fieldName);
|
|
|
break;
|
|
|
+ case AND:
|
|
|
+ //queryWrapper.and(!ObjectUtils.isEmpty(fieldValue), fieldName, fieldValue);
|
|
|
+ //queryWrapper.and
|
|
|
+ break;
|
|
|
+ case BETWEEN:
|
|
|
+// queryWrapper.b
|
|
|
+// queryWrapper.and
|
|
|
+ break;
|
|
|
+ case EXISTS:
|
|
|
+ break;
|
|
|
+ case GROUP_BY:
|
|
|
+ break;
|
|
|
+ case HAVING:
|
|
|
+ break;
|
|
|
+ case IS_NOT_NULL:
|
|
|
+ break;
|
|
|
+ case IS_NULL:
|
|
|
+ break;
|
|
|
+ case NOT:
|
|
|
+ break;
|
|
|
+ case NOT_BETWEEN:
|
|
|
+ break;
|
|
|
+ case NOT_EXISTS:
|
|
|
+ break;
|
|
|
+ case NOT_IN:
|
|
|
+ break;
|
|
|
+ case OR:
|
|
|
+ queryWrapper.or();
|
|
|
+ break;
|
|
|
+ case ORDER_BY:
|
|
|
+ break;
|
|
|
case ASC:
|
|
|
queryWrapper.orderByAsc(fieldName);
|
|
|
break;
|
|
|
@@ -152,7 +183,7 @@ public class QueryWrapperUtil {
|
|
|
// 声明属性描述对象
|
|
|
// getMethod = getMethod(startRange);
|
|
|
// method = ReflectionUtils.findMethod(clazz, getMethod);
|
|
|
- method = getMethod(clazz, startRange);
|
|
|
+ method = getMethod(clazz, startRange);
|
|
|
if (method != null) {
|
|
|
Object val = method.invoke(obj);
|
|
|
if (!ObjectUtils.isEmpty(val)) {
|
|
|
@@ -165,9 +196,9 @@ public class QueryWrapperUtil {
|
|
|
// Object val = startRange.get(obj);
|
|
|
// 结束的属性值,通过反射设置属性值
|
|
|
String endRange = attribute[1];
|
|
|
- //getMethod = getMethod(endRange);
|
|
|
+ // getMethod = getMethod(endRange);
|
|
|
// 获取getter方法
|
|
|
- //method = ReflectionUtils.findMethod(clazz, getMethod);
|
|
|
+ // method = ReflectionUtils.findMethod(clazz, getMethod);
|
|
|
method = getMethod(clazz, endRange);
|
|
|
if (method != null) {
|
|
|
Object val = method.invoke(obj);
|
|
|
@@ -188,6 +219,7 @@ public class QueryWrapperUtil {
|
|
|
queryWrapper.le(fieldName, val);
|
|
|
}
|
|
|
break;
|
|
|
+
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
@@ -202,15 +234,14 @@ public class QueryWrapperUtil {
|
|
|
return queryWrapper;
|
|
|
|
|
|
}
|
|
|
-
|
|
|
|
|
|
// 获取get方法
|
|
|
- public static Method getMethod(Class<?> clazz,String filedName) throws Exception {
|
|
|
+ public static Method getMethod(Class<?> clazz, String filedName) throws Exception {
|
|
|
// String alpha = filedName.substring(0, 1).toUpperCase();
|
|
|
// String methodName = "get" + alpha + filedName.substring(1);
|
|
|
// PropertyDescriptor p = new PropertyDescriptor(filedName, beanClass);
|
|
|
// Method readMethod = p.getReadMethod();
|
|
|
-
|
|
|
+
|
|
|
return OgnlRuntime.getReadMethod(clazz, filedName);
|
|
|
}
|
|
|
|