虚拟清单--高级搜索

This commit is contained in:
zhn
2022-06-06 16:53:54 +08:00
parent ea6cff7386
commit 39f3170b90
@@ -5531,42 +5531,40 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
String field = queryConditionVO.getField(); String field = queryConditionVO.getField();
String val = queryConditionVO.getVal(); String val = queryConditionVO.getVal();
//如果查询字段对应的搜索条件值为空,则不作处理 //如果查询字段对应的搜索条件值为空,则不作处理
if(StringUtils.isNotBlank(val)){ if(StringUtils.isNotBlank(val)) {
count ++;//从第二个查询条件开始拼接type(and或or) count++;//从第二个查询条件开始拼接type(and或or)
if(count > 1){ if (count > 1) {
sb.append(" "+type + " "); sb.append(" " + type + " ");
} }
sb.append(" " + field + " "); sb.append(" " + field + " ");
//查询类型 //查询类型
String ruleTemp = queryType(rule); String ruleTemp = queryType(rule);
if(StringUtils.isNotBlank(ruleLike)){ if (StringUtils.isNotBlank(ruleLike)) {
sb.append(ruleLike + " "); sb.append(ruleLike + " ");
}else{ } else {
sb.append(ruleTemp + " "); sb.append(ruleTemp + " ");
} }
//在..中(用in-->特殊处理) //like和in需要特殊处理
if(val.contains(",")){ if (QueryRuleEnum.IN.getCondition().equals(rule)) {
StringBuilder sbTemp = new StringBuilder(); if (val.contains(",")) {
for (String valTemp : val.split(",")) { StringBuilder sbTemp = new StringBuilder();
sbTemp.append("'" + valTemp +"' ,"); for (String valTemp : val.split(",")) {
} sbTemp.append("'" + valTemp + "' ,");
if(StringUtils.isNotBlank(sbTemp)){ }
String substring = sbTemp.substring(0, sbTemp.length() - 1); if (StringUtils.isNotBlank(sbTemp)) {
sb.append("("+substring+")"); String substring = sbTemp.substring(0, sbTemp.length() - 1);
} sb.append("(" + substring + ")");
}else{ }
//like和in需要特殊处理
if(QueryRuleEnum.IN.getCondition().equals(rule)){
sb.append("('" + val + "')");
}else if(QueryRuleEnum.LIKE.getCondition().equals(rule)){
sb.append("'%" + val + "%'");
}else if(QueryRuleEnum.LEFT_LIKE.getCondition().equals(rule)){
sb.append("'%" + val + "'");
}else if(QueryRuleEnum.RIGHT_LIKE.getCondition().equals(rule)){
sb.append("'" + val + "%'");
}else{
sb.append("'" + val + "'");
} }
sb.append("('" + val + "')");
} else if (QueryRuleEnum.LIKE.getCondition().equals(rule)) {
sb.append("'%" + val + "%'");
} else if (QueryRuleEnum.LEFT_LIKE.getCondition().equals(rule)) {
sb.append("'%" + val + "'");
} else if (QueryRuleEnum.RIGHT_LIKE.getCondition().equals(rule)) {
sb.append("'" + val + "%'");
} else {
sb.append("'" + val + "'");
} }
} }
} }