田爽 1 year ago
parent
commit
9645228cb7

+ 25 - 6
src/Hotline.Api/Controllers/KnowledgeController.cs

@@ -952,9 +952,16 @@ namespace Hotline.Api.Controllers
 		[HttpPost("knowledge_collect")]
 		public async Task Add([FromBody] KnowledgeCollectAddDto dto)
 		{
-			var knowledge = await _knowledgeCollectRepository.GetAsync(x => x.KnowledgeId == dto.KnowledgeId);
-			var questions = _mapper.Map<KnowledgeCollect>(dto);
-			await _knowledgeCollectRepository.AddAsync(questions, HttpContext.RequestAborted);
+			var collect = await _knowledgeCollectRepository.GetAsync(x => x.KnowledgeId == dto.KnowledgeId && x.CreatorId == _sessionContext.UserId);
+			if (collect != null)
+			{
+				collect.Collect = dto.Collect;
+				await _knowledgeCollectRepository.UpdateAsync(collect, HttpContext.RequestAborted);
+			}
+			else {
+				var questions = _mapper.Map<KnowledgeCollect>(dto);
+				await _knowledgeCollectRepository.AddAsync(questions, HttpContext.RequestAborted);
+			}
 		}
 
 		/// <summary>
@@ -963,10 +970,22 @@ namespace Hotline.Api.Controllers
 		/// <param name="dto"></param>
 		/// <returns></returns>
 		[Permission(EPermission.AddKnowledgeScore)]
-		[HttpDelete("knowledge_collect")]
-		public async Task Delete([FromBody] KnowledgeCollectDeleteDto dto)
+		[HttpDelete("knowledge_score")]
+		public async Task Delete([FromBody] KnowledgeCollectAddDto dto)
 		{
-			await _knowledgeCollectRepository.RemoveAsync(x => x.Id == dto.Id);
+			var collect = await _knowledgeCollectRepository.GetAsync(x => x.KnowledgeId == dto.KnowledgeId && x.CreatorId == _sessionContext.UserId);
+			if (collect != null)
+			{
+				collect.Score = dto.Score;
+				await _knowledgeCollectRepository.UpdateAsync(collect, HttpContext.RequestAborted);
+				//计算总分
+				//var collects = await _knowledgeCollectRepository.Queryable().Where(x => x.KnowledgeId == dto.KnowledgeId).Select(x=>x.Score).SumAsync(x=>x.);
+			}
+			else
+			{
+				var questions = _mapper.Map<KnowledgeCollect>(dto);
+				await _knowledgeCollectRepository.AddAsync(questions, HttpContext.RequestAborted);
+			}
 		}
 		#endregion
 	}

+ 6 - 1
src/Hotline.Share/Dtos/Knowledge/KnowledgeDto.cs

@@ -34,7 +34,12 @@ namespace Hotline.Share.Dtos.Knowledge
         /// </summary>
         public List<string> Tags { get; set; } = new();
 
-        public BasicWorkflowDto? Workflow { get; set; }
+        /// <summary>
+        /// 知识归属
+        /// </summary>
+        public string? Attribution { get; set; }
+
+		public BasicWorkflowDto? Workflow { get; set; }
 	}
 
     /// <summary>