【fix sonar】QueryGenerator文件
This commit is contained in:
+137
-137
@@ -158,7 +158,7 @@ public class QueryGenerator {
|
||||
//区间查询
|
||||
doIntervalQuery(queryWrapper, parameterMap, type, name, column);
|
||||
//判断单值 参数带不同标识字符串 走不同的查询
|
||||
// 这种前后带逗号的支持分割后模糊查询需要否 使多选字段的查询生效
|
||||
//TODO 这种前后带逗号的支持分割后模糊查询需要否 使多选字段的查询生效
|
||||
addQueryWapper(queryWrapper, column, value);
|
||||
|
||||
} catch (Exception e) {
|
||||
@@ -195,8 +195,8 @@ public class QueryGenerator {
|
||||
value = replaceValue(rule,value);
|
||||
// add -begin 添加判断为字符串时设为全模糊查询
|
||||
//if( (rule==null || QueryRuleEnum.EQ.equals(rule)) && "class java.lang.String".equals(type)) {
|
||||
// 可以设置左右模糊或全模糊,因人而异
|
||||
//rule = QueryRuleEnum.LIKE;
|
||||
// 可以设置左右模糊或全模糊,因人而异
|
||||
//rule = QueryRuleEnum.LIKE;
|
||||
//}
|
||||
// add -end 添加判断为字符串时设为全模糊查询
|
||||
addEasyQuery(queryWrapper, column, rule, value);
|
||||
@@ -277,25 +277,25 @@ public class QueryGenerator {
|
||||
if(parameterMap!=null&& parameterMap.containsKey(SUPER_QUERY_PARAMS)){
|
||||
String superQueryParams = parameterMap.get(SUPER_QUERY_PARAMS)[0];
|
||||
String superQueryMatchType = parameterMap.get(SUPER_QUERY_MATCH_TYPE) != null ? parameterMap.get(SUPER_QUERY_MATCH_TYPE)[0] : MatchTypeEnum.AND.getValue();
|
||||
MatchTypeEnum matchType = MatchTypeEnum.getByValue(superQueryMatchType);
|
||||
// update-begin--Author:sunjianlei Date:20200325 for:高级查询的条件要用括号括起来,防止和用户的其他条件冲突 -------
|
||||
try {
|
||||
superQueryParams = URLDecoder.decode(superQueryParams, "UTF-8");
|
||||
List<QueryCondition> conditions = JSON.parseArray(superQueryParams, QueryCondition.class);
|
||||
if (conditions == null || conditions.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
log.info("---高级查询参数-->" + conditions.toString());
|
||||
queryWrapper.and(andWrapper -> {
|
||||
MatchTypeEnum matchType = MatchTypeEnum.getByValue(superQueryMatchType);
|
||||
// update-begin--Author:sunjianlei Date:20200325 for:高级查询的条件要用括号括起来,防止和用户的其他条件冲突 -------
|
||||
try {
|
||||
superQueryParams = URLDecoder.decode(superQueryParams, "UTF-8");
|
||||
List<QueryCondition> conditions = JSON.parseArray(superQueryParams, QueryCondition.class);
|
||||
if (conditions == null || conditions.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
log.info("---高级查询参数-->" + conditions.toString());
|
||||
queryWrapper.and(andWrapper -> {
|
||||
andQueryWapper(fieldColumnMap, matchType, conditions, andWrapper);
|
||||
});
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
log.error("--高级查询参数转码失败:" + superQueryParams, e);
|
||||
} catch (Exception e) {
|
||||
log.error("--高级查询拼接失败:" + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
// update-end--Author:sunjianlei Date:20200325 for:高级查询的条件要用括号括起来,防止和用户的其他条件冲突 -------
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
log.error("--高级查询参数转码失败:" + superQueryParams, e);
|
||||
} catch (Exception e) {
|
||||
log.error("--高级查询拼接失败:" + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
// update-end--Author:sunjianlei Date:20200325 for:高级查询的条件要用括号括起来,防止和用户的其他条件冲突 -------
|
||||
}
|
||||
}
|
||||
|
||||
@@ -344,7 +344,7 @@ public class QueryGenerator {
|
||||
QueryRuleEnum rule =null;
|
||||
|
||||
//update-begin--Author:scott Date:20190724 for:initQueryWrapper组装sql查询条件错误 #284-------------------
|
||||
// 此处规则,只适用于 le lt ge gt
|
||||
//TODO 此处规则,只适用于 le lt ge gt
|
||||
// step 2 .>= =<
|
||||
if (val.length() >= 3 && QUERY_SEPARATE_KEYWORD.equals(val.substring(2, 3))) {
|
||||
rule = QueryRuleEnum.getByValue(val.substring(0, 2));
|
||||
@@ -360,7 +360,7 @@ public class QueryGenerator {
|
||||
|
||||
// step 4 in
|
||||
if (rule == null && val.contains(COMMA)) {
|
||||
// in 查询这里应该有个bug 如果一字段本身就是多选 此时用in查询 未必能查询出来
|
||||
//TODO in 查询这里应该有个bug 如果一字段本身就是多选 此时用in查询 未必能查询出来
|
||||
rule = QueryRuleEnum.IN;
|
||||
}
|
||||
// step 5 !=
|
||||
@@ -430,7 +430,7 @@ public class QueryGenerator {
|
||||
}else {
|
||||
//update-begin--Author:scott Date:20190724 for:initQueryWrapper组装sql查询条件错误 #284-------------------
|
||||
if(val.startsWith(rule.getValue())){
|
||||
// 此处逻辑应该注释掉-> 如果查询内容中带有查询匹配规则符号,就会被截取的(比如:>=您好)
|
||||
//TODO 此处逻辑应该注释掉-> 如果查询内容中带有查询匹配规则符号,就会被截取的(比如:>=您好)
|
||||
value = val.replaceFirst(rule.getValue(),"");
|
||||
}else if(val.startsWith(rule.getCondition()+QUERY_SEPARATE_KEYWORD)){
|
||||
value = val.replaceFirst(rule.getCondition()+QUERY_SEPARATE_KEYWORD,"").trim();
|
||||
@@ -451,30 +451,30 @@ public class QueryGenerator {
|
||||
}
|
||||
|
||||
switch (type) {
|
||||
case "class java.lang.Integer":
|
||||
temp = Integer.parseInt(value);
|
||||
break;
|
||||
case "class java.math.BigDecimal":
|
||||
temp = new BigDecimal(value);
|
||||
break;
|
||||
case "class java.lang.Short":
|
||||
temp = Short.parseShort(value);
|
||||
break;
|
||||
case "class java.lang.Long":
|
||||
temp = Long.parseLong(value);
|
||||
break;
|
||||
case "class java.lang.Float":
|
||||
temp = Float.parseFloat(value);
|
||||
break;
|
||||
case "class java.lang.Double":
|
||||
temp = Double.parseDouble(value);
|
||||
break;
|
||||
case "class java.util.Date":
|
||||
temp = getDateQueryByRule(value, rule);
|
||||
break;
|
||||
default:
|
||||
temp = value;
|
||||
break;
|
||||
case "class java.lang.Integer":
|
||||
temp = Integer.parseInt(value);
|
||||
break;
|
||||
case "class java.math.BigDecimal":
|
||||
temp = new BigDecimal(value);
|
||||
break;
|
||||
case "class java.lang.Short":
|
||||
temp = Short.parseShort(value);
|
||||
break;
|
||||
case "class java.lang.Long":
|
||||
temp = Long.parseLong(value);
|
||||
break;
|
||||
case "class java.lang.Float":
|
||||
temp = Float.parseFloat(value);
|
||||
break;
|
||||
case "class java.lang.Double":
|
||||
temp = Double.parseDouble(value);
|
||||
break;
|
||||
case "class java.util.Date":
|
||||
temp = getDateQueryByRule(value, rule);
|
||||
break;
|
||||
default:
|
||||
temp = value;
|
||||
break;
|
||||
}
|
||||
addEasyQuery(queryWrapper, name, rule, temp);
|
||||
}
|
||||
@@ -497,7 +497,7 @@ public class QueryGenerator {
|
||||
//比较小于
|
||||
date = getTime().parse(value + " 23:59:59");
|
||||
}
|
||||
// 日期类型比较特殊 可能oracle下不一定好使
|
||||
//TODO 日期类型比较特殊 可能oracle下不一定好使
|
||||
}
|
||||
if(date==null) {
|
||||
date = getTime().parse(value);
|
||||
@@ -506,7 +506,7 @@ public class QueryGenerator {
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据规则走不同的查询
|
||||
* 根据规则走不同的查询
|
||||
* @param queryWrapper QueryWrapper
|
||||
* @param name 字段名字
|
||||
* @param rule 查询规则
|
||||
@@ -519,51 +519,51 @@ public class QueryGenerator {
|
||||
name = oConvertUtils.camelToUnderline(name);
|
||||
log.info("--查询规则-->"+name+" "+rule.getValue()+" "+value);
|
||||
switch (rule) {
|
||||
case GT:
|
||||
queryWrapper.gt(name, value);
|
||||
break;
|
||||
case GE:
|
||||
queryWrapper.ge(name, value);
|
||||
break;
|
||||
case LT:
|
||||
queryWrapper.lt(name, value);
|
||||
break;
|
||||
case LE:
|
||||
queryWrapper.le(name, value);
|
||||
break;
|
||||
case EQ:
|
||||
case EQ_WITH_ADD:
|
||||
queryWrapper.eq(name, value);
|
||||
break;
|
||||
case NE:
|
||||
queryWrapper.ne(name, value);
|
||||
break;
|
||||
case IN:
|
||||
if(value instanceof String) {
|
||||
queryWrapper.in(name, (Object[])value.toString().split(","));
|
||||
}else if(value instanceof String[]) {
|
||||
queryWrapper.in(name, (Object[]) value);
|
||||
}
|
||||
//update-begin-author:taoyan date:20200909 for:【bug】in 类型多值查询 不适配postgresql #1671
|
||||
else if(value.getClass().isArray()) {
|
||||
queryWrapper.in(name, (Object[])value);
|
||||
}else {
|
||||
queryWrapper.in(name, value);
|
||||
}
|
||||
//update-end-author:taoyan date:20200909 for:【bug】in 类型多值查询 不适配postgresql #1671
|
||||
break;
|
||||
case LIKE:
|
||||
queryWrapper.like(name, value);
|
||||
break;
|
||||
case LEFT_LIKE:
|
||||
queryWrapper.likeLeft(name, value);
|
||||
break;
|
||||
case RIGHT_LIKE:
|
||||
queryWrapper.likeRight(name, value);
|
||||
break;
|
||||
default:
|
||||
log.info("--查询规则未匹配到---");
|
||||
break;
|
||||
case GT:
|
||||
queryWrapper.gt(name, value);
|
||||
break;
|
||||
case GE:
|
||||
queryWrapper.ge(name, value);
|
||||
break;
|
||||
case LT:
|
||||
queryWrapper.lt(name, value);
|
||||
break;
|
||||
case LE:
|
||||
queryWrapper.le(name, value);
|
||||
break;
|
||||
case EQ:
|
||||
case EQ_WITH_ADD:
|
||||
queryWrapper.eq(name, value);
|
||||
break;
|
||||
case NE:
|
||||
queryWrapper.ne(name, value);
|
||||
break;
|
||||
case IN:
|
||||
if(value instanceof String) {
|
||||
queryWrapper.in(name, (Object[])value.toString().split(","));
|
||||
}else if(value instanceof String[]) {
|
||||
queryWrapper.in(name, (Object[]) value);
|
||||
}
|
||||
//update-begin-author:taoyan date:20200909 for:【bug】in 类型多值查询 不适配postgresql #1671
|
||||
else if(value.getClass().isArray()) {
|
||||
queryWrapper.in(name, (Object[])value);
|
||||
}else {
|
||||
queryWrapper.in(name, value);
|
||||
}
|
||||
//update-end-author:taoyan date:20200909 for:【bug】in 类型多值查询 不适配postgresql #1671
|
||||
break;
|
||||
case LIKE:
|
||||
queryWrapper.like(name, value);
|
||||
break;
|
||||
case LEFT_LIKE:
|
||||
queryWrapper.likeLeft(name, value);
|
||||
break;
|
||||
case RIGHT_LIKE:
|
||||
queryWrapper.likeRight(name, value);
|
||||
break;
|
||||
default:
|
||||
log.info("--查询规则未匹配到---");
|
||||
break;
|
||||
}
|
||||
}
|
||||
/**
|
||||
@@ -656,12 +656,12 @@ public class QueryGenerator {
|
||||
}
|
||||
|
||||
/**
|
||||
* @author: scott
|
||||
* @Description: 去掉值前后单引号
|
||||
* @date: 2020/3/19 21:26
|
||||
* @param ruleValue:
|
||||
* @Return: java.lang.String
|
||||
*/
|
||||
* @author: scott
|
||||
* @Description: 去掉值前后单引号
|
||||
* @date: 2020/3/19 21:26
|
||||
* @param ruleValue:
|
||||
* @Return: java.lang.String
|
||||
*/
|
||||
public static String trimSingleQuote(String ruleValue) {
|
||||
if (oConvertUtils.isEmpty(ruleValue)) {
|
||||
return "";
|
||||
@@ -750,42 +750,42 @@ public class QueryGenerator {
|
||||
String res = "";
|
||||
String like = " like ";
|
||||
switch (rule) {
|
||||
case GT:
|
||||
res =field+rule.getValue()+getFieldConditionValue(value, isString, dataBaseType);
|
||||
break;
|
||||
case GE:
|
||||
res = field+rule.getValue()+getFieldConditionValue(value, isString, dataBaseType);
|
||||
break;
|
||||
case LT:
|
||||
res = field+rule.getValue()+getFieldConditionValue(value, isString, dataBaseType);
|
||||
break;
|
||||
case LE:
|
||||
res = field+rule.getValue()+getFieldConditionValue(value, isString, dataBaseType);
|
||||
break;
|
||||
case EQ:
|
||||
res = field+rule.getValue()+getFieldConditionValue(value, isString, dataBaseType);
|
||||
break;
|
||||
case EQ_WITH_ADD:
|
||||
res = field+" = "+getFieldConditionValue(value, isString, dataBaseType);
|
||||
break;
|
||||
case NE:
|
||||
res = field+" <> "+getFieldConditionValue(value, isString, dataBaseType);
|
||||
break;
|
||||
case IN:
|
||||
res = field + " in "+getInConditionValue(value, isString);
|
||||
break;
|
||||
case LIKE:
|
||||
res = field + like+getLikeConditionValue(value);
|
||||
break;
|
||||
case LEFT_LIKE:
|
||||
res = field + like+getLikeConditionValue(value);
|
||||
break;
|
||||
case RIGHT_LIKE:
|
||||
res = field + like+getLikeConditionValue(value);
|
||||
break;
|
||||
default:
|
||||
res = field+" = "+getFieldConditionValue(value, isString, dataBaseType);
|
||||
break;
|
||||
case GT:
|
||||
res =field+rule.getValue()+getFieldConditionValue(value, isString, dataBaseType);
|
||||
break;
|
||||
case GE:
|
||||
res = field+rule.getValue()+getFieldConditionValue(value, isString, dataBaseType);
|
||||
break;
|
||||
case LT:
|
||||
res = field+rule.getValue()+getFieldConditionValue(value, isString, dataBaseType);
|
||||
break;
|
||||
case LE:
|
||||
res = field+rule.getValue()+getFieldConditionValue(value, isString, dataBaseType);
|
||||
break;
|
||||
case EQ:
|
||||
res = field+rule.getValue()+getFieldConditionValue(value, isString, dataBaseType);
|
||||
break;
|
||||
case EQ_WITH_ADD:
|
||||
res = field+" = "+getFieldConditionValue(value, isString, dataBaseType);
|
||||
break;
|
||||
case NE:
|
||||
res = field+" <> "+getFieldConditionValue(value, isString, dataBaseType);
|
||||
break;
|
||||
case IN:
|
||||
res = field + " in "+getInConditionValue(value, isString);
|
||||
break;
|
||||
case LIKE:
|
||||
res = field + like+getLikeConditionValue(value);
|
||||
break;
|
||||
case LEFT_LIKE:
|
||||
res = field + like+getLikeConditionValue(value);
|
||||
break;
|
||||
case RIGHT_LIKE:
|
||||
res = field + like+getLikeConditionValue(value);
|
||||
break;
|
||||
default:
|
||||
res = field+" = "+getFieldConditionValue(value, isString, dataBaseType);
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
@@ -969,7 +969,7 @@ public class QueryGenerator {
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据权限相关配置 组装mp需要的权限
|
||||
* 根据权限相关配置 组装mp需要的权限
|
||||
* @param queryWrapper
|
||||
* @param clazz
|
||||
* @return
|
||||
|
||||
Reference in New Issue
Block a user