From 393c6a8e5474f88589f7eb1f517aefa93ce98deb Mon Sep 17 00:00:00 2001
From: moyongzhen <2534173414@qq.com>
Date: Tue, 27 Feb 2024 20:26:54 +0800
Subject: [PATCH] =?UTF-8?q?=E8=BD=A8=E8=BF=B9=E6=A8=A1=E7=89=88=E6=9F=A5?=
=?UTF-8?q?=E8=AF=A2=E6=B7=BB=E5=8A=A0=E6=A8=A1=E7=89=88id=E6=9F=A5?=
=?UTF-8?q?=E8=AF=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../GetPageTrackTemplateInput.cs | 5 ++
.../SJZY.Track.Domain.csproj | 1 +
.../Dtos/GetPageTrackTemplateVO.cs | 10 +++
.../TrackTemplateRepository.cs | 61 +++++++++++++++----
4 files changed, 65 insertions(+), 12 deletions(-)
diff --git a/src/SJZY.Track.Application/Dtos/TrackTemplates/GetPageTrackTemplateInput.cs b/src/SJZY.Track.Application/Dtos/TrackTemplates/GetPageTrackTemplateInput.cs
index 1c98499d..357784df 100644
--- a/src/SJZY.Track.Application/Dtos/TrackTemplates/GetPageTrackTemplateInput.cs
+++ b/src/SJZY.Track.Application/Dtos/TrackTemplates/GetPageTrackTemplateInput.cs
@@ -14,5 +14,10 @@
/// 关键字
///
public string Keywords { get; set; }
+
+ ///
+ /// 轨迹模版id,轨迹映射的查询使用
+ ///
+ public int TrackTemplateId { get; set; }
}
}
diff --git a/src/SJZY.Track.Domain/SJZY.Track.Domain.csproj b/src/SJZY.Track.Domain/SJZY.Track.Domain.csproj
index 43e82900..69cf9fb3 100644
--- a/src/SJZY.Track.Domain/SJZY.Track.Domain.csproj
+++ b/src/SJZY.Track.Domain/SJZY.Track.Domain.csproj
@@ -17,6 +17,7 @@
+
diff --git a/src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetPageTrackTemplateVO.cs b/src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetPageTrackTemplateVO.cs
index 326a7d0c..c0c26bfe 100644
--- a/src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetPageTrackTemplateVO.cs
+++ b/src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetPageTrackTemplateVO.cs
@@ -11,4 +11,14 @@ public class GetPageTrackTemplateVO : PageInfoInput
/// 关键字
///
public string Keywords { get; set; }
+
+ /////
+ ///// 是否置顶
+ /////
+ //public bool IsTop { get; set; }=false;
+
+ ///
+ /// 轨迹模版id
+ ///
+ public int TrackTemplateId { get; set; }
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Repository/TrackTemplateRepository.cs b/src/SJZY.Track.Repository/TrackTemplateRepository.cs
index 19308200..71f0ade8 100644
--- a/src/SJZY.Track.Repository/TrackTemplateRepository.cs
+++ b/src/SJZY.Track.Repository/TrackTemplateRepository.cs
@@ -1,4 +1,5 @@
-using SJZY.Expand.ABP.Core.PublicMethords;
+using SJZY.Expand.ABP.Core.Common.Dto;
+using SJZY.Expand.ABP.Core.PublicMethords;
using SJZY.Track.Domain.TrackContentAggregate;
using SJZY.Track.Domain.TrackFlagAggregate;
using SJZY.Track.Domain.TrackStatusAggregate;
@@ -45,18 +46,54 @@ public class TrackTemplateRepository : BasicRepository, ITr
///
public async Task> GetPageTrackTemplate(GetPageTrackTemplateVO input)
{
- var pagedList = await Context.Queryable().LeftJoin((a, b) => a.SubSystemId == b.Id)
- .WhereIF(input.SubSystemId > 0, (a, b) => a.SubSystemId == input.SubSystemId)
- .WhereIF(!input.Keywords.IsNullOrWhiteSpace(), (a, b) => a.Name.Contains(input.Keywords) || a.Code.Contains(input.Keywords))
- .Select((a, b) => new GetTrackTemplateListVO
+ UnifyPageResultDto pagedList = new UnifyPageResultDto();
+ pagedList = await Context.Queryable().LeftJoin((a, b) => a.SubSystemId == b.Id)
+ .WhereIF(input.SubSystemId > 0, (a, b) => a.SubSystemId == input.SubSystemId)
+ .WhereIF(!input.Keywords.IsNullOrWhiteSpace(), (a, b) => a.Name.Contains(input.Keywords) || a.Code.Contains(input.Keywords))
+ .Select((a, b) => new GetTrackTemplateListVO
+ {
+ Id = a.Id,
+ Code = a.Code,
+ CreateTime = a.CreateTime,
+ Name = a.Name,
+ SubSystem = b.CnName
+ })
+ .ToPagedListAsync(input.PageIndex, input.PageSize);
+ //如果轨迹模版id传值了,就置顶在第一条
+ if (input.TrackTemplateId>0&& (!pagedList.List.IsNullOrEmpty()))
+ {
+ if (input.PageIndex==1)
{
- Id = a.Id,
- Code = a.Code,
- CreateTime = a.CreateTime,
- Name = a.Name,
- SubSystem = b.CnName
- })
- .ToPagedListAsync(input.PageIndex, input.PageSize);
+ bool existCurrent = pagedList.List.Any(x => x.Id==input.TrackTemplateId);
+ if (existCurrent)
+ {
+ var item = pagedList.List.FirstOrDefault(x => x.Id==input.TrackTemplateId);
+ pagedList.List.Remove(item);
+ pagedList.List.Insert(0, item);
+ }
+ else
+ {
+ var item = await Context.Queryable().LeftJoin((a, b) => a.SubSystemId == b.Id)
+ .Where((a, b) => a.Id==input.TrackTemplateId)
+ .Select((a, b) => new GetTrackTemplateListVO
+ {
+ Id = a.Id,
+ Code = a.Code,
+ CreateTime = a.CreateTime,
+ Name = a.Name,
+ SubSystem = b.CnName
+ })
+ .FirstAsync();
+ if (item!=null)
+ {
+ var removeItem = pagedList.List.LastOrDefault();
+ pagedList.List.Remove(removeItem);
+ pagedList.List.Insert(0, item);
+ }
+ }
+ }
+ }
+
return pagedList;
}