NewGaoKaoApi/New_College.Services/D_PlanMajorDescProServices.cs

92 lines
3.3 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;
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;
using New_College.Model.ViewModels;
using SqlSugar;
using System.Linq.Expressions;
using System;
using System.Data.Entity.Core.Common.CommandTrees;
using System.Linq;
using New_College.IRepository;
using New_College.Common;
namespace New_College.Services
{
public class D_PlanMajorDescProServices : BaseServices<D_PlanMajorDescPro>, ID_PlanMajorDescProServices
{
private readonly IBaseRepository<D_PlanMajorDescPro> _dal;
private readonly ID_PlanMajorDescProRepository d_PlanMajorDescProRepository;
public D_PlanMajorDescProServices(IBaseRepository<D_PlanMajorDescPro> dal, ID_PlanMajorDescProRepository d_PlanMajorDescPro)
{
this._dal = dal;
base.BaseDal = dal;
d_PlanMajorDescProRepository = d_PlanMajorDescPro;
}
/// <summary>
///
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task<MajorPlanProView> GetMajorPlanPro(MajorPlanProViewQuery request)
{
request.Year = request.Year > 2024 ? 2024 : request.Year;
var majorview = new MajorPlanProView();
Expression<Func<D_PlanMajorDescPro, bool>> expression = Expressionable.Create<D_PlanMajorDescPro>()
.And(c => c.UId == request.UId)
.And(c => c.Location == request.Location)
.AndIF(!string.IsNullOrWhiteSpace(request.BatchName), c => c.BatchName == request.BatchName)
.And(c => c.Years == request.Year)
.ToExpression();
var query = await _dal.Query(expression);
if (query.Any())
{
var view = query.FirstOrDefault();
majorview.UId = view.UId;
majorview.UniversityName = view.Location;
majorview.UniversityCode = UniversityCodeConvertRules.UniversityCodeConvertRulesMap(view.EnrollmentCode);
majorview.collegeCode = view.EnrollmentCode;
majorview.itemViews = query.Select(c => new MajorPlanProItemView()
{
BatchName = c.BatchName,
fee = c.Free,
Major = c.Major,
MajorCode = c.MajorCode,
MajorGroup = c.MajorGroup,
MajorRemark = c.Remark,
planCount = c.PlanCount,
NewCount = c.NewCount,
OldPlanCount = c.PlanCount + c.NewCount,
SubjectClam = c.SelectSubject,
Years = c.Years,
OldYears = c.Years - 1,
AcademicYear = c.AcademicYear
}).ToList();
}
return majorview;
}
/// <summary>
///
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task<PageModel<UniversityPlanProView>> GetUniversityPlanPro(UniversityProViewQuery request)
{
return await d_PlanMajorDescProRepository.GetUniversityPlanPro(request);
}
}
}