Lyyyi 1 hete%!(EXTRA string=óta)
szülő
commit
4652ba35cc

+ 2 - 2
OASystem/OASystem.Api/Controllers/FinancialController.cs

@@ -7178,7 +7178,7 @@ Group by PriceType ", dto.diId);
             // 构建搜索条件
             var searchFields = new List<string>
             {
-                "TeamName"
+                "TeamName",
             };
 
             var searchConfig = new SearchConfig
@@ -7195,7 +7195,7 @@ Group by PriceType ", dto.diId);
             };
 
             // 使用智能混合搜索模式
-            var (searchCondition, searchParameters) = AdvancedSearchHelper.BuildEnhancedSearchCondition(
+            var (searchCondition, searchParameters) = AdvancedSearchHelper.BuildSugarSearchCondition(
                 searchTerm: teamName,
                 searchFields: searchFields,
                 prefix: "search_",

+ 50 - 0
OASystem/OASystem.Infrastructure/Tools/AdvancedSearchHelper.cs

@@ -75,6 +75,56 @@ namespace OASystem.Infrastructure.Tools
             };
         }
 
+
+        /// <summary>
+        /// 为Sugar ORM构建增强搜索条件
+        /// </summary>
+        public static (string Condition, List<SugarParameter> Parameters) BuildSugarSearchCondition(
+            string searchTerm,
+            List<string> searchFields,
+            string prefix = "",
+            SearchMode searchMode = SearchMode.AutoDetect,
+            CombinationMode combinationMode = CombinationMode.SmartMix,
+            SearchConfig config = null)
+        {
+            // 先使用原有方法构建条件
+            var (condition, parameters) = BuildEnhancedSearchCondition(
+                searchTerm, searchFields, prefix, searchMode, combinationMode, config);
+
+            if (string.IsNullOrEmpty(condition))
+                return (string.Empty, parameters);
+
+            // 转换参数名为Sugar ORM兼容格式
+            var sugarParameters = new List<SugarParameter>();
+            var paramMapping = new Dictionary<string, string>();
+            int paramIndex = 0;
+
+            foreach (var param in parameters)
+            {
+                var oldName = param.ParameterName;
+                var newName = $"@{prefix}p{paramIndex++}";
+
+                paramMapping[oldName] = newName;
+                sugarParameters.Add(new SugarParameter(newName, param.Value));
+            }
+
+            // 替换参数名
+            foreach (var mapping in paramMapping)
+            {
+                condition = condition.Replace(mapping.Key, mapping.Value);
+            }
+
+            // 转换LIKE表达式为Sugar ORM格式
+            condition = Regex.Replace(condition, @"LIKE @\w+", match =>
+            {
+                var paramName = match.Value.Substring(5); // 移除"LIKE "
+                return $"LIKE '%' + {paramName} + '%'";
+            });
+
+            return (condition, sugarParameters);
+        }
+
+
         /// <summary>
         /// 构建带相关性信息的搜索条件
         /// </summary>