using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Threading.Tasks; using VOL.Business.IServices; using VOL.Business.IServices.School; using VOL.Business.Services.School; using VOL.Core.Filters; using VOL.Core.ManageUser; using VOL.Core.Utilities; using VOL.Model; using VOL.Model.School.Request; namespace VOL.WebApi.Controllers.Business { /// /// 年级管理 /// [Route("api/[controller]")] [ApiController] [ApiExplorerSettings(GroupName = "v3")] [TypeFilter(typeof(CustomApiResponseFilter))] public class GradeController : ControllerBase { #region 初始化 private readonly IS_GradeService _gradeService; public GradeController( IS_GradeService gradeService) { _gradeService = gradeService; } #endregion /// /// 获取所有年级名称 /// /// [HttpGet(nameof(GetGradeNames))] public async Task> GetGradeNames() { return await _gradeService.GetGradeNames(); } /// /// 获取所有性质年级名称 /// /// [HttpGet(nameof(GetNatureGradeNames))] public async Task> GetNatureGradeNames() { return await _gradeService.GetNatureGradeNames(); } /// /// 获取年级列表 /// /// [HttpGet(nameof(GetGradeList))] public async Task> GetGradeList() { return await _gradeService.GetGradeList(); } /// /// 获取年级对应项目名称 /// /// /// [HttpGet(nameof(CategoryList))] public async Task> CategoryList(GradeDataStatsParam paramDto) { return await _gradeService.GetCategoryList(paramDto); } /// /// 年级列表导出 /// /// /// [HttpGet(nameof(GradeListExport))] public async Task GradeListExport() { var rseList = await _gradeService.GetGradeList(); var disList = new Dictionary> { { "年级数据", rseList } }; var exportColumns = Tool.GetPropertyNames(); var excelBytes = Tool.ExportToExcel(disList, exportColumns); Response.Headers.Add("Content-Disposition", "attachment; filename=ExportedData.xlsx"); Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; return File(excelBytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $"年级数据_{DateTime.Now.ToString("yyyyMMddHHmmss")}"); } /// /// 年级数据统计 /// /// /// [HttpGet(nameof(GradeWholeDataStats))] public async Task GradeWholeDataStats(GradeDataStatsParam paramDto) { return await _gradeService.GradeWholeDataStats(paramDto); } /// /// 各体测项目等级占比 /// /// /// [HttpGet(nameof(CategoryRankRatio))] public async Task> CategoryRankRatio(CategoryParam paramDto) { return await _gradeService.CategoryRankRatio(paramDto); } /// /// 成绩趋势 /// /// /// [HttpGet(nameof(ResultTrends))] public async Task ResultTrends(GradeResultTrendsParam paramDto) { return await _gradeService.ResultTrends(paramDto); } } }