develop
old易 2024-01-12 14:49:09 +08:00
parent f182c60333
commit 0b5fd3d7e6
2 changed files with 37 additions and 23 deletions

View File

@ -43,15 +43,14 @@ namespace New_College.Api.Controllers.Front
{ {
try try
{ {
request.Years = request.Years >= 2023 ? 2023 : request.Years; request.Years = request.Years >= 2023 ? 2023 : request.Years;
Expression<Func<D_PlanMajorDesc, bool>> whereexp = Expressionable.Create<D_PlanMajorDesc>() //创建表达式 Expression<Func<D_PlanMajorDesc, bool>> whereexp = Expressionable.Create<D_PlanMajorDesc>() //创建表达式
.And(c => c.Location == request.Location) .And(c => c.Location == request.Location)
.And(c => c.Years == request.Years) .And(c => c.Years == request.Years)
.AndIF(!string.IsNullOrEmpty(request.UniversityName), w => SqlFunc.Contains(w.UniversityName, request.UniversityName)) .AndIF(!string.IsNullOrEmpty(request.BatchName), w => w.BatchName == request.BatchName)
.AndIF(!string.IsNullOrEmpty(request.MajorName), w => SqlFunc.Contains(w.Major, request.MajorName)).ToExpression(); .AndIF(!string.IsNullOrEmpty(request.UniversityName), w => SqlFunc.Contains(w.UniversityName, request.UniversityName))
.AndIF(!string.IsNullOrEmpty(request.MajorName), w => SqlFunc.Contains(w.Major, request.MajorName)).ToExpression();
var pageModel = await this.d_PlanMajorDesc.QueryPage(whereexp, request.PageIndex, request.PageSize); var pageModel = await this.d_PlanMajorDesc.QueryPage(whereexp, request.PageIndex, request.PageSize);
if (pageModel.dataCount > 0) if (pageModel.dataCount > 0)
{ {
return new MessageModel<PageModel<D_PlanMajorDesc>>() return new MessageModel<PageModel<D_PlanMajorDesc>>()

View File

@ -11,6 +11,7 @@ using New_College.IServices;
using New_College.Model; using New_College.Model;
using New_College.Model.Models; using New_College.Model.Models;
using New_College.Model.ViewModels; using New_College.Model.ViewModels;
using SqlSugar;
namespace New_College.Api.Controllers.Front namespace New_College.Api.Controllers.Front
@ -47,23 +48,37 @@ namespace New_College.Api.Controllers.Front
success = false success = false
}; };
} }
var query = await _ScoreLineServices.Query(c => c.Score == queryDto.Score.ToString() && c.Province == queryDto.Pronvice);
var newscore = queryDto.Score - 1;
var tmpquery = await _ScoreLineServices.Query(c => c.Score == newscore.ToString() && c.Province == queryDto.Pronvice);
query.ForEach(a =>
{
var newsuminfo = tmpquery.FirstOrDefault(a => a.Years == a.Years);
response.Add(new SameScoreLineDataDto() //1.先计算分数对应的位次,
{ //2.再通过位次反向匹配,前面三年的分数
Count = a.Count,
Score = a.Score, var biaozhun = await _ScoreLineServices.Query(c => (c.Score == queryDto.Score.ToString() || c.Score == (queryDto.Score - 1).ToString()) && c.Province == queryDto.Pronvice && c.Years == queryDto.Years);
SumCount = a.SumCount, var lines = biaozhun.Select(s => s.SumCount).ToArray();
Years = a.Years, var query = await _ScoreLineServices.Query(c => SqlFunc.Between(c.SumCount, lines.Min(), lines.Max()) && c.Province == queryDto.Pronvice);
Type = a.Type, //var newscore = queryDto.Score - 1;
ScoreRegion = newsuminfo.SumCount + "~" + a.SumCount //var tmpquery = await _ScoreLineServices.Query(c => c.Score == newscore.ToString() && c.Province == queryDto.Pronvice);
}); //query.ForEach(a =>
}); //{
// // var newsuminfo = tmpquery.FirstOrDefault(a => a.Years == a.Years);
// response.Add(new SameScoreLineDataDto()
// {
// Count = a.Count,
// Score = a.Score,
// SumCount = a.SumCount,
// Years = a.Years,
// Type = a.Type,
// ScoreRegion = newsuminfo.SumCount + "~" + a.SumCount
// });
//});
response = query.GroupBy(g => new SameScoreLineDataDto { Years = g.Years, Type = g.Type }).Select(c => new SameScoreLineDataDto()
{
Score = query.Where(e => e.Years == c.Key.Years && e.Type == c.Key.Type).Max(e => e.Score),
ScoreRegion = query.Where(e => e.Years == c.Key.Years && e.Type == c.Key.Type).Min(e => e.SumCount) + "~" + query.Where(e => e.Years == c.Key.Years && e.Type == c.Key.Type).Max(e => e.SumCount),
Years = c.Key.Years,
Type = c.Key.Type
}).DistinctBy(c => c.Years).ToList();
return new MessageModel<List<SameScoreLineDataDto>>() return new MessageModel<List<SameScoreLineDataDto>>()
{ {
msg = "ok", msg = "ok",