2025-06-06 16:55:14 +08:00

208 lines
6.6 KiB
C#

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
{
/// <summary>
/// 热门课程
/// </summary>
[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
/// <summary>
/// 查询课程分类
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
[HttpGet(nameof(GetCourseCategories))]
public async Task<PageDataDto<CourseCategoryDto>> GetCourseCategories([FromQuery] CourseCategoryVo dto)
{
var result = await _curricularService.GetCourseCategories(dto);
return result;
}
/// <summary>
/// 新增课程分类
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
[HttpPost(nameof(AddCourseCategory))]
public async Task<ActionResult> AddCourseCategory([FromBody] CourseCategoryDto dto)
{
await _curricularService.AddCourseCategory(dto);
return Ok("新增成功");
}
/// <summary>
/// 更新课程分类
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
[HttpPost(nameof(UpdateCourseCategory))]
public async Task<ActionResult> UpdateCourseCategory([FromBody] CourseCategoryDto dto)
{
await _curricularService.UpdateCourseCategory(dto);
return Ok("更新成功");
}
/// <summary>
/// 删除课程分类
/// </summary>
/// <param name="categoryId"></param>
/// <returns></returns>
[HttpPost(nameof(DeleteCourseCategory))]
public async Task<ActionResult> DeleteCourseCategory(int categoryId)
{
await _curricularService.DeleteCourseCategory(categoryId);
return Ok("删除成功");
}
/// <summary>
/// 课程列表
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
[HttpGet(nameof(CurricularList))]
public async Task<PageDataDto<CurricularListDto>> CurricularList([FromQuery] CurricularListVo dto)
{
var result = await _curricularService.GetCurricularList(dto);
return result;
}
/// <summary>
/// 新增课程
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
[HttpPost(nameof(AddCurricular))]
public async Task<ActionResult> AddCurricular([FromBody] CurricularAddDto dto)
{
await _curricularService.AddCurricular(dto);
return Ok("新增成功");
}
/// <summary>
/// 获取课程详情
/// </summary>
/// <param name="courseId"></param>
/// <returns></returns>
[HttpGet(nameof(GetCourseDetails))]
public async Task<CurricularAddDto> GetCourseDetails(int courseId)
{
var result = await _curricularService.GetCourseDetails(courseId);
return result;
}
/// <summary>
/// 更新课程
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
[HttpPost(nameof(UpdateCourse))]
public async Task<ActionResult> UpdateCourse([FromBody] CurricularAddDto dto)
{
await _curricularService.UpdateCourse(dto);
return Ok("更新成功");
}
/// <summary>
/// 删除课程
/// </summary>
/// <param name="courseId"></param>
/// <returns></returns>
[HttpPost(nameof(DeleteCourse))]
public async Task<ActionResult> DeleteCourse(int courseId)
{
await _curricularService.DeleteCourse(courseId);
return Ok("删除成功");
}
/// <summary>
/// 热门课程列表
/// </summary>
/// <param name="dto">查询参数</param>
/// <returns>热门课程列表</returns>
[HttpGet(nameof(GetPopularCurricularList))]
public async Task<PageDataDto<PopularCurricularDto>> 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;
}
/// <summary>
/// 添加热门课程
/// </summary>
/// <param name="dto">课程ID列表</param>
/// <returns></returns>
[HttpPost(nameof(AddPopularCurricular))]
public async Task<ActionResult> AddPopularCurricular([FromBody] AddPopularCurricularDto dto)
{
await _curricularService.AddPopularCurricular(dto);
return Ok("添加成功");
}
/// <summary>
/// 删除热门课程
/// </summary>
/// <param name="id">热门课程ID</param>
/// <returns></returns>
[HttpPost(nameof(DeletePopularCurricular))]
public async Task<ActionResult> DeletePopularCurricular(int id)
{
await _curricularService.DeletePopularCurricular(id);
return Ok("删除成功");
}
/// <summary>
/// 上传视频
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
[HttpPost(nameof(UploadVideo))]
public async Task<string> UploadVideo(IFormFile file)
{
var url = await _curricularService.UploadVideo(file);
return url;
}
/// <summary>
/// 封面图片
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
[HttpPost(nameof(UploadImage))]
public string UploadImage(IFormFile file)
{
var url = _curricularService.UploadImage(file);
return url;
}
}
}