146 lines
7.0 KiB
C#
146 lines
7.0 KiB
C#
|
|
using New_College.IServices;
|
|
using New_College.Model.Models;
|
|
using New_College.Services.BASE;
|
|
using New_College.IRepository.Base;
|
|
using System.Threading.Tasks;
|
|
using New_College.Model.ViewModels;
|
|
using New_College.Model;
|
|
using SqlSugar;
|
|
using System.Linq.Expressions;
|
|
using System;
|
|
using System.Linq;
|
|
|
|
namespace New_College.Services
|
|
{
|
|
|
|
/// <summary>
|
|
/// 填报数据整合
|
|
/// </summary>
|
|
public class D_PlanMajorDescServices : BaseServices<D_PlanMajorDesc>, ID_PlanMajorDescServices
|
|
{
|
|
private readonly IBaseRepository<D_PlanMajorDesc> _dal;
|
|
public D_PlanMajorDescServices(IBaseRepository<D_PlanMajorDesc> dal)
|
|
{
|
|
this._dal = dal;
|
|
base.BaseDal = dal;
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 一键填报招生计划展示
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <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)
|
|
.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, c => SqlFunc.Between(c.LowScore, request.Score - 15, request.Score + 15))
|
|
.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, " order by LowScoreRank desc");
|
|
|
|
var majorarry = query.data.Select(c => c.Major).ToArray();
|
|
var universityarry = query.data.Select(c => c.UniversityName).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.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, c => SqlFunc.Between(c.LowScore, request.Score - 15, request.Score + 15))
|
|
.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(query.data.Any(), c => SqlFunc.ContainsArray(majorarry, c.Major))
|
|
.AndIF(query.data.Any(), c => SqlFunc.ContainsArray(universityarry, c.UniversityName))
|
|
//.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,
|
|
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 = "冲",//还缺冲稳保
|
|
PlanId = c.Id,
|
|
UniversityCode = c.EnrollmentCode,
|
|
MajorCode = c.MajorCode,
|
|
PlanItems = list.Where(e => e.UniversityName.Equals(c.UniversityName) && e.Major.Equals(c.Major) && e.MajorCode.Equals(c.MajorCode)).Select(s => new PlanItem()
|
|
{
|
|
PlanCount = s.PlanCount,
|
|
RankLine = s.LowScoreRank,
|
|
Scoreline = s.LowScore,
|
|
Year = s.AcademicYear
|
|
|
|
}).OrderByDescending(k => k.Year).ToList()
|
|
}).ToList();
|
|
return new PageModel<OneSubmitGoResponse>()
|
|
{
|
|
data = responselist,
|
|
dataCount = query.dataCount,
|
|
page = query.page,
|
|
pageCount = query.pageCount,
|
|
PageSize = query.PageSize
|
|
};
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
} |