From 867b987f9a79a526f9dae79348fa2574e1dc0e31 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9F=B3=E6=96=87=E7=BF=94?= <878130837@qq.com>
Date: Fri, 1 Mar 2024 20:42:06 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=20=E8=BD=A8=E8=BF=B9?=
=?UTF-8?q?=E5=86=85=E5=AE=B9=E6=98=A0=E5=B0=84=E8=AF=A6=E6=83=85=20?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../TrackContents/TrackContentService.cs | 11 +++++
.../ITrackContentRepository.cs | 2 +
.../GetTrackContentMapDetailOutputVO.cs | 46 +++++++++++++++++++
.../Repositories/TrackContentRepository.cs | 21 +++++++++
4 files changed, 80 insertions(+)
create mode 100644 src/SJZY.Track.Domain/Dtos/TrackContents/GetTrackContentMapDetailOutputVO.cs
diff --git a/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs b/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs
index 52c01e40..542b0612 100644
--- a/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs
+++ b/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs
@@ -149,5 +149,16 @@ namespace SJZY.Track.Application.Services.TrackContents
{
return await _trackContentRepository.GetMapPageAsync(input);
}
+
+ ///
+ /// 轨迹内容映射详情
+ ///
+ ///
+ ///
+ [HttpGet("GetMapDetail")]
+ public async Task GetMapDetailAsync(int id)
+ {
+ return await _trackContentRepository.GetMapDetailAsync(id);
+ }
}
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/ITrackContentRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/ITrackContentRepository.cs
index fe1ab55c..cb4c9a4f 100644
--- a/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/ITrackContentRepository.cs
+++ b/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/ITrackContentRepository.cs
@@ -9,4 +9,6 @@ public interface ITrackContentRepository : IBasicRepository
Task> GetPageTrackContent(GetPageTrackContentVO input);
Task> GetMapPageAsync(GetTrackContentMapPageInputVO input);
+
+ Task GetMapDetailAsync(int id);
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Domain/Dtos/TrackContents/GetTrackContentMapDetailOutputVO.cs b/src/SJZY.Track.Domain/Dtos/TrackContents/GetTrackContentMapDetailOutputVO.cs
new file mode 100644
index 00000000..b5755d21
--- /dev/null
+++ b/src/SJZY.Track.Domain/Dtos/TrackContents/GetTrackContentMapDetailOutputVO.cs
@@ -0,0 +1,46 @@
+namespace SJZY.Track.Domain.Dtos.TrackContents;
+
+public class GetTrackContentMapDetailOutputVO
+{
+ public int Id { get; set; }
+
+ ///
+ /// 映射子系统
+ ///
+ public string MapSubSystem { get; set; }
+
+ ///
+ /// 映射子系统id
+ ///
+ public int MapSubSystemId { get; set; }
+
+ ///
+ /// 映射轨迹内容
+ ///
+ public string MapTrackContent { get; set; }
+
+ ///
+ /// 映射轨迹内容id
+ ///
+ public int MapTrackContentId { get; set; }
+
+ ///
+ /// 子系统
+ ///
+ public string SubSystem { get; set; }
+
+ ///
+ /// 子系统id
+ ///
+ public int SubSystemId { get; set; }
+
+ ///
+ /// 源轨迹内容
+ ///
+ public string TrackContent { get; set; }
+
+ ///
+ /// 源轨迹内容id
+ ///
+ public int TrackContentId { get; set; }
+}
\ No newline at end of file
diff --git a/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs
index 50f6a2d2..a186543a 100644
--- a/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs
+++ b/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs
@@ -117,4 +117,25 @@ public class TrackContentRepository : BasicRepository, ITrac
})
.ToPagedListAsync(input.PageIndex, input.PageSize);
}
+
+ public async Task GetMapDetailAsync(int id)
+ {
+ return await Context.Queryable()
+ .InnerJoin((contentMap, sourceContent) => contentMap.TrackContentId == sourceContent.Id && !sourceContent.IsDeleted)
+ .InnerJoin((contentMap, sourceContent, targetContent) => contentMap.MapTrackContentId == targetContent.Id && !targetContent.IsDeleted)
+ .LeftJoin((contentMap, sourceContent, targetContent, sourceSystem) => contentMap.SubSystemId == sourceSystem.Id && !sourceSystem.IsDeleted)
+ .LeftJoin((contentMap, sourceContent, targetContent, sourceSystem, targetSystem) => contentMap.MapSubSystemId == targetSystem.Id && !targetSystem.IsDeleted)
+ .Filter(null, true)
+ .Where(contentMap => !contentMap.IsDeleted)
+ .Select((contentMap, sourceContent, targetContent, sourceSystem, targetSystem) => new GetTrackContentMapDetailOutputVO
+ {
+ Id = contentMap.Id,
+ SubSystemId = contentMap.SubSystemId,
+ SubSystem = sourceSystem.CnName,
+ TrackContent = contentMap.TrackContentCode + "-" + sourceContent.Content,
+ MapSubSystem = targetSystem.CnName,
+ MapTrackContent = contentMap.MapTrackContentCode + "-" + targetContent.Content
+ }, true)
+ .SingleAsync();
+ }
}
\ No newline at end of file