feat:AI一键填报
parent
b5ce95c5b6
commit
b41ab8df6d
|
|
@ -36,6 +36,41 @@ namespace New_College.Api.Controllers
|
|||
public async Task<MessageModel<PageModel<OneSubmitGoResponse>>> OneSubmitGo([FromQuery] OneSubmitGoRequest request)
|
||||
{
|
||||
|
||||
if (string.IsNullOrWhiteSpace(request.Location))
|
||||
{
|
||||
return new MessageModel<PageModel<OneSubmitGoResponse>>()
|
||||
{
|
||||
msg = "Location字段必传参数",
|
||||
|
||||
};
|
||||
}
|
||||
if (request.Year <= 0)
|
||||
{
|
||||
return new MessageModel<PageModel<OneSubmitGoResponse>>()
|
||||
{
|
||||
msg = "Year字段必传参数",
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(request.SubjectClaim))
|
||||
{
|
||||
return new MessageModel<PageModel<OneSubmitGoResponse>>()
|
||||
{
|
||||
msg= "SubjectClaim字段必传参数",
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(request.BatchName))
|
||||
{
|
||||
return new MessageModel<PageModel<OneSubmitGoResponse>>()
|
||||
{
|
||||
msg = "BatchName字段必传参数",
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
var response = await _d_PlanMajorDescServices.GetPlanMajorList(request);
|
||||
if (response.data==null||!response.data.Any() || response.dataCount <= 0)
|
||||
{
|
||||
|
|
@ -59,5 +94,73 @@ namespace New_College.Api.Controllers
|
|||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// AI智能填报
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<MessageModel<PageModel<OneSubmitGoResponse>>> AIGo([FromQuery] OneSubmitGoRequest request)
|
||||
{
|
||||
|
||||
if (string.IsNullOrWhiteSpace(request.Location))
|
||||
{
|
||||
return new MessageModel<PageModel<OneSubmitGoResponse>>()
|
||||
{
|
||||
msg = "Location字段必传参数",
|
||||
|
||||
};
|
||||
}
|
||||
if (request.Year <= 0)
|
||||
{
|
||||
return new MessageModel<PageModel<OneSubmitGoResponse>>()
|
||||
{
|
||||
msg = "Year字段必传参数",
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(request.SubjectClaim))
|
||||
{
|
||||
return new MessageModel<PageModel<OneSubmitGoResponse>>()
|
||||
{
|
||||
msg = "SubjectClaim字段必传参数",
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(request.BatchName))
|
||||
{
|
||||
return new MessageModel<PageModel<OneSubmitGoResponse>>()
|
||||
{
|
||||
msg = "BatchName字段必传参数",
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
var response = await _d_PlanMajorDescServices.GetAIGoList(request);
|
||||
if (response.data == null || !response.data.Any() || response.dataCount <= 0)
|
||||
{
|
||||
return new MessageModel<PageModel<OneSubmitGoResponse>>()
|
||||
{
|
||||
msg = "获取失败",
|
||||
success = false,
|
||||
response = response
|
||||
};
|
||||
}
|
||||
|
||||
return new MessageModel<PageModel<OneSubmitGoResponse>>()
|
||||
{
|
||||
msg = "获取成功",
|
||||
success = true,
|
||||
response = response
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -5,18 +5,27 @@ using New_College.Model.ViewModels;
|
|||
using System.Threading.Tasks;
|
||||
|
||||
namespace New_College.IServices
|
||||
{
|
||||
/// <summary>
|
||||
/// ID_PlanMajorDescServices
|
||||
/// </summary>
|
||||
public interface ID_PlanMajorDescServices :IBaseServices<D_PlanMajorDesc>
|
||||
{
|
||||
{
|
||||
/// <summary>
|
||||
/// ID_PlanMajorDescServices
|
||||
/// </summary>
|
||||
public interface ID_PlanMajorDescServices : IBaseServices<D_PlanMajorDesc>
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 一键填报
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
Task<PageModel<OneSubmitGoResponse>> GetPlanMajorList(OneSubmitGoRequest request);
|
||||
/// <summary>
|
||||
/// 一键填报
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
Task<PageModel<OneSubmitGoResponse>> GetPlanMajorList(OneSubmitGoRequest request);
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// AI填报
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
Task<PageModel<OneSubmitGoResponse>> GetAIGoList(OneSubmitGoRequest request);
|
||||
}
|
||||
}
|
||||
|
|
@ -6,12 +6,26 @@ using System.Text;
|
|||
namespace New_College.Model.ViewModels
|
||||
{
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 一键填报传入参数
|
||||
/// </summary>
|
||||
public class OneSubmitGoRequest : BasePageRequest
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 起始分数
|
||||
/// </summary>
|
||||
public int StartScore { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// 结束分数
|
||||
/// </summary>
|
||||
public int EndScore { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
///批次名称
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ namespace New_College.Model.ViewModels
|
|||
/// <summary>
|
||||
/// 年份
|
||||
/// </summary>
|
||||
public int Year { get; set; }
|
||||
public int? Year { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 省份Id
|
||||
|
|
|
|||
|
|
@ -28,6 +28,108 @@ namespace New_College.Services
|
|||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<PageModel<OneSubmitGoResponse>> GetAIGoList(OneSubmitGoRequest request)
|
||||
{
|
||||
var pagemodel = new PageModel<OneSubmitGoResponse>();
|
||||
int startscore = request.Score - 15;
|
||||
int endscore = request.Score + 15;
|
||||
Expression<Func<D_PlanMajorDesc, bool>> expression = Expressionable.Create<D_PlanMajorDesc>()
|
||||
.And(c => c.IsDelete == false)
|
||||
.And(c => c.Location == request.Location)
|
||||
.AndIF(!string.IsNullOrWhiteSpace(request.Major), c => SqlFunc.Contains(request.Major, c.Major))
|
||||
.AndIF(!string.IsNullOrWhiteSpace(request.SubjectClaim), c => SqlFunc.Contains(request.SubjectClaim, c.SelectSubject))
|
||||
.AndIF(!string.IsNullOrWhiteSpace(request.BatchName), c => c.BatchName.Equals(request.BatchName))
|
||||
.AndIF(!string.IsNullOrWhiteSpace(request.Province), c => SqlFunc.Contains(request.Province, c.AreaName))
|
||||
.And(c => c.Years == request.Year)
|
||||
.AndIF(!string.IsNullOrWhiteSpace(request.SchoolType), c => c.SchoolType == request.SchoolType)
|
||||
.AndIF(request.Score > 0 && (request.EndScore <= endscore && request.StartScore >= startscore), c => SqlFunc.Between(c.LowScore, startscore, endscore))
|
||||
.AndIF(request.EndScore > endscore || request.StartScore < startscore, c => SqlFunc.Between(c.LowScore, request.StartScore, request.EndScore))
|
||||
.AndIF(request.Syl.HasValue && request.Syl == 1, c => c._SYL == "是")
|
||||
.AndIF(request._211.HasValue && request._211 == 1, c => c._211 == "是")
|
||||
.AndIF(request._985.HasValue && request._985 == 1, c => c._985 == "是")
|
||||
.AndIF(!string.IsNullOrWhiteSpace(request.Ownership), c => c.Ownership == request.Ownership)
|
||||
.AndIF(!string.IsNullOrWhiteSpace(request.Nature), c => c.Nature == request.Nature)
|
||||
//.AndIF(request. > 0, c => SqlFunc.Between(c.LowScore, request.Score, request.Score)) 位次区间
|
||||
.ToExpression();
|
||||
var query = await _dal.QueryPage(expression, request.PageIndex, request.PageSize, " LowScoreRank desc ");
|
||||
|
||||
var majorarry = query.data.Select(c => c.Major).Distinct().ToArray();
|
||||
var universityarry = query.data.Select(c => c.UId).Distinct().ToArray();//
|
||||
Expression<Func<D_PlanMajorDesc, bool>> expression2 = Expressionable.Create<D_PlanMajorDesc>()
|
||||
.And(c => c.IsDelete == false)
|
||||
.And(c => c.Location == request.Location)
|
||||
.AndIF(!string.IsNullOrWhiteSpace(request.Major), c => SqlFunc.Contains(request.Major, c.Major))
|
||||
// .AndIF(!string.IsNullOrWhiteSpace(request.SubjectClaim), c => SqlFunc.Contains(request.SubjectClaim, c.SelectSubject)) //此条件不带
|
||||
.AndIF(!string.IsNullOrWhiteSpace(request.BatchName), c => c.BatchName == request.BatchName.Trim())
|
||||
.AndIF(!string.IsNullOrWhiteSpace(request.Province), c => SqlFunc.Contains(request.Province, c.AreaName))
|
||||
.AndIF(!string.IsNullOrWhiteSpace(request.SchoolType), c => c.SchoolType == request.SchoolType)
|
||||
.AndIF(request.Syl.HasValue && request.Syl == 1, c => c._SYL == "是")
|
||||
.AndIF(request._211.HasValue && request._211 == 1, c => c._211 == "是")
|
||||
.AndIF(request._985.HasValue && request._985 == 1, c => c._985 == "是")
|
||||
.AndIF(!string.IsNullOrWhiteSpace(request.Ownership), c => c.Ownership == request.Ownership)
|
||||
.AndIF(!string.IsNullOrWhiteSpace(request.Nature), c => c.Nature == request.Nature)
|
||||
.AndIF(majorarry.Any(), c => SqlFunc.ContainsArray(majorarry, c.Major))
|
||||
.AndIF(universityarry.Any(), c => SqlFunc.ContainsArray(universityarry, c.UId))
|
||||
//.AndIF(request. > 0, c => SqlFunc.Between(c.LowScore, request.Score, request.Score)) 位次区间
|
||||
.ToExpression();
|
||||
var list = (await _dal.Query(expression2)).Select(c => new D_PlanMajorDesc()
|
||||
{
|
||||
Major = c.Major,
|
||||
MajorCode = c.MajorCode,
|
||||
UniversityName = c.UniversityName,
|
||||
UId = c.UId,
|
||||
Years = c.Years,
|
||||
LowScore = c.LowScore,
|
||||
LowScoreRank = c.LowScoreRank,
|
||||
PlanCount = c.PlanCount,
|
||||
// AcademicYear = c.Years.ToString()
|
||||
|
||||
}).ToList();
|
||||
var responselist = query.data.Select(c => new OneSubmitGoResponse()
|
||||
{
|
||||
AreaName = c.AreaName,
|
||||
fee = c.Free,
|
||||
Major = c.Major,
|
||||
MajorGroup = c.MajorGroup,
|
||||
MajorRemark = c.Remark,
|
||||
planCount = c.PlanCount,
|
||||
Rank = c.Rank,
|
||||
_985 = c._985,
|
||||
_211 = c._211,
|
||||
_SYL = c._SYL,
|
||||
UniversityId = c.UId,
|
||||
UniversityName = c.UniversityName,
|
||||
SubjectClam = c.SelectSubject,
|
||||
Type = MajorPlanScoreTool.GetPlanScore(c.LowScore, request.Score),//还缺冲稳保
|
||||
PlanId = c.Id,
|
||||
UniversityCode = c.EnrollmentCode,
|
||||
MajorCode = c.MajorCode,
|
||||
LowScoreRank = c.LowScoreRank,
|
||||
PlanItems = list.Where(e => e.UId == c.UId && e.Major.Equals(c.Major)).Select(s => new PlanItem()
|
||||
{
|
||||
PlanCount = s.PlanCount,
|
||||
RankLine = s.LowScoreRank,
|
||||
Scoreline = s.LowScore,
|
||||
Year = s.Years.ToString()
|
||||
|
||||
}).OrderByDescending(k => k.Year).ToList()
|
||||
}).OrderByDescending(c => c.Type).OrderBy(c => c.LowScoreRank).ToList();
|
||||
return new PageModel<OneSubmitGoResponse>()
|
||||
{
|
||||
data = responselist,
|
||||
dataCount = query.dataCount,
|
||||
page = query.page,
|
||||
pageCount = query.pageCount,
|
||||
PageSize = query.PageSize
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 一键填报招生计划展示
|
||||
|
|
@ -36,19 +138,7 @@ namespace New_College.Services
|
|||
/// <returns></returns>
|
||||
public async Task<PageModel<OneSubmitGoResponse>> GetPlanMajorList(OneSubmitGoRequest request)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(request.Location))
|
||||
{
|
||||
return new PageModel<OneSubmitGoResponse>()
|
||||
{
|
||||
};
|
||||
}
|
||||
if (request.Year <= 0)
|
||||
{
|
||||
return new PageModel<OneSubmitGoResponse>()
|
||||
{
|
||||
|
||||
};
|
||||
}
|
||||
var pagemodel = new PageModel<OneSubmitGoResponse>();
|
||||
Expression<Func<D_PlanMajorDesc, bool>> expression = Expressionable.Create<D_PlanMajorDesc>()
|
||||
.And(c => c.IsDelete == false)
|
||||
|
|
|
|||
|
|
@ -887,7 +887,7 @@ namespace New_College.Services
|
|||
double tmpscore = 0;
|
||||
if (scoreline.Any())
|
||||
{
|
||||
tmpscore =double.Parse(scoreline.FirstOrDefault().Score);
|
||||
tmpscore = double.Parse(scoreline.FirstOrDefault().Score);
|
||||
|
||||
// model.Probability = tmpscore >= model.EstimateScore ? "" : "";
|
||||
}
|
||||
|
|
@ -1518,11 +1518,17 @@ namespace New_College.Services
|
|||
/// <returns></returns>
|
||||
public async Task<MessageModel<List<IdNameResult>>> GetBatchByYearArea(YearAreaQuery query)
|
||||
{
|
||||
query.Year = query.Year > 2023 ? 2023 : query.Year;
|
||||
var info = await t_EnrollmentBatchRepository.Query(x => x.IsDelete == false && x.AreaName == query.AreaName && x.Year == query.Year && !x.Batch_name.Contains("提前") && !x.Batch_name.Contains("零志愿"));
|
||||
query.Year = query.Year.HasValue && query.Year > 2023 ? 2023 : query.Year;
|
||||
Expression<Func<T_EnrollmentBatch, bool>> expression = Expressionable.Create<T_EnrollmentBatch>()
|
||||
.And(c => c.IsDelete == false)
|
||||
.And(c=>!c.Batch_name.Contains("提前"))
|
||||
.And(c => !c.Batch_name.Contains("零志愿"))
|
||||
.And(c => c.AreaName == query.AreaName)
|
||||
.AndIF(query.Year.HasValue, c => c.Year == query.Year)
|
||||
.ToExpression();
|
||||
var info = await t_EnrollmentBatchRepository.Query(expression);
|
||||
if (info.Count <= 0)
|
||||
return new MessageModel<List<IdNameResult>>() { success = false, msg = "数据为空" };
|
||||
|
||||
List<IdNameResult> list = new List<IdNameResult>() { };
|
||||
foreach (var item in info)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue