feat:Query和QueryV2支持附件返回oss对象下载地址

This commit is contained in:
hardstylewyl 2025-01-22 16:45:21 +08:00
parent 6ea5a977df
commit 5fef9ee24b
2 changed files with 25 additions and 2 deletions

View File

@ -11,4 +11,9 @@ public class FileItemDto
/// 文件名称
/// </summary>
public string FileName { get; set; }
/// <summary>
/// 文件下载地址
/// </summary>
public string? DownloadUrl { get; set; }
}

View File

@ -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,