You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

151 lines
4.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
*接口编写处...
*如果接口需要做Action的权限验证请在Action上使用属性
*如: [ApiActionPermission("App_News",Enums.ActionPermissionOptions.Search)]
*/
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using System.Linq;
using System.Threading.Tasks;
using VOL.AppManager.IRepositories;
using VOL.AppManager.IServices;
using VOL.Core.Enums;
using VOL.Core.Extensions;
using VOL.Core.Filters;
using VOL.Core.Infrastructure;
using VOL.Entity.DomainModels;
namespace VOL.AppManager.Controllers
{
[Route("api/news")]
public partial class App_NewsController
{
private IApp_NewsRepository _newsRepository { get; set; }
private IApp_NewsService service { get; set; }
[ActivatorUtilitiesConstructor]
public App_NewsController(IApp_NewsRepository newsRepository, IApp_NewsService service)
: base(service)
{
_newsRepository = newsRepository;
}
/// <summary>
/// 生成静态页面
/// </summary>
/// <param name="news"></param>
/// <returns></returns>
[HttpPost, Route("createPage")]
[ApiActionPermission("App_News", ActionPermissionOptions.Add)]
public async Task<IActionResult> CreatePage([FromBody] App_News news)
{
return Json(await Service.CreatePage(news));
}
/// <summary>
/// 设置封面图片
/// </summary>
/// <param name="news"></param>
/// <returns></returns>
[ApiActionPermission("App_News", ActionPermissionOptions.Add)]
[HttpPost, Route("setCover")]
public IActionResult SetCover([FromBody] App_News news, string t1, string t2)
{
return Json(Service.SetCover(news));
}
/// <summary>
/// 设置封面图片
/// </summary>
/// <param name="news"></param>
/// <returns></returns>
[ApiActionPermission("App_News", ActionPermissionOptions.Search)]
[HttpPost, Route("getDemoPageList")]
public async Task<IActionResult> GetDemoPageList()
{
return Json(await Service.GetDemoPageList());
}
[HttpGet, Route("getNav"), AllowAnonymous]
public IActionResult GetNav()
{
var data = DictionaryManager.GetDictionary("news")
?.Sys_DictionaryList
?.Select(c => new { id = c.DicValue, name = c.DicName })
?.ToList();
if (data == null)
{
return Json(new object[] { });
}
return Json(data);
}
/// <summary>
/// 获取uniapp列表数据
/// </summary>
/// <param name="newsType"></param>
/// <returns></returns>
[HttpGet, Route("getList"), AllowAnonymous]
public async Task<IActionResult> GetList(int newsType, int page = 1)
{
var data = await _newsRepository.FindAsIQueryable(c => c.NewsType == newsType)
.OrderByDescending(c => c.CreateDate)
.TakePage(page)
.Select(s => new
{
s.Id,
s.ImageUrl,
s.Title,
s.CreateDate,
s.Creator
})
.ToListAsync();
return Json(data);
}
/// <summary>
/// 获取uniapp首页数据
/// </summary>
/// <param name="newsType"></param>
/// <returns></returns>
[HttpGet, Route("getHomeList"), AllowAnonymous]
public async Task<IActionResult> GetHomeList()
{
var data = await _newsRepository.FindAsIQueryable(c => true)
.OrderByDescending(c => c.CreateDate)
.Take(10)
.Select(s => new
{
s.Id,
s.ImageUrl,
s.Title,
s.CreateDate,
s.Creator
})
.ToListAsync();
return Json(data);
}
/// <summary>
/// 获取uniapp详细数据
/// </summary>
/// <param name="newsType"></param>
/// <returns></returns>
[HttpGet, Route("getDetail"), AllowAnonymous]
public async Task<IActionResult> GetDetail(int id)
{
var data = await _newsRepository.FindAsIQueryable(c => c.Id == id)
.Select(s => new
{
s.Id,
s.Title,
s.Content,
s.CreateDate,
s.Creator
})
.FirstOrDefaultAsync();
return Json(data);
}
}
}