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 |   57 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 49 insertions(+), 8 deletions(-)

diff --git a/FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs b/FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs
index a71b3b1..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,12 +36,13 @@
         {
             var logier = JwtUtils.GetCurrentLogier();
             return await request.SaveData<TaskInfo, SaveTaskInfoCommand>(
-                 q => TaskInfoRepository.GetQueryable(
-                    rep,
-                    q => q
-                         .Include(it => it.Benefits)
-                         .Include(it => it.CredentialLimits),
-                    logier),
+                 q =>
+                 {
+                     q = TaskInfoRepository.GetQueryable(rep)
+                          .Include(it => it.Benefits)
+                          .Include(it => it.CredentialLimits);
+                     return q;
+                 },
                  null,
                  (entity) =>
                  {
@@ -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