lihao 4 years ago
parent
commit
cd5fcd5099

+ 8 - 0
gx_api/GxPress/Model/GxPress.EnumConst/AllTypeConst.cs

@@ -156,4 +156,12 @@ namespace GxPress.EnumConst
         [Description("共享")]
         Share = 3
     }
+
+    public enum AttributeValueConst
+    {
+        [Description("普通文件")]
+        File = 1,
+        [Description("文件夹")]
+        Folder = 2
+    }
 }

+ 3 - 1
gx_api/GxPress/Model/GxPress.Request/App/Note/NoteSearchPageListRequest.cs

@@ -29,6 +29,8 @@ namespace GxPress.Request.App.Note
         /// </summary>
         /// <value></value>
         public int TypeValue { get; set; }
-        
+
+        public SqlKata.Query ResultQuery { get; set; }
+        public SqlKata.Query CountQuery { get; set; }
     }
 }

+ 9 - 324
gx_api/GxPress/Repository/GxPress.Repository.Implement/Note/NoteRepository.cs

@@ -20,6 +20,7 @@ namespace GxPress.Repository.Implement.Note
     public class NoteRepository : INoteRepository
     {
         private readonly Repository<Entity.Note.Note> _repository;
+        private readonly Repository<Entity.Middle.Middle> _middleRepository;
         private readonly IMapper _mapper;
         private readonly string _connectionString;
         private readonly string _databaseTypestr;
@@ -31,6 +32,7 @@ namespace GxPress.Repository.Implement.Note
                 StringUtils.ToEnum<DatabaseType>(dbOptionsAccessor.CurrentValue.DatabaseType, DatabaseType.MySql);
             var database = new Database(databaseType, dbOptionsAccessor.CurrentValue.ConnectionString);
             _repository = new Repository<Entity.Note.Note>(database);
+            _middleRepository = new Repository<Entity.Middle.Middle>(database);
             _mapper = mapper;
         }
 
@@ -80,13 +82,13 @@ namespace GxPress.Repository.Implement.Note
         /// <returns></returns>
         public async Task<PagedList<NotePageListRequest>> NotePageListAsync(NoteSearchPageListRequest request)
         {
+
             var pagedList = new PagedList<NotePageListRequest>();
-            var databaseType = StringUtils.ToEnum<DatabaseType>(_databaseTypestr, DatabaseType.MySql);
-            var database = new Database(databaseType, _connectionString);
-            var connection = database.GetConnection();
+            // var databaseType = StringUtils.ToEnum<DatabaseType>(_databaseTypestr, DatabaseType.MySql);
+            // var database = new Database(databaseType, _connectionString);
+            // var connection = database.GetConnection();
             var result =
-                await connection
-                    .QueryAsync<NotePageListRequest>(GetCollectionSql(request));
+                await _middleRepository.GetAllAsync<NotePageListRequest>(request.ResultQuery);
             foreach (var item in result)
             {
                 if (string.IsNullOrEmpty(item.FolderName))
@@ -99,7 +101,8 @@ namespace GxPress.Repository.Implement.Note
                 item.AvatarUrl = StringUtils.AddDomainMin(item.AvatarUrl);
             }
             pagedList.Items = result;
-            pagedList.Total = await NotePageListCountAsync(GetCollectionSqlCount(request));
+            pagedList.Total = await _middleRepository.CountAsync(request.CountQuery);
+            //pagedList.Total = await NotePageListCountAsync(GetCollectionSqlCount(request));
             return pagedList;
         }
         /// <summary>
@@ -160,324 +163,6 @@ namespace GxPress.Repository.Implement.Note
             pagedList.Total = await NotePageListCountAsync(sql);
             return pagedList;
         }
-
-        /// <summary>
-        /// 集合
-        /// </summary>
-        /// <param name="request"></param>
-        /// <returns></returns>
-        public string GetCollectionSql(NoteSearchPageListRequest request)
-        {
-            string sql = "";
-            var noteTypeId = request.TypeValue == 0 ? AllTypeConst.Note.GetHashCode() : AllTypeConst.TopicNote.GetHashCode();
-            if (request.VisitUserId > 0)
-            {
-                var sqlStr = $"a.Id";
-                if (request.FolderId > 0)
-                    sqlStr = "a.ParentId";
-                sql =
-                   $@"SELECT  a.Id,a.MiddleId,a.RoleId,a.ParentId,a.AttributeValue,a.UserId,
-                    a.CreatedDate,a.LastModifiedDate,a.IsTop,a.FolderName,a.FolderType,
-                    (SELECT GROUP_CONCAT(SourceName Separator'、') from tede_user_middle where MiddleType={noteTypeId} 
-                    and DataSourceId=a.MiddleSonId) as EnjoyUser,
-                    (SELECT 
-                            COUNT(1)
-                        FROM
-                            tede_analyze
-                        WHERE
-                            UserId = {request.UserId} AND TypeValue = {noteTypeId}
-                                AND SourceId = a.MiddleId
-                                AND AnalyzeType = 1) AS PraiseCount,
-                        (SELECT 
-                                COUNT(1)
-                            FROM
-                                tede_analyze
-                            WHERE
-                                UserId = {request.UserId} AND TypeValue ={noteTypeId}
-                                    AND SourceId = a.MiddleId
-                                    AND AnalyzeType = 1
-                            LIMIT 0 , 1) AS IsPraise,
-                        (SELECT 
-                                COUNT(1)
-                            FROM
-                                tede_comment
-                            WHERE
-                                UserId = {request.UserId} AND ArticleId =  a.MiddleId
-                                    AND TypeValue = {noteTypeId}) AS CommentCount,
-                        (SELECT 
-                                COUNT(1)
-                            FROM
-                                tede_analyze
-                            WHERE
-                                UserId = {request.UserId} AND TypeValue = {noteTypeId}
-                                    AND SourceId = a.MiddleId
-                                    AND AnalyzeType = 4) AS RetransmissionCount,
-                        (SELECT 
-                                COUNT(1)
-                            FROM
-                                tede_analyze
-                            WHERE
-                                UserId = {request.UserId} AND TypeValue = {noteTypeId}
-                                    AND SourceId = a.MiddleId
-                                    AND AnalyzeType = 4
-                            LIMIT 0 , 1) AS IsRetransmission,
-                        (SELECT 
-                                COUNT(1)
-                            FROM
-                                tede_analyze
-                            WHERE
-                                UserId = {request.UserId} AND TypeValue ={noteTypeId}
-                                    AND SourceId = a.MiddleId
-                                    AND AnalyzeType = 3
-                            LIMIT 0 , 1) AS IsCollect,
-                        (SELECT 
-                                COUNT(1)
-                            FROM
-                                tede_analyze
-                            WHERE
-                                UserId = {request.UserId} AND TypeValue = {noteTypeId}
-                                    AND SourceId = a.MiddleId
-                                    AND AnalyzeType = 3) AS IsCollect,
-                        (SELECT 
-                                COUNT(1)
-                            FROM
-                                tede_middle
-                            WHERE
-                                ParentId = a.Id and IsDelete=0) FileCount, b.Title, b.Content,b.ReadCount,b.MediaId,b.CatalogId,
-                        b.ChapterId,c.Name,c.AvatarUrl,d.Name AS DepartmentName,
-                        (SELECT 
-                                FolderName
-                            FROM
-                                tede_middle
-                            WHERE
-                                id =a.ParentId) AS FolderParentName,
-                        (SELECT 
-                                Id
-                            FROM
-                                tede_middle
-                            WHERE
-                                id =a.ParentId ) AS FolderId
-                    FROM tede_middle a  LEFT JOIN tede_note b ON a.MiddleId = b.Id 
-                    left join tede_user c on c.Id=b.UserId 
-                    left join tede_department d on d.Id=c.DepartmentId 
-                      WHERE
-                      a.FolderType = {noteTypeId} AND a.userId = {request.VisitUserId}
-                        AND a.IsDelete = 0
-                        AND (a.UserId IN (SELECT 
-                            Id
-                        FROM
-                            tede_user
-                        WHERE
-                            1 = a.RoleId)
-                         OR a.UserId IN (SELECT 
-                            Id
-                        FROM
-                            tede_user
-                        WHERE
-                            0 = a.RoleId)
-                        OR {sqlStr} IN (SELECT 
-                            MiddleId
-                        FROM
-                            tede_folder_user
-                        WHERE
-                        UserId = {request.UserId} AND MiddleId = {sqlStr}))";
-                if (request.TypeValue == 0)
-                    sql += "and (a.RoleId=2 or a.AttributeValue<>2)";
-                else
-                    sql += "and  (a.RoleId in(1,3) or a.AttributeValue<>2)";
-                if (request.FolderId == 0 && !string.IsNullOrEmpty(request.SearchKey))
-                    sql += $@" AND (b.Title LIKE '%{request.SearchKey}%' OR a.FolderName LIKE '%{request.SearchKey}%' or b.TextContent LIKE '%{request.SearchKey}%' or b.UserId in (select Id from tede_user where name like '%{request.SearchKey}%'))";
-                else if (!string.IsNullOrEmpty(request.SearchKey))
-                    sql += $@" and a.ParentId={request.FolderId}  AND(b.Title LIKE '%{request.SearchKey}%' OR a.FolderName LIKE '%{request.SearchKey}%' or b.TextContent LIKE '%{request.SearchKey}%')";
-                else
-                    sql += $" and a.ParentId={request.FolderId}";
-                sql +=
-                    $@" ORDER BY a.IsSystemDefault desc,a.AttributeValue desc,a.IsTop DESC, a.LastModifiedDate DESC";
-                if (request.Page > 0)
-                    sql += $@" limit {(request.Page - 1) * request.PerPage},{request.PerPage}";
-            }
-            else
-            {
-                sql =
-                    $@"SELECT  a.Id,a.MiddleId,a.RoleId,a.ParentId,a.AttributeValue,a.UserId,
-                      a.CreatedDate,a.LastModifiedDate,a.IsTop,a.FolderName,a.FolderType,
-                    (SELECT GROUP_CONCAT(SourceName Separator'、') from tede_user_middle where MiddleType={noteTypeId} 
-                    and DataSourceId=a.MiddleSonId) as EnjoyUser,
-                    (SELECT 
-                            COUNT(1)
-                        FROM
-                            tede_analyze
-                        WHERE
-                            UserId = {request.UserId} AND TypeValue = {noteTypeId}
-                                AND SourceId = a.MiddleId
-                                AND AnalyzeType = 1) AS PraiseCount,
-                        (SELECT 
-                                COUNT(1)
-                            FROM
-                                tede_analyze
-                            WHERE
-                                UserId = {request.UserId} AND TypeValue ={noteTypeId}
-                                    AND SourceId = a.MiddleId
-                                    AND AnalyzeType = 1
-                            LIMIT 0 , 1) AS IsPraise,
-                        (SELECT 
-                                COUNT(1)
-                            FROM
-                                tede_comment
-                            WHERE
-                                UserId = {request.UserId} AND ArticleId =  a.MiddleId
-                                    AND TypeValue = {noteTypeId}) AS CommentCount,
-                        (SELECT 
-                                COUNT(1)
-                            FROM
-                                tede_analyze
-                            WHERE
-                                UserId = {request.UserId} AND TypeValue = {noteTypeId}
-                                    AND SourceId = a.MiddleId
-                                    AND AnalyzeType = 4) AS RetransmissionCount,
-                        (SELECT 
-                                COUNT(1)
-                            FROM
-                                tede_analyze
-                            WHERE
-                                UserId = {request.UserId} AND TypeValue = {noteTypeId}
-                                    AND SourceId = a.MiddleId
-                                    AND AnalyzeType = 4
-                            LIMIT 0 , 1) AS IsRetransmission,
-                        (SELECT 
-                                COUNT(1)
-                            FROM
-                                tede_analyze
-                            WHERE
-                                UserId = {request.UserId} AND TypeValue ={noteTypeId}
-                                    AND SourceId = a.MiddleId
-                                    AND AnalyzeType = 3
-                            LIMIT 0 , 1) AS IsCollect,
-                        (SELECT 
-                                COUNT(1)
-                            FROM
-                                tede_analyze
-                            WHERE
-                                UserId = {request.UserId} AND TypeValue = {noteTypeId}
-                                    AND SourceId = a.MiddleId
-                                    AND AnalyzeType = 3) AS IsCollect,
-                        (SELECT 
-                                COUNT(1)
-                            FROM
-                                tede_middle
-                            WHERE
-                                ParentId = a.Id and IsDelete=0) FileCount, b.Title, b.Content,b.ReadCount,b.MediaId,b.CatalogId,
-                        b.ChapterId,c.Name,c.AvatarUrl,d.Name AS DepartmentName,
-                        (SELECT 
-                                FolderName
-                            FROM
-                                tede_middle
-                            WHERE
-                                id =a.ParentId) AS FolderParentName,
-                        (SELECT 
-                                Id
-                            FROM
-                                tede_middle
-                            WHERE
-                                id =a.ParentId ) AS FolderId
-                    FROM tede_middle a  LEFT JOIN tede_note b ON a.MiddleId = b.Id 
-                    left join tede_user c on c.Id=b.UserId 
-                    left join tede_department d on d.Id=c.DepartmentId 
-                    WHERE  a.FolderType = {noteTypeId} and a.UserId = {request.UserId} AND a.IsDelete = 0 ";
-                if (request.TypeValue == 0)
-                    sql += " AND (a.RoleId = 2 OR a.AttributeValue in( 1,2))";
-                else
-                    sql += "and  (a.RoleId in(1,3) or a.AttributeValue in( 1,2))";
-                if (request.FolderId == 0 && !string.IsNullOrEmpty(request.SearchKey))
-                    sql += $@" AND (b.Title LIKE '%{request.SearchKey}%' OR a.FolderName LIKE '%{request.SearchKey}%' or b.TextContent LIKE '%{request.SearchKey}%')";
-                else if (!string.IsNullOrEmpty(request.SearchKey))
-                    sql += $@" and a.ParentId={request.FolderId}  AND(b.Title LIKE '%{request.SearchKey}%' OR a.FolderName LIKE '%{request.SearchKey}%' or b.TextContent LIKE '%{request.SearchKey}%')";
-                else
-                    sql += $" and a.ParentId={request.FolderId}";
-                sql +=
-                    $@" ORDER BY a.AttributeValue desc,a.IsTop DESC, a.LastModifiedDate DESC";
-                if (request.Page > 0)
-                    sql += $@" limit {(request.Page - 1) * request.PerPage},{request.PerPage}";
-            }
-            return sql;
-        }
-
-        /// <summary>
-        /// 条数
-        /// </summary>
-        /// <param name="request"></param>
-        /// <returns></returns>
-        public string GetCollectionSqlCount(NoteSearchPageListRequest request)
-        {
-            var noteTypeId = request.TypeValue == 0 ? AllTypeConst.Note.GetHashCode() : AllTypeConst.TopicNote.GetHashCode();
-            string sql = "";
-
-            if (request.VisitUserId > 0)
-            {
-                var sqlStr = $"a.Id";
-                if (request.FolderId > 0)
-                    sqlStr = "a.ParentId";
-                sql =
-                     $@"SELECT  count(1)
-                    FROM tede_middle a  LEFT JOIN tede_note b ON a.MiddleId = b.Id 
-                    left join tede_user c on c.Id=b.UserId 
-                    left join tede_department d on d.Id=c.DepartmentId 
-                    WHERE a.FolderType = {noteTypeId} and
-                     a.userId = {request.VisitUserId}
-                        AND a.IsDelete = 0
-                        AND (a.UserId IN (SELECT 
-                            Id
-                        FROM
-                            tede_user
-                        WHERE
-                            1 = a.RoleId) 
-                         OR a.UserId IN (SELECT 
-                                Id
-                            FROM
-                                tede_user
-                            WHERE
-                                0 = a.RoleId)
-                        OR {sqlStr} IN (SELECT 
-                            MiddleId
-                        FROM
-                            tede_folder_user
-                        WHERE
-                        UserId = {request.UserId} AND MiddleId = {sqlStr}))";
-                if (request.TypeValue == 0)
-                    sql += "and  (a.RoleId in(2) or a.AttributeValue<>2)";
-                else
-                {
-                    sql += "and  (a.RoleId in(1,3) or a.AttributeValue<>2)";
-                }
-                if (request.FolderId == 0 && !string.IsNullOrEmpty(request.SearchKey))
-                    sql += $@" AND(b.Title LIKE '%{request.SearchKey}%' OR a.FolderName LIKE '%{request.SearchKey}%' or b.TextContent LIKE '%{request.SearchKey}%')";
-                else if (!string.IsNullOrEmpty(request.SearchKey))
-                    sql += $@" and a.ParentId={request.FolderId}  AND(b.Title LIKE '%{request.SearchKey}%' OR a.FolderName LIKE '%{request.SearchKey}%' or b.TextContent LIKE '%{request.SearchKey}%')";
-                else
-                    sql += $" and a.ParentId={request.FolderId}";
-            }
-            else
-            {
-                sql =
-                    $@"SELECT  count(1) FROM tede_middle a LEFT JOIN tede_note b ON a.MiddleId = b.Id left join tede_user c on c.Id=b.UserId left join tede_department d 
-                    on d.Id=c.DepartmentId WHERE a.FolderType = {noteTypeId} and a.UserId = {request.UserId} AND a.IsDelete = 0";
-                if (request.TypeValue == 0)
-                    sql += " and  (a.RoleId in(2) or a.AttributeValue in(1,2))";
-                else
-                {
-                    sql += " and  (a.RoleId in(1,3) or a.AttributeValue in(1,2))";
-                }
-                if (request.FolderId == 0 && !string.IsNullOrEmpty(request.SearchKey))
-                    sql += $@"  AND (b.Title LIKE '%{request.SearchKey}%' OR a.FolderName LIKE '%{request.SearchKey}%' or b.TextContent LIKE '%{request.SearchKey}%')";
-                else if (!string.IsNullOrEmpty(request.SearchKey))
-                    sql += $@" and a.ParentId={request.FolderId}  AND(b.Title LIKE '%{request.SearchKey}%' OR a.FolderName LIKE '%{request.SearchKey}%' or b.TextContent LIKE '%{request.SearchKey}%')";
-                else
-                    sql += $" and a.ParentId={request.FolderId}";
-            }
-
-            return sql;
-        }
-
         public async Task<int> NotePageListCountAsync(string sql)
         {
             var pagedList = new PagedList<NotePageListRequest>();

+ 74 - 3
gx_api/GxPress/Service/GxPress.Service.Implement/Note/NoteService.cs

@@ -30,6 +30,7 @@ using GxPress.Request.App.Analyze;
 using GxPress.Result.Web;
 using GxPress.Request.Web;
 using GxPress.Repository.Interface.Media;
+using GxPress.Service.Interface.CommonSqlKata;
 
 namespace GxPress.Service.Implement.Note
 {
@@ -54,6 +55,7 @@ namespace GxPress.Service.Implement.Note
         private readonly IUserMiddleService _userMiddleService;
         private readonly IRecordFolderRepository recordFolderRepository;
         private readonly IMediaRepository mediaRepository;
+        private readonly ICommonSqlKataService commonSqlKataService;
         public NoteService(IMiddleService middleService, INoteRepository noteRepository,
             IMiddleRepository middleRepository, IMapper mapper, IUserRepository userRepository,
             IArticleRepository articleRepository, INoticeRepository noticeRepository,
@@ -65,7 +67,7 @@ namespace GxPress.Service.Implement.Note
             IAnalyzeService analyzeService,
             IUserMiddleService userMiddleService,
             IRecordFolderRepository recordFolderRepository,
-            IMediaRepository mediaRepository)
+            IMediaRepository mediaRepository, ICommonSqlKataService commonSqlKataService)
         {
             _middleService = middleService;
             _noteRepository = noteRepository;
@@ -87,6 +89,7 @@ namespace GxPress.Service.Implement.Note
             _userMiddleService = userMiddleService;
             this.recordFolderRepository = recordFolderRepository;
             this.mediaRepository = mediaRepository;
+            this.commonSqlKataService = commonSqlKataService;
         }
 
         /// <summary>
@@ -250,6 +253,7 @@ namespace GxPress.Service.Implement.Note
         /// <returns></returns>
         public async Task<PagedList<NotePageListRequest>> NotePageListAsync(NoteSearchPageListRequest request)
         {
+            var typeValue = request.TypeValue == 0 ? AllTypeConst.Note.GetHashCode() : AllTypeConst.TopicNote.GetHashCode();
             var middle = new Entity.Middle.Middle();
             if (request.FolderId > 0 && middle != null)
             {
@@ -257,6 +261,73 @@ namespace GxPress.Service.Implement.Note
                 if (request.UserId <= 0)
                     request.UserId = middle.UserId;
             }
+            var query = new SqlKata.Query("tede_middle");
+            query.LeftJoin("tede_note", "tede_note.Id", "tede_middle.MiddleId");
+            query.LeftJoin("tede_user", "tede_user.Id", "tede_note.UserId");
+            //公用
+            query = commonSqlKataService.GetCommonQueryAsync(typeValue, request.UserId, query, "tede_middle.MiddleId");
+            var enjoyUser = new SqlKata.Query("tede_user_middle");
+            enjoyUser.Where("MiddleType", typeValue);
+            enjoyUser.WhereColumns("DataSourceId", "=", "tede_middle.Id");
+            enjoyUser.SelectRaw("GROUP_CONCAT(SourceName Separator'、')");
+            query.Select(enjoyUser, "EnjoyUser");
+            var parameterQuery = new SqlKata.Query("tede_middle as a");
+            parameterQuery.WhereColumns("a.Id", "=", "tede_middle.ParentId");
+            parameterQuery.Select("a.FolderName");
+            query.Select(parameterQuery, "FolderParentName");
+            parameterQuery = new SqlKata.Query("tede_middle as b");
+            parameterQuery.WhereColumns("b.Id", "=", "tede_middle.ParentId");
+            parameterQuery.Select("b.Id");
+            query.Select(parameterQuery, "FolderId");
+            query.Where("tede_middle.FolderType", typeValue);
+            query.Where("tede_middle.IsDelete", false);
+            query.Where("tede_middle.UserId", request.VisitUserId > 0 ? request.VisitUserId : request.UserId);
+            if (typeValue == AllTypeConst.Note.GetHashCode())
+                query.Where(n => n.Where("tede_middle.RoleId", MiddleRoleConst.PrivatelyOwned.GetHashCode())
+                .OrWhereIn("tede_middle.AttributeValue", new List<int> { AttributeValueConst.File.GetHashCode(), AttributeValueConst.Folder.GetHashCode() }));
+            else
+                query.Where(n => n.WhereIn("tede_middle.RoleId", new List<int> { MiddleRoleConst.Publicity.GetHashCode(), MiddleRoleConst.Share.GetHashCode() })
+                  .OrWhereIn("tede_middle.AttributeValue", new List<int> { AttributeValueConst.File.GetHashCode(), AttributeValueConst.Folder.GetHashCode() }));
+            //判断是否是匿名用户
+            if (request.VisitUserId > 0)
+            {
+                var sqlStr = $"tede_middle.Id";
+                if (request.FolderId > 0)
+                    sqlStr = "tede_middle.ParentId";
+                parameterQuery = new SqlKata.Query("tede_user as c");
+                parameterQuery.WhereColumns("1", "=", "tede_middle.RoleId");
+                parameterQuery.Select("c.Id");
+                parameterQuery = new SqlKata.Query("tede_folder_user as d");
+                parameterQuery.Where("d.UserId", request.UserId);
+                parameterQuery.WhereColumns("d.MiddleId", "=", sqlStr);
+                parameterQuery.Select("MiddleId");
+                query.Where(n => n.WhereIn("tede_middle.UserId", parameterQuery).OrWhereIn(sqlStr, parameterQuery));
+            }
+            if (request.FolderId == 0 && !string.IsNullOrEmpty(request.SearchKey))
+            {
+                query.Where(n => n.OrWhereLike("tede_note.Title", $"%{request.SearchKey}%")
+                .OrWhereLike("tede_middle.FolderName", $"%{request.SearchKey}%")
+                .OrWhereLike("tede_note.TextContent", $"%{request.SearchKey}%"));
+
+            }
+            if (!string.IsNullOrEmpty(request.SearchKey))
+            {
+                query.Where("tede_middle.ParentId", request.FolderId);
+                query.Where(n => n.OrWhereLike("tede_note.Title", $"%{request.SearchKey}%")
+                              .OrWhereLike("tede_middle.FolderName", $"%{request.SearchKey}%")
+                              .OrWhereLike("tede_note.TextContent", $"%{request.SearchKey}%"));
+            }
+            else
+                query.Where("tede_middle.ParentId", request.FolderId);
+            var countQuery = query;
+            query.OrderByDesc("tede_middle.AttributeValue");
+            query.OrderByDesc("tede_middle.IsTop");
+            query.OrderByDesc("tede_middle.LastModifiedDate");
+            query.Select("tede_middle.{Id,MiddleId,RoleId,ParentId,AttributeValue,UserId,CreatedDate,LastModifiedDate,IsTop,FolderName,FolderType}",
+                        "tede_note.{Title,Content,ReadCount,MediaId,CatalogId,ChapterId}",
+                        "tede_user.{Name,AvatarUrl}");
+            request.ResultQuery = query;
+            request.CountQuery = countQuery;
             var result = await _noteRepository.NotePageListAsync(request);
             result.DraftCount = await _noteRepository.GetDraftCountAsync(request.UserId, request.TypeValue == 1);
             result.IsDraft = result.DraftCount > 0;
@@ -265,7 +336,7 @@ namespace GxPress.Service.Implement.Note
             {
                 result.RoleId = middle != null ? middle.RoleId : 0;
                 result.ParentId = middle != null ? middle.ParentId : 0;
-                result.IsSystemDefault=middle.IsSystemDefault;
+                result.IsSystemDefault = middle.IsSystemDefault;
             }
             //是否收藏和转发数量
             if (request.VisitUserId > 0)
@@ -293,7 +364,7 @@ namespace GxPress.Service.Implement.Note
                 if (item.MediaId > 0)
                 {
                     item.IsExtract = true;
-                    var query = Q.NewQuery();
+                    query = Q.NewQuery();
                     query.Where(nameof(Entity.tede2.Media.Media.Id), item.MediaId);
                     item.MediaNoteResult = await mediaRepository.GetAsync(query);
                     if (item.MediaNoteResult != null)