From 2e3e12aca66acfcb03cf7da9c23eed3d3bfee84d Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 05 Jun 2026 18:30:16 +0800
Subject: [PATCH] 1

---
 trading-order-bean/src/main/java/com/yami/trading/bean/item/query/ItemQuery.java         |   10 ++++++++--
 trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiItemController.java |   26 ++++++++++++++++++++------
 2 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiItemController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiItemController.java
index c1afbf3..56c1fca 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiItemController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiItemController.java
@@ -254,9 +254,21 @@
             queryWrapper.notIn(ObjectUtil.notEqual("1", itemQuery.getMarketIndex()), "symbol", symbolsNotCotnains);
         }
 
-        List<String> symbols = Lists.newArrayList();
-        if (StrUtil.isNotEmpty(symbol)) {
-            symbols = Splitter.on(",").splitToList(symbol);
+        // 搜索:name / symbol 均支持对 NAME、SYMBOL、en_name 模糊匹配。
+        // 仅当 symbol 为逗号分隔的多代码时,才按精确 symbol 列表筛选。
+        String nameParam = StrUtil.trim(itemQuery.getName());
+        String keywordParam = StrUtil.trim(itemQuery.getKeyword());
+        String symbolParam = StrUtil.trim(symbol);
+        List<String> symbolFilter = Lists.newArrayList();
+        String keyword = null;
+        if (StrUtil.isNotEmpty(symbolParam) && symbolParam.contains(",")) {
+            symbolFilter = Splitter.on(",").trimResults().omitEmptyStrings().splitToList(symbolParam);
+        } else if (StrUtil.isNotBlank(keywordParam)) {
+            keyword = keywordParam;
+        } else if (StrUtil.isNotBlank(nameParam)) {
+            keyword = nameParam;
+        } else if (StrUtil.isNotBlank(symbolParam)) {
+            keyword = symbolParam;
         }
 
         if ("1".equalsIgnoreCase(itemQuery.getBoardType())) {
@@ -264,9 +276,11 @@
         } else if ("2".equalsIgnoreCase(itemQuery.getBoardType())) {
             queryWrapper.ne("category", "global");
         }
-        queryWrapper.in(CollectionUtil.isNotEmpty(symbols), "symbol", symbols);
-        String name = itemQuery.getName();
-        queryWrapper.and(StringUtils.isNotEmpty(name), itemWrapper -> itemWrapper.like("name", name).or().like("symbol", name).or().like("en_name", name));
+        queryWrapper.in(CollectionUtil.isNotEmpty(symbolFilter), "symbol", symbolFilter);
+        if (StrUtil.isNotBlank(keyword)) {
+            final String kw = keyword;
+            queryWrapper.and(w -> w.like("name", kw).or().like("symbol", kw).or().like("en_name", kw));
+        }
         queryWrapper.eq(StrUtil.isNotBlank(type), "type", type);
         queryWrapper.like(StrUtil.isNotBlank(category), "category", category);
         // 倒序吗? TODO
diff --git a/trading-order-bean/src/main/java/com/yami/trading/bean/item/query/ItemQuery.java b/trading-order-bean/src/main/java/com/yami/trading/bean/item/query/ItemQuery.java
index 5195993..a52f73a 100644
--- a/trading-order-bean/src/main/java/com/yami/trading/bean/item/query/ItemQuery.java
+++ b/trading-order-bean/src/main/java/com/yami/trading/bean/item/query/ItemQuery.java
@@ -24,14 +24,20 @@
 	private static final long serialVersionUID = 1L;
 
 	/**
-	 * name
+	 * 搜索关键词,模糊匹配币种名称(NAME)、代码(SYMBOL)
 	 */
 	@ApiParam(value = "name")
 	@Query(type = QueryType.LIKE)
 	private String name;
 
 	/**
-     * 代码
+	 * 统一搜索关键词(与 name 等价,便于前端传参)
+	 */
+	@ApiParam(value = "keyword")
+	private String keyword;
+
+	/**
+     * 代码(SYMBOL)。单个值时作为搜索关键词模糊匹配 NAME/SYMBOL;逗号分隔时为精确 symbol 列表筛选
      */
 	@ApiParam(value = "symbol")
 	@Query(type = QueryType.LIKE)

--
Gitblit v1.9.3