--代码逻辑优化--
parent
36be642f4f
commit
21cb31bb41
|
|
@ -1736,6 +1736,11 @@
|
|||
文理 不分文理
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.T_EnrollmentBatch.ScoreLine">
|
||||
<summary>
|
||||
批次分数线
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.T_EnrollmentPlane.EnrollmentName">
|
||||
<summary>
|
||||
计划名称
|
||||
|
|
|
|||
|
|
@ -37,5 +37,12 @@ namespace New_College.Model.Models
|
|||
/// </summary>
|
||||
[SugarColumn(IsNullable = true)]
|
||||
public string Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 批次分数线
|
||||
/// </summary>
|
||||
[SugarColumn(IsNullable = true)]
|
||||
public int ScoreLine { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,5 +49,9 @@ namespace New_College.Model.ViewModels
|
|||
/// 省份Id
|
||||
/// </summary>
|
||||
public int AreaId { get; set; }
|
||||
|
||||
public List<int> areaIds { get; set; }
|
||||
|
||||
public string SubjectClaim { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -80,15 +80,17 @@ namespace New_College.Model.ViewModels
|
|||
///// <summary>
|
||||
///// 院校最低分
|
||||
///// </summary>
|
||||
//public double? Score { get; set; }
|
||||
// public double? Score { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 位次
|
||||
///// </summary>
|
||||
//public string RankLine { get; set; }
|
||||
|
||||
public float Scoreline { get; set; }
|
||||
public int planCount { get; set; }
|
||||
|
||||
public int PlanId { get; set; }
|
||||
/// <summary>
|
||||
/// 对应的Ids
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -13,10 +13,20 @@ namespace New_College.IRepository
|
|||
{
|
||||
|
||||
/// <summary>
|
||||
/// 只能选大学
|
||||
/// 智能选大学
|
||||
/// </summary>
|
||||
/// <param name="query"></param>
|
||||
/// <returns></returns>
|
||||
Task<PageModel<UniversityResult>> GetRecommendUniversity(RecommendUniversityQuery query);
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
///智能 冲稳保
|
||||
/// </summary>
|
||||
/// <param name="query"></param>
|
||||
/// <returns></returns>
|
||||
Task<MessageModel<PageModel<UniversityEnrollmentPlanResult>>> GetCWBUniversityDetail(CWBUniversityDetailQuery query);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 暂未实现
|
||||
/// </summary>
|
||||
/// <param name="query"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<MessageModel<PageModel<UniversityEnrollmentPlanResult>>> GetCWBUniversityDetail(CWBUniversityDetailQuery query)
|
||||
{
|
||||
|
||||
RefAsync<int> 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<string>();
|
||||
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<PageModel<UniversityEnrollmentPlanResult>>() { success = false, msg = "所选专业大类数据完善中..." };
|
||||
majornames = major.Select(x => x.MajorName).ToList();
|
||||
}
|
||||
|
||||
var recommendInfo = await this.Db.Queryable<T_EnrollmentPlanedesc, D_University>((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<List<UniversityEnrollmentPlanResult>>().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<PageModel<UniversityEnrollmentPlanResult>>()
|
||||
{
|
||||
success = true,
|
||||
msg = "获取成功",
|
||||
response = new PageModel<UniversityEnrollmentPlanResult>()
|
||||
{
|
||||
data = recommendInfo,
|
||||
dataCount = recommendInfo.Count,
|
||||
page = query.PageIndex,
|
||||
PageSize = query.PageSize,
|
||||
pageCount = (int)Math.Ceiling(recommendInfo.Count / Convert.ToDecimal(query.PageSize))
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -53,7 +157,7 @@ namespace New_College.Repository
|
|||
}
|
||||
var recommendInfo = await this.Db.Queryable<T_EnrollmentPlanedesc, D_University>((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)
|
||||
|
|
|
|||
|
|
@ -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<T_EnrollmentPlanedesc>();
|
||||
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<UniversityEnrollmentPlanLazyResult> list = new List<UniversityEnrollmentPlanLazyResult>() { };
|
||||
foreach (var item in info)
|
||||
|
|
@ -1228,6 +1226,8 @@ namespace New_College.Services
|
|||
/// <returns></returns>
|
||||
public async Task<MessageModel<PageModel<UniversityEnrollmentPlanResult>>> 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<PageModel<UniversityEnrollmentPlanResult>>() { 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<PageModel<UniversityEnrollmentPlanResult>>()
|
||||
{
|
||||
|
|
@ -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
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue