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; } /// /// 获取新闻分类 /// /// [HttpGet] public async Task>> GetNewsCategory() { return new MessageModel>() { msg = "ok", success = true, response = (await iD_NewsCategory.Query(c => c.IsDelete == false)).Select(c => new NewsClassCategoryResponse() { Sort = c.OrderSort, CategoryName = c.CategoryName, Id = c.Id }).OrderBy(c => c.Sort).ToList(), }; } /// /// 获取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 && e.ProvinceCode == request.provinceCode, " CreateTime desc")).Take(request.Top).OrderByDescending(s => s.Id); list = query.Select(s => new NewsInfoResponse { CoverImg = s.CoverImg, CreateTime = s.CreateTime.Value, Source = s.Author, Id = s.Id, Title = s.Title, Summary = s.Summary, }).ToList(); return new MessageModel>() { msg = "success", success = true, response = list }; } catch (Exception ex) { return new MessageModel>() { msg = ex.Message }; } } /// /// 所有新闻列表带分页 /// /// /// [HttpGet] public async Task>> GetPageNews([FromQuery] NewsPageRequest request) { var pageresponse = new PageModel(); try { /// var pageinfo = await d_NewsInfo.QueryPage(w => w.CategoryId == request.CategoryId && w.ProvinceCode == request.provinceCode, request.PageIndex, request.PageSize, "CreateTime desc"); if (pageinfo.data.Any()) { pageresponse.data = pageinfo.data.Select(s => new NewsInfoResponse() { CoverImg = s.CoverImg, CreateTime = s.CreateTime.Value, Id = s.Id, Summary = !string.IsNullOrWhiteSpace(s.Summary) ? s.Summary : s.Detail.Substring(0, 200) + "...", Title = s.Title, Source = s.Author }).ToList(); pageresponse.pageCount = pageinfo.pageCount; pageresponse.page = pageinfo.page; pageresponse.dataCount = pageinfo.dataCount; pageresponse.PageSize = pageinfo.PageSize; pageresponse.pageCount = pageinfo.pageCount; } return new MessageModel>() { msg = "success", response = pageresponse, success = true }; } catch (Exception ex) { return new MessageModel>() { msg = "fail", success = false }; } } /// /// 根据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 }; } } } }