李昊 4 年之前
父節點
當前提交
90e3dc7afd

+ 3 - 3
gx_api/GxPress/Repository/GxPress.Repository.Implement/MiddleRepository.cs

@@ -303,7 +303,7 @@ namespace GxPress.Repository.Implement
         /// <param name="id"></param>
         /// <param name="ids"></param>
         /// <returns></returns>
-        public async Task<IEnumerable<int>> GetAllMiddleChildrenByParentIdAsync(List<int> ids)
+        public async Task<IEnumerable<int>> GetAllMiddleChildrenByParentIdAsync(List<int> ids,List<int> returnIds)
         {
             var middles = await _repository.GetAllAsync(Q.WhereIn(nameof(Entity.Middle.Middle.Id), ids));
             if (middles == null || middles.Count == 0)
@@ -313,10 +313,10 @@ namespace GxPress.Repository.Implement
                 middles = await _repository.GetAllAsync(Q.Where(nameof(Entity.Middle.Middle.ParentId), item.Id));
                 if (middles == null || middles.Count == 0)
                     continue;
-                ids.AddRange(middles.Select(n => n.Id).ToList());
+                returnIds.AddRange(middles.Select(n => n.Id).ToList());
                 foreach (var middle in middles)
                 {
-                    await GetAllMiddleChildrenByParentIdAsync(ids);
+                    await GetAllMiddleChildrenByParentIdAsync(new List<int>{middle.Id},returnIds);
                 }
             }
             return ids;

+ 1 - 1
gx_api/GxPress/Repository/GxPress.Repository.Interface/IMiddleRepository.cs

@@ -98,6 +98,6 @@ namespace GxPress.Repository.Interface
         /// <param name="id"></param>
         /// <param name="ids"></param>
         /// <returns></returns>
-       Task<IEnumerable<int>> GetAllMiddleChildrenByParentIdAsync(List<int> ids);
+       Task<IEnumerable<int>> GetAllMiddleChildrenByParentIdAsync(List<int> ids,List<int> returnIds);
     }
 }

+ 3 - 3
gx_api/GxPress/Service/GxPress.Service.Implement/Middle/MiddleService.cs

@@ -441,7 +441,7 @@ namespace GxPress.Service.Implement.Middle
                     if (request.ParentId > 0 && middle != null)
                     {
                         //获取父级子集集合
-                        var ids = await _middleRepository.GetAllMiddleChildrenByParentIdAsync(request.Ids.ToList());
+                        var ids = await _middleRepository.GetAllMiddleChildrenByParentIdAsync(request.Ids.ToList(),request.Ids.ToList());
                         //修改
                         await _middleRepository.UpdateAsync(Q.Set(nameof(Entity.Middle.Middle.ParentId), request.ParentId).Set(nameof(Entity.Middle.Middle.RoleId), middle.RoleId).WhereIn(nameof(Entity.Middle.Middle.Id), request.Ids));
                         //修改共享
@@ -468,7 +468,7 @@ namespace GxPress.Service.Implement.Middle
                                         SourceType = userMiddle.SourceType,
                                         SourceId = userMiddle.SourceId,
                                         SourceName = userMiddle.SourceName,
-                                        DataSourceId = userMiddle.DataSourceId,
+                                        DataSourceId = id,
                                         SourceTypeValue = userMiddle.SourceTypeValue
                                     });
                                 }
@@ -481,7 +481,7 @@ namespace GxPress.Service.Implement.Middle
                         await _middleRepository.UpdateAsync(Q.Set(nameof(Entity.Middle.Middle.ParentId), request.ParentId).WhereIn(nameof(Entity.Middle.Middle.Id), request.Ids));
                         foreach (var item in request.Ids)
                         {
-                            var ids = await _middleRepository.GetAllMiddleChildrenByParentIdAsync(new List<int> { item });
+                            var ids = await _middleRepository.GetAllMiddleChildrenByParentIdAsync(new List<int> { item },new List<int> { });
                             await _middleRepository.UpdateAsync(Q.Set(nameof(Entity.Middle.Middle.MiddleSonId), item).WhereIn(nameof(Entity.Middle.Middle.Id), ids));
                         }
                     }