AdManage.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. namespace app\common\model;
  3. use app\common\library\Redis;
  4. use app\main\constants\AdConstants;
  5. use think\Model;
  6. class AdManage extends Model
  7. {
  8. // 表名
  9. protected $table = 'ad_manage';
  10. // 自动写入时间戳字段
  11. protected $autoWriteTimestamp = 'int';
  12. // 定义时间戳字段名
  13. protected $createTime = 'createtime';
  14. protected $updateTime = 'updatetime';
  15. // 追加属性
  16. protected $append = [
  17. 'show_starttime_text',
  18. 'show_endtime_text'
  19. ];
  20. /**
  21. * 广告类别
  22. * @return array
  23. */
  24. public function getAdType()
  25. {
  26. return ['0' => 'banner广告', '1' => '插屏广告', '2' => '福利广告'];
  27. }
  28. /**
  29. * Banner广告展示位
  30. * @return array
  31. */
  32. public function getBannerPosition()
  33. {
  34. $arr = [['id' => AdConstants::AD_P_XQ, 'name' => '书籍详情页'],
  35. ['id' => AdConstants::AD_P_ZG, 'name' => '追更页'],
  36. ['id' => AdConstants::AD_P_YDYDB, 'name' => '阅读页底部'],
  37. ['id' => AdConstants::AD_P_ZJYD, 'name' => '最近阅读'],
  38. ['id' => AdConstants::AD_P_SJ, 'name' => '书架'],
  39. ['id' => AdConstants::AD_P_YDYCD, 'name' => '阅读页顶部菜单下拉'],
  40. ['id' => AdConstants::AD_P_USER_CENTER, 'name' => '个人中心'],
  41. ['id' => AdConstants::AD_P_CAT_INDEX, 'name' => '分类首页'],
  42. ['id' => AdConstants::AD_P_CAT_SUB, 'name' => '分类二级'],
  43. ['id' => AdConstants::AD_P_TOP_INDEX, 'name' => '排行榜首页'],
  44. ['id' => AdConstants::AD_P_INDEX_BANNER_A, 'name' => '书城首页轮播Banner'],
  45. ['id' => AdConstants::AD_P_YDY_TOP, 'name' => '阅读页顶部浮窗Banner'],
  46. ];
  47. return $arr;
  48. }
  49. /**
  50. * 插屏广告展示位
  51. * @return array
  52. */
  53. public function getScreenPosition()
  54. {
  55. $arr = [
  56. ['id' => AdConstants::AD_P_YDY_ZJ_A, 'name' => '阅读页中间1'],
  57. ['id' => AdConstants::AD_P_YDY_ZJ_B, 'name' => '阅读页中间2'],
  58. ['id' => AdConstants::AD_P_YDY_ZJ_C, 'name' => '阅读页中间3'],
  59. ['id' => AdConstants::AD_P_PAY_SCREEN, 'name' => '充值返回插屏'],
  60. ['id' => AdConstants::AD_P_READ_SCREEN, 'name' => '阅读器插屏'],
  61. ['id' => AdConstants::AD_P_SIGN_SUCESS, 'name' => '签到成功插屏'],
  62. ['id' => AdConstants::AD_P_YDY_CHAPTER_SCREEN, 'name' => '阅读页插屏(整章)'],
  63. ['id' => AdConstants::AD_P_INDEX_BANNER_B, 'name' => '书城首页Banner2'],
  64. ['id' => AdConstants::AD_P_INDEX_FLOAT_FRAME, 'name' => '书城浮窗'],
  65. ['id' => AdConstants::AD_P_DETAIL_FLOAT_FRAME, 'name' => '书籍详情浮窗'],
  66. ];
  67. return $arr;
  68. }
  69. /**
  70. * 福利广告展示位
  71. * @return array
  72. */
  73. public function getWelfarePosition()
  74. {
  75. $arr = [
  76. ['id' => AdConstants::AD_WELFARE_YDQ, 'name' => '阅读器浮窗'],
  77. ['id' => AdConstants::AD_WELFARE_SIGN, 'name' => '签到弹窗按钮'],
  78. ['id' => AdConstants::AD_WELFARE_RECHARGE, 'name' => '充值返回弹窗'],
  79. ['id' => AdConstants::AD_WELFARE_RECENT, 'name' => '最近阅读浮窗'],
  80. ];
  81. return $arr;
  82. }
  83. public function getShowStarttimeTextAttr($value, $data)
  84. {
  85. $value = $value ? $value : $data['show_starttime'];
  86. return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
  87. }
  88. public function getShowEndtimeTextAttr($value, $data)
  89. {
  90. $value = $value ? $value : $data['show_endtime'];
  91. return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
  92. }
  93. protected function setShowStarttimeAttr($value)
  94. {
  95. return $value && !is_numeric($value) ? strtotime($value) : $value;
  96. }
  97. protected function setShowEndtimeAttr($value)
  98. {
  99. return $value && !is_numeric($value) ? strtotime($value) : $value;
  100. }
  101. }