Bläddra i källkod

修复Api接口删除后不能新增和同步的bug

SirHQ 2 år sedan
förälder
incheckning
db46fbe10a

+ 1 - 1
src/hosts/ZhonTai.Host/Configs/appconfig.json

@@ -58,7 +58,7 @@
   },
   //面向切面编程
   "aop": {
-    //事
+    //事
     "transaction": true
   },
   //数据库日志

+ 1 - 1
src/platform/ZhonTai.Admin/Core/Attributes/AdminTransactionAttribute.cs

@@ -4,7 +4,7 @@ using ZhonTai.Admin.Core.Consts;
 namespace ZhonTai.Admin.Core.Attributes;
 
 /// <summary>
-/// 启用权限库事
+/// 启用权限库事
 /// </summary>
 [AttributeUsage(AttributeTargets.Method, Inherited = true)]
 public class AdminTransactionAttribute : TransactionAttribute

+ 1 - 1
src/platform/ZhonTai.Admin/Core/Attributes/TransactionAttribute.cs

@@ -5,7 +5,7 @@ using System.Data;
 namespace ZhonTai.Admin.Core.Attributes;
 
 /// <summary>
-/// 启用事
+/// 启用事
 /// </summary>
 [AttributeUsage(AttributeTargets.Method, Inherited = true)]
 public class TransactionAttribute : Attribute

+ 1 - 1
src/platform/ZhonTai.Admin/Core/Configs/AppConfig.cs

@@ -176,7 +176,7 @@ public class IdentityServer
 public class AopConfig
 {
     /// <summary>
-    /// 事
+    /// 事
     /// </summary>
     public bool Transaction { get; set; } = true;
 }

+ 25 - 4
src/platform/ZhonTai.Admin/Services/Api/ApiService.cs

@@ -85,7 +85,22 @@ public class ApiService : BaseService, IApiService, IDynamicApi
     /// <returns></returns>
     public async Task<long> AddAsync(ApiAddInput input)
     {
-        var entity = Mapper.Map<ApiEntity>(input);
+        var path = input.Path;
+
+        var entity = await _apiRepository.Select.DisableGlobalFilter(FilterNames.Delete)
+            .Where(w => w.Path.Equals(path) && w.IsDeleted).FirstAsync();
+
+        if (entity?.Id > 0)
+        {
+            Mapper.Map(input, entity);
+            entity.IsDeleted = false;
+            entity.Enabled = true;
+            await _apiRepository.UpdateDiy.DisableGlobalFilter(FilterNames.Delete).SetSource(entity).ExecuteAffrowsAsync();
+
+            return entity.Id;
+        }
+        entity = Mapper.Map<ApiEntity>(input);
+
         await _apiRepository.InsertAsync(entity);
 
         return entity.Id;
@@ -147,8 +162,12 @@ public class ApiService : BaseService, IApiService, IDynamicApi
     [AdminTransaction]
     public virtual async Task SyncAsync(ApiSyncInput input)
     {
+        if (input == null) return;
+        if (input.Apis == null) return;
+        if (input.Apis.Count == 0) return;
+
         //查询所有api
-        var apis = await _apiRepository.Select.ToListAsync();
+        var apis = await _apiRepository.Select.DisableGlobalFilter(FilterNames.Delete).ToListAsync();
         var paths = apis.Select(a => a.Path).ToList();
 
         //path处理
@@ -202,6 +221,7 @@ public class ApiService : BaseService, IApiService, IDynamicApi
                     a.Label = label;
                     a.Description = desc;
                     a.Enabled = true;
+                    a.IsDeleted = false;
                 }
             }
         }
@@ -228,6 +248,7 @@ public class ApiService : BaseService, IApiService, IDynamicApi
                     a.Description = desc;
                     a.HttpMethods = api.HttpMethods;
                     a.Enabled = true;
+                    a.IsDeleted = false;
                 }
             }
         }
@@ -248,8 +269,8 @@ public class ApiService : BaseService, IApiService, IDynamicApi
         #endregion 修改和禁用
 
         //批量更新
-        await _apiRepository.UpdateDiy.SetSource(apis)
-        .UpdateColumns(a => new { a.ParentId, a.Label, a.HttpMethods, a.Description, a.Enabled })
+        await _apiRepository.UpdateDiy.DisableGlobalFilter(FilterNames.Delete).SetSource(apis)
+        .UpdateColumns(a => new { a.ParentId, a.Label, a.HttpMethods, a.Description, a.Enabled, a.IsDeleted })
         .ExecuteAffrowsAsync();
     }
 }

+ 3 - 3
src/platform/ZhonTai.Admin/ZhonTai.Admin.xml

@@ -6,7 +6,7 @@
     <members>
         <member name="T:ZhonTai.Admin.Core.Attributes.AdminTransactionAttribute">
             <summary>
-            启用权限库事
+            启用权限库事
             </summary>
         </member>
         <member name="T:ZhonTai.Admin.Core.Attributes.LoginAttribute">
@@ -31,7 +31,7 @@
         </member>
         <member name="T:ZhonTai.Admin.Core.Attributes.TransactionAttribute">
             <summary>
-            启用事
+            启用事
             </summary>
         </member>
         <member name="P:ZhonTai.Admin.Core.Attributes.TransactionAttribute.Propagation">
@@ -433,7 +433,7 @@
         </member>
         <member name="P:ZhonTai.Admin.Core.Configs.AopConfig.Transaction">
             <summary>
-            事
+            事
             </summary>
         </member>
         <member name="T:ZhonTai.Admin.Core.Configs.LogConfig">