From 5fef9ee24bcbf6bab4df0832bfb4ee22439635a6 Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Wed, 22 Jan 2025 16:45:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:Query=E5=92=8CQueryV2=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E9=99=84=E4=BB=B6=E8=BF=94=E5=9B=9Eoss=E5=AF=B9=E8=B1=A1?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dtos/ProvideServices/FileItemDto.cs | 5 +++++ .../ProvideServices/TrackService.Query.cs | 22 +++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/FileItemDto.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/FileItemDto.cs index f483a7ab..d39bf488 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/FileItemDto.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/FileItemDto.cs @@ -11,4 +11,9 @@ public class FileItemDto /// 文件名称 /// public string FileName { get; set; } + + /// + /// 文件下载地址 + /// + public string? DownloadUrl { get; set; } } diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs index bc140364..34f56ab8 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs @@ -1,4 +1,5 @@ using Microsoft.AspNetCore.Http; +using SJZY.Expand.AliyunOSS; using SJZY.Track.Application.Contract.Dtos.ProvideServices; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate; @@ -53,6 +54,13 @@ public partial class TrackService trackContents.ForEach(x => trackContentDic.Add(x.Code, x.IsExternal)); } + var ossKeys = details + .Where(x => x.Files != null && x.Files.Count > 0) + .SelectMany(x => x.Files!.Select(y => y.OssKey)) + .ToArray(); + //根据osskey获取下载地址 + var ossKeyUrlDict = OSSHelper.GetUrlByKeys(ossKeys); + foreach (var group in details.GroupBy(x => x.OrderId)) { var item = new GetTrackOutput(); @@ -83,7 +91,8 @@ public partial class TrackService Files = x.Files?.Select(y => new FileItemDto { FileName = y.FileName, - OssKey = y.OssKey + OssKey = y.OssKey, + DownloadUrl = ossKeyUrlDict.TryGetValue(y.OssKey, out var url) ? url : null }).ToList(), TrackPlaceCity = x.TrackPlaceCity, TrackPlaceCityId = x.TrackPlaceCityId, @@ -100,6 +109,7 @@ public partial class TrackService res.Add(item); } + // 排序 var sortedList = await TracksOrdered(res, input, input.SortMethod); @@ -142,6 +152,13 @@ public partial class TrackService trackContents.ForEach(x => trackContentDic.Add(x.Code, x.IsExternal)); } + var ossKeys = details + .Where(x => x.Files != null && x.Files.Count > 0) + .SelectMany(x => x.Files!.Select(y => y.OssKey)) + .ToArray(); + //根据osskey获取下载地址 + var ossKeyUrlDict = OSSHelper.GetUrlByKeys(ossKeys); + foreach (var group in details.GroupBy(x => x.OrderId)) { var item = new GetTrackOutput(); @@ -168,7 +185,8 @@ public partial class TrackService Files = x.Files?.Select(y => new FileItemDto { FileName = y.FileName, - OssKey = y.OssKey + OssKey = y.OssKey, + DownloadUrl = ossKeyUrlDict.TryGetValue(y.OssKey, out var url) ? url : null }).ToList(), TrackPlaceCity = x.TrackPlaceCity, TrackPlaceCityId = x.TrackPlaceCityId,