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 ClassController : ControllerBase { #region 初始化 private readonly IS_ClassService _classService; public ClassController( IS_ClassService classService) { _classService = classService; } #endregion /// /// 获取年级Id获取所有的班级 /// /// [HttpGet(nameof(GetClassNames))] public async Task> GetClassNames(int gradeId) { return await _classService.GetClassNames(gradeId); } /// /// 分页获取班级列表 /// /// [HttpGet(nameof(GetClassPageList))] public async Task> GetClassPageList(ClassPageListParam paramDto) { return await _classService.GetClassPageList(paramDto); } /// /// 详情 /// /// /// [HttpGet(nameof(GetClassDetails))] public async Task GetClassDetails(int classId) { return await _classService.GetClassDetails(classId); } /// /// 新增 /// /// /// [HttpPost(nameof(AddClass))] public async Task AddClass([FromBody] AddClassParam paramDto) { await _classService.AddClass(paramDto); return Ok("新增成功"); } /// /// 批量新增 /// /// /// [HttpPost(nameof(BatchAddClass))] public async Task BatchAddClass([FromBody] BatchAddClassParam paramDto) { await _classService.BatchAddClass(paramDto); return Ok("新增成功"); } /// /// 更新 /// /// /// [HttpPost(nameof(ModifyClass))] public async Task ModifyClass([FromBody] ModifyClassParam paramDto) { await _classService.ModifyClass(paramDto); return Ok("更新成功"); } /// /// 班级列表导出 /// /// /// [HttpGet(nameof(ClassListExport))] public async Task ClassListExport(ClassPageListExportParam paramDto) { var rseList = await _classService.GetClassList(paramDto); 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(ClassWholeDataStats))] public async Task ClassWholeDataStats(ClassDataStatsParam paramDto) { return await _classService.ClassWholeDataStats(paramDto); } /// /// 班级体侧等级占比人数 /// /// /// [HttpGet(nameof(TestResultRankRate))] public async Task TestResultRankRate(ClassResultRankRate paramDto) { return await _classService.TestResultRankRate(paramDto); } /// /// 各体测项目等级占比 /// /// /// [HttpGet(nameof(CategoryRankRatio))] public async Task> CategoryRankRatio(CategoryParam paramDto) { return await _classService.CategoryRankRatio(paramDto); } /// /// 成绩趋势 /// /// /// [HttpGet(nameof(ResultTrends))] public async Task ResultTrends(ClassResultTrendsParam paramDto) { return await _classService.ResultTrends(paramDto); } } }