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(db) { public override List Search(VersionModel whereObj) { return db.Queryable() .Where(whereObj.ToWhereExp()) .ToList(); } public override List WhereSearchId(VersionModel whereObj) { return db.Queryable() .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() .Where(mt => type == mt.VersionType && channel == mt.VersionChannel && targetType == mt.UpgradeTargetType) .GroupBy(mt => mt.CurrentVersion) .OrderBy(mt => mt.LastPublishTime, OrderByType.Desc) .First(); } }