From 21cb31bb41968bd6d8ea7b16fa08976ca9afb94a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=98=93=E5=A4=A7=E5=B8=88?= <156663459@qq.com>
Date: Sat, 3 Jul 2021 18:56:59 +0800
Subject: [PATCH] =?UTF-8?q?--=E4=BB=A3=E7=A0=81=E9=80=BB=E8=BE=91=E4=BC=98?=
=?UTF-8?q?=E5=8C=96--?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
New_College.Api/New_College.Model.xml | 5 +
New_College.Model/Models/T_EnrollmentBatch.cs | 7 ++
.../ViewModels/Query/PlanDetailQuery.cs | 4 +
.../ViewModels/Result/VolunteerResult.cs | 4 +-
.../BASE/IT_EnrollmentPlanedescRepository.cs | 12 +-
.../BASE/T_EnrollmentPlanedescRepository.cs | 108 +++++++++++++++++-
.../T_EnrollmentPlanedescServices.cs | 49 +++++---
7 files changed, 167 insertions(+), 22 deletions(-)
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
});
}
}