From e40102353e2b53025df9c03dc4027d0bf87b01c0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?old=E6=98=93?= <156663459@qq.com>
Date: Tue, 10 Oct 2023 13:09:50 +0800
Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E7=9C=81=E4=BB=BD?=
=?UTF-8?q?=E5=AD=97=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/Front/VolunteerController.cs | 16 +-
New_College.Api/New_College.Model.xml | 5 +
New_College.Api/New_College.xml | 7 +
.../IT_EnrollmentPlanedescServices.cs | 6 +
New_College.Model/Models/D_PlanMajorDesc.cs | 5 +
.../ViewModels/Result/VolunteerResult.cs | 11 +-
.../BASE/IT_EnrollmentPlanedescRepository.cs | 7 +
.../BASE/T_EnrollmentPlanedescRepository.cs | 161 ++++++++++++------
.../T_EnrollmentPlanedescServices.cs | 25 ++-
9 files changed, 184 insertions(+), 59 deletions(-)
diff --git a/New_College.Api/Controllers/Front/VolunteerController.cs b/New_College.Api/Controllers/Front/VolunteerController.cs
index e18a121..705287d 100644
--- a/New_College.Api/Controllers/Front/VolunteerController.cs
+++ b/New_College.Api/Controllers/Front/VolunteerController.cs
@@ -102,6 +102,20 @@ namespace New_College.Api.Controllers.Front
return await t_EnrollmentPlanedescServices.GetEnrollmentCWBByPage(query);
}
+
+
+
+ ///
+ /// 冲稳保详情配合接口
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task>> GetUniversityMapItems([FromBody] CWBUniversityDetailQuery query)
+ {
+ return await t_EnrollmentPlanedescServices.GetUniversityMapItems(query);
+ }
+
///
/// 冲稳保详情
///
@@ -243,7 +257,7 @@ namespace New_College.Api.Controllers.Front
{
return await t_EnrollmentPlanedescServices.GetMajorPlanClaim(query);
}
-
+
///
/// 获取批次
diff --git a/New_College.Api/New_College.Model.xml b/New_College.Api/New_College.Model.xml
index db968f1..e46d156 100644
--- a/New_College.Api/New_College.Model.xml
+++ b/New_College.Api/New_College.Model.xml
@@ -540,6 +540,11 @@
院校名称
+
+
+ 院校所在省份
+
+
批次
diff --git a/New_College.Api/New_College.xml b/New_College.Api/New_College.xml
index 7b8251a..928417a 100644
--- a/New_College.Api/New_College.xml
+++ b/New_College.Api/New_College.xml
@@ -676,6 +676,13 @@
+
+
+ 冲稳保详情配合接口
+
+
+
+
冲稳保详情
diff --git a/New_College.IServices/IT_EnrollmentPlanedescServices.cs b/New_College.IServices/IT_EnrollmentPlanedescServices.cs
index 69ab07f..2593f6a 100644
--- a/New_College.IServices/IT_EnrollmentPlanedescServices.cs
+++ b/New_College.IServices/IT_EnrollmentPlanedescServices.cs
@@ -23,6 +23,12 @@ namespace New_College.IServices
Task>> GetEnrollmentCWBByPage(CWBEnrollmentPlaneQuery query);
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task>> GetUniversityMapItems(CWBUniversityDetailQuery query);
///
/// 冲稳保详情
///
diff --git a/New_College.Model/Models/D_PlanMajorDesc.cs b/New_College.Model/Models/D_PlanMajorDesc.cs
index 32515d1..9476594 100644
--- a/New_College.Model/Models/D_PlanMajorDesc.cs
+++ b/New_College.Model/Models/D_PlanMajorDesc.cs
@@ -22,6 +22,11 @@ namespace New_College.Model.Models
public string UniversityName { get; set; }
+ ///
+ /// 院校所在省份
+ ///
+ public string AreaName { get; set; }
+
///
///批次
///
diff --git a/New_College.Model/ViewModels/Result/VolunteerResult.cs b/New_College.Model/ViewModels/Result/VolunteerResult.cs
index cfb8769..9e60d85 100644
--- a/New_College.Model/ViewModels/Result/VolunteerResult.cs
+++ b/New_College.Model/ViewModels/Result/VolunteerResult.cs
@@ -43,6 +43,15 @@ namespace New_College.Model.ViewModels
public string AscriptionName { get; set; }
}
+
+
+ public class UniversityMapMajorItems
+ {
+
+ public int UId { get; set; }
+ public List MIds { get; set; }
+ }
+
///
/// 志愿填报推荐一级
///
@@ -80,7 +89,7 @@ namespace New_College.Model.ViewModels
/////
///// 院校最低分
/////
- // public double? Score { get; set; }
+ // public double? Score { get; set; }
/////
///// 位次
diff --git a/New_College.Repository/BASE/IT_EnrollmentPlanedescRepository.cs b/New_College.Repository/BASE/IT_EnrollmentPlanedescRepository.cs
index 21d76fa..0f514f3 100644
--- a/New_College.Repository/BASE/IT_EnrollmentPlanedescRepository.cs
+++ b/New_College.Repository/BASE/IT_EnrollmentPlanedescRepository.cs
@@ -2,6 +2,7 @@
using New_College.Model;
using New_College.Model.Models;
using New_College.Model.ViewModels;
+using System.Collections.Generic;
using System.Threading.Tasks;
namespace New_College.IRepository
@@ -20,6 +21,12 @@ namespace New_College.IRepository
Task> GetRecommendUniversity(RecommendUniversityQuery query);
+ ///
+ /// 冲稳保配合接口
+ ///
+ ///
+ ///
+ Task>> GetUniversityMapItems(CWBUniversityDetailQuery query);
///
///智能 冲稳保
diff --git a/New_College.Repository/BASE/T_EnrollmentPlanedescRepository.cs b/New_College.Repository/BASE/T_EnrollmentPlanedescRepository.cs
index d31be10..ad4b84b 100644
--- a/New_College.Repository/BASE/T_EnrollmentPlanedescRepository.cs
+++ b/New_College.Repository/BASE/T_EnrollmentPlanedescRepository.cs
@@ -46,18 +46,15 @@ namespace New_College.Repository
this._sysRegionRepository = sysRegionRepository;
}
- ///
- /// 暂未实现
- ///
- ///
- ///
- public async Task>> GetCWBUniversityDetail(CWBUniversityDetailQuery query)
+
+
+
+ public async Task>> GetUniversityMapItems(CWBUniversityDetailQuery query)
{
-
- var regionlist = this.Db.Queryable().Where(c => c.Level == 1).WhereIF(query.provinceIds != null && query.provinceIds.Any(), c => query.provinceIds.Contains(c.KeyId)).Select(c => c.RegionName).ToList();
+ var response = new List();
RefAsync totalNumber = 0;
+ var regionlist = this.Db.Queryable().Where(c => c.Level == 1).WhereIF(query.provinceIds != null && query.provinceIds.Any(), c => SqlFunc.ContainsArray(query.provinceIds, c.KeyId)).Select(c => c.RegionName).ToList();
- // 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;
@@ -78,66 +75,128 @@ namespace New_College.Repository
{
//所选专业增加majorids筛选
//query.MajorIds
- majoraslist = await this.d_Major.Query(x => x.IsDelete == false && query.MajorIds.Contains(x.Id));
+ majoraslist = await this.d_Major.Query(x => x.IsDelete == false && SqlFunc.ContainsArray(query.MajorIds, x.Id));
+ if (majoraslist.Count() <= 0)
+ // return new MessageModel>() { success = false, msg = "所选专业大类数据完善中..." };
+ majornames = majoraslist.Select(x => x.MajorCode).ToList();
+ }
+ var recommendInfo = await this.Db.Queryable()
+ .WhereIF(regionlist.Any(), p => SqlFunc.ContainsArray(regionlist, p.AreaName))
+ .WhereIF(query.Year > 0, p => p.Years == query.Year)
+ .WhereIF(!string.IsNullOrEmpty(query.Location), p => p.Location == query.Location)
+ .WhereIF(string.IsNullOrWhiteSpace(query.Type), p => p.LowScore > 0 && (p.LowScore <= query.Score + 15))
+ .WhereIF(query.Type == "冲", p => p.LowScore > 0 && (p.LowScore <= query.Score + 15 && p.LowScore > query.Score + 5))
+ .WhereIF(query.Type == "稳", p => p.LowScore > 0 && (p.LowScore <= query.Score + 5 && p.LowScore > query.Score - 15))
+ .WhereIF(query.Type == "保", p => p.LowScore > 0 && (p.LowScore < query.Score - 15))
+ .WhereIF(!string.IsNullOrWhiteSpace(query.SubjectClaim), p => (SqlFunc.Contains(p.SelectSubject, sbuOne) || SqlFunc.Contains(p.SelectSubject, sbuTwo) || SqlFunc.Contains(p.SelectSubject, sbuTree)))
+ .WhereIF(majornames.Any() && majornames.Count() > 0, p => SqlFunc.ContainsArray(majornames, p.MajorCode))
+ .WhereIF(query.UniversityIds.Any() && query.UniversityIds.Count() > 0, p => SqlFunc.ContainsArray(query.UniversityIds, p.UId))
+ .Select(p => new UniversityEnrollmentPlanResult()
+ {
+ UniversityId = p.UId,
+ PlanId = p.Id
+ })
+ .ToListAsync();
+ var universitylist = recommendInfo.Select(c => c.UniversityId).Distinct().ToList();
+ universitylist.ForEach(a =>
+ {
+ response.Add(new UniversityMapMajorItems()
+ {
+ UId = a,
+ MIds = recommendInfo.Where(e => e.UniversityId == a).Select(c => c.PlanId).ToList()
+ });
+ });
+ return new MessageModel>() { response = response };
+ }
+
+
+
+ ///
+ /// 暂未实现
+ ///
+ ///
+ ///
+ public async Task>> GetCWBUniversityDetail(CWBUniversityDetailQuery query)
+ {
+ RefAsync totalNumber = 0;
+ var regionlist = this.Db.Queryable().Where(c => c.Level == 1).WhereIF(query.provinceIds != null && query.provinceIds.Any(), c => SqlFunc.ContainsArray(query.provinceIds, c.KeyId)).Select(c => c.RegionName).ToList();
+
+ 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();
+ var majoraslist = new List();
+ if (query.MajorIds != null && query.MajorIds.Count > 0)
+ {
+ //所选专业增加majorids筛选
+ //query.MajorIds
+ majoraslist = await this.d_Major.Query(x => x.IsDelete == false && SqlFunc.ContainsArray(query.MajorIds, x.Id));
if (majoraslist.Count() <= 0)
return new MessageModel>() { success = false, msg = "所选专业大类数据完善中..." };
majornames = majoraslist.Select(x => x.MajorCode).ToList();
}
- var testlist = new List() { 1, 2, 3 };
- var recommendInfo = await this.Db.Queryable((plans, universitys) => new object[] { JoinType.Left, plans.UId == universitys.Id, JoinType.Left })
- //.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(regionlist.Any(), (plans, universitys) => regionlist.Contains(universitys.Area_Name))
- .WhereIF(query.Year > 0, (plans, universitys) => plans.Years == query.Year)
- .WhereIF(!string.IsNullOrEmpty(query.Location), (plans, universitys) => plans.Location == query.Location)
- .WhereIF(string.IsNullOrWhiteSpace(query.Type), (plans, universitys) => plans.LowScore > 0 && (plans.LowScore <= query.Score + 15))
- .WhereIF(query.Type == "冲", (plans, universitys) => plans.LowScore > 0 && (plans.LowScore <= query.Score + 15 && plans.LowScore > query.Score + 5))
- .WhereIF(query.Type == "稳", (plans, universitys) => plans.LowScore > 0 && (plans.LowScore <= query.Score + 5 && plans.LowScore > query.Score - 15))
- .WhereIF(query.Type == "保", (plans, universitys) => plans.LowScore > 0 && (plans.LowScore < query.Score - 15))
- .WhereIF(!string.IsNullOrWhiteSpace(query.SubjectClaim), (plans, universitys) => (plans.SelectSubject.Contains(sbuOne) || plans.SelectSubject.Contains(sbuTwo) || plans.SelectSubject.Contains(sbuTree)))
- .WhereIF(majornames.Any() && majornames.Count() > 0, (plans, universitys) => majornames.Contains(plans.MajorCode)).GroupBy(plans => new
+
+
+ var recommendInfo = await this.Db.Queryable()
+ .WhereIF(regionlist.Any(), p => SqlFunc.ContainsArray(regionlist, p.AreaName))
+ .WhereIF(query.Year > 0, p => p.Years == query.Year)
+ .WhereIF(!string.IsNullOrEmpty(query.Location), p => p.Location == query.Location)
+ .WhereIF(string.IsNullOrWhiteSpace(query.Type), p => p.LowScore > 0 && (p.LowScore <= query.Score + 15))
+ .WhereIF(query.Type == "冲", p => p.LowScore > 0 && (p.LowScore <= query.Score + 15 && p.LowScore > query.Score + 5))
+ .WhereIF(query.Type == "稳", p => p.LowScore > 0 && (p.LowScore <= query.Score + 5 && p.LowScore > query.Score - 15))
+ .WhereIF(query.Type == "保", p => p.LowScore > 0 && (p.LowScore < query.Score - 15))
+ .WhereIF(!string.IsNullOrWhiteSpace(query.SubjectClaim), p => (SqlFunc.Contains(p.SelectSubject, sbuOne) || SqlFunc.Contains(p.SelectSubject, sbuTwo) || SqlFunc.Contains(p.SelectSubject, sbuTree)))
+ .WhereIF(majornames.Any() && majornames.Count() > 0, p => SqlFunc.ContainsArray(majornames, p.MajorCode)).GroupBy(plans => new
{
// plans.Id,
plans.UId,
+ plans.UniversityName
// plans.LowScore,
// plans.LowScoreRank
})
- .Select((plans, universitys) => new UniversityEnrollmentPlanResult()
+ .Select(p => new UniversityEnrollmentPlanResult()
{
- AreaName = universitys.Area_Name,
- UniversityId = plans.UId,
- 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 = SqlFunc.AggregateSum(plans.PlanCount),// plandesc.Where(x => x.UniversityId == item.Id).Select(x => x.Id).ToList()
+ // AreaName = universitys.Area_Name,
+ UniversityId = p.UId,
+ // AscriptionName = universitys.AscriptionName,
+ // Logo = universitys.Logo,
+ // Nhef = universitys.Nhef,
+ // Rank = universitys.Rank <= 0 ? "--" : universitys.Rank.ToString(),
+ UniversityName = p.UniversityName,
- MjaorPlan = SqlFunc.AggregateCount(plans.UId),
- Scoreline = SqlFunc.AggregateMin(plans.LowScore),
- // PlanIds= String.Join(" ",plans.Id)
+ planCount = SqlFunc.AggregateSum(p.PlanCount),// plandesc.Where(x => x.UniversityId == item.Id).Select(x => x.Id).ToList()
+ //PlanIds= SqlFunc.Subqueryable().Where(s=>s.Id==p.Id).ToList(s => s.Id),
+ MjaorPlan = SqlFunc.AggregateCount(p.UId),
+ Scoreline = SqlFunc.AggregateMin(p.LowScore),
- })
+
+ }).OrderBy(p => p.Scoreline, OrderByType.Desc)
.ToPageListAsync(query.PageIndex, query.PageSize, totalNumber);
- var plansinfo = await this.Db.Queryable((plans, universitys) => new object[] { JoinType.Left, plans.UId == universitys.Id, JoinType.Left })
- //.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.LowScore > 0 && (plans.LowScore <= query.Score + 15))
- .WhereIF(query.Year > 0, (plans, universitys) => plans.Years == query.Year)
- .WhereIF(!string.IsNullOrEmpty(query.Location), (plans, universitys) => plans.Location == query.Location)
- .WhereIF(query.Type == "冲", (plans, universitys) => plans.LowScore > 0 && (plans.LowScore <= query.Score + 15 && plans.LowScore > query.Score + 5))
- .WhereIF(query.Type == "稳", (plans, universitys) => plans.LowScore > 0 && (plans.LowScore <= query.Score + 5 && plans.LowScore > query.Score - 15))
- .WhereIF(query.Type == "保", (plans, universitys) => plans.LowScore > 0 && (plans.LowScore < query.Score - 15))
- .WhereIF(!string.IsNullOrWhiteSpace(query.SubjectClaim), (plans, universitys) => (plans.SelectSubject.Contains(sbuOne) || plans.SelectSubject.Contains(sbuTwo) || plans.SelectSubject.Contains(sbuTree)))
- .WhereIF(majornames.Any() && majornames.Count() > 0, (plans, universitys) => majornames.Contains(plans.MajorCode)).ToListAsync();
-
+ var universitylist = await d_University.Query(c => SqlFunc.ContainsArray(recommendInfo.Select(c => c.UniversityId).ToList(), c.Id));
recommendInfo.ForEach(a =>
{
+ a.AreaName = universitylist.FirstOrDefault(c => c.Id == a.UniversityId).Area_Name;
+ a.AscriptionName = universitylist.FirstOrDefault(c => c.Id == a.UniversityId).AscriptionName;
+ a.Logo = universitylist.FirstOrDefault(c => c.Id == a.UniversityId).Logo;
+ a.Nhef = universitylist.FirstOrDefault(c => c.Id == a.UniversityId).Nhef;
+ a.Rank = universitylist.FirstOrDefault(c => c.Id == a.UniversityId).Rank.ToString();
+ a.Sff = universitylist.FirstOrDefault(c => c.Id == a.UniversityId).Sff;
+ a.Syl = universitylist.FirstOrDefault(c => c.Id == a.UniversityId).Syl;
+ a.AreaName = universitylist.FirstOrDefault(c => c.Id == a.UniversityId).Area_Name;
+ //a.PlanIds =new List() { 12123, 1212, 1212 };
- a.PlanIds = plansinfo.Where(c => c.UId == a.UniversityId).Select(c => c.Id).ToList();
a.Type = (a.Scoreline <= chongfirst && a.Scoreline > chongend) ? "冲" : (a.Scoreline <= chongend && a.Scoreline > wenend) ? "稳" : "保";
});
diff --git a/New_College.Services/T_EnrollmentPlanedescServices.cs b/New_College.Services/T_EnrollmentPlanedescServices.cs
index cd79cb5..8037ff4 100644
--- a/New_College.Services/T_EnrollmentPlanedescServices.cs
+++ b/New_College.Services/T_EnrollmentPlanedescServices.cs
@@ -981,7 +981,7 @@ namespace New_College.Services
.AndIF(query.Year > 0, w => w.Years == query.Year)
.AndIF(!string.IsNullOrEmpty(query.AreaName), w => w.Location == query.AreaName)
.And(x => x.LowScore <= (query.Score + 10) && x.LowScore > 0)
- .AndIF(majornames.Any()&& majornames.Count()>0, x => majornames.Contains(x.Major))
+ .AndIF(majornames.Any() && majornames.Count() > 0, x => majornames.Contains(x.Major))
.And(x => universityids.Contains(x.UId))
.ToExpression();//注意 这一句 不能少
var plandesc = await _PlanMajorDescRepository.Query(exp);
@@ -1088,22 +1088,22 @@ namespace New_College.Services
int tpyear = info.data.FirstOrDefault().Years;
string tpname = info.data.FirstOrDefault().UniversityName;
string location = info.data.FirstOrDefault().Location;
- // var planmajorlist = await _PlanMajorDescRepository.Query(c => c.UniversityName == tpname && c.Years == tpyear - 1 && c.Location == location);
+ // var planmajorlist = await _PlanMajorDescRepository.Query(c => c.UniversityName == tpname && c.Years == tpyear - 1 && c.Location == location);
List list = new List() { };
foreach (var item in info.data)
{
var newname = item.Major;
var newmoney = string.IsNullOrWhiteSpace(item.Free) || item.Free == "0" || item.Free == "待定" ? "--" : item.Free;
- // var newyear = string.IsNullOrWhiteSpace(item.AcademicYear) ? "--" : item.AcademicYear;
- // var newyear = planmajorlist.FirstOrDefault().Years.ToString();
- // float scoreLine = planmajorlist.Where(c => c.UniversityName == item.UniversityName && c.Major == item.Major).Any() ? planmajorlist.Where(c => c.UniversityName == item.UniversityName && c.Major == item.Major).FirstOrDefault().LowScore : 0;
+ // var newyear = string.IsNullOrWhiteSpace(item.AcademicYear) ? "--" : item.AcademicYear;
+ // var newyear = planmajorlist.FirstOrDefault().Years.ToString();
+ // float scoreLine = planmajorlist.Where(c => c.UniversityName == item.UniversityName && c.Major == item.Major).Any() ? planmajorlist.Where(c => c.UniversityName == item.UniversityName && c.Major == item.Major).FirstOrDefault().LowScore : 0;
var count = list.Count(x => x.Name == newname && x.Money == newmoney && x.PlanNum == item.PlanCount && x.Scoreline == item.LowScore);
if (count > 0)
continue;
list.Add(new PlanDescList()
{
Name = newname,
- Year = (item.Years-1).ToString(),
+ Year = (item.Years - 1).ToString(),
Money = newmoney,
PlanNum = item.PlanCount,
MajorId = item.Id,
@@ -1253,6 +1253,19 @@ namespace New_College.Services
};
}
+
+
+
+ ///
+ /// 冲稳保详情配合接口
+ ///
+ ///
+ ///
+ public async Task>> GetUniversityMapItems(CWBUniversityDetailQuery query)
+ {
+ return await this.t_EnrollmentPlanedesc.GetUniversityMapItems(query);
+ }
+
///
/// 冲稳保详情
///