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