diff --git a/client/src/api/rssMirror.ts b/client/src/api/rssMirror.ts index e29331a..f8d0a16 100644 --- a/client/src/api/rssMirror.ts +++ b/client/src/api/rssMirror.ts @@ -15,7 +15,21 @@ class RssMirrorApi { async getList( input: GetRssMirrorItemsRequestDto ): Promise> { - return http.get(this.baseUrl, { params: input }); + const pageIndex = input?.pageIndex ?? 1; + const pageSize = input?.pageSize ?? 10; + return http.get(this.baseUrl, { + params: { + skipCount: (pageIndex - 1) * pageSize, + maxResultCount: pageSize, + sorting: input?.sorting, + rssSourceId: input?.rssSourceId, + filter: input?.filter, + startTime: input?.startTime, + endTime: input?.endTime, + isDownloaded: input?.isDownloaded, + wordToken: input?.wordToken + } + }); } /** @@ -59,8 +73,15 @@ class RssMirrorApi { wordToken: string, params?: PagedRequestDto ): Promise> { + const pageIndex = params?.pageIndex ?? 1; + const pageSize = params?.pageSize ?? 10; return http.get(`${this.baseUrl}/by-word-token`, { - params: { wordToken, ...params } + params: { + wordToken, + skipCount: (pageIndex - 1) * pageSize, + maxResultCount: pageSize, + sorting: params?.sorting + } }); } diff --git a/src/DFApp.Web/Services/Rss/RssMirrorItemAppService.cs b/src/DFApp.Web/Services/Rss/RssMirrorItemAppService.cs index 44e5614..cdd1355 100644 --- a/src/DFApp.Web/Services/Rss/RssMirrorItemAppService.cs +++ b/src/DFApp.Web/Services/Rss/RssMirrorItemAppService.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Threading.Tasks; using DFApp.Rss; +using DFApp.Aria2; using DFApp.Web.Data; using DFApp.Web.DTOs; using DFApp.Web.DTOs.Rss; @@ -22,9 +23,7 @@ public class RssMirrorItemAppService : AppServiceBase private readonly ISqlSugarRepository _rssWordSegmentRepository; private readonly ISqlSugarRepository _rssSourceRepository; private readonly ILogger _logger; - - // TODO: IAria2Service 未迁移,暂时使用 object? 替代 - private readonly object? _aria2Service; + private readonly Services.Aria2.Aria2Service _aria2Service; /// /// 构造函数 @@ -34,6 +33,7 @@ public class RssMirrorItemAppService : AppServiceBase /// RSS镜像条目仓储 /// RSS分词仓储 /// RSS源仓储 + /// Aria2下载服务 /// 日志记录器 public RssMirrorItemAppService( ICurrentUser currentUser, @@ -41,12 +41,14 @@ public RssMirrorItemAppService( ISqlSugarRepository rssMirrorItemRepository, ISqlSugarRepository rssWordSegmentRepository, ISqlSugarRepository rssSourceRepository, + Services.Aria2.Aria2Service aria2Service, ILogger logger) : base(currentUser, permissionChecker) { _rssMirrorItemRepository = rssMirrorItemRepository; _rssWordSegmentRepository = rssWordSegmentRepository; _rssSourceRepository = rssSourceRepository; + _aria2Service = aria2Service; _logger = logger; } @@ -301,25 +303,29 @@ public async Task DownloadToAria2Async(long id, bool videoOnly = false, throw new BusinessException("该条目已经下载过"); } - // TODO: IAria2Service 未迁移,以下为伪代码 - // var request = new AddDownloadRequestDto - // { - // Urls = new List { item.Link }, - // VideoOnly = videoOnly, - // EnableKeywordFilter = enableKeywordFilter - // }; - // var result = await _aria2Service.AddDownloadAsync(request); + if (string.IsNullOrWhiteSpace(item.Link)) + { + throw new BusinessException("该条目没有下载链接"); + } + + // 构造下载请求,先调用 Aria2 添加下载任务 + var request = new AddDownloadRequestDto + { + Urls = new List { item.Link }, + VideoOnly = videoOnly, + EnableKeywordFilter = enableKeywordFilter + }; + + var result = await _aria2Service.AddDownloadAsync(request); - // 更新下载状态 + // 下载任务创建成功后才更新下载状态 item.IsDownloaded = true; item.DownloadTime = DateTime.Now; await _rssMirrorItemRepository.UpdateAsync(item); - _logger.LogInformation("RSS镜像条目 {Id} 已添加到Aria2下载队列", id); + _logger.LogInformation("RSS镜像条目 {Id} 已添加到Aria2下载队列,GID: {Gid}", id, result.Id); - // TODO: IAria2Service 未迁移,返回占位值 - throw new BusinessException("IAria2Service 尚未迁移,下载功能暂不可用"); - // return result.Id; + return result.Id; } ///