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);
}
}
}