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