From 1bdaab5e71af9cacc4f993974d5b3d3922077d54 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期五, 08 八月 2025 16:28:22 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.Core/Utils/SmsUtils/SmsUtils.cs                                                    |    4 +-
 FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.xml                 |    8 ++++
 FlexJobApi.Core/FlexJobApi.Core.xml                                                           |    5 ++
 FlexJobApi.Core/Models/FlexJobServer/Tasks/Commands/DeleteTaskInfoCommand.cs                  |   17 ++++++++
 FlexJobApi.Core/Models/FlexJobServer/Dictionaries/Commands/DeleteDictionaryCategoryCommand.cs |    2 
 FlexJobApi.Core/Models/UserServer/Menus/Commands/DeleteMenuCommand.cs                         |    2 
 FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs                 |   23 +++++++++++
 FlexJobApi.Core/Models/UserServer/Roles/Commands/DeleteRoleCommand.cs                         |    2 
 FlexJobApi.Core/Utils/DbUtils/DeleteDataCommand.cs                                            |    5 +-
 9 files changed, 60 insertions(+), 8 deletions(-)

diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml
index 3493f31..f2b9a20 100644
--- a/FlexJobApi.Core/FlexJobApi.Core.xml
+++ b/FlexJobApi.Core/FlexJobApi.Core.xml
@@ -2985,6 +2985,11 @@
             鍚嶇О
             </summary>
         </member>
+        <member name="T:FlexJobApi.Core.DeleteTaskInfoCommand">
+            <summary>
+            鍒犻櫎浠诲姟
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.SaveTaskInfoCommand">
             <summary>
             淇濆瓨浠诲姟
diff --git a/FlexJobApi.Core/Models/FlexJobServer/Dictionaries/Commands/DeleteDictionaryCategoryCommand.cs b/FlexJobApi.Core/Models/FlexJobServer/Dictionaries/Commands/DeleteDictionaryCategoryCommand.cs
index 2cef291..ea17206 100644
--- a/FlexJobApi.Core/Models/FlexJobServer/Dictionaries/Commands/DeleteDictionaryCategoryCommand.cs
+++ b/FlexJobApi.Core/Models/FlexJobServer/Dictionaries/Commands/DeleteDictionaryCategoryCommand.cs
@@ -11,7 +11,7 @@
     /// 鍒犻櫎鏁版嵁瀛楀吀绫诲埆
     /// </summary>
     [Resource([EnumResourceController.Dictionary])]
-    public class DeleteDictionaryCategoryCommand : DeleteDataCommand, IRequest<int>
+    public class DeleteDictionaryCategoryCommand : DeleteDataCommand
     {
 
     }
diff --git a/FlexJobApi.Core/Models/FlexJobServer/Tasks/Commands/DeleteTaskInfoCommand.cs b/FlexJobApi.Core/Models/FlexJobServer/Tasks/Commands/DeleteTaskInfoCommand.cs
new file mode 100644
index 0000000..defdff9
--- /dev/null
+++ b/FlexJobApi.Core/Models/FlexJobServer/Tasks/Commands/DeleteTaskInfoCommand.cs
@@ -0,0 +1,17 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 鍒犻櫎浠诲姟
+    /// </summary>
+    [Resource([EnumResourceController.Task])]
+    public class DeleteTaskInfoCommand : DeleteDataCommand
+    {
+
+    }
+}
diff --git a/FlexJobApi.Core/Models/UserServer/Menus/Commands/DeleteMenuCommand.cs b/FlexJobApi.Core/Models/UserServer/Menus/Commands/DeleteMenuCommand.cs
index e924512..82d0187 100644
--- a/FlexJobApi.Core/Models/UserServer/Menus/Commands/DeleteMenuCommand.cs
+++ b/FlexJobApi.Core/Models/UserServer/Menus/Commands/DeleteMenuCommand.cs
@@ -12,7 +12,7 @@
     /// 鍒犻櫎鑿滃崟
     /// </summary>
     [Resource([EnumResourceController.Menu])]
-    public class DeleteMenuCommand : DeleteDataCommand, IRequest<int>
+    public class DeleteMenuCommand : DeleteDataCommand
     {
 
     }
diff --git a/FlexJobApi.Core/Models/UserServer/Roles/Commands/DeleteRoleCommand.cs b/FlexJobApi.Core/Models/UserServer/Roles/Commands/DeleteRoleCommand.cs
index 2607022..007fc71 100644
--- a/FlexJobApi.Core/Models/UserServer/Roles/Commands/DeleteRoleCommand.cs
+++ b/FlexJobApi.Core/Models/UserServer/Roles/Commands/DeleteRoleCommand.cs
@@ -11,7 +11,7 @@
     /// 鍒犻櫎瑙掕壊
     /// </summary>
     [Resource([EnumResourceController.Role])]
-    public class DeleteRoleCommand : DeleteDataCommand, IRequest<int>
+    public class DeleteRoleCommand : DeleteDataCommand
     {
 
     }
diff --git a/FlexJobApi.Core/Utils/DbUtils/DeleteDataCommand.cs b/FlexJobApi.Core/Utils/DbUtils/DeleteDataCommand.cs
index a5e8a26..f926e84 100644
--- a/FlexJobApi.Core/Utils/DbUtils/DeleteDataCommand.cs
+++ b/FlexJobApi.Core/Utils/DbUtils/DeleteDataCommand.cs
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing MediatR;
+using System;
 using System.Collections.Generic;
 using System.ComponentModel.DataAnnotations;
 using System.Linq;
@@ -10,7 +11,7 @@
     /// <summary>
     /// 鍒犻櫎鍛戒护
     /// </summary>
-    public abstract class DeleteDataCommand
+    public abstract class DeleteDataCommand : IRequest<int>
     {
         protected DeleteDataCommand()
         {
diff --git a/FlexJobApi.Core/Utils/SmsUtils/SmsUtils.cs b/FlexJobApi.Core/Utils/SmsUtils/SmsUtils.cs
index fa3b0fa..e280385 100644
--- a/FlexJobApi.Core/Utils/SmsUtils/SmsUtils.cs
+++ b/FlexJobApi.Core/Utils/SmsUtils/SmsUtils.cs
@@ -18,11 +18,11 @@
     /// </summary>
     public class SmsUtils
     {
-        private readonly IRepository<SmsLog> rep;
+        private readonly IRepository<SmsLog, LogDbContextLocator> rep;
         private readonly AliyunSmsUtils aliyunSmsUtils;
 
         public SmsUtils(
-            IRepository<SmsLog> rep,
+            IRepository<SmsLog, LogDbContextLocator> rep,
             AliyunSmsUtils aliyunSmsUtils)
         {
             this.rep = rep;
diff --git a/FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.xml b/FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.xml
index 4927d0b..4ca909d 100644
--- a/FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.xml
+++ b/FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.xml
@@ -161,6 +161,14 @@
             <param name="cancellationToken"></param>
             <returns></returns>
         </member>
+        <member name="M:FlexJobApi.FlexJobServer.Application.TaskInfoCommandHandler.Handle(FlexJobApi.Core.DeleteTaskInfoCommand,System.Threading.CancellationToken)">
+            <summary>
+            鍒犻櫎浠诲姟
+            </summary>
+            <param name="request"></param>
+            <param name="cancellationToken"></param>
+            <returns></returns>
+        </member>
         <member name="T:FlexJobApi.FlexJobServer.Application.TaskInfoQueryHandler">
             <summary>
             浠诲姟鏌ヨ澶勭悊鍣�
diff --git a/FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs b/FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs
index 29b7036..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;
 
@@ -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