using Microsoft.AspNetCore.Mvc;
using ZR.Model.Content;
using ZR.Model.Content.Dto;
using ZR.Service.Content.IService;
namespace ZR.Admin.WebApi.Controllers
{
///
/// 内容管理
///
[Route("article")]
[ApiExplorerSettings(GroupName = "article")]
public class ArticleController : BaseController
{
///
/// 文章接口
///
private readonly IArticleService _ArticleService;
private readonly IArticleCategoryService _ArticleCategoryService;
public ArticleController(
IArticleService ArticleService,
IArticleCategoryService articleCategoryService)
{
_ArticleService = ArticleService;
_ArticleCategoryService = articleCategoryService;
_ArticleService = ArticleService;
}
///
/// 查询文章列表
///
///
[HttpGet("list")]
[ActionPermissionFilter(Permission = "system:article:list")]
public IActionResult Query([FromQuery] ArticleQueryDto parm)
{
var response = _ArticleService.GetList(parm);
return SUCCESS(response);
}
///
/// 内容批量审核通过
///
///
[HttpPut("pass/{ids}")]
[ActionPermissionFilter(Permission = "article:audit")]
[Log(Title = "内容审核", BusinessType = BusinessType.UPDATE)]
public IActionResult PassedMonents(string ids)
{
long[] idsArr = Tools.SpitLongArrary(ids);
if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"审核通过失败Id 不能为空")); }
return ToResponse(_ArticleService.Passed(idsArr));
}
///
/// 内容批量审核拒绝
///
///
[HttpPut("reject/{ids}")]
[ActionPermissionFilter(Permission = "article:audit")]
[Log(Title = "内容审核", BusinessType = BusinessType.UPDATE)]
public IActionResult RejectMonents(string ids, string reason = "")
{
long[] idsArr = Tools.SpitLongArrary(ids);
if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"審核拒绝失败Id 不能为空")); }
int result = _ArticleService.Reject(reason, idsArr);
return ToResponse(result);
}
///
/// 查询我的文章列表
///
///
[HttpGet("mylist")]
public IActionResult QueryMyList([FromQuery] ArticleQueryDto parm)
{
parm.UserId = HttpContext.GetUId();
var response = _ArticleService.GetMyList(parm);
return SUCCESS(response);
}
///
/// 查询文章详情
///
///
///
[HttpGet("{id}")]
public IActionResult Get(int id)
{
long userId = HttpContext.GetUId();
var model = _ArticleService.GetArticle(id, userId);
ApiResult apiResult = ApiResult.Success(model);
return ToResponse(apiResult);
}
///
/// 发布文章
///
///
[HttpPost("add")]
[ActionPermissionFilter(Permission = "system:article:add")]
//[Log(Title = "发布文章", BusinessType = BusinessType.INSERT)]
public IActionResult Publish([FromBody] ArticleDto parm)
{
var addModel = parm.Adapt().ToCreate(context: HttpContext);
return SUCCESS(_ArticleService.PublishArticle(addModel));
}
///
/// 更新文章
///
///
[HttpPut("edit")]
[ActionPermissionFilter(Permission = "system:article:update")]
//[Log(Title = "文章修改", BusinessType = BusinessType.UPDATE)]
public IActionResult Update([FromBody] ArticleDto parm)
{
parm.AuthorName = HttpContext.GetName();
var modal = parm.Adapt().ToUpdate(HttpContext);
var response = _ArticleService.UpdateArticle(modal);
return SUCCESS(response);
}
///
/// 置顶
///
///
[HttpPut("top")]
[ActionPermissionFilter(Permission = "system:article:update")]
[Log(Title = "置顶文章", BusinessType = BusinessType.UPDATE)]
public IActionResult Top([FromBody] Article parm)
{
var response = _ArticleService.TopArticle(parm);
return SUCCESS(response);
}
///
/// 是否公开
///
///
[HttpPut("changePublic")]
[ActionPermissionFilter(Permission = "system:article:update")]
[Log(Title = "是否公开", BusinessType = BusinessType.UPDATE)]
public IActionResult ChangePublic([FromBody] Article parm)
{
var response = _ArticleService.ChangeArticlePublic(parm);
return SUCCESS(response);
}
///
/// 删除文章
///
///
[HttpDelete("{id}")]
[ActionPermissionFilter(Permission = "system:article:delete")]
[Log(Title = "文章删除", BusinessType = BusinessType.DELETE)]
public IActionResult Delete(int id = 0)
{
var response = _ArticleService.Delete(id);
return SUCCESS(response);
}
}
}