51 lines
1.6 KiB
PHP
51 lines
1.6 KiB
PHP
<?php
|
|
namespace app\api\logic;
|
|
|
|
use app\common\basics\Logic;
|
|
use app\common\enum\AdEnum;
|
|
use app\common\model\Ad;
|
|
use think\facade\Db;
|
|
use app\common\server\UrlServer;
|
|
|
|
class AdLogic extends Logic
|
|
{
|
|
public static function lists($pid,$terminal)
|
|
{
|
|
$ad_list = Ad::alias('a')
|
|
->join('ad_position ap', 'a.pid = ap.id')
|
|
->where(['pid' => $pid, 'ap.terminal' => $terminal, 'a.status' => 1, 'a.del' => 0, 'ap.status' => 1, 'ap.del' => 0])
|
|
->field('a.*')
|
|
->order('a.sort asc, a.id desc')
|
|
->select()
|
|
->toArray();
|
|
|
|
$list = [];
|
|
foreach ($ad_list as $key => $ad) {
|
|
$url = $ad['link'];
|
|
$is_tab = 0;
|
|
$params = [];
|
|
switch ($ad['link_type']) {
|
|
case 1: // 商城页面
|
|
$page = AdEnum::getLinkPage($ad['terminal'], $ad['link']);
|
|
$url = $page['path'];
|
|
$is_tab = $page['is_tab'] ?? 0;
|
|
break;
|
|
case 2: // 商品页面
|
|
$goods_path = AdEnum::getGoodsPath($ad['terminal']);
|
|
$url = $goods_path;
|
|
$params = [
|
|
'id' => $ad['link'],
|
|
];
|
|
break;
|
|
}
|
|
$list[] = [
|
|
'image' => UrlServer::getFileUrl($ad['image']),
|
|
'link' => $url,
|
|
'link_type' => $ad['link_type'],
|
|
'params' => $params,
|
|
'is_tab' => $is_tab,
|
|
];
|
|
}
|
|
return $list;
|
|
}
|
|
} |