新增ModelSearchEngine和ModelSearchHandler模块,提供零件和装配体名称搜索功能: • 支持prefix、contains、fuzzy三种匹配模式 • 从根装配体构建完整模型树层级路径 • 智能去重算法自动去除重复结果,保留最长路径 • 递归搜索支持多层级装配体遍历 • 向后兼容,不影响现有功能 解决搜索重复结果和缺少层级路径问题,提升用户体验。 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
39 lines
1.6 KiB
C++
39 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include "ModelSearchEngine.h"
|
|
#include "HttpServer.h"
|
|
#include <string>
|
|
#include <sstream>
|
|
|
|
class ModelSearchHandler {
|
|
public:
|
|
// 主要HTTP处理方法
|
|
static HttpResponse HandleModelSearchRequest(const HttpRequest& request);
|
|
|
|
private:
|
|
// JSON解析辅助方法
|
|
static std::string ExtractJsonValue(const std::string& json, const std::string& key);
|
|
static bool ExtractJsonBoolValue(const std::string& json, const std::string& key, bool default_value = false);
|
|
static int ExtractJsonIntValue(const std::string& json, const std::string& key, int default_value = 0);
|
|
static double ExtractJsonDoubleValue(const std::string& json, const std::string& key, double default_value = 0.0);
|
|
static std::vector<std::string> ExtractJsonArrayValue(const std::string& json, const std::string& key);
|
|
|
|
// JSON转义辅助方法
|
|
static std::string EscapeJsonString(const std::string& input);
|
|
|
|
// 请求验证方法
|
|
static bool ValidateHttpRequest(const HttpRequest& request, std::string& error_message);
|
|
|
|
// 参数解析方法
|
|
static ModelSearchRequest ParseSearchRequest(const std::string& json_body);
|
|
|
|
// 响应格式化方法
|
|
static HttpResponse FormatSuccessResponse(const ModelSearchResult& result);
|
|
static HttpResponse FormatErrorResponse(int status_code, const std::string& error_message);
|
|
|
|
// 辅助工具方法
|
|
static std::string Trim(const std::string& str);
|
|
static bool StartsWith(const std::string& str, const std::string& prefix);
|
|
static bool EndsWith(const std::string& str, const std::string& suffix);
|
|
};
|