jh-admin/addon/supply/model/web/AdvPosition.php

150 lines
5.1 KiB
PHP

<?php
/**
* SaaSMall商城系统 - 团队十年电商经验汇集巨献!
* =========================================================
* Copy right 2019-2029 成都SAAS云科技有限公司, 保留所有权利。
* ----------------------------------------------
* 官方网址: https://www.gobuysaas.com
* =========================================================
*/
namespace addon\supply\model\web;
use think\facade\Cache;
use app\model\BaseModel;
/**
* 广告位管理
* @author Administrator
*
*/
class AdvPosition extends BaseModel
{
/**
* 添加广告位
* @param array $data
*/
public function addAdvPosition($data)
{
//判断关键词是否已存在
$count = model('supply_adv_position')->getCount([['keyword','=',$data['keyword']]]);
if($count > 0){
return $this->error('','该关键词已存在');
}
$ap_id = model('supply_adv_position')->add($data);
Cache::tag("supply_adv_position")->clear();
return $this->success($ap_id);
}
/**
* 修改广告位
* @param array $data
*/
public function editAdvPosition($data, $condition)
{
//判断关键词是否已存在
$count = model('supply_adv_position')->getCount([ ['keyword','=',$data['keyword']], ['ap_id','<>',$data['ap_id']] ]);
if($count > 0){
return $this->error('','该关键词已存在');
}
$res = model('supply_adv_position')->update($data, $condition);
Cache::tag("supply_adv_position")->clear();
return $this->success($res);
}
/**
* 删除广告位
* @param unknown $condition
*/
public function deleteAdvPosition($condition)
{
$adv_position_list = model('supply_adv_position')->getList($condition,'ap_id,is_system');
model('supply_adv_position')->startTrans();
try{
if(!empty($adv_position_list)){
foreach($adv_position_list as $v){
if($v['is_system'] == 0){
//删除广告位
model('supply_adv_position')->delete([['ap_id','=',$v['ap_id']]]);
//删除广告
$adv_model = new Adv();
$adv_model->deleteAdv([['ap_id','=',$v['ap_id']]]);
}
}
}
Cache::tag("supply_adv_position")->clear();
model('supply_adv_position')->commit();
return $this->success();
}catch(\Exception $e){
model('adv_position')->rollback();
return $this->error('',$e->getMessage());
}
}
/**
* 获取广告位基础信息
* @param $condition
* @param string $file
* @return array
*/
public function getAdvPositionInfo($condition, $file = 'ap_id, keyword , ap_name, ap_intro, ap_height, ap_width, default_content, ap_background_color,is_system')
{
$data = json_encode([$condition]);
$cache = Cache::get("supply_adv_position_getAdvPositionInfo_" . $data);
if (!empty($cache)) {
return $this->success($cache);
}
$res = model('supply_adv_position')->getInfo($condition, $file);
Cache::tag("supply_adv_position")->set("supply_adv_position_getAdvPositionInfo_" . $data, $res);
return $this->success($res);
}
/**
* 获取广告位列表
* @param array $condition
* @param string $field
* @param string $order
* @param string $limit
*/
public function getAdvPositionList($condition = [], $field = 'ap_id, keyword , ap_name, ap_intro, ap_height, ap_width, default_content, ap_background_color,is_system', $order = '', $limit = null)
{
$data = json_encode([$condition, $field, $order, $limit]);
$cache = Cache::get("supply_adv_position_getAdvPositionList_" . $data);
if (!empty($cache)) {
return $this->success($cache);
}
$list = model('supply_adv_position')->getList($condition, $field, $order, '', '', '', $limit);
Cache::tag("supply_adv_position")->set("supply_adv_position_getAdvPositionList_" . $data, $list);
return $this->success($list);
}
/**
* 获取广告位分页列表
* @param array $condition
* @param number $page
* @param string $page_size
* @param string $order
* @param string $field
*/
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, is_system')
{
$data = json_encode([$condition, $field, $order, $page, $page_size]);
$cache = Cache::get("supply_adv_position_getAdvPositionPageList_" . $data);
if (!empty($cache)) {
return $this->success($cache);
}
$list = model('supply_adv_position')->pageList($condition, $field, $order, $page, $page_size);
Cache::tag("supply_adv_position")->set("supply_adv_position_getAdvPositionPageList_" . $data, $list);
return $this->success($list);
}
}