From 585fbcdd0209976ba9fd2a0530d3c00ad51879f7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=98=93=E5=A4=A7=E5=B8=88?= <156663459@qq.com>
Date: Tue, 29 Jun 2021 15:11:24 +0800
Subject: [PATCH] =?UTF-8?q?--=E8=B0=83=E6=95=B4=E6=99=BA=E8=83=BD=E9=80=89?=
=?UTF-8?q?=E5=A4=A7=E5=AD=A6=E5=8A=9F=E8=83=BD=E6=A8=A1=E5=9D=97=E4=BB=A3?=
=?UTF-8?q?=E7=A0=81=E5=B7=B2=E5=AE=8C=E5=96=84=20--=E6=8C=89=E5=88=86?=
=?UTF-8?q?=E6=95=B0=E9=80=89=E6=8B=A9--?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/HealthCheckController.cs | 10 +-
New_College.Api/New_College.Model.xml | 15 ++
.../IT_EnrollmentPlaneServices.cs | 2 +-
.../IT_EnrollmentPlanedescServices.cs | 7 +-
.../Query/RecommendUniversityQuery.cs | 11 +-
.../ViewModels/Result/UniversityResult.cs | 10 ++
.../BASE/IT_EnrollmentPlanedescRepository.cs | 10 ++
.../BASE/T_EnrollmentPlanedescRepository.cs | 85 +++++++++-
.../New_College.Repository.csproj | 1 +
.../T_EnrollmentPlaneServices.cs | 78 +++++++++-
.../T_EnrollmentPlanedescServices.cs | 145 ++++++++++--------
11 files changed, 292 insertions(+), 82 deletions(-)
diff --git a/New_College.Api/Controllers/HealthCheckController.cs b/New_College.Api/Controllers/HealthCheckController.cs
index ff704f3..cd702e8 100644
--- a/New_College.Api/Controllers/HealthCheckController.cs
+++ b/New_College.Api/Controllers/HealthCheckController.cs
@@ -31,11 +31,11 @@ namespace New_College.Controllers
///
///
///
- // [HttpPost]
- // public Task Post()
- //{
- // return t_EnrollmentPlane.Import();
- // }
+ [HttpPost]
+ public Task Post()
+ {
+ return t_EnrollmentPlane.Import();
+ }
}
}
\ No newline at end of file
diff --git a/New_College.Api/New_College.Model.xml b/New_College.Api/New_College.Model.xml
index 14ca684..19b6ce3 100644
--- a/New_College.Api/New_College.Model.xml
+++ b/New_College.Api/New_College.Model.xml
@@ -3319,6 +3319,11 @@
是否双一流 0、否,1、是
+
+
+ 选择科目
+
+
录取概率传入
@@ -4854,6 +4859,16 @@
长学校id
+
+
+ 最低录取分数
+
+
+
+
+ 位次
+
+
diff --git a/New_College.IServices/IT_EnrollmentPlaneServices.cs b/New_College.IServices/IT_EnrollmentPlaneServices.cs
index bc3aa54..44caeb6 100644
--- a/New_College.IServices/IT_EnrollmentPlaneServices.cs
+++ b/New_College.IServices/IT_EnrollmentPlaneServices.cs
@@ -13,7 +13,7 @@ namespace New_College.IServices
///
public interface IT_EnrollmentPlaneServices : IBaseServices
{
- //Task Import();
+ Task Import();
///
diff --git a/New_College.IServices/IT_EnrollmentPlanedescServices.cs b/New_College.IServices/IT_EnrollmentPlanedescServices.cs
index c11f349..69ab07f 100644
--- a/New_College.IServices/IT_EnrollmentPlanedescServices.cs
+++ b/New_College.IServices/IT_EnrollmentPlanedescServices.cs
@@ -126,6 +126,11 @@ namespace New_College.IServices
///
///
Task>> GetBatchByYearArea(YearAreaQuery query);
-
+
+
+
+
+
+
}
}
\ No newline at end of file
diff --git a/New_College.Model/ViewModels/Query/RecommendUniversityQuery.cs b/New_College.Model/ViewModels/Query/RecommendUniversityQuery.cs
index 376d680..f914d12 100644
--- a/New_College.Model/ViewModels/Query/RecommendUniversityQuery.cs
+++ b/New_College.Model/ViewModels/Query/RecommendUniversityQuery.cs
@@ -31,17 +31,22 @@ namespace New_College.Model.ViewModels
///
/// 是否985 0、否,1、是
///
- public int Nhef { get; set; }
+ public int Nhef { get; set; } = -1;
///
/// 是否211 0、否,1、是
///
- public int Sff { get; set; }
+ public int Sff { get; set; } = -1;
///
/// 是否双一流 0、否,1、是
///
- public int Syl { get; set; }
+ public int Syl { get; set; } = -1;
+ ///
+ /// 选择科目
+ ///
+ public string SubjectClaim { get; set; }
+
}
///
diff --git a/New_College.Model/ViewModels/Result/UniversityResult.cs b/New_College.Model/ViewModels/Result/UniversityResult.cs
index 468233a..1ef2957 100644
--- a/New_College.Model/ViewModels/Result/UniversityResult.cs
+++ b/New_College.Model/ViewModels/Result/UniversityResult.cs
@@ -101,6 +101,16 @@ namespace New_College.Model.ViewModels
/// 长学校id
///
public string LongSchoolId { get; set; }
+
+ ///
+ /// 最低录取分数
+ ///
+ public int ScoreLine { get; set; }
+ ///
+ /// 位次
+ ///
+ public int Scorepostion { get; set; }
+
}
///
diff --git a/New_College.Repository/BASE/IT_EnrollmentPlanedescRepository.cs b/New_College.Repository/BASE/IT_EnrollmentPlanedescRepository.cs
index 5f9a296..2d23e17 100644
--- a/New_College.Repository/BASE/IT_EnrollmentPlanedescRepository.cs
+++ b/New_College.Repository/BASE/IT_EnrollmentPlanedescRepository.cs
@@ -1,5 +1,8 @@
using New_College.IRepository.Base;
+using New_College.Model;
using New_College.Model.Models;
+using New_College.Model.ViewModels;
+using System.Threading.Tasks;
namespace New_College.IRepository
{
@@ -8,5 +11,12 @@ namespace New_College.IRepository
///
public interface IT_EnrollmentPlanedescRepository : IBaseRepository
{
+
+ ///
+ /// 只能选大学
+ ///
+ ///
+ ///
+ Task> GetRecommendUniversity(RecommendUniversityQuery 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 c579987..aca9344 100644
--- a/New_College.Repository/BASE/T_EnrollmentPlanedescRepository.cs
+++ b/New_College.Repository/BASE/T_EnrollmentPlanedescRepository.cs
@@ -1,17 +1,92 @@
-using New_College.IRepository;
+using LinqKit;
+using New_College.IRepository;
using New_College.IRepository.UnitOfWork;
+using New_College.Model;
using New_College.Model.Models;
+using New_College.Model.ViewModels;
using New_College.Repository.Base;
+using SqlSugar;
+using System;
+using System.Linq;
+using System.Threading.Tasks;
namespace New_College.Repository
{
- ///
- /// T_EnrollmentPlanedescRepository
- ///
+ ///
+ /// T_EnrollmentPlanedescRepository
+ ///
public class T_EnrollmentPlanedescRepository : BaseRepository, IT_EnrollmentPlanedescRepository
{
- public T_EnrollmentPlanedescRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
+ 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)
{
+ this.v_CustomerInfo = _CustomerInfoRepository;
+ this.t_EnrollmentPlane = t_EnrollmentPlaneRepository;
+
+
+ }
+
+ ///
+ /// 智能选大学
+ ///
+ ///
+ ///
+ public async Task> GetRecommendUniversity(RecommendUniversityQuery query)
+ {
+ RefAsync totalNumber = 0;
+ var maxscore = query.Score + 10;
+ var minscore = query.Score - 10;
+ var custome = (await this.v_CustomerInfo.QueryById(query.CustomerId));
+ int planId = (await t_EnrollmentPlane.Query(e => e.Years == custome.Year && e.Area_Id == custome.AreaId)).FirstOrDefault().Id;
+
+ var subjects = new string[] { };
+ string sbuOne = string.Empty;
+ string sbuTwo = string.Empty;
+ string sbuTree = string.Empty;
+ if (!string.IsNullOrWhiteSpace(query.SubjectClaim))
+ {
+ subjects = query.SubjectClaim.Split(",");
+ sbuOne = subjects[0];
+ sbuTwo = subjects[1];
+ sbuTree = subjects[2];
+ }
+ 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.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)
+ .WhereIF(query.Syl >= 0, (plans, universitys) => universitys.Syl == query.Syl)
+ .WhereIF(query.Nature > 0, (plans, universitys) => universitys.Nature == query.Nature)
+ .WhereIF(!string.IsNullOrWhiteSpace(query.AreaName)&&query.AreaName!= "选择省份", (plans, universitys) => universitys.Area_Name.Contains(query.AreaName))
+ .WhereIF(maxscore > 10, (plans, universitys) => plans.Scoreline <= maxscore)
+ .WhereIF(minscore > 0, (plans, universitys) => plans.Scoreline > minscore)
+ .WhereIF(!string.IsNullOrWhiteSpace(query.SubjectClaim), (plans, universitys) => (plans.Subjectclaim.Contains(sbuOne) || plans.Subjectclaim.Contains(sbuTwo) || plans.Subjectclaim.Contains(sbuTree)))
+ .OrderBy((plans, universitys) => plans.Scoreline, OrderByType.Desc)
+ .Select((plans, universitys) => new UniversityResult()
+ {
+ Id = plans.Id,
+ Name = universitys.Name,
+ Nature = universitys.Nature,
+ AscriptionName = universitys.AscriptionName,
+ AreaName = universitys.Area_Name,
+ Logo = universitys.Logo,
+ Syl = universitys.Syl == 1 ? true : false,
+ Nhef = universitys.Nhef == 1 ? true : false,
+ Sff = universitys.Sff == 1 ? true : false,
+ UniversityType = universitys.Type
+ })
+ .ToPageListAsync(query.PageIndex, query.PageSize, totalNumber);
+ return new PageModel()
+ {
+ data = recommendInfo,
+ page = query.PageIndex,
+ PageSize = query.PageSize,
+ dataCount = totalNumber,
+ pageCount = (int)Math.Ceiling(totalNumber / Convert.ToDecimal(query.PageSize))
+ };
+
}
}
}
\ No newline at end of file
diff --git a/New_College.Repository/New_College.Repository.csproj b/New_College.Repository/New_College.Repository.csproj
index 4db3a5e..4fdeaa4 100644
--- a/New_College.Repository/New_College.Repository.csproj
+++ b/New_College.Repository/New_College.Repository.csproj
@@ -13,6 +13,7 @@
+
diff --git a/New_College.Services/T_EnrollmentPlaneServices.cs b/New_College.Services/T_EnrollmentPlaneServices.cs
index cc9c047..87a6119 100644
--- a/New_College.Services/T_EnrollmentPlaneServices.cs
+++ b/New_College.Services/T_EnrollmentPlaneServices.cs
@@ -22,12 +22,19 @@ namespace New_College.Services
private readonly IBaseRepository _dal;
private readonly IT_EnrollmentPlaneRepository planeRepository;
-
- public T_EnrollmentPlaneServices(IBaseRepository dal, IT_EnrollmentPlaneRepository t_EnrollmentPlaneRepository)
+ private readonly ID_UniversityRepository d_University;
+ private readonly ID_MajorRepository d_Major;
+ private readonly IT_EnrollmentBatchRepository t_EnrollmentBatch;
+ private readonly IT_EnrollmentPlanedescRepository t_EnrollmentPlanedesc;
+ public T_EnrollmentPlaneServices(IBaseRepository dal, IT_EnrollmentPlaneRepository t_EnrollmentPlaneRepository, ID_UniversityRepository d_UniversityRepository, ID_MajorRepository d_MajorRepository, IT_EnrollmentBatchRepository t_EnrollmentBatchRepository, IT_EnrollmentPlanedescRepository t_EnrollmentPlanedescRepository)
{
this._dal = dal;
base.BaseDal = dal;
this.planeRepository = t_EnrollmentPlaneRepository;
+ this.d_University = d_UniversityRepository;
+ this.d_Major = d_MajorRepository;
+ this.t_EnrollmentBatch = t_EnrollmentBatchRepository;
+ this.t_EnrollmentPlanedesc = t_EnrollmentPlanedescRepository;
}
///
@@ -41,10 +48,69 @@ namespace New_College.Services
return await this.planeRepository.GetEnrollmentPlans(request);
}
- //public Task Import()
- //{
- // throw new NotImplementedException();
- //}
+ //2020 最低录取分数导入
+ public async Task Import()
+ {
+ var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\一草一木\\山东2020年招生录取数据.xlsx");
+ if (dataSet.Tables.Count > 0)
+ {
+ var universitylist = await this.d_University.Query(x => x.IsDelete == false);
+ var majorlist = await this.d_Major.Query(x => x.IsDelete == false);
+ var batchlist = await this.t_EnrollmentBatch.Query(x => x.IsDelete == false);
+
+ var planinfo =
+ await this.t_EnrollmentPlanedesc.Query(e => e.PlanId == 7);
+
+
+ List list = new List() { };
+ List adduniversity = new List() { };
+ foreach (DataRow dr in dataSet.Tables[0].Rows)
+ {
+ string schoolname = dr["院校名称"].ToString();
+ string area = dr["省份"].ToString();
+ string major = dr["专业"].ToString();
+ string batch = dr["批次"].ToString();
+
+ string lowerscore = dr["最低分"].ToString();
+ string lowerlevel = dr["最低位次"].ToString();
+
+ var universityid = universitylist.Where(x => x.Name == schoolname).Select(x => x.Id).FirstOrDefault();
+ if (universityid <= 0)
+ {
+ //记录学校 并添加
+ adduniversity.Add(schoolname);
+ continue;
+ }
+ var batchid = batchlist.Where(x => x.Batch_name == batch).Select(x => x.Id).FirstOrDefault();
+
+ var remake = "";
+ if (major.Contains("("))
+ {
+ int indexs = major.IndexOf("(");
+ remake = major.Substring(indexs);
+ major = major.Substring(0, indexs);
+ }
+ var majorid = majorlist.Where(x => x.Name == major).Select(x => x.Id).FirstOrDefault();
+
+
+ var planinfomodel = planinfo.Where(e => e.UniversityId == universityid && e.MajorId == majorid && e.BatchtypeId == batchid);
+ if (planinfomodel.Any())
+ {
+ var models = planinfomodel.FirstOrDefault();
+ models.scorepostion = Convert.ToInt32(lowerlevel);
+ models.Scoreline = Convert.ToInt32(lowerscore);
+ bool kk = await this.t_EnrollmentPlanedesc.Update(models);
+
+ }
+
+ }
+
+
+ // var cc = adduniversity;
+ // var count = await this.t_EnrollmentPlanedesc.Add(list);
+ }
+ return true;
+ }
#region 2019上海招生分数更新
/////
diff --git a/New_College.Services/T_EnrollmentPlanedescServices.cs b/New_College.Services/T_EnrollmentPlanedescServices.cs
index f5b43e4..e706149 100644
--- a/New_College.Services/T_EnrollmentPlanedescServices.cs
+++ b/New_College.Services/T_EnrollmentPlanedescServices.cs
@@ -81,70 +81,93 @@ namespace New_College.Services
///
public async Task> GetRecommendUniversity(RecommendUniversityQuery query)
{
- var maxscore = query.Score + 10;
- var minscore = query.Score - 10;
- var descnear = await _dal.QuerySql("select Scoreline,UniversityId from T_EnrollmentPlanedesc where IsDelete=0 and Scoreline<=" + maxscore + " and Scoreline>" + minscore + "");
- var nearids = descnear.Select(x => x.UniversityId).Distinct().ToList();
- var desc = await _dal.QuerySql("select Scoreline,UniversityId from T_EnrollmentPlanedesc where IsDelete=0 and Scoreline<=" + maxscore + " and Scoreline>180");
- //降序求出所符合院校
- var orderdesc = desc.OrderByDescending(x => x.Scoreline).Select(x => x.UniversityId).Distinct().ToList();
+ return await t_EnrollmentPlanedesc.GetRecommendUniversity(query);
+ //var maxscore = query.Score + 10;
+ //var minscore = query.Score - 10;
- var wheres = PredicateBuilder.New();
- wheres = wheres.And(x => x.IsDelete == false && orderdesc.Contains(x.Id));
- if (!string.IsNullOrEmpty(query.AreaName) && query.AreaName != "全国")
- wheres = wheres.And(x => x.Area_Name.Contains(query.AreaName));
- if (query.SubjectLevel < 2)
- wheres = wheres.And(x => x.Subject_Level == query.SubjectLevel);
- if (query.Type >= 0)
- wheres = wheres.And(x => x.Type == query.Type);
- if (query.Nhef < 2)
- wheres = wheres.And(x => x.Nhef == query.Nhef);
- if (query.Sff < 2)
- wheres = wheres.And(x => x.Sff == query.Sff);
- if (query.Syl < 2)
- wheres = wheres.And(x => x.Syl == query.Syl);
- if (query.Nature > 0)
- wheres = wheres.And(x => x.Nature == query.Nature);
+ //var custome = (await this._CustomerInfoRepository.QueryById(query.CustomerId));
- var info = await d_UniversityRepository.QueryPage(wheres, query.PageIndex, query.PageSize, "Rank Asc");
- if (info.data.Count <= 0)
- return new PageModel() { };
- var collectionuniversity = await d_UniversityCollectionRepository.Query(x => x.CustomerId == query.CustomerId && x.IsDelete == false);
- List list = new List() { };
- foreach (var c in info.data)
- {
- string attribute = "";
- if (c.Nhef == 1)
- attribute += "985";
- if (c.Sff == 1)
- attribute += "211";
- if (c.Syl == 1)
- attribute += "双一流";
- list.Add(new UniversityResult
- {
- Id = c.Id,
- Name = c.Name,
- Nature = c.Nature,
- AscriptionName = c.AscriptionName,
- AreaName = c.Area_Name,
- Logo = c.Logo,
- Syl = c.Syl == 1 ? true : false,
- Nhef = c.Nhef == 1 ? true : false,
- Sff = c.Sff == 1 ? true : false,
- UniversityType = c.Type,
- IsNearScore = nearids.Contains(c.Id),
- IsContrast = collectionuniversity.Count(x => x.Type == 2 && x.UniversityId == c.Id) > 0
- });
- }
- return new PageModel()
- {
- data = list,
- dataCount = info.dataCount,
- page = info.page,
- pageCount = info.pageCount,
- PageSize = info.PageSize
- };
+ //int planId = (await t_EnrollmentPlaneRepository.Query(e => e.Years == custome.Year && e.Area_Id == custome.AreaId)).FirstOrDefault().Id;
+
+ //StringBuilder sb = new StringBuilder();
+ //sb.AppendFormat("select Scoreline,UniversityId from T_EnrollmentPlanedesc where IsDelete=0 and Scoreline<={0} and Scoreline>{1} and PlanId={2}", maxscore, minscore, planId);
+ //if (!string.IsNullOrWhiteSpace(query.SubjectClaim))
+ //{
+ // var sp = query.SubjectClaim.Split(",");
+ // sb.AppendFormat(" and ( ");
+ // for (var i = 0; i < sp.Length; i++)
+ // {
+ // sb.AppendFormat(" SubjectClaim in('{0}') or ", sp[i]);
+ // }
+
+ // sb.AppendFormat(") ");
+ // sb = sb.Replace("or )", ")");
+ //}
+
+
+
+ //var desc = await _dal.QuerySql(sb.ToString());
+ ////降序求出所符合院校
+ //var orderdesc = desc.OrderByDescending(x => x.Scoreline).Select(x => x.UniversityId).Distinct().ToList();
+ //var nearids = desc.Select(x => x.UniversityId).Distinct().ToList();
+
+ //var wheres = PredicateBuilder.New();
+ //wheres = wheres.And(x => x.IsDelete == false && orderdesc.Contains(x.Id));
+ //if (!string.IsNullOrEmpty(query.AreaName) && query.AreaName != "全国")
+ // wheres = wheres.And(x => x.Area_Name.Contains(query.AreaName));
+ //if (query.SubjectLevel < 2)
+ // wheres = wheres.And(x => x.Subject_Level == query.SubjectLevel);
+ //if (query.Type >= 0)
+ // wheres = wheres.And(x => x.Type == query.Type);
+ //if (query.Nhef < 2)
+ // wheres = wheres.And(x => x.Nhef == query.Nhef);
+ //if (query.Sff < 2)
+ // wheres = wheres.And(x => x.Sff == query.Sff);
+ //if (query.Syl < 2)
+ // wheres = wheres.And(x => x.Syl == query.Syl);
+ //if (query.Nature > 0)
+ // wheres = wheres.And(x => x.Nature == query.Nature);
+
+ //var info = await d_UniversityRepository.QueryPage(wheres, query.PageIndex, query.PageSize, "Rank Asc");
+ //if (info.data.Count <= 0)
+ // return new PageModel() { };
+ //var collectionuniversity = await d_UniversityCollectionRepository.Query(x => x.CustomerId == query.CustomerId && x.IsDelete == false);
+ //List list = new List() { };
+ //foreach (var c in info.data)
+ //{
+ // string attribute = "";
+ // if (c.Nhef == 1)
+ // attribute += "985";
+ // if (c.Sff == 1)
+ // attribute += "211";
+ // if (c.Syl == 1)
+ // attribute += "双一流";
+ // list.Add(new UniversityResult
+ // {
+ // Id = c.Id,
+ // Name = c.Name,
+ // Nature = c.Nature,
+ // AscriptionName = c.AscriptionName,
+ // AreaName = c.Area_Name,
+ // Logo = c.Logo,
+ // Syl = c.Syl == 1 ? true : false,
+ // Nhef = c.Nhef == 1 ? true : false,
+ // Sff = c.Sff == 1 ? true : false,
+ // UniversityType = c.Type,
+ // IsNearScore = nearids.Contains(c.Id),
+
+ // IsContrast = collectionuniversity.Count(x => x.Type == 2 && x.UniversityId == c.Id) > 0
+ // });
+ //}
+ //return new PageModel()
+ //{
+ // data = list,
+ // dataCount = info.dataCount,
+ // page = info.page,
+ // pageCount = info.pageCount,
+ // PageSize = info.PageSize
+ //};
}
///