李昊 4 years ago
parent
commit
49064e2477

+ 15 - 6
gx_api/GxPress/Service/GxPress.Service.Implement/Middle/MiddleService.cs

@@ -71,12 +71,21 @@ namespace GxPress.Service.Implement.Middle
             var folderRoleId = new List<int> { 1, 2, 3 };
             if (!folderRoleId.Contains(request.RoleId) && (request.FolderType == 3 || request.FolderType == 4))
                 throw new BusinessException("文件夹权限有误!");
-            var oldMiddle = await _middleRepository.GetMiddleAsync(Q
-                .Where(nameof(Entity.Middle.Middle.UserId), request.UserId)
-                .Where(nameof(Entity.Middle.Middle.AttributeValue), 2)
-                .Where(nameof(Entity.Middle.Middle.FolderType), request.FolderType)
-                .Where(nameof(Entity.Middle.Middle.FolderName), request.FolderName)
-                .Where(nameof(Entity.Middle.Middle.ParentId), request.ParentId).Where(nameof(Entity.Middle.Middle.IsDelete), false));
+            var query = Q.NewQuery();
+            query.Where(nameof(Entity.Middle.Middle.UserId), request.UserId);
+            query.Where(nameof(Entity.Middle.Middle.AttributeValue), 2);
+            query.Where(nameof(Entity.Middle.Middle.FolderType), request.FolderType);
+            if (request.FolderType == AllTypeConst.Note.GetHashCode())
+            {
+                if (request.RoleId == 1 || request.RoleId == 3)
+                    query.WhereIn(nameof(Entity.Middle.Middle.RoleId), new List<int> { 1, 3 });
+                else
+                    query.Where(nameof(Entity.Middle.Middle.RoleId), request.RoleId);
+            }
+            query.Where(nameof(Entity.Middle.Middle.FolderName), request.FolderName);
+            query.Where(nameof(Entity.Middle.Middle.ParentId), request.ParentId);
+            query.Where(nameof(Entity.Middle.Middle.IsDelete), false);
+            var oldMiddle = await _middleRepository.GetMiddleAsync(query);
             if (string.IsNullOrEmpty(request.FolderName))
                 throw new BusinessException("文件名称未填写!");
             if (oldMiddle != null)