Commit ce8fdd9f3363fd91ef819707ae1216c5665381a9

Authored by tangwang
1 parent e4a39cc8

为前端搜索输入框的自动补全(suggest)功能添加 tenant_id 参数,并实现配置化映射。

修改内容
1. 在 tenant_facets_config.js 中添加映射配置
添加 TENANT_ID_MAPPING 配置对象,包含映射关系:
170 → 170
171 → 170
162 → 0
添加 getMappedTenantId() 函数,用于获取映射后的 tenant_id
frontend/index.html
... ... @@ -235,6 +235,25 @@
235 235 };
236 236 }
237 237  
  238 + // 获取映射后的 tenant_id(用于 suggest API)
  239 + function getMappedTenantIdForSuggest(tenantId) {
  240 + if (!tenantId) {
  241 + return null;
  242 + }
  243 + // 使用 tenant_facets_config.js 中的映射函数(如果已加载)
  244 + if (typeof getMappedTenantId === 'function') {
  245 + return getMappedTenantId(tenantId);
  246 + }
  247 + // 如果函数未加载,使用内联映射逻辑
  248 + const tenantIdStr = String(tenantId);
  249 + const mapping = {
  250 + "170": "170",
  251 + "171": "170",
  252 + "162": "0"
  253 + };
  254 + return mapping[tenantIdStr] !== undefined ? mapping[tenantIdStr] : tenantIdStr;
  255 + }
  256 +
238 257 // 获取建议
239 258 async function fetchSuggestions(query) {
240 259 if (!query || query.trim().length === 0) {
... ... @@ -249,10 +268,21 @@
249 268 abortController = new AbortController();
250 269  
251 270 try {
  271 + // 获取当前 tenant_id 并应用映射
  272 + let tenantId = null;
  273 + if (typeof getTenantId === 'function') {
  274 + tenantId = getTenantId();
  275 + }
  276 + const mappedTenantId = getMappedTenantIdForSuggest(tenantId);
  277 +
252 278 const url = new URL(SUGGEST_API);
253 279 url.searchParams.set('query', query);
254 280 url.searchParams.set('lang', getSelectedLang());
255 281 url.searchParams.set('limit', '40');
  282 + // 添加 tenant_id 参数
  283 + if (mappedTenantId) {
  284 + url.searchParams.set('tenant_id', mappedTenantId);
  285 + }
256 286  
257 287 const response = await fetch(url.toString(), {
258 288 signal: abortController.signal,
... ...
frontend/static/js/tenant_facets_config.js
... ... @@ -139,3 +139,21 @@ function getAvailableTenantIds() {
139 139 }
140 140 }
141 141  
  142 +// tenant_id 映射配置(用于 suggest API)
  143 +// 格式:{ 原始tenant_id: 映射后的tenant_id }
  144 +const TENANT_ID_MAPPING = {
  145 + "170": "170",
  146 + "171": "170",
  147 + "162": "0"
  148 +};
  149 +
  150 +// 获取映射后的 tenant_id(用于 suggest API)
  151 +function getMappedTenantId(tenantId) {
  152 + if (!tenantId) {
  153 + return null;
  154 + }
  155 + const tenantIdStr = String(tenantId);
  156 + // 如果配置中有映射,返回映射后的值;否则返回原值
  157 + return TENANT_ID_MAPPING[tenantIdStr] !== undefined ? TENANT_ID_MAPPING[tenantIdStr] : tenantIdStr;
  158 +}
  159 +
... ...