61 lines
1.5 KiB
PHP
61 lines
1.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace app\index\controller;
|
|
|
|
use app\index\BaseController;
|
|
use think\response\Json;
|
|
use think\facade\Db;
|
|
|
|
/**
|
|
* Banner 控制器
|
|
*/
|
|
class BannerController extends BaseController
|
|
{
|
|
/**
|
|
* 获取 Banner 列表
|
|
* @return Json
|
|
*/
|
|
public function getBanners(): Json
|
|
{
|
|
// 从 BaseController 获取当前租户ID
|
|
$tid = $this->getTenantId();
|
|
|
|
if (empty($tid)) {
|
|
return json([
|
|
'code' => 400,
|
|
'msg' => '无法识别租户信息',
|
|
'list' => [],
|
|
]);
|
|
}
|
|
|
|
// 查询该租户下的 Banner
|
|
$banners = Db::name('mete_apps_cms_banner')
|
|
->where('tid', $tid)
|
|
->whereNull('delete_time')
|
|
->order('sort', 'asc')
|
|
->order('id', 'desc')
|
|
->select()
|
|
->toArray();
|
|
|
|
// 处理图片路径
|
|
foreach ($banners as &$banner) {
|
|
if (!empty($banner['image'])) {
|
|
// 如果图片路径已经是完整 URL,直接返回
|
|
if (!preg_match('/^https?:\/\//', $banner['image'])) {
|
|
// 拼接完整 URL
|
|
$banner['image'] = $this->request->scheme() . '://' . $this->request->host() .
|
|
(strpos($banner['image'], '/') === 0 ? '' : '/') . $banner['image'];
|
|
}
|
|
}
|
|
}
|
|
|
|
return json([
|
|
'code' => 200,
|
|
'msg' => 'success',
|
|
'list' => $banners,
|
|
]);
|
|
}
|
|
}
|