From bfc9e3dec34e108e2b4c3d0bfe19c5c16914fdff Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期一, 23 六月 2025 13:46:30 +0800
Subject: [PATCH] 1. 配方管理类添加关键字查询(PPID和描述)

---
 SourceCode/Bond/Servo/RecipeManager.cpp |   23 +++++++++++++++++++++++
 SourceCode/Bond/Servo/RecipeManager.h   |    3 +++
 2 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/SourceCode/Bond/Servo/RecipeManager.cpp b/SourceCode/Bond/Servo/RecipeManager.cpp
index 465c1af..48cbb56 100644
--- a/SourceCode/Bond/Servo/RecipeManager.cpp
+++ b/SourceCode/Bond/Servo/RecipeManager.cpp
@@ -238,6 +238,29 @@
     return recipes;
 }
 
+std::vector<RecipeInfo> RecipeManager::getRecipesByKeyword(const std::string& keyword) {
+    std::vector<RecipeInfo> recipes;
+    if (!m_pDB || keyword.empty()) {
+        return recipes;
+    }
+
+    std::ostringstream query;
+    query << "SELECT ppid, description, create_time FROM recipes "
+        << "WHERE ppid LIKE '%" << keyword << "%' OR description LIKE '%" << keyword << "%';";
+
+    auto rows = m_pDB->fetchResults(query.str());
+    for (const auto& row : rows) {
+        if (row.size() >= 3) {
+            RecipeInfo info;
+            info.strPPID = row[0];
+            info.strDescription = row[1];
+            info.strCreateTime = row[2];
+            recipes.push_back(info);
+        }
+    }
+    return recipes;
+}
+
 std::vector<std::string> RecipeManager::getAllPPID() const {
     std::vector<std::string> vecPPID;
 
diff --git a/SourceCode/Bond/Servo/RecipeManager.h b/SourceCode/Bond/Servo/RecipeManager.h
index f13bc50..f25d36c 100644
--- a/SourceCode/Bond/Servo/RecipeManager.h
+++ b/SourceCode/Bond/Servo/RecipeManager.h
@@ -58,6 +58,9 @@
     // 查询所有配方
     std::vector<RecipeInfo> getAllRecipes();
 
+	// 根据 PPID 或描述查询配方
+    std::vector<RecipeInfo> getRecipesByKeyword(const std::string& keyword);
+
 	// 获取所有 PPID
     std::vector<std::string> getAllPPID() const;
 

--
Gitblit v1.9.3