using Nirvana.Common;
using Nirvana.Common.ApiBase;
using Nirvana.Data;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using YBDevice.Entity;
namespace YBDevice.NApi.DBServices
{
///
/// 科普资讯、轮播图、开屏广告管理
///
public partial class InfoApp : BaseApp
{
///
/// 科普资讯列表
///
///
///
public async Task> GetInfoListAsync(ParamQuery param)
{
RefAsync totalnum = 0;
using (var dbClient = ReadDbContext.GetInstance())
{
var temquery = dbClient.Queryable().Where(x => x.Status == 1);
if (!string.IsNullOrEmpty(param.keyword))
{
int tagid = param.keyword.ToInt();
if (tagid > 0)
{
temquery = temquery.Where(x => x.TagId == tagid);
}
}
string sorts = string.Format("{0} {1}", param.sort, param.order);
var query = await temquery.OrderBy(sorts)
.Select(x => new SecInfoApiListModel
{
Id = x.Id,
Title = x.Title,
HeadImg = x.HeadImg,
time = x.CreateTime
})
.Mapper((it, cache) =>
{
if (!string.IsNullOrEmpty(it.HeadImg))
{
it.HeadImg = $"{CDNURL}{it.HeadImg}";
}
it.CreateTime = it.time.ToYearDate();
})
.ToPageListAsync(param.page, param.pagesize, totalnum);
return new ParamReturnData
{
page = param.page,
items = query,
totalnum = totalnum,
pagesize = param.pagesize
};
}
}
///
/// 科普资讯详情
///
///
///
public async Task InfoDetailAsync(int id)
{
using (var dbClient = ReadDbContext.GetInstance())
{
var data = await dbClient.Queryable().FirstAsync(x => x.Id == id);
if (data == null)
{
return new ResultInfo(ResultState.FAIL, "记录未找到");
}
//返回内容
var contentdata = await dbClient.Queryable()
.FirstAsync(x => x.InfoId == data.Id);
return new ResultInfo(ResultState.SUCCESS, "success", new AdDetailModel
{
Content = contentdata?.Content,
Title = data.Title,
CreateTime = data.CreateTime.ToYearDate()
});
}
}
///
/// 类型列表
///
///
public async Task GetInfoTagListAsync()
{
using (var dbClient = ReadDbContext.GetInstance())
{
var list = await dbClient.Queryable().Where(x => x.Status == 1).OrderBy(x => x.SortCode, OrderByType.Asc).ToListAsync();
return new ResultInfo(ResultState.SUCCESS, "success", list);
}
}
///
/// 轮播图列表
///
///
///
public async Task> GetBannerListAsync(ParamQuery param)
{
RefAsync totalnum = 0;
using (var dbClient = ReadDbContext.GetInstance())
{
var temquery = dbClient.Queryable().Where(x => x.Status == 1);
string sorts = string.Format("{0} {1}", param.sort, param.order);
var query = await temquery.OrderBy(sorts)
.Select(x => new BannerApiListModel
{
Id = x.Id,
HeadImg = x.HeadImg,
Type = x.Type
})
.Mapper((it, cache) =>
{
it.HeadImg = $"{CDNURL}{it.HeadImg}";
})
.ToPageListAsync(param.page, param.pagesize, totalnum);
return new ParamReturnData
{
page = param.page,
items = query,
totalnum = totalnum,
pagesize = param.pagesize
};
}
}
///
/// 轮播图详情
///
///
///
public async Task BannerDetailAsync(int id)
{
using (var dbClient = ReadDbContext.GetInstance())
{
var data = await dbClient.Queryable().FirstAsync(x => x.Id == id);
if (data == null)
{
return new ResultInfo(ResultState.FAIL, "记录未找到");
}
//返回内容
var contentdata = await dbClient.Queryable().FirstAsync(x => x.BannerId == data.Id);
return new ResultInfo(ResultState.SUCCESS, "success", contentdata);
}
}
}
}