209 lines
7.7 KiB
C#
209 lines
7.7 KiB
C#
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Quartz;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using VOL.Business.IServices;
|
|
using VOL.Business.IServices.School;
|
|
using VOL.Business.Services;
|
|
using VOL.Business.Services.Norm;
|
|
using VOL.Business.Services.School;
|
|
using VOL.Core.Filters;
|
|
using VOL.Core.ManageUser;
|
|
using VOL.Core.Utilities;
|
|
using VOL.Model;
|
|
using VOL.Model.Norm.Request;
|
|
using VOL.Model.Norm.Response;
|
|
using VOL.WebApi.HostedService;
|
|
|
|
namespace VOL.WebApi.Controllers.Business
|
|
{
|
|
/// <summary>
|
|
/// 赛事管理
|
|
/// </summary>
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
[ApiExplorerSettings(GroupName = "v3")]
|
|
//[TypeFilter(typeof(CustomApiResponseFilter))]
|
|
public class ActivitiesController : ControllerBase
|
|
{
|
|
#region 初始化
|
|
|
|
private readonly IG_ActivitiesService _activitiesService;
|
|
private readonly IServiceProvider _serviceProvider;
|
|
public ActivitiesController(IG_ActivitiesService activitiesService, IServiceProvider serviceProvider)
|
|
{
|
|
_activitiesService = activitiesService;
|
|
_serviceProvider = serviceProvider;
|
|
}
|
|
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 赛事列表
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet(nameof(GetActivitiesPageList))]
|
|
public async Task<PageDataDto<ActivitiesListModel>> GetActivitiesPageList(ActivitiesPageListParam paramDto)
|
|
{
|
|
return await _activitiesService.GetActivitiesPageList(paramDto);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 详情
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
[HttpPost(nameof(GetActivitiesDetails))]
|
|
public async Task<ActivitiesDetailsModel> GetActivitiesDetails(int id)
|
|
{
|
|
return await _activitiesService.GetActivitiesDetails(id);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取项目类型
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet(nameof(GetActivitiesCategoryList))]
|
|
public List<ActivitiesCategoryModel> GetActivitiesCategoryList()
|
|
{
|
|
return _activitiesService.GetActivitiesCategoryList();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 学生详情
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
[HttpPost(nameof(GetActivitiesStudentDetails))]
|
|
public async Task<List<ActivitiesStudentDetailsModel>> GetActivitiesStudentDetails(int classId, int activitiesId)
|
|
{
|
|
return await _activitiesService.GetActivitiesStudentDetails(classId, activitiesId);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 赛事统计列表
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet(nameof(GetActivitiesStatisticsPageList))]
|
|
public async Task<PageDataDto<ActivitiesStatisticsModel>> GetActivitiesStatisticsPageList(ActivitiesStatisticsPageListParam paramDto)
|
|
{
|
|
return await _activitiesService.GetActivitiesStatisticsPageList(paramDto);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 赛事统计详情
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet(nameof(GetActivitiesStatisticsDetails))]
|
|
public async Task<List<ActivitiesStatisticsDetailsModel>> GetActivitiesStatisticsDetails(ActivitiesStatisticsDetailsParam paramDto)
|
|
{
|
|
return await _activitiesService.GetActivitiesStatisticsDetails(paramDto);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 赛事统计详情导出
|
|
/// </summary>
|
|
/// <param name="paramDto"></param>
|
|
/// <returns></returns>
|
|
[HttpGet(nameof(ActivitiesStatisticsDetailsExport))]
|
|
public async Task<ActionResult> ActivitiesStatisticsDetailsExport(ActivitiesStatisticsDetailsParam paramDto)
|
|
{
|
|
var rseList = await _activitiesService.GetActivitiesStatisticsDetails(paramDto);
|
|
|
|
var disList = new Dictionary<string, List<ActivitiesStatisticsDetailsModel>>();
|
|
disList.Add("赛事统计详情列表", rseList);
|
|
|
|
var exportColumns = Tool.GetPropertyNames<ActivitiesStatisticsDetailsModel>();
|
|
|
|
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>
|
|
[HttpPost(nameof(Add))]
|
|
public async Task<ActionResult> Add([FromBody] ActivitiesDetailsParam paramDto)
|
|
{
|
|
var activitiesId = await _activitiesService.AddActivities(paramDto);
|
|
var quartzStartup = _serviceProvider.GetRequiredService<QuartzStartup>();
|
|
await quartzStartup.ScheduleActivityJobs(activitiesId.ToString(), paramDto.StartDate, paramDto.EndDate);
|
|
|
|
return Ok("新增成功");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 更新
|
|
/// </summary>
|
|
/// <param name="paramDto"></param>
|
|
/// <returns></returns>
|
|
[HttpPost(nameof(Modify))]
|
|
public async Task<ActionResult> Modify([FromBody] ActivitiesDetailsParam paramDto)
|
|
{
|
|
await _activitiesService.ModifyActivities(paramDto);
|
|
var quartzStartup = _serviceProvider.GetRequiredService<QuartzStartup>();
|
|
await quartzStartup.UpdateActivityJobs(paramDto.Id.ToString(), paramDto.StartDate, paramDto.EndDate);
|
|
await quartzStartup.ScheduleActivityJobs(paramDto.Id.ToString(), paramDto.StartDate, paramDto.EndDate);
|
|
return Ok("更新成功");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 上传活动照片
|
|
/// </summary>
|
|
/// <param name="file"></param>
|
|
/// <returns></returns>
|
|
[HttpPost(nameof(UploadActivitiesImage))]
|
|
public string UploadActivitiesImage(IFormFile file)
|
|
{
|
|
var url = _activitiesService.UploadActivitiesImage(file);
|
|
|
|
return url;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 批量删除
|
|
/// </summary>
|
|
/// <param name="paramDto"></param>
|
|
/// <returns></returns>
|
|
[HttpPost(nameof(BatchDelete))]
|
|
public async Task<ActionResult> BatchDelete([FromBody] List<int> Ids)
|
|
{
|
|
await _activitiesService.DeleteActivities(Ids);
|
|
return Ok("删除成功");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 导出
|
|
/// </summary>
|
|
/// <param name="paramDto"></param>
|
|
/// <returns></returns>
|
|
[HttpGet(nameof(Export))]
|
|
public async Task<ActionResult> Export(ActivitiesExportParam paramDto)
|
|
{
|
|
var rseList = await _activitiesService.GetActivitiesList(paramDto);
|
|
|
|
var disList = new Dictionary<string, List<ActivitiesListModel>>
|
|
{
|
|
{ "赛事列表", rseList }
|
|
};
|
|
|
|
var exportColumns = Tool.GetPropertyNames<ActivitiesListModel>();
|
|
|
|
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")}");
|
|
}
|
|
}
|
|
}
|