develop
old易 2023-09-26 11:00:09 +08:00
parent 43227fdf68
commit 3a54a7f05a
1 changed files with 40 additions and 20 deletions

View File

@ -17,6 +17,7 @@ using New_College.Common;
using Org.BouncyCastle.Asn1.Ocsp;
using SqlSugar;
using System.Linq.Expressions;
using static New_College.Services.T_EnrollmentPlaneServices;
namespace New_College.Services
{
@ -922,9 +923,9 @@ namespace New_College.Services
{
if (query.Score <= 0)
return new MessageModel<List<UniversityEnrollmentPlanLazyResult>>() { success = false, msg = "分数不能为0..." };
var planinfo = await t_EnrollmentPlaneRepository.Query(w => w.Years == query.Year && w.Area_Id == query.AreaId);
if (planinfo == null)
return new MessageModel<List<UniversityEnrollmentPlanLazyResult>>() { success = false, msg = "所选省份年份的招生计划,正在完善中..." };
//var planinfo = await t_EnrollmentPlaneRepository.Query(w => w.Years == query.Year && w.Area_Id == query.AreaId);
//if (planinfo == null)
// return new MessageModel<List<UniversityEnrollmentPlanLazyResult>>() { success = false, msg = "所选省份年份的招生计划,正在完善中..." };
//通过传来的专业分类Id 筛选出所选择的专业的ids
var majorclassinfo = await d_MajorClassRepository.Query(x => query.MajorIds.Contains(x.TradeId) && x.IsDelete == false);
var CategoryClassids = majorclassinfo.Select(x => x.Id).ToList();
@ -957,17 +958,36 @@ namespace New_College.Services
if (university.Count <= 0)
return new MessageModel<List<UniversityEnrollmentPlanLazyResult>>() { success = false, msg = "所选院校数据完善中..." };
var universityids = university.Select(x => x.Id).ToList();
var batchinfo = await t_EnrollmentBatchRepository.Query(x => x.Year == query.Year && x.AreaName == query.AreaName && !x.Batch_name.Contains("提前"));
if (batchinfo.Count <= 0)
return new MessageModel<List<UniversityEnrollmentPlanLazyResult>>() { success = false, msg = "所属年份数据批次为空..." };
var batchids = batchinfo.Select(s => s.Id).ToList();
//var batchinfo = await t_EnrollmentBatchRepository.Query(x => x.Year == query.Year && x.AreaName == query.AreaName && !x.Batch_name.Contains("提前"));
//if (batchinfo.Count <= 0)
// return new MessageModel<List<UniversityEnrollmentPlanLazyResult>>() { success = false, msg = "所属年份数据批次为空..." };
//var batchids = batchinfo.Select(s => s.Id).ToList();
//通过条件筛选出所有的
var wheres = PredicateBuilder.New<T_EnrollmentPlanedesc>();
wheres.And(x => x.Scoreline <= (query.Score + 10) && x.Scoreline > 0 && majornames.Contains(x.MajorName) && universityids.Contains(x.UniversityId) && x.PlanId == planinfo.FirstOrDefault().Id && batchids.Contains(x.BatchtypeId));
//根据上述所有筛选 求出招生计划
var plandesc = await _dal.Query(wheres, "Scoreline desc");
if (plandesc.Count <= 0)
return new MessageModel<List<UniversityEnrollmentPlanLazyResult>>() { success = false, msg = "符合条件招生条件为空..." };
//var wheres = PredicateBuilder.New<T_EnrollmentPlanedesc>();
//wheres.And(x => x.Scoreline <= (query.Score + 10) && x.Scoreline > 0 && majornames.Contains(x.MajorName) && universityids.Contains(x.UniversityId) && x.PlanId == planinfo.FirstOrDefault().Id && batchids.Contains(x.BatchtypeId));
////根据上述所有筛选 求出招生计划
//var plandesc = await _dal.Query(wheres, "Scoreline desc");
//if (plandesc.Count <= 0)
// return new MessageModel<List<UniversityEnrollmentPlanLazyResult>>() { success = false, msg = "符合条件招生条件为空..." };
Expression<Func<D_PlanMajorDesc, bool>> exp = Expressionable.Create<D_PlanMajorDesc>() //创建表达式
.And(c => c.IsDelete == false)
.AndIF(query.Year > 0, w => w.Years == query.Year)
.AndIF(!string.IsNullOrEmpty(query.AreaName), w => w.Location == query.AreaName.Replace("省", ""))
.And(x => x.LowScore <= (query.Score + 10) && x.LowScore > 0)
.And(x => majornames.Contains(x.Major))
.And(x => universityids.Contains(x.UId))
.ToExpression();//注意 这一句 不能少
var plandesc = await _PlanMajorDescRepository.Query(exp);
plandesc = plandesc.OrderByDescending(c => c.LowScore).ToList();
//懒人推荐限制
//院校数量
var unum = 0;
@ -998,7 +1018,7 @@ namespace New_College.Services
}
//招生计划内所有的院校Ids
var planuniversityids = plandesc.Select(x => x.UniversityId).ToList().Distinct().Take(unum);
var planuniversityids = plandesc.Select(x => x.UId).ToList().Distinct().Take(unum);
var ids = string.Join(",", planuniversityids);
//var info = await d_UniversityRepository.QueryPage(x => planuniversityids.Contains(x.Id), query.PageIndex, query.PageSize);
@ -1008,7 +1028,7 @@ namespace New_College.Services
List<UniversityEnrollmentPlanLazyResult> list = new List<UniversityEnrollmentPlanLazyResult>() { };
foreach (var item in info)
{
var plansinfo = plandesc.Where(x => x.UniversityId == item.Id).ToList().Take(mnum);
var plansinfo = plandesc.Where(x => x.UId == item.Id).ToList().Take(mnum);
list.Add(new UniversityEnrollmentPlanLazyResult()
{
UniversityName = item.Name,
@ -1022,12 +1042,12 @@ namespace New_College.Services
Infos = plansinfo.Select(x => new PlanInfo()
{
MajorId = x.Id,
Money = x.Tuitionfee,
Year = x.Studyyears,
Money = x.Free,
Year = x.AcademicYear,
YearName = query.Year.ToString(),
PlanName = x.MajorName,
PlanNum = x.Plancount,
Scoreline = x.Scoreline
PlanName = x.Major,
PlanNum = x.PlanCount,
Scoreline = x.LowScore
}).ToList(),
AscriptionName = item.AscriptionName,
Rank = item.Rank <= 0 ? "-" : item.Rank.ToString()