diff --git a/New_College.Api/Controllers/Back/D_PlanMajorDescController.cs b/New_College.Api/Controllers/Back/D_PlanMajorDescController.cs index 789a5c6..7dc201d 100644 --- a/New_College.Api/Controllers/Back/D_PlanMajorDescController.cs +++ b/New_College.Api/Controllers/Back/D_PlanMajorDescController.cs @@ -36,6 +36,41 @@ namespace New_College.Api.Controllers public async Task>> OneSubmitGo([FromQuery] OneSubmitGoRequest request) { + if (string.IsNullOrWhiteSpace(request.Location)) + { + return new MessageModel>() + { + msg = "Location字段必传参数", + + }; + } + if (request.Year <= 0) + { + return new MessageModel>() + { + msg = "Year字段必传参数", + + }; + } + + if (!string.IsNullOrWhiteSpace(request.SubjectClaim)) + { + return new MessageModel>() + { + msg= "SubjectClaim字段必传参数", + + }; + } + + if (!string.IsNullOrWhiteSpace(request.BatchName)) + { + return new MessageModel>() + { + msg = "BatchName字段必传参数", + + }; + } + var response = await _d_PlanMajorDescServices.GetPlanMajorList(request); if (response.data==null||!response.data.Any() || response.dataCount <= 0) { @@ -59,5 +94,73 @@ namespace New_College.Api.Controllers + /// + /// AI智能填报 + /// + /// + /// + [HttpGet] + public async Task>> AIGo([FromQuery] OneSubmitGoRequest request) + { + + if (string.IsNullOrWhiteSpace(request.Location)) + { + return new MessageModel>() + { + msg = "Location字段必传参数", + + }; + } + if (request.Year <= 0) + { + return new MessageModel>() + { + msg = "Year字段必传参数", + + }; + } + + if (!string.IsNullOrWhiteSpace(request.SubjectClaim)) + { + return new MessageModel>() + { + msg = "SubjectClaim字段必传参数", + + }; + } + + if (!string.IsNullOrWhiteSpace(request.BatchName)) + { + return new MessageModel>() + { + msg = "BatchName字段必传参数", + + }; + } + + + var response = await _d_PlanMajorDescServices.GetAIGoList(request); + if (response.data == null || !response.data.Any() || response.dataCount <= 0) + { + return new MessageModel>() + { + msg = "获取失败", + success = false, + response = response + }; + } + + return new MessageModel>() + { + msg = "获取成功", + success = true, + response = response + }; + + } + + + + } } \ No newline at end of file diff --git a/New_College.IServices/ID_PlanMajorDescServices.cs b/New_College.IServices/ID_PlanMajorDescServices.cs index 8a540c7..a338189 100644 --- a/New_College.IServices/ID_PlanMajorDescServices.cs +++ b/New_College.IServices/ID_PlanMajorDescServices.cs @@ -5,18 +5,27 @@ using New_College.Model.ViewModels; using System.Threading.Tasks; namespace New_College.IServices -{ - /// - /// ID_PlanMajorDescServices - /// - public interface ID_PlanMajorDescServices :IBaseServices - { +{ + /// + /// ID_PlanMajorDescServices + /// + public interface ID_PlanMajorDescServices : IBaseServices + { - /// - /// 一键填报 - /// - /// - /// - Task> GetPlanMajorList(OneSubmitGoRequest request); + /// + /// 一键填报 + /// + /// + /// + Task> GetPlanMajorList(OneSubmitGoRequest request); + + + + /// + /// AI填报 + /// + /// + /// + Task> GetAIGoList(OneSubmitGoRequest request); } } \ No newline at end of file diff --git a/New_College.Model/ViewModels/Query/OneSubmitGoRequest.cs b/New_College.Model/ViewModels/Query/OneSubmitGoRequest.cs index d367de0..7ccd1ed 100644 --- a/New_College.Model/ViewModels/Query/OneSubmitGoRequest.cs +++ b/New_College.Model/ViewModels/Query/OneSubmitGoRequest.cs @@ -6,12 +6,26 @@ using System.Text; namespace New_College.Model.ViewModels { + + + + /// /// 一键填报传入参数 /// public class OneSubmitGoRequest : BasePageRequest { + /// + /// 起始分数 + /// + public int StartScore { get; set; } = 0; + + /// + /// 结束分数 + /// + public int EndScore { get; set; } = 0; + /// ///批次名称 /// diff --git a/New_College.Model/ViewModels/Query/SubjectSelectQuery.cs b/New_College.Model/ViewModels/Query/SubjectSelectQuery.cs index df622a0..7eb1e7c 100644 --- a/New_College.Model/ViewModels/Query/SubjectSelectQuery.cs +++ b/New_College.Model/ViewModels/Query/SubjectSelectQuery.cs @@ -87,7 +87,7 @@ namespace New_College.Model.ViewModels /// /// 年份 /// - public int Year { get; set; } + public int? Year { get; set; } /// /// 省份Id diff --git a/New_College.Services/D_PlanMajorDescServices.cs b/New_College.Services/D_PlanMajorDescServices.cs index 461fec4..ec9be8c 100644 --- a/New_College.Services/D_PlanMajorDescServices.cs +++ b/New_College.Services/D_PlanMajorDescServices.cs @@ -28,6 +28,108 @@ namespace New_College.Services } + /// + /// + /// + /// + /// + public async Task> GetAIGoList(OneSubmitGoRequest request) + { + var pagemodel = new PageModel(); + int startscore = request.Score - 15; + int endscore = request.Score + 15; + Expression> expression = Expressionable.Create() + .And(c => c.IsDelete == false) + .And(c => c.Location == request.Location) + .AndIF(!string.IsNullOrWhiteSpace(request.Major), c => SqlFunc.Contains(request.Major, c.Major)) + .AndIF(!string.IsNullOrWhiteSpace(request.SubjectClaim), c => SqlFunc.Contains(request.SubjectClaim, c.SelectSubject)) + .AndIF(!string.IsNullOrWhiteSpace(request.BatchName), c => c.BatchName.Equals(request.BatchName)) + .AndIF(!string.IsNullOrWhiteSpace(request.Province), c => SqlFunc.Contains(request.Province, c.AreaName)) + .And(c => c.Years == request.Year) + .AndIF(!string.IsNullOrWhiteSpace(request.SchoolType), c => c.SchoolType == request.SchoolType) + .AndIF(request.Score > 0 && (request.EndScore <= endscore && request.StartScore >= startscore), c => SqlFunc.Between(c.LowScore, startscore, endscore)) + .AndIF(request.EndScore > endscore || request.StartScore < startscore, c => SqlFunc.Between(c.LowScore, request.StartScore, request.EndScore)) + .AndIF(request.Syl.HasValue && request.Syl == 1, c => c._SYL == "是") + .AndIF(request._211.HasValue && request._211 == 1, c => c._211 == "是") + .AndIF(request._985.HasValue && request._985 == 1, c => c._985 == "是") + .AndIF(!string.IsNullOrWhiteSpace(request.Ownership), c => c.Ownership == request.Ownership) + .AndIF(!string.IsNullOrWhiteSpace(request.Nature), c => c.Nature == request.Nature) + //.AndIF(request. > 0, c => SqlFunc.Between(c.LowScore, request.Score, request.Score)) 位次区间 + .ToExpression(); + var query = await _dal.QueryPage(expression, request.PageIndex, request.PageSize, " LowScoreRank desc "); + + var majorarry = query.data.Select(c => c.Major).Distinct().ToArray(); + var universityarry = query.data.Select(c => c.UId).Distinct().ToArray();// + Expression> expression2 = Expressionable.Create() + .And(c => c.IsDelete == false) + .And(c => c.Location == request.Location) + .AndIF(!string.IsNullOrWhiteSpace(request.Major), c => SqlFunc.Contains(request.Major, c.Major)) + // .AndIF(!string.IsNullOrWhiteSpace(request.SubjectClaim), c => SqlFunc.Contains(request.SubjectClaim, c.SelectSubject)) //此条件不带 + .AndIF(!string.IsNullOrWhiteSpace(request.BatchName), c => c.BatchName == request.BatchName.Trim()) + .AndIF(!string.IsNullOrWhiteSpace(request.Province), c => SqlFunc.Contains(request.Province, c.AreaName)) + .AndIF(!string.IsNullOrWhiteSpace(request.SchoolType), c => c.SchoolType == request.SchoolType) + .AndIF(request.Syl.HasValue && request.Syl == 1, c => c._SYL == "是") + .AndIF(request._211.HasValue && request._211 == 1, c => c._211 == "是") + .AndIF(request._985.HasValue && request._985 == 1, c => c._985 == "是") + .AndIF(!string.IsNullOrWhiteSpace(request.Ownership), c => c.Ownership == request.Ownership) + .AndIF(!string.IsNullOrWhiteSpace(request.Nature), c => c.Nature == request.Nature) + .AndIF(majorarry.Any(), c => SqlFunc.ContainsArray(majorarry, c.Major)) + .AndIF(universityarry.Any(), c => SqlFunc.ContainsArray(universityarry, c.UId)) + //.AndIF(request. > 0, c => SqlFunc.Between(c.LowScore, request.Score, request.Score)) 位次区间 + .ToExpression(); + var list = (await _dal.Query(expression2)).Select(c => new D_PlanMajorDesc() + { + Major = c.Major, + MajorCode = c.MajorCode, + UniversityName = c.UniversityName, + UId = c.UId, + Years = c.Years, + LowScore = c.LowScore, + LowScoreRank = c.LowScoreRank, + PlanCount = c.PlanCount, + // AcademicYear = c.Years.ToString() + + }).ToList(); + var responselist = query.data.Select(c => new OneSubmitGoResponse() + { + AreaName = c.AreaName, + fee = c.Free, + Major = c.Major, + MajorGroup = c.MajorGroup, + MajorRemark = c.Remark, + planCount = c.PlanCount, + Rank = c.Rank, + _985 = c._985, + _211 = c._211, + _SYL = c._SYL, + UniversityId = c.UId, + UniversityName = c.UniversityName, + SubjectClam = c.SelectSubject, + Type = MajorPlanScoreTool.GetPlanScore(c.LowScore, request.Score),//还缺冲稳保 + PlanId = c.Id, + UniversityCode = c.EnrollmentCode, + MajorCode = c.MajorCode, + LowScoreRank = c.LowScoreRank, + PlanItems = list.Where(e => e.UId == c.UId && e.Major.Equals(c.Major)).Select(s => new PlanItem() + { + PlanCount = s.PlanCount, + RankLine = s.LowScoreRank, + Scoreline = s.LowScore, + Year = s.Years.ToString() + + }).OrderByDescending(k => k.Year).ToList() + }).OrderByDescending(c => c.Type).OrderBy(c => c.LowScoreRank).ToList(); + return new PageModel() + { + data = responselist, + dataCount = query.dataCount, + page = query.page, + pageCount = query.pageCount, + PageSize = query.PageSize + }; + } + + /// /// 一键填报招生计划展示 @@ -36,19 +138,7 @@ namespace New_College.Services /// public async Task> GetPlanMajorList(OneSubmitGoRequest request) { - if (string.IsNullOrWhiteSpace(request.Location)) - { - return new PageModel() - { - }; - } - if (request.Year <= 0) - { - return new PageModel() - { - }; - } var pagemodel = new PageModel(); Expression> expression = Expressionable.Create() .And(c => c.IsDelete == false) diff --git a/New_College.Services/T_EnrollmentPlanedescServices.cs b/New_College.Services/T_EnrollmentPlanedescServices.cs index 82469ef..f8aa037 100644 --- a/New_College.Services/T_EnrollmentPlanedescServices.cs +++ b/New_College.Services/T_EnrollmentPlanedescServices.cs @@ -887,7 +887,7 @@ namespace New_College.Services double tmpscore = 0; if (scoreline.Any()) { - tmpscore =double.Parse(scoreline.FirstOrDefault().Score); + tmpscore = double.Parse(scoreline.FirstOrDefault().Score); // model.Probability = tmpscore >= model.EstimateScore ? "" : ""; } @@ -1518,11 +1518,17 @@ namespace New_College.Services /// public async Task>> GetBatchByYearArea(YearAreaQuery query) { - query.Year = query.Year > 2023 ? 2023 : query.Year; - var info = await t_EnrollmentBatchRepository.Query(x => x.IsDelete == false && x.AreaName == query.AreaName && x.Year == query.Year && !x.Batch_name.Contains("提前") && !x.Batch_name.Contains("零志愿")); + query.Year = query.Year.HasValue && query.Year > 2023 ? 2023 : query.Year; + Expression> expression = Expressionable.Create() + .And(c => c.IsDelete == false) + .And(c=>!c.Batch_name.Contains("提前")) + .And(c => !c.Batch_name.Contains("零志愿")) + .And(c => c.AreaName == query.AreaName) + .AndIF(query.Year.HasValue, c => c.Year == query.Year) + .ToExpression(); + var info = await t_EnrollmentBatchRepository.Query(expression); if (info.Count <= 0) return new MessageModel>() { success = false, msg = "数据为空" }; - List list = new List() { }; foreach (var item in info) {