178 lines
6.1 KiB
C#
178 lines
6.1 KiB
C#
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;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 获取新闻分类
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<List<NewsClassCategoryResponse>>> GetNewsCategory()
|
|
{
|
|
|
|
|
|
return new MessageModel<List<NewsClassCategoryResponse>>()
|
|
{
|
|
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(),
|
|
};
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 获取top多少的新闻
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<List<NewsInfoResponse>>> GetTopNews([FromQuery] NewsRequest request)
|
|
{
|
|
try
|
|
{
|
|
var list = new List<NewsInfoResponse>();
|
|
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<List<NewsInfoResponse>>()
|
|
{
|
|
msg = "success",
|
|
success = true,
|
|
response = list
|
|
};
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return new MessageModel<List<NewsInfoResponse>>()
|
|
{
|
|
msg = ex.Message
|
|
|
|
};
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 所有新闻列表带分页
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<PageModel<NewsInfoResponse>>> GetPageNews([FromQuery] NewsPageRequest request)
|
|
{
|
|
var pageresponse = new PageModel<NewsInfoResponse>();
|
|
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<PageModel<NewsInfoResponse>>()
|
|
{
|
|
msg = "success",
|
|
response = pageresponse,
|
|
success = true
|
|
};
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return new MessageModel<PageModel<NewsInfoResponse>>()
|
|
{
|
|
msg = "fail",
|
|
success = false
|
|
};
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 根据Id 获取新闻详情
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<NewsDetailInfoResponse>> 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<NewsDetailInfoResponse>()
|
|
{
|
|
msg = "success",
|
|
response = result,
|
|
success = true
|
|
};
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return new MessageModel<NewsDetailInfoResponse>()
|
|
{
|
|
msg = ex.Message
|
|
};
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|