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