From 7620ece055c34a13c868d846f4f34cd0a0fb3c4d Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期四, 07 八月 2025 18:26:28 +0800
Subject: [PATCH] feat:任务开发

---
 FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs |   47 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 44 insertions(+), 3 deletions(-)

diff --git a/FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs b/FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs
index b55ad0e..63e63bf 100644
--- a/FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs
+++ b/FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs
@@ -17,8 +17,10 @@
     /// </summary>
     public class TaskInfoCommandHandler(
             IRepository<TaskInfo> rep
-        )
-        : IRequestHandler<SaveTaskInfoCommand, Guid>
+        ) :
+        IRequestHandler<SaveTaskInfoCommand, Guid>,
+        IRequestHandler<SetTaskInfoReleaseStatusCommand, int>,
+        IRequestHandler<SetTaskInfoRecommendStatusCommand, int>
     {
         private readonly IRepository<TaskInfo> rep = rep;
 
@@ -34,7 +36,8 @@
         {
             var logier = JwtUtils.GetCurrentLogier();
             return await request.SaveData<TaskInfo, SaveTaskInfoCommand>(
-                 q => {
+                 q =>
+                 {
                      q = TaskInfoRepository.GetQueryable(rep)
                           .Include(it => it.Benefits)
                           .Include(it => it.CredentialLimits);
@@ -65,6 +68,44 @@
                  cancellationToken);
         }
 
+        /// <summary>
+        /// 璁剧疆浠诲姟鍙戝竷鐘舵��
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task<int> Handle(SetTaskInfoReleaseStatusCommand request, CancellationToken cancellationToken)
+        {
+            var entities = await TaskInfoRepository.GetQueryable(rep)
+                .Where(it => request.Ids.Contains(it.Id))
+                .ToListAsync();
+            foreach (var entity in entities)
+            {
+                entity.ReleaseStatus = request.ReleaseStatus;
+            }
+            await rep.UpdateAsync(entities);
+            return entities.Count;
+        }
+
+        /// <summary>
+        /// 璁剧疆浠诲姟鏄惁鎺ㄨ崘
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task<int> Handle(SetTaskInfoRecommendStatusCommand request, CancellationToken cancellationToken)
+        {
+            var entities = await TaskInfoRepository.GetQueryable(rep)
+                .Where(it => request.Ids.Contains(it.Id))
+                .ToListAsync();
+            foreach (var entity in entities)
+            {
+                entity.RecommendStatus = request.RecommendStatus;
+            }
+            await rep.UpdateAsync(entities);
+            return entities.Count;
+        }
+
         private async Task BuildCode(TaskInfo entity)
         {
             entity.Code = $"{DateTime.Now:yyyyMMddHHmm}{new Random(IDGen.NextID().GetHashCode()).Next(1000, 9999)}";

--
Gitblit v1.9.1