diff --git a/New_College.Api/New_College.Model.xml b/New_College.Api/New_College.Model.xml index 238816c..b654583 100644 --- a/New_College.Api/New_College.Model.xml +++ b/New_College.Api/New_College.Model.xml @@ -1736,6 +1736,11 @@ 文理 不分文理 + + + 批次分数线 + + 计划名称 diff --git a/New_College.Model/Models/T_EnrollmentBatch.cs b/New_College.Model/Models/T_EnrollmentBatch.cs index f14807e..afc1d68 100644 --- a/New_College.Model/Models/T_EnrollmentBatch.cs +++ b/New_College.Model/Models/T_EnrollmentBatch.cs @@ -37,5 +37,12 @@ namespace New_College.Model.Models /// [SugarColumn(IsNullable = true)] public string Type { get; set; } + + /// + /// 批次分数线 + /// + [SugarColumn(IsNullable = true)] + public int ScoreLine { get; set; } + } } diff --git a/New_College.Model/ViewModels/Query/PlanDetailQuery.cs b/New_College.Model/ViewModels/Query/PlanDetailQuery.cs index bdc4d30..575051c 100644 --- a/New_College.Model/ViewModels/Query/PlanDetailQuery.cs +++ b/New_College.Model/ViewModels/Query/PlanDetailQuery.cs @@ -49,5 +49,9 @@ namespace New_College.Model.ViewModels /// 省份Id /// public int AreaId { get; set; } + + public List areaIds { get; set; } + + public string SubjectClaim { get; set; } } } diff --git a/New_College.Model/ViewModels/Result/VolunteerResult.cs b/New_College.Model/ViewModels/Result/VolunteerResult.cs index ed76c61..3d71635 100644 --- a/New_College.Model/ViewModels/Result/VolunteerResult.cs +++ b/New_College.Model/ViewModels/Result/VolunteerResult.cs @@ -80,15 +80,17 @@ namespace New_College.Model.ViewModels ///// ///// 院校最低分 ///// - //public double? Score { get; set; } + // public double? Score { get; set; } ///// ///// 位次 ///// //public string RankLine { get; set; } + public float Scoreline { get; set; } public int planCount { get; set; } + public int PlanId { get; set; } /// /// 对应的Ids /// diff --git a/New_College.Repository/BASE/IT_EnrollmentPlanedescRepository.cs b/New_College.Repository/BASE/IT_EnrollmentPlanedescRepository.cs index 2d23e17..21d76fa 100644 --- a/New_College.Repository/BASE/IT_EnrollmentPlanedescRepository.cs +++ b/New_College.Repository/BASE/IT_EnrollmentPlanedescRepository.cs @@ -13,10 +13,20 @@ namespace New_College.IRepository { /// - /// 只能选大学 + /// 智能选大学 /// /// /// Task> GetRecommendUniversity(RecommendUniversityQuery query); + + + + /// + ///智能 冲稳保 + /// + /// + /// + Task>> GetCWBUniversityDetail(CWBUniversityDetailQuery query); + } } \ No newline at end of file diff --git a/New_College.Repository/BASE/T_EnrollmentPlanedescRepository.cs b/New_College.Repository/BASE/T_EnrollmentPlanedescRepository.cs index a9297bb..195a525 100644 --- a/New_College.Repository/BASE/T_EnrollmentPlanedescRepository.cs +++ b/New_College.Repository/BASE/T_EnrollmentPlanedescRepository.cs @@ -7,6 +7,7 @@ using New_College.Model.ViewModels; using New_College.Repository.Base; using SqlSugar; using System; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -19,12 +20,115 @@ namespace New_College.Repository { private readonly IV_CustomerInfoRepository v_CustomerInfo; private readonly IT_EnrollmentPlaneRepository t_EnrollmentPlane; - public T_EnrollmentPlanedescRepository(IUnitOfWork unitOfWork, IV_CustomerInfoRepository _CustomerInfoRepository, IT_EnrollmentPlaneRepository t_EnrollmentPlaneRepository) : base(unitOfWork) + private readonly ID_MajorRepository d_Major; + public T_EnrollmentPlanedescRepository(IUnitOfWork unitOfWork, IV_CustomerInfoRepository _CustomerInfoRepository, IT_EnrollmentPlaneRepository t_EnrollmentPlaneRepository, ID_MajorRepository d_MajorRepository) : base(unitOfWork) { this.v_CustomerInfo = _CustomerInfoRepository; this.t_EnrollmentPlane = t_EnrollmentPlaneRepository; + this.d_Major = d_MajorRepository; + } + /// + /// 暂未实现 + /// + /// + /// + public async Task>> GetCWBUniversityDetail(CWBUniversityDetailQuery query) + { + + RefAsync totalNumber = 0; + + 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; + 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(); + if (query.MajorIds != null && query.MajorIds.Count > 0) + { + //所选专业增加majorids筛选 + //query.MajorIds + var major = await this.d_Major.Query(x => x.IsDelete == false && query.MajorIds.Contains(x.CategoryClass_Id)); + if (major.Count() <= 0) + return new MessageModel>() { success = false, msg = "所选专业大类数据完善中..." }; + majornames = major.Select(x => x.MajorName).ToList(); + } + + var recommendInfo = await this.Db.Queryable((plans, universitys) => new object[] { JoinType.Left, plans.UniversityId == universitys.Id }) + .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.Scoreline > 0 && (plans.Scoreline <= query.Score + 15)) + .WhereIF(query.Type == "冲", (plans, universitys) => plans.Scoreline > 0 && (plans.Scoreline <= query.Score + 15 && plans.Scoreline > query.Score + 5)) + .WhereIF(query.Type == "稳", (plans, universitys) => plans.Scoreline > 0 && (plans.Scoreline <= query.Score + 5 && plans.Scoreline > query.Score - 15)) + .WhereIF(query.Type == "保", (plans, universitys) => plans.Scoreline > 0 && (plans.Scoreline < query.Score - 15)) + .WhereIF(!string.IsNullOrWhiteSpace(query.SubjectClaim), (plans, universitys) => (plans.Subjectclaim.Contains(sbuOne) || plans.Subjectclaim.Contains(sbuTwo) || plans.Subjectclaim.Contains(sbuTree))) + .WhereIF(majornames.Any() && majornames.Count() > 0, (plans, universitys) => majornames.Contains(plans.MajorName)) + + .Select((plans, universitys) => new UniversityEnrollmentPlanResult() + { + AreaName = universitys.Area_Name, + UniversityId = plans.UniversityId, + 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 = plans.Plancount, + Scoreline = plans.Scoreline, + PlanId = plans.Id + }).MergeTable() + .GroupBy(it => new + { + it.UniversityId + }) + //plandesc.Where(x => x.UniversityId == item.Id && x.Scoreline <= query.Score + 15 && x.Scoreline > query.Score + 5).Any() ? "冲" : (plandesc.Where(x => x.Scoreline <= query.Score + 5 && x.Scoreline > query.Score - 15)).Any() ? "稳" : plandesc.Where(x => x.UniversityId == item.Id && x.Scoreline > 0 && query.Score > x.Scoreline).Any() ? "保" : "其他" + .OrderBy(it => it.UniversityId, OrderByType.Asc) + .Select(it => new UniversityEnrollmentPlanResult + { + planCount = SqlFunc.AggregateSum(it.planCount), + MjaorPlan = SqlFunc.AggregateCount(it.UniversityId), + //PlanIds = SqlFunc.Subqueryable>().Select(s =>), + // Score = it.Score, + Type = (it.Scoreline <= chongfirst && it.Scoreline > chongend) ? "冲" : (it.Scoreline <= chongend && it.Scoreline > wenend) ? "稳" : "保", + AreaName = it.AreaName, + UniversityId = it.UniversityId, + AscriptionName = it.AscriptionName, + Logo = it.Logo, + Nhef = it.Nhef, + Rank = it.Rank, + UniversityName = it.UniversityName, + + Sff = it.Sff, + Syl = it.Syl + }) + .ToPageListAsync(query.PageIndex, query.PageSize, totalNumber); + + return new MessageModel>() + { + success = true, + msg = "获取成功", + response = new PageModel() + { + data = recommendInfo, + dataCount = recommendInfo.Count, + page = query.PageIndex, + PageSize = query.PageSize, + pageCount = (int)Math.Ceiling(recommendInfo.Count / Convert.ToDecimal(query.PageSize)) + } + }; } /// @@ -53,7 +157,7 @@ namespace New_College.Repository } var recommendInfo = await this.Db.Queryable((plans, universitys) => new object[] { JoinType.Left, plans.UniversityId == universitys.Id }) .Where((plans, universitys) => plans.PlanId == planId) - .WhereIF(query.SubjectLevel >0, (plans, universitys) => universitys.Subject_Level == query.SubjectLevel) + .WhereIF(query.SubjectLevel > 0, (plans, universitys) => universitys.Subject_Level == query.SubjectLevel) .WhereIF(query.Type >= 0, (plans, universitys) => universitys.Type == query.Type) .WhereIF(query.Nhef >= 0, (plans, universitys) => universitys.Nhef == query.Nhef) .WhereIF(query.Sff >= 0, (plans, universitys) => universitys.Sff == query.Sff) diff --git a/New_College.Services/T_EnrollmentPlanedescServices.cs b/New_College.Services/T_EnrollmentPlanedescServices.cs index 67cd14c..12f71bf 100644 --- a/New_College.Services/T_EnrollmentPlanedescServices.cs +++ b/New_College.Services/T_EnrollmentPlanedescServices.cs @@ -26,13 +26,12 @@ namespace New_College.Services private readonly ID_MajorRepository d_MajorRepository; private readonly ID_MajorClassRepository d_MajorClassRepository; private readonly ID_MajorCategoryRepository d_MajorCategoryRepository; - private readonly ID_MajorMapUniversityRepository d_MajorMapUniversityRepository; + private readonly IT_PlanMapTagRepository t_PlanMapTagRepository; private readonly IT_RegionScoreRepository t_RegionScoreRepository; private readonly IU_ProbabilityHistoryRepository u_ProbabilityHistoryRepository; private readonly IU_VolunteerTableRepository u_VolunteerTableRepository; private readonly IU_VolunteerTableDetailRepository u_VolunteerTableDetailRepository; - private readonly ID_UniversityCollectionRepository d_UniversityCollectionRepository; private readonly IT_GearInfoRepository t_GearInfo; private readonly IT_EnrollmentPlanedescRepository t_EnrollmentPlanedesc; private readonly IV_CustomerInfoRepository _CustomerInfoRepository; @@ -59,13 +58,12 @@ namespace New_College.Services d_MajorRepository = ID_MajorRepository; d_MajorClassRepository = ID_MajorClassRepository; d_MajorCategoryRepository = ID_MajorCategoryRepository; - d_MajorMapUniversityRepository = ID_MajorMapUniversityRepository; + t_PlanMapTagRepository = IT_PlanMapTagRepository; t_RegionScoreRepository = IT_RegionScoreRepository; u_ProbabilityHistoryRepository = IU_ProbabilityHistoryRepository; u_VolunteerTableRepository = IU_VolunteerTableRepository; u_VolunteerTableDetailRepository = IU_VolunteerTableDetailRepository; - d_UniversityCollectionRepository = ID_UniversityCollectionRepository; t_GearInfo = IT_GearInfoRepository; base.BaseDal = dal; this.t_EnrollmentPlanedesc = t_EnrollmentPlanedescServices; @@ -958,7 +956,7 @@ namespace New_College.Services var batchids = batchinfo.Select(s => s.Id).ToList(); //通过条件筛选出所有的 var wheres = PredicateBuilder.New(); - wheres.And(x => x.Scoreline <= query.Score && majornames.Contains(x.MajorName) && universityids.Contains(x.UniversityId) && x.PlanId == planinfo.FirstOrDefault().Id && batchids.Contains(x.BatchtypeId)); + wheres.And(x => x.Scoreline <= query.Score && 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) @@ -998,7 +996,7 @@ namespace New_College.Services //var info = await d_UniversityRepository.QueryPage(x => planuniversityids.Contains(x.Id), query.PageIndex, query.PageSize); var stringBuilderinfo = new StringBuilder(); - stringBuilderinfo.AppendFormat("select Id,Name,Logo,Nhef,Sff,Syl,Area_Name,AscriptionName from D_University where IsDelete=0 and Id in ({0}) order by rank asc", ids); + stringBuilderinfo.AppendFormat("select Id,Name,Logo,Nhef,Sff,Syl,Area_Name,AscriptionName from D_University where IsDelete=0 and Id in ({0}) order by Id asc", ids); var info = await d_UniversityRepository.QuerySql(stringBuilderinfo.ToString()); List list = new List() { }; foreach (var item in info) @@ -1228,6 +1226,8 @@ namespace New_College.Services /// public async Task>> GetCWBUniversityDetail(CWBUniversityDetailQuery query) { + + // return await this.t_EnrollmentPlanedesc.GetCWBUniversityDetail(query); var planinfo = await t_EnrollmentPlaneRepository.Query(w => w.Years == query.Year && w.Area_Id == query.AreaId); if (planinfo == null) return new MessageModel>() { success = false, msg = "所选省份年份的招生计划,正在完善中..." }; @@ -1248,19 +1248,25 @@ namespace New_College.Services } } //wheres.And(x => x.Scoreline > 0 && (query.Score >= x.Scoreline && query.Score - 25 <= x.Scoreline)); - if (query.Type == "冲") + if (string.IsNullOrWhiteSpace(query.Type)) { - wheres.And(x => x.Scoreline > 0 && (query.Score + 20 >= x.Scoreline && query.Score < x.Scoreline)); + wheres.And(x => x.Scoreline > 0 && (x.Scoreline <= query.Score + 15)); } - else if (query.Type == "稳") + else { - wheres.And(x => x.Scoreline > 0 && (query.Score >= x.Scoreline && query.Score - 25 <= x.Scoreline)); + if (query.Type == "冲") + { + wheres.And(x => x.Scoreline > 0 && (x.Scoreline <= query.Score + 15 && x.Scoreline > query.Score + 5)); + } + else if (query.Type == "稳") + { + wheres.And(x => x.Scoreline > 0 && (x.Scoreline <= query.Score + 5 && x.Scoreline > query.Score - 15)); + } + else if (query.Type == "保") + { + wheres.And(x => x.Scoreline > 0 && (x.Scoreline < query.Score - 15)); + } } - else if (query.Type == "保") - { - wheres.And(x => x.Scoreline > 0 && (query.Score - 26 > x.Scoreline)); - } - //().Id && batchids.Contains(x.BatchtypeId) && x.UniversityId > 0); if (query.MajorIds != null && query.MajorIds.Count > 0) { @@ -1313,7 +1319,7 @@ namespace New_College.Services AscriptionName = item.AscriptionName, MjaorPlan = plandesc.Count(x => x.UniversityId == item.Id), Rank = item.Rank <= 0 ? "-" : item.Rank.ToString(), - Type = plandesc.Where(x => x.UniversityId == item.Id && x.Scoreline > query.Score + 20).Any() ? "冲" : (plandesc.Where(x => query.Score >= x.Scoreline && query.Score - 25 <= x.Scoreline)).Any() ? "稳" : plandesc.Where(x => x.UniversityId == item.Id && x.Scoreline > 0 && query.Score > x.Scoreline).Any() ? "保" : "其他" + Type = plandesc.Where(x => x.UniversityId == item.Id && x.Scoreline <= query.Score + 15 && x.Scoreline > query.Score + 5).Any() ? "冲" : (plandesc.Where(x => x.Scoreline <= query.Score + 5 && x.Scoreline > query.Score - 15)).Any() ? "稳" : plandesc.Where(x => x.UniversityId == item.Id && x.Scoreline > 0 && query.Score > x.Scoreline).Any() ? "保" : "其他" }).ToList(); return new MessageModel>() { @@ -1328,6 +1334,11 @@ namespace New_College.Services pageCount = (int)Math.Ceiling(universityidcount / Convert.ToDecimal(query.PageSize)) } }; + + + + + } @@ -2190,7 +2201,8 @@ namespace New_College.Services { Id = item.Id, Name = item.Batch_name + "(" + item.Type + ")", - Year = item.Year + Year = item.Year, + Score = item.ScoreLine }); } else @@ -2199,7 +2211,8 @@ namespace New_College.Services { Id = item.Id, Name = item.Batch_name, - Year = item.Year + Year = item.Year, + Score = item.ScoreLine }); } }