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); } } } }