using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; using LinqKit; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using New_College.IServices; using New_College.Model; using New_College.Model.Models; using New_College.Model.Request; using New_College.Model.ViewModels; using Newtonsoft.Json; using SqlSugar; namespace New_College.Api.Controllers.Front { /// /// 新高考选科 /// [Route("api/[controller]")] [ApiController] //[Authorize] public class FrontSelectionController : ControllerBase { private readonly ISubjectSelectionServices _selectionServices; public FrontSelectionController(ISubjectSelectionServices subjectSelection) { this._selectionServices = subjectSelection; } /// /// 根据院校和专业名称查询选科组合情况 /// /// /// [HttpGet] public async Task>> GetSubjectSelects([FromQuery] SelectionServiceRequest request) { try { Expression> exp = Expressionable.Create() //创建表达式 .AndIF(!string.IsNullOrEmpty(request.UniversityName), w => SqlFunc.ContainsArray(JsonConvert.DeserializeObject>(request.UniversityName), w.UniversityName)) .AndIF(!string.IsNullOrEmpty(request.MajorName), w => SqlFunc.ContainsArray(JsonConvert.DeserializeObject>(request.MajorName), w.MajorName)) .AndIF(!string.IsNullOrWhiteSpace(request.Location), w => w.Equals(request.Location)) .AndIF(request.Years > 0, w => w.Year == request.Years) .ToExpression();//注意 这一句 不能少 var subjectlist = await _selectionServices.QueryPage(exp, request.PageIndex, request.PageSize); return new MessageModel>() { msg = "success", response = subjectlist, success = true }; } catch (Exception ex) { return new MessageModel>() { msg = ex.Message }; } } } }