BannerConfigService.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. using Infrastructure.Attribute;
  2. using Mapster;
  3. using ZR.Model.Public;
  4. using ZR.Model.Public.Dto;
  5. using ZR.Repository;
  6. using ZR.Service.Public.IPublicService;
  7. namespace ZR.Service.Public
  8. {
  9. /// <summary>
  10. /// 广告管理Service业务层处理
  11. /// </summary>
  12. [AppService(ServiceType = typeof(IBannerConfigService), ServiceLifetime = LifeTime.Transient)]
  13. public class BannerConfigService : BaseService<BannerConfig>, IBannerConfigService
  14. {
  15. /// <summary>
  16. /// 查询广告管理列表
  17. /// </summary>
  18. /// <param name="parm"></param>
  19. /// <returns></returns>
  20. public PagedInfo<BannerConfigDto> GetList(BannerConfigQueryDto parm)
  21. {
  22. var predicate = QueryExp(parm);
  23. var response = Queryable()
  24. .Where(predicate.ToExpression())
  25. .ToPage<BannerConfig, BannerConfigDto>(parm);
  26. return response;
  27. }
  28. /// <summary>
  29. /// 获取详情
  30. /// </summary>
  31. /// <param name="Id"></param>
  32. /// <returns></returns>
  33. public BannerConfig GetInfo(int Id)
  34. {
  35. var response = Queryable()
  36. .Where(x => x.Id == Id)
  37. .First();
  38. return response;
  39. }
  40. /// <summary>
  41. /// 添加广告管理
  42. /// </summary>
  43. /// <param name="model"></param>
  44. /// <returns></returns>
  45. public BannerConfig AddBannerConfig(BannerConfig model)
  46. {
  47. return Insertable(model).ExecuteReturnEntity();
  48. }
  49. /// <summary>
  50. /// 修改广告管理
  51. /// </summary>
  52. /// <param name="model"></param>
  53. /// <returns></returns>
  54. public int UpdateBannerConfig(BannerConfig model)
  55. {
  56. return Update(model, false, "修改广告管理");
  57. }
  58. /// <summary>
  59. /// 导出广告管理
  60. /// </summary>
  61. /// <param name="parm"></param>
  62. /// <returns></returns>
  63. public PagedInfo<BannerConfigDto> ExportList(BannerConfigQueryDto parm)
  64. {
  65. var predicate = QueryExp(parm);
  66. var response = Queryable()
  67. .Where(predicate.ToExpression())
  68. .Select((it) => new BannerConfigDto()
  69. {
  70. ShowStatusLabel = it.ShowStatus.GetConfigValue<Model.System.SysDictData>("sys_common_status"),
  71. }, true)
  72. .ToPage(parm);
  73. return response;
  74. }
  75. /// <summary>
  76. /// 查询导出表达式
  77. /// </summary>
  78. /// <param name="parm"></param>
  79. /// <returns></returns>
  80. private static Expressionable<BannerConfig> QueryExp(BannerConfigQueryDto parm)
  81. {
  82. var predicate = Expressionable.Create<BannerConfig>();
  83. predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.Title), it => it.Title.Contains(parm.Title));
  84. predicate = predicate.AndIF(parm.JumpType != null, it => it.JumpType == parm.JumpType);
  85. predicate = predicate.AndIF(parm.ShowStatus != null, it => it.ShowStatus == parm.ShowStatus);
  86. predicate = predicate.AndIF(parm.AdType != null, it => it.AdType == parm.AdType);
  87. return predicate;
  88. }
  89. /// <summary>
  90. /// 查询广告管理列表
  91. /// </summary>
  92. /// <param name="parm"></param>
  93. /// <returns></returns>
  94. public List<BannerConfigDto> GetBannerList(BannerConfigQueryDto parm)
  95. {
  96. var predicate = Expressionable.Create<BannerConfig>();
  97. var now = DateTime.Now;
  98. predicate = predicate.And(it => it.ShowStatus == 0);
  99. predicate = predicate.AndIF(parm.AdType != null, it => it.AdType == parm.AdType);
  100. predicate = predicate.And(it => it.BeginTime <= now && it.EndTime >= now);
  101. var response = Queryable()
  102. .Where(predicate.ToExpression())
  103. .ToList();
  104. return response.Adapt<List<BannerConfigDto>>();
  105. }
  106. }
  107. }