|
|
|
|
@ -46,18 +46,15 @@ namespace New_College.Repository
|
|
|
|
|
this._sysRegionRepository = sysRegionRepository;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 暂未实现
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="query"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public async Task<MessageModel<PageModel<UniversityEnrollmentPlanResult>>> GetCWBUniversityDetail(CWBUniversityDetailQuery query)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public async Task<MessageModel<List<UniversityMapMajorItems>>> GetUniversityMapItems(CWBUniversityDetailQuery query)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
var regionlist = this.Db.Queryable<SysRegion>().Where(c => c.Level == 1).WhereIF(query.provinceIds != null && query.provinceIds.Any(), c => query.provinceIds.Contains(c.KeyId)).Select(c => c.RegionName).ToList();
|
|
|
|
|
var response = new List<UniversityMapMajorItems>();
|
|
|
|
|
RefAsync<int> totalNumber = 0;
|
|
|
|
|
var regionlist = this.Db.Queryable<SysRegion>().Where(c => c.Level == 1).WhereIF(query.provinceIds != null && query.provinceIds.Any(), c => SqlFunc.ContainsArray(query.provinceIds, c.KeyId)).Select(c => c.RegionName).ToList();
|
|
|
|
|
|
|
|
|
|
// int planId = (await t_EnrollmentPlane.Query(e => e.Years == query.Year && e.Area_Id == query.AreaId)).FirstOrDefault().Id;
|
|
|
|
|
var subjects = new string[] { };
|
|
|
|
|
string sbuOne = string.Empty;
|
|
|
|
|
string sbuTwo = string.Empty;
|
|
|
|
|
@ -78,66 +75,128 @@ namespace New_College.Repository
|
|
|
|
|
{
|
|
|
|
|
//所选专业增加majorids筛选
|
|
|
|
|
//query.MajorIds
|
|
|
|
|
majoraslist = await this.d_Major.Query(x => x.IsDelete == false && query.MajorIds.Contains(x.Id));
|
|
|
|
|
majoraslist = await this.d_Major.Query(x => x.IsDelete == false && SqlFunc.ContainsArray(query.MajorIds, x.Id));
|
|
|
|
|
if (majoraslist.Count() <= 0)
|
|
|
|
|
// return new MessageModel<PageModel<UniversityEnrollmentPlanResult>>() { success = false, msg = "所选专业大类数据完善中..." };
|
|
|
|
|
majornames = majoraslist.Select(x => x.MajorCode).ToList();
|
|
|
|
|
}
|
|
|
|
|
var recommendInfo = await this.Db.Queryable<D_PlanMajorDesc>()
|
|
|
|
|
.WhereIF(regionlist.Any(), p => SqlFunc.ContainsArray(regionlist, p.AreaName))
|
|
|
|
|
.WhereIF(query.Year > 0, p => p.Years == query.Year)
|
|
|
|
|
.WhereIF(!string.IsNullOrEmpty(query.Location), p => p.Location == query.Location)
|
|
|
|
|
.WhereIF(string.IsNullOrWhiteSpace(query.Type), p => p.LowScore > 0 && (p.LowScore <= query.Score + 15))
|
|
|
|
|
.WhereIF(query.Type == "冲", p => p.LowScore > 0 && (p.LowScore <= query.Score + 15 && p.LowScore > query.Score + 5))
|
|
|
|
|
.WhereIF(query.Type == "稳", p => p.LowScore > 0 && (p.LowScore <= query.Score + 5 && p.LowScore > query.Score - 15))
|
|
|
|
|
.WhereIF(query.Type == "保", p => p.LowScore > 0 && (p.LowScore < query.Score - 15))
|
|
|
|
|
.WhereIF(!string.IsNullOrWhiteSpace(query.SubjectClaim), p => (SqlFunc.Contains(p.SelectSubject, sbuOne) || SqlFunc.Contains(p.SelectSubject, sbuTwo) || SqlFunc.Contains(p.SelectSubject, sbuTree)))
|
|
|
|
|
.WhereIF(majornames.Any() && majornames.Count() > 0, p => SqlFunc.ContainsArray(majornames, p.MajorCode))
|
|
|
|
|
.WhereIF(query.UniversityIds.Any() && query.UniversityIds.Count() > 0, p => SqlFunc.ContainsArray(query.UniversityIds, p.UId))
|
|
|
|
|
.Select(p => new UniversityEnrollmentPlanResult()
|
|
|
|
|
{
|
|
|
|
|
UniversityId = p.UId,
|
|
|
|
|
PlanId = p.Id
|
|
|
|
|
})
|
|
|
|
|
.ToListAsync();
|
|
|
|
|
var universitylist = recommendInfo.Select(c => c.UniversityId).Distinct().ToList();
|
|
|
|
|
universitylist.ForEach(a =>
|
|
|
|
|
{
|
|
|
|
|
response.Add(new UniversityMapMajorItems()
|
|
|
|
|
{
|
|
|
|
|
UId = a,
|
|
|
|
|
MIds = recommendInfo.Where(e => e.UniversityId == a).Select(c => c.PlanId).ToList()
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
return new MessageModel<List<UniversityMapMajorItems>>() { response = response };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 暂未实现
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="query"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public async Task<MessageModel<PageModel<UniversityEnrollmentPlanResult>>> GetCWBUniversityDetail(CWBUniversityDetailQuery query)
|
|
|
|
|
{
|
|
|
|
|
RefAsync<int> totalNumber = 0;
|
|
|
|
|
var regionlist = this.Db.Queryable<SysRegion>().Where(c => c.Level == 1).WhereIF(query.provinceIds != null && query.provinceIds.Any(), c => SqlFunc.ContainsArray(query.provinceIds, c.KeyId)).Select(c => c.RegionName).ToList();
|
|
|
|
|
|
|
|
|
|
var subjects = new string[] { };
|
|
|
|
|
string sbuOne = string.Empty;
|
|
|
|
|
string sbuTwo = string.Empty;
|
|
|
|
|
string sbuTree = string.Empty;
|
|
|
|
|
float chongfirst = query.Score + 15;
|
|
|
|
|
float chongend = query.Score + 5;
|
|
|
|
|
float wenend = query.Score - 15;
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(query.SubjectClaim))
|
|
|
|
|
{
|
|
|
|
|
subjects = query.SubjectClaim.Split(",");
|
|
|
|
|
sbuOne = subjects[0];
|
|
|
|
|
sbuTwo = subjects[1];
|
|
|
|
|
sbuTree = subjects[2];
|
|
|
|
|
}
|
|
|
|
|
var majornames = new List<string>();
|
|
|
|
|
var majoraslist = new List<D_Major>();
|
|
|
|
|
if (query.MajorIds != null && query.MajorIds.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
//所选专业增加majorids筛选
|
|
|
|
|
//query.MajorIds
|
|
|
|
|
majoraslist = await this.d_Major.Query(x => x.IsDelete == false && SqlFunc.ContainsArray(query.MajorIds, x.Id));
|
|
|
|
|
if (majoraslist.Count() <= 0)
|
|
|
|
|
return new MessageModel<PageModel<UniversityEnrollmentPlanResult>>() { success = false, msg = "所选专业大类数据完善中..." };
|
|
|
|
|
majornames = majoraslist.Select(x => x.MajorCode).ToList();
|
|
|
|
|
}
|
|
|
|
|
var testlist = new List<int>() { 1, 2, 3 };
|
|
|
|
|
var recommendInfo = await this.Db.Queryable<D_PlanMajorDesc, D_University>((plans, universitys) => new object[] { JoinType.Left, plans.UId == universitys.Id, JoinType.Left })
|
|
|
|
|
//.Where((plans, universitys) => plans.PlanId == planId && plans.BatchtypeId == query.BatchId)
|
|
|
|
|
// .WhereIF(query.areaIds != null && query.areaIds.Count() > 0, (plans, universitys) => query.areaIds.Contains(universitys.Area_Id))
|
|
|
|
|
.WhereIF(regionlist.Any(), (plans, universitys) => regionlist.Contains(universitys.Area_Name))
|
|
|
|
|
.WhereIF(query.Year > 0, (plans, universitys) => plans.Years == query.Year)
|
|
|
|
|
.WhereIF(!string.IsNullOrEmpty(query.Location), (plans, universitys) => plans.Location == query.Location)
|
|
|
|
|
.WhereIF(string.IsNullOrWhiteSpace(query.Type), (plans, universitys) => plans.LowScore > 0 && (plans.LowScore <= query.Score + 15))
|
|
|
|
|
.WhereIF(query.Type == "冲", (plans, universitys) => plans.LowScore > 0 && (plans.LowScore <= query.Score + 15 && plans.LowScore > query.Score + 5))
|
|
|
|
|
.WhereIF(query.Type == "稳", (plans, universitys) => plans.LowScore > 0 && (plans.LowScore <= query.Score + 5 && plans.LowScore > query.Score - 15))
|
|
|
|
|
.WhereIF(query.Type == "保", (plans, universitys) => plans.LowScore > 0 && (plans.LowScore < query.Score - 15))
|
|
|
|
|
.WhereIF(!string.IsNullOrWhiteSpace(query.SubjectClaim), (plans, universitys) => (plans.SelectSubject.Contains(sbuOne) || plans.SelectSubject.Contains(sbuTwo) || plans.SelectSubject.Contains(sbuTree)))
|
|
|
|
|
.WhereIF(majornames.Any() && majornames.Count() > 0, (plans, universitys) => majornames.Contains(plans.MajorCode)).GroupBy(plans => new
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var recommendInfo = await this.Db.Queryable<D_PlanMajorDesc>()
|
|
|
|
|
.WhereIF(regionlist.Any(), p => SqlFunc.ContainsArray(regionlist, p.AreaName))
|
|
|
|
|
.WhereIF(query.Year > 0, p => p.Years == query.Year)
|
|
|
|
|
.WhereIF(!string.IsNullOrEmpty(query.Location), p => p.Location == query.Location)
|
|
|
|
|
.WhereIF(string.IsNullOrWhiteSpace(query.Type), p => p.LowScore > 0 && (p.LowScore <= query.Score + 15))
|
|
|
|
|
.WhereIF(query.Type == "冲", p => p.LowScore > 0 && (p.LowScore <= query.Score + 15 && p.LowScore > query.Score + 5))
|
|
|
|
|
.WhereIF(query.Type == "稳", p => p.LowScore > 0 && (p.LowScore <= query.Score + 5 && p.LowScore > query.Score - 15))
|
|
|
|
|
.WhereIF(query.Type == "保", p => p.LowScore > 0 && (p.LowScore < query.Score - 15))
|
|
|
|
|
.WhereIF(!string.IsNullOrWhiteSpace(query.SubjectClaim), p => (SqlFunc.Contains(p.SelectSubject, sbuOne) || SqlFunc.Contains(p.SelectSubject, sbuTwo) || SqlFunc.Contains(p.SelectSubject, sbuTree)))
|
|
|
|
|
.WhereIF(majornames.Any() && majornames.Count() > 0, p => SqlFunc.ContainsArray(majornames, p.MajorCode)).GroupBy(plans => new
|
|
|
|
|
{
|
|
|
|
|
// plans.Id,
|
|
|
|
|
plans.UId,
|
|
|
|
|
plans.UniversityName
|
|
|
|
|
// plans.LowScore,
|
|
|
|
|
// plans.LowScoreRank
|
|
|
|
|
})
|
|
|
|
|
.Select((plans, universitys) => new UniversityEnrollmentPlanResult()
|
|
|
|
|
.Select(p => new UniversityEnrollmentPlanResult()
|
|
|
|
|
{
|
|
|
|
|
AreaName = universitys.Area_Name,
|
|
|
|
|
UniversityId = plans.UId,
|
|
|
|
|
AscriptionName = universitys.AscriptionName,
|
|
|
|
|
Logo = universitys.Logo,
|
|
|
|
|
Nhef = universitys.Nhef,
|
|
|
|
|
Rank = universitys.Rank <= 0 ? "--" : universitys.Rank.ToString(),
|
|
|
|
|
UniversityName = universitys.Name,
|
|
|
|
|
Sff = universitys.Sff,
|
|
|
|
|
Syl = universitys.Syl,
|
|
|
|
|
planCount = SqlFunc.AggregateSum(plans.PlanCount),// plandesc.Where(x => x.UniversityId == item.Id).Select(x => x.Id).ToList()
|
|
|
|
|
// AreaName = universitys.Area_Name,
|
|
|
|
|
UniversityId = p.UId,
|
|
|
|
|
// AscriptionName = universitys.AscriptionName,
|
|
|
|
|
// Logo = universitys.Logo,
|
|
|
|
|
// Nhef = universitys.Nhef,
|
|
|
|
|
// Rank = universitys.Rank <= 0 ? "--" : universitys.Rank.ToString(),
|
|
|
|
|
UniversityName = p.UniversityName,
|
|
|
|
|
|
|
|
|
|
MjaorPlan = SqlFunc.AggregateCount(plans.UId),
|
|
|
|
|
Scoreline = SqlFunc.AggregateMin(plans.LowScore),
|
|
|
|
|
// PlanIds= String.Join(" ",plans.Id)
|
|
|
|
|
planCount = SqlFunc.AggregateSum(p.PlanCount),// plandesc.Where(x => x.UniversityId == item.Id).Select(x => x.Id).ToList()
|
|
|
|
|
//PlanIds= SqlFunc.Subqueryable<D_PlanMajorDesc>().Where(s=>s.Id==p.Id).ToList(s => s.Id),
|
|
|
|
|
MjaorPlan = SqlFunc.AggregateCount(p.UId),
|
|
|
|
|
Scoreline = SqlFunc.AggregateMin(p.LowScore),
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
}).OrderBy(p => p.Scoreline, OrderByType.Desc)
|
|
|
|
|
.ToPageListAsync(query.PageIndex, query.PageSize, totalNumber);
|
|
|
|
|
|
|
|
|
|
var plansinfo = await this.Db.Queryable<D_PlanMajorDesc, D_University>((plans, universitys) => new object[] { JoinType.Left, plans.UId == universitys.Id, JoinType.Left })
|
|
|
|
|
//.Where((plans, universitys) => plans.PlanId == planId && plans.BatchtypeId == query.BatchId)
|
|
|
|
|
.WhereIF(query.areaIds != null && query.areaIds.Count() > 0, (plans, universitys) => query.areaIds.Contains(universitys.Area_Id))
|
|
|
|
|
.WhereIF(string.IsNullOrWhiteSpace(query.Type), (plans, universitys) => plans.LowScore > 0 && (plans.LowScore <= query.Score + 15))
|
|
|
|
|
.WhereIF(query.Year > 0, (plans, universitys) => plans.Years == query.Year)
|
|
|
|
|
.WhereIF(!string.IsNullOrEmpty(query.Location), (plans, universitys) => plans.Location == query.Location)
|
|
|
|
|
.WhereIF(query.Type == "冲", (plans, universitys) => plans.LowScore > 0 && (plans.LowScore <= query.Score + 15 && plans.LowScore > query.Score + 5))
|
|
|
|
|
.WhereIF(query.Type == "稳", (plans, universitys) => plans.LowScore > 0 && (plans.LowScore <= query.Score + 5 && plans.LowScore > query.Score - 15))
|
|
|
|
|
.WhereIF(query.Type == "保", (plans, universitys) => plans.LowScore > 0 && (plans.LowScore < query.Score - 15))
|
|
|
|
|
.WhereIF(!string.IsNullOrWhiteSpace(query.SubjectClaim), (plans, universitys) => (plans.SelectSubject.Contains(sbuOne) || plans.SelectSubject.Contains(sbuTwo) || plans.SelectSubject.Contains(sbuTree)))
|
|
|
|
|
.WhereIF(majornames.Any() && majornames.Count() > 0, (plans, universitys) => majornames.Contains(plans.MajorCode)).ToListAsync();
|
|
|
|
|
|
|
|
|
|
var universitylist = await d_University.Query(c => SqlFunc.ContainsArray(recommendInfo.Select(c => c.UniversityId).ToList(), c.Id));
|
|
|
|
|
recommendInfo.ForEach(a =>
|
|
|
|
|
{
|
|
|
|
|
a.AreaName = universitylist.FirstOrDefault(c => c.Id == a.UniversityId).Area_Name;
|
|
|
|
|
a.AscriptionName = universitylist.FirstOrDefault(c => c.Id == a.UniversityId).AscriptionName;
|
|
|
|
|
a.Logo = universitylist.FirstOrDefault(c => c.Id == a.UniversityId).Logo;
|
|
|
|
|
a.Nhef = universitylist.FirstOrDefault(c => c.Id == a.UniversityId).Nhef;
|
|
|
|
|
a.Rank = universitylist.FirstOrDefault(c => c.Id == a.UniversityId).Rank.ToString();
|
|
|
|
|
a.Sff = universitylist.FirstOrDefault(c => c.Id == a.UniversityId).Sff;
|
|
|
|
|
a.Syl = universitylist.FirstOrDefault(c => c.Id == a.UniversityId).Syl;
|
|
|
|
|
a.AreaName = universitylist.FirstOrDefault(c => c.Id == a.UniversityId).Area_Name;
|
|
|
|
|
//a.PlanIds =new List<int>() { 12123, 1212, 1212 };
|
|
|
|
|
|
|
|
|
|
a.PlanIds = plansinfo.Where(c => c.UId == a.UniversityId).Select(c => c.Id).ToList();
|
|
|
|
|
a.Type = (a.Scoreline <= chongfirst && a.Scoreline > chongend) ? "冲" : (a.Scoreline <= chongend && a.Scoreline > wenend) ? "稳" : "保";
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|