From f788adc8cf57b2202073a27a52b5c096494dd772 Mon Sep 17 00:00:00 2001 From: pycook Date: Mon, 4 Mar 2024 15:15:34 +0800 Subject: [PATCH] feat(api): multi-id search (#411) _id:(id1;id2) --- cmdb-api/api/lib/cmdb/search/ci/db/query_sql.py | 2 +- cmdb-api/api/lib/cmdb/search/ci/db/search.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/cmdb-api/api/lib/cmdb/search/ci/db/query_sql.py b/cmdb-api/api/lib/cmdb/search/ci/db/query_sql.py index 24aa0cb..f3e76bf 100644 --- a/cmdb-api/api/lib/cmdb/search/ci/db/query_sql.py +++ b/cmdb-api/api/lib/cmdb/search/ci/db/query_sql.py @@ -62,7 +62,7 @@ QUERY_CI_BY_ATTR_NAME = """ QUERY_CI_BY_ID = """ SELECT c_cis.id as ci_id FROM c_cis - WHERE c_cis.id={} + WHERE c_cis.id {} """ QUERY_CI_BY_TYPE = """ diff --git a/cmdb-api/api/lib/cmdb/search/ci/db/search.py b/cmdb-api/api/lib/cmdb/search/ci/db/search.py index 206e921..e7b9557 100644 --- a/cmdb-api/api/lib/cmdb/search/ci/db/search.py +++ b/cmdb-api/api/lib/cmdb/search/ci/db/search.py @@ -138,7 +138,10 @@ class Search(object): @staticmethod def _id_query_handler(v): - return QUERY_CI_BY_ID.format(v) + if ";" in v: + return QUERY_CI_BY_ID.format("in {}".format(v.replace(';', ','))) + else: + return QUERY_CI_BY_ID.format("= {}".format(v)) @staticmethod def _in_query_handler(attr, v, is_not):