YD_SmartSports.Api/VOL.WebApi/Controllers/Business/TrainingStudentDataController.cs
2025-06-06 16:00:39 +08:00

144 lines
5.7 KiB
C#

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using VOL.Business.IServices.Training;
using VOL.Business.Services.Training;
using VOL.Core.Filters;
using VOL.Core.Utilities;
using VOL.Model;
namespace VOL.WebApi.Controllers.Business
{
/// <summary>
/// 学生课程训练
/// </summary>
[Route("api/[controller]")]
[ApiController]
[ApiExplorerSettings(GroupName = "v3")]
[TypeFilter(typeof(CustomApiResponseFilter))]
public class TrainingStudentDataController : ControllerBase
{
#region
private readonly II_TrainingStudentDataService _trainingStudentDataService;
public TrainingStudentDataController(
II_TrainingStudentDataService trainingStudentDataService)
{
_trainingStudentDataService = trainingStudentDataService;
}
#endregion
/// <summary>
/// 获取达标率
/// </summary>
/// <returns></returns>
[HttpGet(nameof(GetAttainmentRate))]
public async Task<List<AttainmentRateModel>> GetAttainmentRate(TrainingDataParam paramDto)
{
return await _trainingStudentDataService.GetAttainmentRate(paramDto);
}
/// <summary>
/// 年级分数比例
/// </summary>
/// <returns></returns>
[HttpGet(nameof(GetScoreProportion))]
public async Task<List<ScoreProportionModel>> GetScoreProportion(TrainingDataParam paramDto)
{
return await _trainingStudentDataService.GetScoreProportion(paramDto);
}
/// <summary>
/// 项目训练学生列表
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
[HttpGet(nameof(GetItemTrainingStudentDataList))]
public async Task<List<ItemTrainingStudentDataListModel>> GetItemTrainingStudentDataList(ItemTrainingStudentDataListParam paramDto)
{
return await _trainingStudentDataService.GetItemTrainingStudentDataList(paramDto);
}
/// <summary>
/// 项目训练学生列表导出
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
[HttpGet(nameof(ItemTrainingStudentDataExport))]
public async Task<ActionResult> ItemTrainingStudentDataExport(ItemTrainingStudentDataListParam paramDto)
{
var rseList = await _trainingStudentDataService.GetItemTrainingStudentDataList(paramDto);
var disList = new Dictionary<string, List<ItemTrainingStudentDataListModel>>();
disList.Add("项目训练学生列表", rseList);
var exportColumns = Tool.GetPropertyNames<ItemTrainingStudentDataListModel>();
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")}");
}
/// <summary>
/// 训练学生详情
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
[HttpGet(nameof(GetTrainingStudentData))]
public async Task<TrainingStudentDataModel> GetTrainingStudentData(TrainingStudentDataParam paramDto)
{
return await _trainingStudentDataService.GetTrainingStudentData(paramDto);
}
/// <summary>
/// 项目训练学生详情列表
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
[HttpGet(nameof(GetTrainingStudentDataList))]
public async Task<List<TrainingStudentDataListModel>> GetTrainingStudentDataList(TrainingStudentDataListParam paramDto)
{
return await _trainingStudentDataService.GetTrainingStudentDataList(paramDto);
}
/// <summary>
/// 项目训练学生详情列表导出
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
[HttpGet(nameof(TrainingStudentDataExport))]
public async Task<ActionResult> TrainingStudentDataExport(TrainingStudentDataListParam paramDto)
{
var rseList = await _trainingStudentDataService.GetTrainingStudentDataList(paramDto);
var disList = new Dictionary<string, List<TrainingStudentDataListModel>>();
disList.Add("项目训练学生列表", rseList);
var exportColumns = Tool.GetPropertyNames<TrainingStudentDataListModel>();
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")}");
}
/// <summary>
/// 训练学生趋势列表
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
[HttpGet(nameof(GetTrainingStudentDataTrendList))]
public async Task<List<TrainingStudentDataTrendModel>> GetTrainingStudentDataTrendList(TrainingStudentDataTrendListParam paramDto)
{
return await _trainingStudentDataService.GetTrainingStudentDataTrendList(paramDto);
}
}
}