35 lines
1.2 KiB
C#
35 lines
1.2 KiB
C#
using LFlow.Base.Default;
|
|
using LFlow.Base.Utils;
|
|
using LFlow.VersionManagement.Enums;
|
|
using LFlow.VersionManagement.Model;
|
|
using SqlSugar;
|
|
|
|
namespace LFlow.VersionManagement.Repository;
|
|
public class VersionManagementRepo(ISqlSugarClient db) : DefaultCurdRepo<VersionModel, string>(db)
|
|
{
|
|
public override List<VersionModel> Search(VersionModel whereObj)
|
|
{
|
|
return db.Queryable<VersionModel>()
|
|
.Where(whereObj.ToWhereExp())
|
|
.ToList();
|
|
}
|
|
public override List<string> WhereSearchId(VersionModel whereObj)
|
|
{
|
|
return db.Queryable<VersionModel>()
|
|
.Where(whereObj.ToWhereExp())
|
|
.Where(x => x.ID != null)
|
|
.Select(x => x.ID)
|
|
.ToList();
|
|
}
|
|
|
|
public VersionModel GetLatestVersion(VersionType type, VersionChannel channel, UpgradeTargetType targetType)
|
|
{
|
|
return db.Queryable<VersionModel>()
|
|
.Where(mt => type == mt.VersionType && channel == mt.VersionChannel && targetType == mt.UpgradeTargetType)
|
|
.GroupBy(mt => mt.CurrentVersion)
|
|
.OrderBy(mt => mt.LastPublishTime, OrderByType.Desc)
|
|
.First();
|
|
|
|
}
|
|
}
|