Pārlūkot izejas kodu

会务成本新增团组名称检索

Lyyyi 14 stundas atpakaļ
vecāks
revīzija
60c2d37ef9
1 mainītis faili ar 80 papildinājumiem un 2 dzēšanām
  1. 80 2
      OASystem/OASystem.Api/Controllers/SearchController.cs

+ 80 - 2
OASystem/OASystem.Api/Controllers/SearchController.cs

@@ -2,6 +2,7 @@
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
 using NPOI.SS.Formula.Functions;
+using NPOI.Util;
 using OASystem.API.OAMethodLib.DeepSeekAPI;
 using OASystem.API.OAMethodLib.GenericSearch;
 using OASystem.Domain.AesEncryption;
@@ -9,9 +10,9 @@ using OASystem.Domain.Entities.Customer;
 using OASystem.Domain.Entities.Financial;
 using OASystem.Domain.Entities.Groups;
 using OASystem.Domain.ViewModels.Search;
+using OASystem.Infrastructure.Repositories.CRM;
 using OASystem.Infrastructure.Repositories.System;
 using static iTextSharp.text.pdf.AcroFields;
-using OASystem.Infrastructure.Repositories.CRM;
 
 namespace OASystem.API.Controllers
 {
@@ -317,7 +318,6 @@ namespace OASystem.API.Controllers
 
         }
 
-
         /// <summary>
         /// 团组、会务流程 关键字输入提示(智能版)
         /// </summary>
@@ -388,5 +388,83 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView(true, $"搜索服务暂时不可用!"));
             }
         }
+
+        /// <summary>
+        /// 团组会务成本 关键字输入提示(智能版)
+        /// </summary>
+        /// <param name="keyword">关键字</param>
+        /// <returns></returns>
+        [HttpGet("ConferenceAffairsKeywordSearch/{keyword}")]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> ConferenceAffairsKeywordSearch(string keyword)
+        {
+            try
+            {
+                // 验证请求参数
+                if (string.IsNullOrEmpty(keyword))
+                {
+                    return Ok(JsonView(true, $"暂无数据!"));
+                }
+                var hwIds = _sqlSugar.Queryable<Sys_SetData>()
+                       .Where(x => x.IsDel == 0 && x.STid == 10 && x.Name.Contains("会务活动"))
+                       .Select(x => x.Id)
+                       .ToList();
+
+                var object_hwIds = hwIds.ConvertAll<object>(x => x);
+
+                var searchRequest = new DynamicSearchRequest
+                {
+                    Keyword = keyword,
+                    RequireAllSingleChars = true,
+                    PageIndex = 1,
+                    PageSize = 999999,
+                    FieldWeights = new Dictionary<string, int>
+                    {
+                        { "TeamName", 10 }
+                    },
+                    Filters = new List<SearchFilter>()
+                    {
+                        new(){Field = "IsDel",Operator="eq",Value="0" },
+                        new(){Field = "TeamDid",Operator="in",Values=object_hwIds }
+                    },
+                    OrderBy = "VisitDate",
+                    ReturnFields = new List<string>() { "TeamName" }
+                };
+
+                // 验证字段配置
+                var validation = _groupSearchService.ValidateFieldConfig(
+                    searchRequest.FieldWeights,
+                    searchRequest.ReturnFields);
+
+                if (!validation.IsValid)
+                {
+                    return Ok(JsonView(true, $"暂无数据!{validation.Message}"));
+                }
+
+                var result = await _groupSearchService.SearchAsync(searchRequest);
+
+                if (result.Success)
+                {
+                    var data = new List<dynamic>();
+
+                    foreach (var item in result.Items)
+                    {
+                        data.Add(new
+                        {
+                            item.Data.Id,
+                            item.Data.TeamName,
+                        });
+                    }
+
+                    return Ok(JsonView(true, result.Message, data, data.Count));
+                }
+
+                return Ok(JsonView(true, result.Message));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(true, $"搜索服务暂时不可用!"));
+            }
+        }
     }
 }