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