48 lines
2.0 KiB
C#
48 lines
2.0 KiB
C#
using New_College.IRepository;
|
|
using New_College.IRepository.UnitOfWork;
|
|
using New_College.Model.Models;
|
|
using New_College.Model.ViewModels;
|
|
using New_College.Repository.Base;
|
|
using NPOI.SS.Formula.Functions;
|
|
using SqlSugar;
|
|
using StackExchange.Profiling.Internal;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace New_College.Repository
|
|
{
|
|
/// <summary>
|
|
/// D_UniversityRankRepository
|
|
/// </summary>
|
|
public class D_UniversityRankRepository : BaseRepository<D_UniversityRank>, ID_UniversityRankRepository
|
|
{
|
|
public D_UniversityRankRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
|
|
{
|
|
}
|
|
|
|
public async Task<List<UniversityPcRankList>> GetPcUniversityRank(UniversityRankQuery query)
|
|
{
|
|
|
|
var response = await this.Db.Queryable<D_UniversityRank, D_University>((rank, u) => new object[] { JoinType.Inner, rank.UniversityName == u.Name })
|
|
.Where((rank, u) => rank.UniversityType == query.Type)
|
|
.WhereIF(!string.IsNullOrWhiteSpace(query.Name), (rank, u) => SqlFunc.Contains(rank.UniversityName, query.Name))
|
|
.WhereIF(query.SubjectType.HasValue, (rank, u) => u.Type == query.SubjectType)
|
|
.WhereIF(!string.IsNullOrWhiteSpace(query.Year), (rank, u) => rank.Year == query.Year)
|
|
.OrderBy((rank, u) => rank.Rank, OrderByType.Asc)
|
|
.Select((rank, u) => new UniversityPcRankList
|
|
{
|
|
AreaName = u.Area_Name,
|
|
Logo = u.Logo,
|
|
Name = rank.UniversityName,
|
|
Syl = u.Syl == 1 ? true : false,
|
|
Nhef = u.Nhef == 1 ? true : false,
|
|
Sff = u.Sff == 1 ? true : false,
|
|
Sort = rank.Rank,
|
|
SubjectLevel = u.Subject_Level,
|
|
Score = string.IsNullOrWhiteSpace(rank.Score) || rank.Score == "0" ? "--" : rank.Score,
|
|
Uid = u.Id
|
|
}).ToPageListAsync(query.PageIndex, query.PageSize);
|
|
return response;
|
|
}
|
|
}
|
|
} |