using AutoMapper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Yi.Framework.Common.Models;
using Yi.Framework.DTOModel.Vo;
using Yi.Framework.Interface;
using Yi.Framework.Model.Models;
using Yi.Framework.Repository;
using Yi.Framework.WebCore;
using Yi.Framework.WebCore.AttributeExtend;
using Yi.Framework.WebCore.AuthorizationPolicy;
namespace Yi.Framework.ApiMicroservice.Controllers
{
///
/// 文章控制器
///
[ApiController]
[Route("api/[controller]/[action]")]
public class ArticleController : BaseSimpleCrudController
{
private IArticleService _iArticleService;
private IMapper _mapper;
public ArticleController(ILogger logger, IArticleService iArticleService, IMapper mapper) : base(logger, iArticleService)
{
_iArticleService = iArticleService;
_mapper = mapper;
}
///
/// 动态条件分页查询
///
///
///
///
[HttpGet]
public async Task PageList([FromQuery] ArticleEntity entity, [FromQuery] PageParModel page)
{
var pageData = await _iArticleService.SelctPageList(entity, page);
return Result.Success().SetData(new PageModel() { Data = _mapper.Map>(pageData.Data), Total = pageData.Total });
}
///
/// 添加
///
///
///
public override Task Add(ArticleEntity entity)
{
//如果标题为空,默认为内容的前20个字符
entity.Title = string.IsNullOrEmpty(entity.Title) ?
(entity.Content?.Length > 20 ? entity.Content.Substring(0, 20) : entity.Content) :
entity.Title;
entity.UserId = HttpContext.GetUserIdInfo();
return base.Add(entity);
}
}
}