AdvPosition.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
  9. * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
  10. * =========================================================
  11. */
  12. namespace app\model\web;
  13. use think\facade\Cache;
  14. use app\model\BaseModel;
  15. /**
  16. * 广告位管理
  17. * @author Administrator
  18. *
  19. */
  20. class AdvPosition extends BaseModel
  21. {
  22. /**
  23. * 添加广告位
  24. * @param array $data
  25. */
  26. public function addAdvPosition($data)
  27. {
  28. //查询是否有重复关键字
  29. $condition = [
  30. [ 'keyword', '=', $data[ 'keyword' ] ]
  31. ];
  32. $result = $this->getAdvPositionInfo($condition);
  33. if (!empty($result[ 'data' ])) return $this->error('', '广告关键字已存在');
  34. $ap_id = model('adv_position')->add($data);
  35. Cache::tag("adv_position")->clear();
  36. return $this->success($ap_id);
  37. }
  38. /**
  39. * 修改广告位
  40. * @param array $data
  41. */
  42. public function editAdvPosition($data, $condition)
  43. {
  44. $check_condition = array_column($condition, 2, 0);
  45. $ap_id = isset($check_condition[ 'ap_id' ]) ? $check_condition[ 'ap_id' ] : '';
  46. if ($ap_id === '') {
  47. return $this->error('', 'REQUEST_SITE_ID');
  48. }
  49. //查询是否有重复关键字
  50. if (isset($data[ 'keyword' ])) {
  51. $conditions = [
  52. [ 'keyword', '=', $data[ 'keyword' ] ],
  53. [ 'ap_id', '<>', $ap_id ],
  54. ];
  55. $result = $this->getAdvPositionInfo($conditions);
  56. if (!empty($result[ 'data' ])) return $this->error('', '广告关键字已存在');
  57. }
  58. $res = model('adv_position')->update($data, $condition);
  59. Cache::tag("adv_position")->clear();
  60. return $this->success($res);
  61. }
  62. /**
  63. * 删除广告位
  64. * @param $condition
  65. * @param $ap_ids
  66. * @return array
  67. */
  68. public function deleteAdvPosition($condition, $ap_ids)
  69. {
  70. $list = model('adv_position')->getList([ [ 'ap_id', 'in', $ap_ids ], [ 'is_system', '=', 1 ] ]);
  71. if ($list) {
  72. return $this->error('', '删除的广告位存在系统广告位');
  73. }
  74. $res = model('adv_position')->delete($condition);
  75. Cache::tag("adv_position")->clear();
  76. return $this->success($res);
  77. }
  78. /**
  79. * 获取广告位基础信息
  80. * @param $condition
  81. * @param string $file
  82. * @return array
  83. */
  84. public function getAdvPositionInfo($condition, $file = 'ap_id, keyword , ap_name, ap_intro, ap_height, ap_width, default_content, ap_background_color, type,is_system,state')
  85. {
  86. $data = json_encode([ $condition ]);
  87. $cache = Cache::get("adv_position_getAdvPositionInfo_" . $data);
  88. if (!empty($cache)) {
  89. return $this->success($cache);
  90. }
  91. $res = model('adv_position')->getInfo($condition, $file);
  92. Cache::tag("adv_position")->set("adv_position_getAdvPositionInfo_" . $data, $res);
  93. return $this->success($res);
  94. }
  95. /**
  96. * 获取广告位列表
  97. * @param array $condition
  98. * @param string $field
  99. * @param string $order
  100. * @param string $limit
  101. */
  102. public function getAdvPositionList($condition = [], $field = 'ap_id, keyword , ap_name, ap_intro, ap_height, ap_width, default_content, ap_background_color, type', $order = '', $limit = null)
  103. {
  104. $data = json_encode([ $condition, $field, $order, $limit ]);
  105. $cache = Cache::get("adv_position_getAdvPositionList_" . $data);
  106. if (!empty($cache)) {
  107. return $this->success($cache);
  108. }
  109. $list = model('adv_position')->getList($condition, $field, $order, '', '', '', $limit);
  110. Cache::tag("adv_position")->set("adv_position_getAdvPositionList_" . $data, $list);
  111. return $this->success($list);
  112. }
  113. /**
  114. * 获取广告位分页列表
  115. * @param array $condition
  116. * @param number $page
  117. * @param string $page_size
  118. * @param string $order
  119. * @param string $field
  120. */
  121. public function getAdvPositionPageList($condition = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = 'ap_id desc', $field = 'ap_id, keyword , ap_name, ap_intro, ap_height, ap_width, default_content, ap_background_color, type,is_system,state')
  122. {
  123. $data = json_encode([ $condition, $field, $order, $page, $page_size ]);
  124. $cache = Cache::get("adv_position_getAdvPositionPageList_" . $data);
  125. if (!empty($cache)) {
  126. return $this->success($cache);
  127. }
  128. $list = model('adv_position')->pageList($condition, $field, $order, $page, $page_size);
  129. Cache::tag("adv_position")->set("adv_position_getAdvPositionPageList_" . $data, $list);
  130. return $this->success($list);
  131. }
  132. }