using Infrastructure.Attribute; using Mapster; using ZR.Model.Public; using ZR.Model.Public.Dto; using ZR.Repository; using ZR.Service.Public.IPublicService; namespace ZR.Service.Public { /// /// 广告管理Service业务层处理 /// [AppService(ServiceType = typeof(IBannerConfigService), ServiceLifetime = LifeTime.Transient)] public class BannerConfigService : BaseService, IBannerConfigService { /// /// 查询广告管理列表 /// /// /// public PagedInfo GetList(BannerConfigQueryDto parm) { var predicate = QueryExp(parm); var response = Queryable() .Where(predicate.ToExpression()) .ToPage(parm); return response; } /// /// 获取详情 /// /// /// public BannerConfig GetInfo(int Id) { var response = Queryable() .Where(x => x.Id == Id) .First(); return response; } /// /// 添加广告管理 /// /// /// public BannerConfig AddBannerConfig(BannerConfig model) { return Insertable(model).ExecuteReturnEntity(); } /// /// 修改广告管理 /// /// /// public int UpdateBannerConfig(BannerConfig model) { return Update(model, false, "修改广告管理"); } /// /// 导出广告管理 /// /// /// public PagedInfo ExportList(BannerConfigQueryDto parm) { var predicate = QueryExp(parm); var response = Queryable() .Where(predicate.ToExpression()) .Select((it) => new BannerConfigDto() { ShowStatusLabel = it.ShowStatus.GetConfigValue("sys_common_status"), }, true) .ToPage(parm); return response; } /// /// 查询导出表达式 /// /// /// private static Expressionable QueryExp(BannerConfigQueryDto parm) { var predicate = Expressionable.Create(); predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.Title), it => it.Title.Contains(parm.Title)); predicate = predicate.AndIF(parm.JumpType != null, it => it.JumpType == parm.JumpType); predicate = predicate.AndIF(parm.ShowStatus != null, it => it.ShowStatus == parm.ShowStatus); predicate = predicate.AndIF(parm.AdType != null, it => it.AdType == parm.AdType); return predicate; } /// /// 查询广告管理列表 /// /// /// public List GetBannerList(BannerConfigQueryDto parm) { var predicate = Expressionable.Create(); var now = DateTime.Now; predicate = predicate.And(it => it.ShowStatus == 0); predicate = predicate.AndIF(parm.AdType != null, it => it.AdType == parm.AdType); predicate = predicate.And(it => it.BeginTime <= now && it.EndTime >= now); var response = Queryable() .Where(predicate.ToExpression()) .ToList(); return response.Adapt>(); } } }