|
@@ -66,30 +66,6 @@ namespace GxPress.Repository.Implement.Collection
|
|
|
/// <returns></returns>
|
|
|
public async Task<PagedList<CollectionListPageResult>> PageListAsync(CollectionPageSearchRequest request)
|
|
|
{
|
|
|
- // var databaseType = StringUtils.ToEnum<DatabaseType>(_databaseTypestr, DatabaseType.MySql);
|
|
|
- // var database = new Database(databaseType, _connectionString);
|
|
|
- // var connection = database.GetConnection();
|
|
|
- // var items = await connection
|
|
|
- // .QueryAsync<CollectionListPageResult, Entity.Collection, CollectionListPageResult>(GetCollectionSql(request),
|
|
|
- // (collectionListPageResult, collection) =>
|
|
|
- // {
|
|
|
- // if (collectionListPageResult == null)
|
|
|
- // throw new ArgumentNullException(nameof(collectionListPageResult));
|
|
|
- // //collectionListPageResult= _mapper.Map<CollectionListPageResult>(middle);
|
|
|
- // collectionListPageResult.Title = collection == null ? "" : collection.Title;
|
|
|
- // collectionListPageResult.CollectionDataId = collection?.CollectionDataId ?? 0;
|
|
|
- // collectionListPageResult.CollectionType = collection?.CollectionType ?? 0;
|
|
|
- // collectionListPageResult.SourceUserId = collection?.SourceUserId ?? 0;
|
|
|
- // collectionListPageResult.CollectionId = collection?.Id ?? 0;
|
|
|
- // return collectionListPageResult;
|
|
|
- // },
|
|
|
- // splitOn: "MiddleId,Id");
|
|
|
-
|
|
|
- // var result = new PagedList<CollectionListPageResult>
|
|
|
- // {
|
|
|
- // Total = await CountAsync(GetCollectionSqlCount(request)),
|
|
|
- // Items = items
|
|
|
- // };
|
|
|
var result = new PagedList<CollectionListPageResult>();
|
|
|
var query = new SqlKata.Query().From("tede_middle");
|
|
|
query.LeftJoin("tede_collection", "tede_collection.Id", "tede_middle.MiddleId");
|
|
@@ -134,118 +110,7 @@ namespace GxPress.Repository.Implement.Collection
|
|
|
result.Items = await _middleRepository.GetAllAsync<CollectionListPageResult>(query);
|
|
|
return result;
|
|
|
}
|
|
|
- /// <summary>
|
|
|
- /// 集合
|
|
|
- /// </summary>
|
|
|
- /// <param name="request"></param>
|
|
|
- /// <returns></returns>
|
|
|
- public string GetCollectionSql(CollectionPageSearchRequest request)
|
|
|
- {
|
|
|
- string sql = "";
|
|
|
-
|
|
|
- if (request.VisitUserId > 0)
|
|
|
- {
|
|
|
- sql =
|
|
|
- $@"SELECT a.*,(SELECT GROUP_CONCAT(SourceName Separator'、') from tede_user_middle where MiddleType=3 and DataSourceId=a.MiddleSonId) as EnjoyUser,(select count(1) from tede_middle
|
|
|
- where ParentId=a.Id) as FileCount, b.* FROM tede_middle a
|
|
|
- LEFT JOIN tede_collection b ON a.MiddleId = b.Id WHERE a.UserId = {request.VisitUserId} AND a.FolderType = 3 AND a.IsDelete = 0";
|
|
|
- if (request.FolderId == 0)
|
|
|
- sql += @" AND(a.RoleId = 1 OR a.RoleId = 3) AND a.ParentId = 0";
|
|
|
- else
|
|
|
- sql += $" and a.ParentId={request.FolderId}";
|
|
|
- if (!string.IsNullOrEmpty(request.SearchKey))
|
|
|
- sql += $@" AND(b.Title LIKE '%{request.SearchKey}%' OR a.FolderName LIKE '%{request.SearchKey}%')";
|
|
|
- sql +=
|
|
|
- $@" OR a.id IN(SELECT MiddleId FROM tede_folder_user WHERE UserId = {request.UserId}) AND a.FolderType = 3 AND a.UserId = {request.VisitUserId}";
|
|
|
- if (request.FolderId > 0)
|
|
|
- sql += $" and a.ParentId={request.FolderId}";
|
|
|
- if (!string.IsNullOrEmpty(request.SearchKey))
|
|
|
- sql += $@" AND(b.Title LIKE '%{request.SearchKey}%' OR a.FolderName LIKE '%{request.SearchKey}%')";
|
|
|
- sql +=
|
|
|
- $@" ORDER BY a.AttributeValue desc,a.IsTop DESC,a.Sort,a.LastModifiedDate DESC";
|
|
|
- if (request.Page > 0)
|
|
|
- sql += $" LIMIT {(request.Page - 1) * request.PerPage},{request.PerPage}";
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- sql =
|
|
|
- $@"SELECT a.*,(SELECT GROUP_CONCAT(SourceName Separator'、') from tede_user_middle where MiddleType=3 and DataSourceId=a.MiddleSonId) as EnjoyUser,(select count(1) from tede_middle
|
|
|
- where ParentId=a.Id) as FileCount, b.* FROM tede_middle a
|
|
|
- LEFT JOIN tede_collection b ON a.MiddleId = b.Id WHERE a.UserId = {request.UserId} AND a.FolderType = 3 AND a.IsDelete = 0";
|
|
|
- if (!string.IsNullOrEmpty(request.SearchKey) && request.FolderId > 0)
|
|
|
- {
|
|
|
- sql += $" AND a.ParentId={request.FolderId}";
|
|
|
- sql += $@" AND (b.Title LIKE '%{request.SearchKey}%' OR a.FolderName LIKE '%{request.SearchKey}%')";
|
|
|
- }
|
|
|
- else if (!string.IsNullOrEmpty(request.SearchKey))
|
|
|
- {
|
|
|
- sql += $@" AND (b.Title LIKE '%{request.SearchKey}%' OR a.FolderName LIKE '%{request.SearchKey}%')";
|
|
|
- }
|
|
|
- else
|
|
|
- sql += $" and a.ParentId={request.FolderId}";
|
|
|
- sql += $@" ORDER BY a.AttributeValue desc,a.IsTop DESC,a.Sort 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(CollectionPageSearchRequest request)
|
|
|
- {
|
|
|
- string sql = "";
|
|
|
-
|
|
|
- if (request.VisitUserId > 0)
|
|
|
- {
|
|
|
-
|
|
|
- sql =
|
|
|
- $@"SELECT count(1) FROM tede_middle a LEFT JOIN tede_collection b ON a.MiddleId = b.Id WHERE a.UserId = {request.VisitUserId} AND a.FolderType = 3 AND a.IsDelete = 0";
|
|
|
- if (request.FolderId == 0)
|
|
|
- sql += @" AND(a.RoleId = 1 OR a.RoleId = 3) AND a.ParentId = 0";
|
|
|
- else
|
|
|
- sql += $" and a.ParentId={request.FolderId}";
|
|
|
- if (!string.IsNullOrEmpty(request.SearchKey))
|
|
|
- sql += $@" AND(b.Title LIKE '%{request.SearchKey}%' OR a.FolderName LIKE '%{request.SearchKey}%')";
|
|
|
- sql +=
|
|
|
- $@" OR a.id IN(SELECT MiddleId FROM tede_folder_user WHERE UserId = {request.UserId}) AND a.FolderType = 3 AND a.UserId = {request.VisitUserId}";
|
|
|
- if (request.FolderId > 0)
|
|
|
- sql += $" and a.ParentId={request.FolderId}";
|
|
|
- if (!string.IsNullOrEmpty(request.SearchKey))
|
|
|
- sql += $@" AND (b.Title LIKE '%{request.SearchKey}%' OR a.FolderName LIKE '%{request.SearchKey}%')";
|
|
|
-
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- sql =
|
|
|
- $@"SELECT count(1) FROM tede_middle a LEFT JOIN tede_collection b ON a.MiddleId = b.Id WHERE a.UserId = {request.UserId} AND a.FolderType = 3 AND a.IsDelete = 0";
|
|
|
- if (!string.IsNullOrEmpty(request.SearchKey) && request.FolderId > 0)
|
|
|
- {
|
|
|
- sql += $" AND a.ParentId={request.FolderId}";
|
|
|
- sql += $@" AND (b.Title LIKE '%{request.SearchKey}%' OR a.FolderName LIKE '%{request.SearchKey}%')";
|
|
|
- }
|
|
|
- else if (!string.IsNullOrEmpty(request.SearchKey))
|
|
|
- {
|
|
|
- sql += $@" AND (b.Title LIKE '%{request.SearchKey}%' OR a.FolderName LIKE '%{request.SearchKey}%')";
|
|
|
- }
|
|
|
- else
|
|
|
- sql += $" and a.ParentId={request.FolderId}";
|
|
|
- }
|
|
|
-
|
|
|
- return sql;
|
|
|
- }
|
|
|
- public async Task<int> CountAsync(string sql)
|
|
|
- {
|
|
|
-
|
|
|
- var databaseType = StringUtils.ToEnum<DatabaseType>(_databaseTypestr, DatabaseType.MySql);
|
|
|
- var database = new Database(databaseType, _connectionString);
|
|
|
- var connection = database.GetConnection();
|
|
|
- var items = await connection.ExecuteScalarAsync<int>(sql);
|
|
|
- return items;
|
|
|
- }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 根据ID获取收藏数据
|
|
|
/// </summary>
|