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

99 lines
2.9 KiB
C#

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using VOL.Business.IServices;
using VOL.Business.IServices.Activity;
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.Core.Extensions;
namespace VOL.WebApi.Controllers.Business
{
/// <summary>
/// 公众号文章管理
/// </summary>
[Route("api/[controller]")]
[ApiController]
[ApiExplorerSettings(GroupName = "v3")]
public class ArticlesController : ControllerBase
{
#region
private readonly IG_ArticleService _articleService;
private readonly IServiceProvider _serviceProvider;
public ArticlesController(IG_ArticleService articleService, IServiceProvider serviceProvider)
{
_articleService = articleService;
_serviceProvider = serviceProvider;
}
#endregion
/// <summary>
/// 公众号文章列表
/// </summary>
/// <returns></returns>
[HttpGet(nameof(GetArticlePageList))]
public async Task<PageDataDto<ArticleListModel>> GetArticlePageList(ArticlePageListParam paramDto)
{
return await _articleService.GetArticlePageList(paramDto);
}
/// <summary>
/// 文章详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet(nameof(GetArticleDetails))]
public async Task<ArticleDetailsModel> GetArticleDetails(int id)
{
return await _articleService.GetArticleDetails(id);
}
/// <summary>
/// 新增文章
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost(nameof(AddArticle))]
public async Task<WebResponseContent> AddArticle([FromBody] ArticleAddParam model)
{
return await _articleService.AddArticle(model);
}
/// <summary>
/// 删除文章
/// </summary>
/// <param name="id">文章ID</param>
/// <returns></returns>
[HttpGet(nameof(DeleteArticle))]
public async Task<WebResponseContent> DeleteArticle(int id)
{
return await _articleService.DeleteArticle(id);
}
/// <summary>
/// 上传文章封面图片
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
[HttpPost(nameof(UploadImage))]
public string UploadImage(IFormFile file)
{
var timeStampString = DateTime.Now.ToUnixTimeStamp();
var prefix = $"Upload/Articles/";
var url = ALiYunOss.Upload(file, prefix, timeStampString);
return url;
}
}
}