From 6001ccc7e7052b64931235b65a8b5d02f35ad1bd Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期四, 14 八月 2025 09:56:24 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs |   31 ++++++++++++++++++++++++++-----
 1 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs b/FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs
index fae1531..0d67047 100644
--- a/FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs
+++ b/FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs
@@ -21,7 +21,8 @@
         ) :
         IRequestHandler<SaveTaskInfoCommand, Guid>,
         IRequestHandler<SetTaskInfoReleaseStatusCommand, int>,
-        IRequestHandler<SetTaskInfoRecommendStatusCommand, int>
+        IRequestHandler<SetTaskInfoRecommendStatusCommand, int>,
+        IRequestHandler<DeleteTaskInfoCommand, int>
     {
         private readonly IRepository<TaskInfo> rep = rep;
 
@@ -40,7 +41,7 @@
             return await request.SaveData<TaskInfo, SaveTaskInfoCommand>(
                  q =>
                  {
-                     q = TaskInfoRepository.GetQueryable(rep)
+                     q = TaskInfoRepository.GetQueryable(rep, false)
                           .Include(it => it.Benefits)
                           .Include(it => it.CredentialLimits);
                      return q;
@@ -56,6 +57,7 @@
                          entity.RecommendStatus = EnumTaskRecommendStatus.No;
                          BuildCode(entity).Wait();
                      }
+                     request.Adapt(entity);
                      entity.Benefits = request.Benefits
                          .Select(it => new TaskInfoBenefit
                          {
@@ -68,7 +70,6 @@
                              TypeCode = it
                          })
                          .ToList();
-                     request.Adapt(entity);
                  },
                  cancellationToken);
         }
@@ -81,7 +82,7 @@
         /// <returns></returns>
         public async Task<int> Handle(SetTaskInfoReleaseStatusCommand request, CancellationToken cancellationToken)
         {
-            var entities = await TaskInfoRepository.GetQueryable(rep)
+            var entities = await TaskInfoRepository.GetQueryable(rep, false)
                 .Where(it => request.Ids.Contains(it.Id))
                 .ToListAsync();
             foreach (var entity in entities)
@@ -100,7 +101,7 @@
         /// <returns></returns>
         public async Task<int> Handle(SetTaskInfoRecommendStatusCommand request, CancellationToken cancellationToken)
         {
-            var entities = await TaskInfoRepository.GetQueryable(rep)
+            var entities = await TaskInfoRepository.GetQueryable(rep, false)
                 .Where(it => request.Ids.Contains(it.Id))
                 .ToListAsync();
             foreach (var entity in entities)
@@ -111,6 +112,26 @@
             return entities.Count;
         }
 
+        /// <summary>
+        /// 鍒犻櫎浠诲姟
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public Task<int> Handle(DeleteTaskInfoCommand request, CancellationToken cancellationToken)
+        {
+            return request.DeleteData<TaskInfo>(
+                q =>
+                {
+                    q = TaskInfoRepository.GetQueryable(rep, false);
+                    if (q.AsNoTracking().Any(it => it.Status == EnumTaskStatus.Complete))
+                    {
+                        throw Oops.Oh(EnumErrorCodeType.s510, "宸插畨鎺掔殑浠诲姟鏃犳硶鍒犻櫎");
+                    }
+                    return q;
+                }, cancellationToken);
+        }
+
         private async Task BuildCode(TaskInfo entity)
         {
             entity.Code = $"{DateTime.Now:yyyyMMddHHmm}{new Random(IDGen.NextID().GetHashCode()).Next(1000, 9999)}";

--
Gitblit v1.9.1