144 lines
5.7 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|