Files
car_info/plugin/admin/app/controller/VehicleController.php
T

157 lines
4.1 KiB
PHP
Raw Normal View History

2025-04-30 11:30:08 +08:00
<?php
namespace plugin\admin\app\controller;
2025-04-30 14:00:54 +08:00
use app\service\OssService;
2025-04-30 11:30:08 +08:00
use plugin\admin\app\model\Location;
2025-04-30 14:51:12 +08:00
use support\Log;
2025-04-30 11:30:08 +08:00
use support\Request;
use support\Response;
use plugin\admin\app\model\Vehicle;
use plugin\admin\app\controller\Crud;
use support\exception\BusinessException;
/**
* 车辆信息
*/
class VehicleController extends Crud
{
/**
* 不需要登录的方法
* @var string[]
*/
protected $noNeedLogin = ['detail'];
/**
* 不需要鉴权的方法
* @var string[]
*/
protected $noNeedAuth = ['detail'];
protected $status = ['未知','待发车','在途(发往fbo港口)','抵达发货港口','在途(发往目的地仓库)','抵达仓库','售出'];
/**
* @var Vehicle
*/
protected $model = null;
/**
* 构造函数
* @return void
*/
public function __construct()
{
$this->model = new Vehicle;
}
/**
* 浏览
* @return Response
*/
public function index(): Response
{
return view('vehicle/index');
}
/**
* 插入
* @param Request $request
* @return Response
* @throws BusinessException
*/
public function insert(Request $request): Response
{
if ($request->method() === 'POST') {
return parent::insert($request);
}
return view('vehicle/insert');
}
/**
* 更新
* @param Request $request
* @return Response
* @throws BusinessException
*/
public function update(Request $request): Response
{
if ($request->method() === 'POST') {
return parent::update($request);
}
return view('vehicle/update');
}
/**
* 详情
* @param Request $request
* @return Response
* @throws BusinessException
*/
public function detail(Request $request): Response
{
return view('vehicle/detail');
}
/**
* 查询
* @param Request $request
* @return Response
* @throws BusinessException
*/
/* public function list(Request $request)
{
[$where, $format, $limit, $field, $order] = $this->selectInput($request);
return json($where);
$query = $this->doSelect($where, $field, $order);
$data = $this->doFormat($query, $format, $limit);
// foreach ($data['data'] as &$value) {
// $value['locations'] = Location::find($value['locations_id'])->name;
// }
// $data = json_decode(json_encode($data), true);
return $data;
}*/
/**
* 查询后置处理,添加位置信息
* @param mixed $items
* @return mixed
*/
protected function afterQuery($items)
{
foreach ($items as &$item) {
$location = Location::find($item->locations_id);
$item->status = $this->status[$item->status]??$this->status[0];
$item->location_name = $location ? $location->name : '';
$final_location = Location::find($item->final_locations_id);
$item->final_location_name = $final_location ? $final_location->name : '';
$fbo_location = Location::find($item->fbo_locations_id);
$item->fbo_location_name = $fbo_location ? $fbo_location->name : '';
2025-04-30 14:00:54 +08:00
2025-04-30 14:51:12 +08:00
// if(!str_starts_with($item['img_url'], 'http')){
// $ossservice = new OssService();
// $img_url = $ossservice->generatePrivateUrl($item['img_url'], 3600);
// $item['img_url'] = $img_url;
// }
try {
2025-04-30 14:09:13 +08:00
$ossservice = new OssService();
2025-04-30 14:38:54 +08:00
$img_url = $ossservice->generatePrivateUrl($item['img_url'], 3600);
2025-04-30 14:51:12 +08:00
Log::info("Vehicle image URL generation:", [
'original_url' => $item['img_url'],
'generated_url' => $img_url
]);
2025-04-30 14:09:13 +08:00
$item['img_url'] = $img_url;
2025-04-30 14:51:12 +08:00
} catch (\Exception $e) {
Log::error("Vehicle image URL generation failed:", [
'error' => $e->getMessage(),
'original_url' => $item['img_url']
]);
2025-04-30 14:09:13 +08:00
}
2025-04-30 14:00:54 +08:00
}
2025-04-30 14:09:13 +08:00
2025-04-30 11:30:08 +08:00
return $items;
}
}