208 lines
6.6 KiB
C#
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;
|
|
}
|
|
}
|
|
} |