NewGaoKaoApi/New_College.Api/Controllers/Front/UniversityRankController.cs

102 lines
3.4 KiB
C#

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using New_College.IRepository;
using New_College.IServices;
using New_College.Model.ViewModels;
using New_College.Model;
using System.Threading.Tasks;
using AutoMapper.Configuration.Conventions;
using System.Collections.Generic;
using Microsoft.Graph;
using System;
using System.Linq;
using SqlSugar;
using New_College.Common.Helper;
using NPOI.OpenXmlFormats.Spreadsheet;
namespace New_College.Api.Controllers
{
/// <summary>
/// 学校排名
/// </summary>
[Route("api/front/[controller]/[action]")]
[ApiController]
public class UniversityRankController : ControllerBase
{
private readonly ID_UniversityRankRepository _UniversityRankRepository;
private readonly ID_UniversityServices _UniversityServices;
public UniversityRankController(ID_UniversityRankRepository d_UniversityRankRepository, ID_UniversityServices universityServices)
{
_UniversityRankRepository = d_UniversityRankRepository;
_UniversityServices = universityServices;
}
/// <summary>
/// 获取学校各类型排名情况
/// </summary>
/// <param name="single"></param>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<List<SingleUniversityResponseView>>> Single([FromQuery] SingleUniversityRequestView single)
{
if (string.IsNullOrWhiteSpace(single.UniversityName))
{
return new MessageModel<List<SingleUniversityResponseView>>()
{
msg = "fail",
success = false,
status = 200
};
}
string years = (DateTime.Now.Year - 1).ToString();
var query = await _UniversityRankRepository.Query(c => c.Year == years && c.UniversityName == single.UniversityName);
return new MessageModel<List<SingleUniversityResponseView>>()
{
response = query.Select(c => new SingleUniversityResponseView()
{
Rank = c.Rank.ToString(),
Type = c.UniversityType
}).ToList(),
status = 200,
success = true,
msg = "ok"
};
// return await iD_LongIdMapServices.GetRequestEnrollmentinproductionDetailResult(query);
}
/// <summary>
/// 获取院校下拉接口
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<dynamic>> GetUniversitySelect()
{
var query = (await _UniversityServices.Query(e => e.IsDelete == false)).Select(c => new UniversityTreeDto { id = c.Id, name = c.Name.Trim(), url = c.Logo, checkd = false, FirstWord = GetFirstLetterHelper.GetFirstLetterOfChinese(c.Name) }).ToList();
var str = "ABCDEFGHJKLMNOPQRSTWXYZ";
var list = new List<dynamic>();
for (int i = 0; i < str.Length; i++)
{
if (query.Any(e => e.FirstWord == str[i].ToString()))
{
list.Add(query.Where(e => e.FirstWord == str[i].ToString()).ToList());
}
}
return new MessageModel<dynamic>()
{
response = list,
success = true,
msg = "ok"
};
}
}
}