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.Services; using VOL.Core.Filters; using VOL.Core.Utilities; using VOL.Model; using VOL.WebApi.Filter; namespace VOL.WebApi.Controllers.Business { /// /// 热门课程 /// [Route("api/[controller]")] [ApiController] [ApiExplorerSettings(GroupName = "v3")] [TypeFilter(typeof(CustomApiResponseFilter))] public class CurricularController : ControllerBase { #region 初始化 private readonly ICurricularService _curricularService; public CurricularController( ICurricularService curricularService) { _curricularService = curricularService; } #endregion /// /// 查询课程分类 /// /// /// [HttpGet(nameof(GetCourseCategories))] public async Task> GetCourseCategories([FromQuery] CourseCategoryVo dto) { var result = await _curricularService.GetCourseCategories(dto); return result; } /// /// 新增课程分类 /// /// /// [HttpPost(nameof(AddCourseCategory))] public async Task AddCourseCategory([FromBody] CourseCategoryDto dto) { await _curricularService.AddCourseCategory(dto); return Ok("新增成功"); } /// /// 更新课程分类 /// /// /// [HttpPost(nameof(UpdateCourseCategory))] public async Task UpdateCourseCategory([FromBody] CourseCategoryDto dto) { await _curricularService.UpdateCourseCategory(dto); return Ok("更新成功"); } /// /// 删除课程分类 /// /// /// [HttpPost(nameof(DeleteCourseCategory))] public async Task DeleteCourseCategory(int categoryId) { await _curricularService.DeleteCourseCategory(categoryId); return Ok("删除成功"); } /// /// 课程列表 /// /// /// [HttpGet(nameof(CurricularList))] public async Task> CurricularList([FromQuery] CurricularListVo dto) { var result = await _curricularService.GetCurricularList(dto); return result; } /// /// 新增课程 /// /// /// [HttpPost(nameof(AddCurricular))] public async Task AddCurricular([FromBody] CurricularAddDto dto) { await _curricularService.AddCurricular(dto); return Ok("新增成功"); } /// /// 获取课程详情 /// /// /// [HttpGet(nameof(GetCourseDetails))] public async Task GetCourseDetails(int courseId) { var result = await _curricularService.GetCourseDetails(courseId); return result; } /// /// 更新课程 /// /// /// [HttpPost(nameof(UpdateCourse))] public async Task UpdateCourse([FromBody] CurricularAddDto dto) { await _curricularService.UpdateCourse(dto); return Ok("更新成功"); } /// /// 删除课程 /// /// /// [HttpPost(nameof(DeleteCourse))] public async Task DeleteCourse(int courseId) { await _curricularService.DeleteCourse(courseId); return Ok("删除成功"); } /// /// 热门课程列表 /// /// 查询参数 /// 热门课程列表 [HttpGet(nameof(GetPopularCurricularList))] public async Task> GetPopularCurricularList([FromQuery] PopularCurricularVo dto) { // 验证展示数量至少为2 if (dto.DisplayMode == "自动" && dto.DisplayCount.HasValue && dto.DisplayCount.Value < 2) { throw new Exception("最少展示2节课程"); } var result = await _curricularService.GetPopularCurricularList(dto); return result; } /// /// 添加热门课程 /// /// 课程ID列表 /// [HttpPost(nameof(AddPopularCurricular))] public async Task AddPopularCurricular([FromBody] AddPopularCurricularDto dto) { await _curricularService.AddPopularCurricular(dto); return Ok("添加成功"); } /// /// 删除热门课程 /// /// 热门课程ID /// [HttpPost(nameof(DeletePopularCurricular))] public async Task DeletePopularCurricular(int id) { await _curricularService.DeletePopularCurricular(id); return Ok("删除成功"); } /// /// 上传视频 /// /// /// [HttpPost(nameof(UploadVideo))] public async Task UploadVideo(IFormFile file) { var url = await _curricularService.UploadVideo(file); return url; } /// /// 封面图片 /// /// /// [HttpPost(nameof(UploadImage))] public string UploadImage(IFormFile file) { var url = _curricularService.UploadImage(file); return url; } } }