首页上部轮播图
首页中间小banner广告1
首页中间button广告
首页中间小banner广告2
*/
// 广告位置
const AD_TYPE = [1 => '首页上部轮播图', 2 => '首页中间小banner广告1', 3 => '首页中间button广告',4=>'首页中间小banner广告2',
5=>'砍价活动banner',6=>'”惠“存-礼品卡上方配图',7=>'”惠“存-电子E卡上方配图',8=>'首页弹窗广告'];
// 链接分类id
// const JUMP_TYPE = [1 => '商品详情页', 2 => '品牌文化页', 3 => '购买米卡', 4 => '首页的全部商品',
// 5 => '我的优惠券(可使用)', 6 => '领券中心', 7 => '裂变券礼包'];
const JUMP_TYPE = [1=>'商品详情页',2=>'探秘',3=>'体验',4=>'购买米卡(惠存)',5=>'领券中心(惠买)',6=>'我的优惠券(可使用)',7=>'裂变券礼包'];
// 商品详情页
// 探秘
// 体验
// 购买米卡(惠存)
// 领券中心(惠买)
// 我的优惠券(可使用)
// 裂变券礼包
protected $name = 'ad';
protected $append = ['ad_type_text'];
/**
* 关联广告封面图
* @return \think\model\relation\HasOne
*/
public function image()
{
return $this->hasOne('UploadFile', 'file_id', 'image_id');
}
public function getAdTypeTextAttr($value, $data)
{
return self::AD_TYPE[$data['ad_type']] ?? '';
}
public function getJumpTypeTextAttr($value, $data)
{
return self::JUMP_TYPE[$data['jump_type']] ?? '';
}
/**
* 获取列表
* @param array $param
* @return \think\Paginator
* @throws \think\db\exception\DbException
*/
public function getList($param = [])
{
// 检索查询调价你
$filter = $this->getFilter($param);
// 排序条件
$sort = $this->setQuerySort($param);
// 查询列表数据
return $this->where($filter)->with(['image'])->order($sort)->paginate(15);
}
public function setQuerySort($param = [])
{
$params = $this->setQueryDefaultValue($param, [
'sortField' => 'create_time', // 排序字段 create_time-创建时间 start_time-开始时间 end_time-结束时间 sort-排序 click_user_nums-浏览人数 click_nums-点击次数
'sortOrder' => 'descend' // 排序方式 descend-倒序 ascend-顺序
]);
$sort = [];
if (in_array($params['sortOrder'], ['descend','ascend']) && in_array($params['sortField'], ['create_time','start_time','end_time','sort','click_user_nums','click_nums'])) {
$sort = [$params['sortField'] => str_replace(['descend','ascend'],['desc','asc'], $params['sortOrder'])];
}
return array_merge($sort, [$this->getPk() => 'desc']);
}
/**
* 检索查询条件
* @param array $param
* @return array
*/
private function getFilter($param = [])
{
// 默认查询条件
$params = $this->setQueryDefaultValue($param, ['title' => '','ad_type' => 0]);
// 检索查询条件
$filter = [];
!empty($params['title']) && $filter[] = ['title', 'like', "%{$params['title']}%"];
!empty($params['ad_type']) && $filter[] = ['ad_type', '=', $params['ad_type']];
return $filter;
}
/**
* 详情
* @param int $id
* @return null|static
*/
public static function detail(int $id)
{
return self::get($id,['image']);
}
/**
* 添加
* @param $data
* @return false|int
*/
public function add($data)
{
isset($data['start_time']) && empty($data['start_time']) && $data['start_time'] = null;
isset($data['end_time']) && empty($data['end_time']) && $data['end_time'] = null;
return $this->save($data);
}
/**
* 编辑
* @param $data
* @return bool|int
*/
public function edit($data)
{
isset($data['start_time']) && empty($data['start_time']) && $data['start_time'] = null;
isset($data['end_time']) && empty($data['end_time']) && $data['end_time'] = null;
// 是否删除图片
!isset($data['image_id']) && $data['image_id'] = 0;
return $this->save($data) !== false;
}
/**
* 删除
* @param $id
* @return bool|int
*/
public function remove()
{
return $this->delete();
}
}