diff --git a/src/main/java/neatlogic/module/cmdb/dao/mapper/resourcecenter/ResourceMapper.xml b/src/main/java/neatlogic/module/cmdb/dao/mapper/resourcecenter/ResourceMapper.xml index 31207138db76cd7c313048a8c3c23460440d8c35..89ec42a8b7676f7654f7296387391cf2d302ca7b 100644 --- a/src/main/java/neatlogic/module/cmdb/dao/mapper/resourcecenter/ResourceMapper.xml +++ b/src/main/java/neatlogic/module/cmdb/dao/mapper/resourcecenter/ResourceMapper.xml @@ -176,8 +176,14 @@ #{item} --> - + + + AND + + a.`name` LIKE CONCAT(#{keywordItem}, '%') OR a.`ip` LIKE CONCAT(#{keywordItem}, '%') + AND fw2.word IN @@ -270,8 +276,14 @@ #{item} --> - + + + AND + + a.`name` LIKE CONCAT(#{keywordItem}, '%') OR a.`ip` LIKE CONCAT(#{keywordItem}, '%') + diff --git a/src/main/java/neatlogic/module/cmdb/service/resourcecenter/resource/ResourceBuildSqlServiceImpl.java b/src/main/java/neatlogic/module/cmdb/service/resourcecenter/resource/ResourceBuildSqlServiceImpl.java index 848f2b2a4d8b4b8461e95e98f03919bad3a75611..ae3ebaa8a5212004dd3d9c2651ed06bf059c6a9d 100644 --- a/src/main/java/neatlogic/module/cmdb/service/resourcecenter/resource/ResourceBuildSqlServiceImpl.java +++ b/src/main/java/neatlogic/module/cmdb/service/resourcecenter/resource/ResourceBuildSqlServiceImpl.java @@ -2824,14 +2824,40 @@ public class ResourceBuildSqlServiceImpl implements ResourceBuildSqlService, IRe AND (a.`name` LIKE CONCAT(#{keyword}, '%') OR a.`ip` LIKE CONCAT(#{keyword}, '%')) */ - if (StringUtils.isNotBlank(queryCriteriaVo.getKeyword())) { - String keyword = queryCriteriaVo.getKeyword() + "%"; - whereExpressionList.add($sql.exp( - "(", - $sql.exp(fieldName2ColumnMap.get("name").toString(), "like", $sql.value(keyword)), - "OR", - $sql.exp(fieldName2ColumnMap.get("ip").toString(), "like", $sql.value(keyword)), - ")")); +// if (StringUtils.isNotBlank(queryCriteriaVo.getKeyword())) { +// String keyword = queryCriteriaVo.getKeyword() + "%"; +// whereExpressionList.add($sql.exp( +// "(", +// $sql.exp(fieldName2ColumnMap.get("name").toString(), "like", $sql.value(keyword)), +// "OR", +// $sql.exp(fieldName2ColumnMap.get("ip").toString(), "like", $sql.value(keyword)), +// ")")); +// } + /* + + AND + + a.`name` LIKE CONCAT(#{keywordItem}, '%') OR a.`ip` LIKE CONCAT(#{keywordItem}, '%') + + + */ + if (CollectionUtils.isNotEmpty(queryCriteriaVo.getKeywordList())) { + ExpressionVo orExp = null; + for (String keyword : queryCriteriaVo.getKeywordList()) { + if (orExp == null) { + orExp = $sql.exp(fieldName2ColumnMap.get("name").toString(), "like", $sql.value(keyword + "%")); + } else { + orExp = $sql.exp( + orExp, + "OR", + $sql.exp(fieldName2ColumnMap.get("name").toString(), "like", $sql.value(keyword + "%"))); + } + orExp = $sql.exp( + orExp, + "OR", + $sql.exp(fieldName2ColumnMap.get("ip").toString(), "like", $sql.value(keyword + "%"))); + } + whereExpressionList.add($sql.exp("(", orExp, ")")); } /*