/*********************************************************************** * Project: CoreCms * ProjectName: 百分兵法管理系统 * Web: hhtp://chuanyin.com * Author: * Email: * CreateTime: 202403/02 * Description: 暂无 ***********************************************************************/ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using CoreCms.Net.IServices; using CoreCms.Net.Model.Entities; using CoreCms.Net.Model.Entities.Expression; using CoreCms.Net.Model.FromBody; using CoreCms.Net.Model.ViewModels.UI; using Microsoft.AspNetCore.Mvc; using SqlSugar; namespace CoreCms.Net.Web.WebApi.Controllers { /// /// 文章api控制器 /// [Route("api/[controller]/[action]")] [ApiController] public class ArticleController : ControllerBase { private readonly ICoreCmsArticleServices _articleServices; private readonly ICoreCmsArticleTypeServices _articleTypeServices; /// /// 构造函数 /// /// /// public ArticleController(ICoreCmsArticleServices articleServices, ICoreCmsArticleTypeServices articleTypeServices) { _articleServices = articleServices; _articleTypeServices = articleTypeServices; } #region 获取通知列表 /// /// 获取通知列表 /// /// [HttpPost] public async Task NoticeList([FromBody] FMPageByIntId entity) { var jm = new WebApiCallBack(); var list = await _articleServices.QueryPageAsync(p => p.isDel == false, p => p.createTime, OrderByType.Desc, entity.page, entity.limit); jm.status = true; jm.data = list; return jm; } #endregion #region 获取文章栏目 /// /// 获取文章列表 /// /// [HttpPost] public async Task GetArticleClassify() { var jm = new WebApiCallBack { status = true, data = await _articleTypeServices.QueryListByClauseAsync(p => p.id > 0, p => p.sort, OrderByType.Desc, true, true) }; return jm; } #endregion #region 获取最新文章 /// /// 获取最新文章 /// /// [HttpPost] public async Task GetNewArticle([FromBody] FMGetNewArticle entity) { var jm = new WebApiCallBack { status = true, data = await _articleServices.QueryListAsync(p => p.isPub == true, p => p.createTime, OrderByType.Desc, entity.num) }; return jm; } #endregion #region 获取文章列表 /// /// 获取文章列表 /// /// [HttpPost] public async Task GetArticleList([FromBody] FMPageByIntId entity) { var jm = new WebApiCallBack(); var articleType = await _articleTypeServices.QueryListByClauseAsync(p => p.id > 0, p => p.sort, OrderByType.Asc, true, true); if (articleType.Any()) { var where = PredicateBuilder.True(); if (entity.id > 0) { where = where.And(p => p.isDel == false && p.typeId == entity.id); } else { var typeId = articleType.FirstOrDefault()!.id; where = where.And(p => p.isDel == false && p.typeId == typeId); } var list = await _articleServices.QueryPageAsync(where, p => p.createTime, OrderByType.Desc, entity.page, entity.limit); jm.data = new { list, articleType, count = list.TotalCount, list.HasNextPage, list.HasPreviousPage, list.TotalPages }; } else { jm.data = new { list = new List(), articleType, count = 0 }; } jm.status = true; return jm; } #endregion #region 获取单个文章内容 /// /// 获取单个文章内容 /// /// /// [HttpPost] public async Task GetArticleDetail([FromBody] FMIntId entity) { var jm = new WebApiCallBack(); var model = await _articleServices.ArticleDetail(entity.id); if (model == null) { jm.msg = "数据获取失败"; return jm; } jm.status = true; jm.data = model; return jm; } #endregion } }