|
@@ -61,6 +61,17 @@ namespace GxPress.Repository.Implement.Note
|
|
|
return await _repository.UpdateAsync(query) > 0;
|
|
|
}
|
|
|
/// <summary>
|
|
|
+ /// 设置置顶
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="noteId"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public async Task<bool> SetIsTopAsync(int noteId)
|
|
|
+ {
|
|
|
+ var note = await _repository.GetAsync(noteId);
|
|
|
+ note.IsTopic = !note.IsTopic;
|
|
|
+ return await _repository.UpdateAsync(note);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
/// 获取笔记分页
|
|
|
/// </summary>
|
|
|
/// <param name="request"></param>
|
|
@@ -594,8 +605,28 @@ namespace GxPress.Repository.Implement.Note
|
|
|
a.CreatedDate,
|
|
|
a.MediaId,
|
|
|
a.ReadCount,
|
|
|
- (select FolderName from tede_middle where id= (select ParentId from tede_middle where MiddleId=a.Id AND FolderType = {noteConstValue})) as FolderName,
|
|
|
- (select Id from tede_middle where id= (select ParentId from tede_middle where MiddleId=a.Id AND FolderType = {noteConstValue})) as FolderId,
|
|
|
+ (SELECT
|
|
|
+ FolderName
|
|
|
+ FROM
|
|
|
+ tede_middle
|
|
|
+ WHERE
|
|
|
+ id = (SELECT
|
|
|
+ ParentId
|
|
|
+ FROM
|
|
|
+ tede_middle
|
|
|
+ WHERE
|
|
|
+ MiddleId = a.Id AND FolderType = {noteConstValue})) AS FolderName,
|
|
|
+ (SELECT
|
|
|
+ Id
|
|
|
+ FROM
|
|
|
+ tede_middle
|
|
|
+ WHERE
|
|
|
+ id = (SELECT
|
|
|
+ ParentId
|
|
|
+ FROM
|
|
|
+ tede_middle
|
|
|
+ WHERE
|
|
|
+ MiddleId = a.Id AND FolderType = {noteConstValue})) AS FolderId,
|
|
|
(SELECT
|
|
|
COUNT(1)
|
|
|
FROM
|
|
@@ -625,9 +656,9 @@ namespace GxPress.Repository.Implement.Note
|
|
|
FROM
|
|
|
tede_analyze
|
|
|
WHERE
|
|
|
- UserId = {request.UserId} AND TypeValue = {noteConstValue}
|
|
|
+ UserId = {request.UserId} AND TypeValue ={noteConstValue}
|
|
|
AND SourceId = a.Id
|
|
|
- AND AnalyzeType = 4) AS RetransmissionCount,
|
|
|
+ AND AnalyzeType = {noteConstValue}) AS RetransmissionCount,
|
|
|
(SELECT
|
|
|
COUNT(1)
|
|
|
FROM
|
|
@@ -642,7 +673,7 @@ namespace GxPress.Repository.Implement.Note
|
|
|
FROM
|
|
|
tede_analyze
|
|
|
WHERE
|
|
|
- UserId = {request.UserId} AND TypeValue = {noteConstValue}
|
|
|
+ UserId = {request.UserId} AND TypeValue = {noteConstValue}
|
|
|
AND SourceId = a.Id
|
|
|
AND AnalyzeType = 3
|
|
|
LIMIT 0 , 1) AS IsCollect,
|
|
@@ -653,31 +684,39 @@ namespace GxPress.Repository.Implement.Note
|
|
|
WHERE
|
|
|
UserId = {request.UserId} AND TypeValue = {noteConstValue}
|
|
|
AND SourceId = a.Id
|
|
|
- AND AnalyzeType = 3) AS IsCollect
|
|
|
- ,b.Name,b.AvatarUrl
|
|
|
+ AND AnalyzeType = 3) AS IsCollect,
|
|
|
+ b.Name,
|
|
|
+ b.AvatarUrl,c.Id
|
|
|
FROM
|
|
|
- tede_note a inner join tede_user b on a.UserId=b.Id
|
|
|
- WHERE a.IsDelete=0 and
|
|
|
- a.UserId = {request.UserId} {sqlValue}
|
|
|
- ORDER BY a.CreatedDate DESC limit {(request.Page - 1) * request.PerPage},{request.PerPage}";
|
|
|
+ tede_note a
|
|
|
+ INNER JOIN
|
|
|
+ tede_user b ON a.UserId = b.Id inner join tede_middle c on c.MiddleId=a.Id
|
|
|
+ WHERE
|
|
|
+ a.IsDelete = 0 AND a.UserId = {request.UserId} and c.FolderType={noteConstValue} {sqlValue}
|
|
|
+ ORDER BY a.IsTop desc ,a.CreatedDate DESC
|
|
|
+ limit {(request.Page - 1) * request.PerPage},{request.PerPage}";
|
|
|
var databaseType = StringUtils.ToEnum<DatabaseType>(_databaseTypestr, DatabaseType.MySql);
|
|
|
var database = new Database(databaseType, _connectionString);
|
|
|
var connection = database.GetConnection();
|
|
|
var result = new PagedList<NoteNotFolderPageResult>();
|
|
|
result.Items =
|
|
|
await connection
|
|
|
- .QueryAsync<NoteNotFolderPageResult, User, NoteNotFolderPageResult>(sql,
|
|
|
- (result, user) =>
|
|
|
+ .QueryAsync<NoteNotFolderPageResult, User, Entity.Middle.Middle, NoteNotFolderPageResult>(sql,
|
|
|
+ (result, user, middle) =>
|
|
|
{
|
|
|
+ result.MiddleId = result.Id;
|
|
|
+ result.Id = middle.Id;
|
|
|
result.Name = user == null ? "" : user.Name;
|
|
|
result.AvatarUrl = user == null ? "" : StringUtils.AddDomainMin(user.AvatarUrl);
|
|
|
return result;
|
|
|
- }, splitOn: "Id,Name");
|
|
|
- sql = $@"SELECT count(1)
|
|
|
+ }, splitOn: "Id,Id,Name,Id");
|
|
|
+ sql = $@"SELECT count(1)
|
|
|
FROM
|
|
|
- tede_note a inner join tede_user b on a.UserId=b.Id
|
|
|
- WHERE a.IsDelete=0 and
|
|
|
- a.UserId = {request.UserId} {sqlValue}";
|
|
|
+ tede_note a
|
|
|
+ INNER JOIN
|
|
|
+ tede_user b ON a.UserId = b.Id inner join tede_middle c on c.MiddleId=a.Id
|
|
|
+ WHERE
|
|
|
+ a.IsDelete = 0 AND a.UserId = {request.UserId} and c.FolderType={noteConstValue} {sqlValue}";
|
|
|
result.Total = await connection.ExecuteScalarAsync<int>(sql);
|
|
|
return result;
|
|
|
}
|