feat:Query和QueryV2支持附件返回oss对象下载地址
This commit is contained in:
parent
6ea5a977df
commit
5fef9ee24b
@ -11,4 +11,9 @@ public class FileItemDto
|
|||||||
/// 文件名称
|
/// 文件名称
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string FileName { get; set; }
|
public string FileName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 文件下载地址
|
||||||
|
/// </summary>
|
||||||
|
public string? DownloadUrl { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using SJZY.Expand.AliyunOSS;
|
||||||
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||||
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
||||||
using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate;
|
using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate;
|
||||||
@ -53,6 +54,13 @@ public partial class TrackService
|
|||||||
trackContents.ForEach(x => trackContentDic.Add(x.Code, x.IsExternal));
|
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))
|
foreach (var group in details.GroupBy(x => x.OrderId))
|
||||||
{
|
{
|
||||||
var item = new GetTrackOutput();
|
var item = new GetTrackOutput();
|
||||||
@ -83,7 +91,8 @@ public partial class TrackService
|
|||||||
Files = x.Files?.Select(y => new FileItemDto
|
Files = x.Files?.Select(y => new FileItemDto
|
||||||
{
|
{
|
||||||
FileName = y.FileName,
|
FileName = y.FileName,
|
||||||
OssKey = y.OssKey
|
OssKey = y.OssKey,
|
||||||
|
DownloadUrl = ossKeyUrlDict.TryGetValue(y.OssKey, out var url) ? url : null
|
||||||
}).ToList(),
|
}).ToList(),
|
||||||
TrackPlaceCity = x.TrackPlaceCity,
|
TrackPlaceCity = x.TrackPlaceCity,
|
||||||
TrackPlaceCityId = x.TrackPlaceCityId,
|
TrackPlaceCityId = x.TrackPlaceCityId,
|
||||||
@ -100,6 +109,7 @@ public partial class TrackService
|
|||||||
res.Add(item);
|
res.Add(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 排序
|
// 排序
|
||||||
var sortedList = await TracksOrdered(res, input, input.SortMethod);
|
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));
|
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))
|
foreach (var group in details.GroupBy(x => x.OrderId))
|
||||||
{
|
{
|
||||||
var item = new GetTrackOutput();
|
var item = new GetTrackOutput();
|
||||||
@ -168,7 +185,8 @@ public partial class TrackService
|
|||||||
Files = x.Files?.Select(y => new FileItemDto
|
Files = x.Files?.Select(y => new FileItemDto
|
||||||
{
|
{
|
||||||
FileName = y.FileName,
|
FileName = y.FileName,
|
||||||
OssKey = y.OssKey
|
OssKey = y.OssKey,
|
||||||
|
DownloadUrl = ossKeyUrlDict.TryGetValue(y.OssKey, out var url) ? url : null
|
||||||
}).ToList(),
|
}).ToList(),
|
||||||
TrackPlaceCity = x.TrackPlaceCity,
|
TrackPlaceCity = x.TrackPlaceCity,
|
||||||
TrackPlaceCityId = x.TrackPlaceCityId,
|
TrackPlaceCityId = x.TrackPlaceCityId,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user