feat:增加省份字段

develop
old易 2023-10-10 13:09:50 +08:00
parent 4e8e6aa76f
commit e40102353e
9 changed files with 184 additions and 59 deletions

View File

@ -102,6 +102,20 @@ namespace New_College.Api.Controllers.Front
return await t_EnrollmentPlanedescServices.GetEnrollmentCWBByPage(query);
}
/// <summary>
/// 冲稳保详情配合接口
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
[HttpPost]
public async Task<MessageModel<List<UniversityMapMajorItems>>> GetUniversityMapItems([FromBody] CWBUniversityDetailQuery query)
{
return await t_EnrollmentPlanedescServices.GetUniversityMapItems(query);
}
/// <summary>
/// 冲稳保详情
/// </summary>

View File

@ -540,6 +540,11 @@
院校名称
</summary>
</member>
<member name="P:New_College.Model.Models.D_PlanMajorDesc.AreaName">
<summary>
院校所在省份
</summary>
</member>
<member name="P:New_College.Model.Models.D_PlanMajorDesc.BatchName">
<summary>
批次

View File

@ -676,6 +676,13 @@
<param name="query"></param>
<returns></returns>
</member>
<member name="M:New_College.Api.Controllers.Front.VolunteerController.GetUniversityMapItems(New_College.Model.ViewModels.CWBUniversityDetailQuery)">
<summary>
冲稳保详情配合接口
</summary>
<param name="query"></param>
<returns></returns>
</member>
<member name="M:New_College.Api.Controllers.Front.VolunteerController.GetCWBUniversityDetail(New_College.Model.ViewModels.CWBUniversityDetailQuery)">
<summary>
冲稳保详情

View File

@ -23,6 +23,12 @@ namespace New_College.IServices
Task<MessageModel<List<CWBEnrollmentPlanResult>>> GetEnrollmentCWBByPage(CWBEnrollmentPlaneQuery query);
/// <summary>
///
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
Task<MessageModel<List<UniversityMapMajorItems>>> GetUniversityMapItems(CWBUniversityDetailQuery query);
/// <summary>
/// 冲稳保详情
/// </summary>

View File

@ -22,6 +22,11 @@ namespace New_College.Model.Models
public string UniversityName { get; set; }
/// <summary>
/// 院校所在省份
/// </summary>
public string AreaName { get; set; }
/// <summary>
///批次
/// </summary>

View File

@ -43,6 +43,15 @@ namespace New_College.Model.ViewModels
public string AscriptionName { get; set; }
}
public class UniversityMapMajorItems
{
public int UId { get; set; }
public List<int> MIds { get; set; }
}
/// <summary>
/// 志愿填报推荐一级
/// </summary>
@ -80,7 +89,7 @@ namespace New_College.Model.ViewModels
///// <summary>
///// 院校最低分
///// </summary>
// public double? Score { get; set; }
// public double? Score { get; set; }
///// <summary>
///// 位次

View File

@ -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<PageModel<UniversityResult>> GetRecommendUniversity(RecommendUniversityQuery query);
/// <summary>
/// 冲稳保配合接口
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
Task<MessageModel<List<UniversityMapMajorItems>>> GetUniversityMapItems(CWBUniversityDetailQuery query);
/// <summary>
///智能 冲稳保

View File

@ -46,18 +46,15 @@ namespace New_College.Repository
this._sysRegionRepository = sysRegionRepository;
}
/// <summary>
/// 暂未实现
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<MessageModel<PageModel<UniversityEnrollmentPlanResult>>> GetCWBUniversityDetail(CWBUniversityDetailQuery query)
public async Task<MessageModel<List<UniversityMapMajorItems>>> GetUniversityMapItems(CWBUniversityDetailQuery query)
{
var regionlist = this.Db.Queryable<SysRegion>().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<UniversityMapMajorItems>();
RefAsync<int> totalNumber = 0;
var regionlist = this.Db.Queryable<SysRegion>().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<PageModel<UniversityEnrollmentPlanResult>>() { success = false, msg = "所选专业大类数据完善中..." };
majornames = majoraslist.Select(x => x.MajorCode).ToList();
}
var recommendInfo = await this.Db.Queryable<D_PlanMajorDesc>()
.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<List<UniversityMapMajorItems>>() { response = response };
}
/// <summary>
/// 暂未实现
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<MessageModel<PageModel<UniversityEnrollmentPlanResult>>> GetCWBUniversityDetail(CWBUniversityDetailQuery query)
{
RefAsync<int> totalNumber = 0;
var regionlist = this.Db.Queryable<SysRegion>().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<string>();
var majoraslist = new List<D_Major>();
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<PageModel<UniversityEnrollmentPlanResult>>() { success = false, msg = "所选专业大类数据完善中..." };
majornames = majoraslist.Select(x => x.MajorCode).ToList();
}
var testlist = new List<int>() { 1, 2, 3 };
var recommendInfo = await this.Db.Queryable<D_PlanMajorDesc, D_University>((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<D_PlanMajorDesc>()
.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<D_PlanMajorDesc>().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<D_PlanMajorDesc, D_University>((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<int>() { 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) ? "稳" : "保";
});

View File

@ -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<PlanDescList> list = new List<PlanDescList>() { };
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
};
}
/// <summary>
/// 冲稳保详情配合接口
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<MessageModel<List<UniversityMapMajorItems>>> GetUniversityMapItems(CWBUniversityDetailQuery query)
{
return await this.t_EnrollmentPlanedesc.GetUniversityMapItems(query);
}
/// <summary>
/// 冲稳保详情
/// </summary>