using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using New_College.IServices; using New_College.Model; using New_College.Model.Request; using New_College.Model.ViewModels; namespace New_College.Api.Controllers.Front { [Route("api/front/[controller]/[action]")] [ApiController] public class NewsInfoController : ControllerBase { private readonly ID_NewsCategoryServices iD_NewsCategory; private readonly ID_NewsInfoServices d_NewsInfo; public NewsInfoController(ID_NewsCategoryServices d_NewsCategoryServices, ID_NewsInfoServices d_NewsInfoServices) { this.iD_NewsCategory = d_NewsCategoryServices; this.d_NewsInfo = d_NewsInfoServices; } /// /// 获取top多少的新闻 /// /// /// [HttpGet] public async Task>> GetTopNews([FromQuery] NewsRequest request) { try { var list = new List(); var query = (await d_NewsInfo.Query(e => e.IsDelete == false && e.CategoryId == request.CategoryId)).Take(request.Top).OrderByDescending(s => s.CreateTime); list = query.Select(s => new NewsInfoResponse { CoverImg = s.CoverImg, CreateTime = s.CreateTime.Value, Id = s.Id, Title = s.Title }).ToList(); return new MessageModel>() { msg = "success", success = true, response = list }; } catch (Exception ex) { return new MessageModel>() { msg = ex.Message }; } } /// /// 根据Id 获取新闻详情 /// /// /// [HttpGet] public async Task> GetDetail([FromQuery] NewsDetailRequest request) { try { var result = new NewsDetailInfoResponse(); var single = await d_NewsInfo.QueryById(request.Id); result.Author = single.Author; result.Click = single.Click; result.CoverImg = single.CoverImg; result.CreateTime = single.CreateTime.Value; result.Id = single.Id; result.Summary = single.Summary; result.Title = single.Title; result.Detail = single.Detail; return new MessageModel() { msg = "success", response = result, success = true }; } catch (Exception ex) { return new MessageModel() { msg = ex.Message }; } } } }