소스 검색

获取标签基本数据

田爽 1 년 전
부모
커밋
b0fc37d2bd

+ 28 - 22
src/Hotline.Api/Controllers/KnowledgeController.cs

@@ -5,6 +5,7 @@ using Hotline.KnowledgeBase;
 using Hotline.KnowledgeBase.Notifies;
 using Hotline.Permissions;
 using Hotline.Repository.SqlSugar.Extensions;
+using Hotline.Repository.SqlSugar.Ts;
 using Hotline.Settings;
 using Hotline.Settings.Hotspots;
 using Hotline.Share.Dtos;
@@ -41,25 +42,26 @@ namespace Hotline.Api.Controllers
         private readonly IRepository<User> _userRepository;
         private readonly IRepository<KnowledgeType> _knowledgeTypeRepository;
         private readonly IRepository<Hotspot> _hotspotTypeRepository;
-
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="knowledgeRepository"></param>
-        /// <param name="sessionContext"></param>
-        /// <param name="knowledgeDomainService"></param>
-        /// <param name="mapper"></param>
-        /// <param name="knowApplication"></param>
-        /// <param name="mediator"></param>
-        /// <param name="workflowApplication"></param>
-        /// <param name="knowledgeWorkFlowRepository"></param>
-        /// <param name="userRepository"></param>
-        /// <param name="knowledgeTypeRepository"></param>
-        /// <param name="hotspotTypeRepository"></param>
-        public KnowledgeController(IKnowledgeRepository knowledgeRepository, ISessionContext sessionContext, IKnowledgeDomainService knowledgeDomainService, IMapper mapper, IKnowApplication knowApplication,
+        private readonly IRepositoryTextSearch<KnowledgeTs> _repositoryts;
+
+
+		/// <summary>
+		/// 
+		/// </summary>
+		/// <param name="knowledgeRepository"></param>
+		/// <param name="sessionContext"></param>
+		/// <param name="knowledgeDomainService"></param>
+		/// <param name="mapper"></param>
+		/// <param name="knowApplication"></param>
+		/// <param name="mediator"></param>
+		/// <param name="workflowApplication"></param>
+		/// <param name="knowledgeWorkFlowRepository"></param>
+		/// <param name="userRepository"></param>
+		/// <param name="knowledgeTypeRepository"></param>
+		/// <param name="hotspotTypeRepository"></param>
+		public KnowledgeController(IKnowledgeRepository knowledgeRepository, ISessionContext sessionContext, IKnowledgeDomainService knowledgeDomainService, IMapper mapper, IKnowApplication knowApplication,
            IMediator mediator, IWorkflowApplication workflowApplication, IKnowledgeWorkFlowRepository knowledgeWorkFlowRepository
-            , IRepository<User> userRepository, IRepository<KnowledgeType> knowledgeTypeRepository, IRepository<Hotspot> hotspotTypeRepository)
+            , IRepository<User> userRepository, IRepository<KnowledgeType> knowledgeTypeRepository, IRepository<Hotspot> hotspotTypeRepository, IRepositoryTextSearch<KnowledgeTs> repositoryts)
         {
             _knowledgeRepository = knowledgeRepository;
             _sessionContext = sessionContext;
@@ -72,7 +74,9 @@ namespace Hotline.Api.Controllers
             _userRepository = userRepository;
             _knowledgeTypeRepository = knowledgeTypeRepository;
             _hotspotTypeRepository = hotspotTypeRepository;
-        }
+            _repositoryts = repositoryts;
+
+		}
 
         #endregion
 
@@ -151,7 +155,9 @@ namespace Hotline.Api.Controllers
                 kn.Code = Convert.ToInt64((DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalSeconds).ToString();
 
             kn.Status = EKnowledgeStatus.Drafts;
-            return await _knowledgeRepository.AddAsync(kn, HttpContext.RequestAborted);
+            var id = await _knowledgeRepository.AddAsync(kn, HttpContext.RequestAborted);
+            if (dto.Tags.Any()) await _repositoryts.AddVectorAsync(id, DateTime.Now, dto.Tags, HttpContext.RequestAborted);
+			return id;
         }
 
         /// <summary>
@@ -266,8 +272,8 @@ namespace Hotline.Api.Controllers
             if (dto.Status != EKnowledgeStatus.Drafts)
                 throw UserFriendlyException.SameMessage("非草稿数据不可修改");
             var kn = _mapper.Map<Knowledge>(dto);
-
-            await _knowledgeRepository.UpdateAsync(kn, HttpContext.RequestAborted);
+            if (dto.Tags.Any()) await _repositoryts.UpdateVectorAsync(dto.Id, dto.Tags, HttpContext.RequestAborted);
+			await _knowledgeRepository.UpdateAsync(kn, HttpContext.RequestAborted);
         }
 
         /// <summary>

+ 18 - 5
src/Hotline.Api/Controllers/SettingController.cs

@@ -8,18 +8,15 @@ using Hotline.Repository.SqlSugar.Ts;
 using Hotline.Settings;
 using Hotline.Settings.TimeLimits;
 using Hotline.Share.Dtos;
-using Hotline.Share.Dtos.File;
-using Hotline.Share.Dtos.Order;
 using Hotline.Share.Dtos.Settings;
+using Hotline.Share.Enums.Settings;
 using Hotline.Share.Requests;
 using MapsterMapper;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
-using MongoDB.Bson;
-using MongoDB.Driver;
-using XF.Domain.Authentications;
 using XF.Domain.Exceptions;
 using XF.Domain.Repository;
+using XF.Utility.EnumExtensions;
 
 namespace Hotline.Api.Controllers
 {
@@ -270,6 +267,22 @@ namespace Hotline.Api.Controllers
 				.FirstAsync(x => x.Id == id);
 		}
 
+		/// <summary>
+		/// 获取标签基本数据
+		/// </summary>
+		/// <param name="id"></param>
+		/// <returns></returns>
+		[HttpGet("businessTag/baseData")]
+		public async Task<object> TagBaseData()
+		{
+			var rsp = new
+			{
+				TagType = EnumExts.GetDescriptions<ETagType>(),
+				BusinessTagType = EnumExts.GetDescriptions<EBusinessTagType>(),
+			};
+			return rsp;
+		}
+
 		#endregion
 	}
 }

+ 12 - 2
src/Hotline.Share/Dtos/Knowledge/KnowledgeDto.cs

@@ -12,7 +12,12 @@ namespace Hotline.Share.Dtos.Knowledge
         /// ID
         /// </summary>
         public string Id { get; set; }
-    }
+
+        /// <summary>
+        /// 标签名称
+        /// </summary>
+        public List<string> Tags { get; set; } = new();
+	}
 
     /// <summary>
     /// 新增知识
@@ -23,7 +28,12 @@ namespace Hotline.Share.Dtos.Knowledge
         /// 知识Code
         /// </summary>
         public string Code { get; set; }
-    }
+
+        /// <summary>
+        /// 标签名称
+        /// </summary>
+        public List<string> Tags { get; set; } = new();
+	}
 
     /// <summary>
     /// 查询详情

+ 25 - 0
src/Hotline.Share/Enums/Settings/EBusinessTag.cs

@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Hotline.Share.Enums.Settings
+{
+	public enum ETagType
+	{
+		[Description("标签")]
+		Tag = 1,
+		[Description("分类")]
+		Sort = 2,
+	}
+
+	public enum EBusinessTagType
+	{
+		[Description("工单")]
+		Order = 1,
+		[Description("知识库")]
+		Knowledge = 2,
+	}
+}

+ 9 - 0
src/Hotline/KnowledgeBase/KnowledgeTs.cs

@@ -0,0 +1,9 @@
+using XF.Domain.Entities;
+using XF.Domain.Repository;
+
+namespace Hotline.KnowledgeBase
+{
+	public class KnowledgeTs : TextSearchEntity, ITable
+	{
+	}
+}