新车列表
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
<?php
|
||||
|
||||
namespace app\apis\service;
|
||||
|
||||
use app\apis\model\VehicleNewModel;
|
||||
use app\mzl\common\services\BaseService;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class VehicleNewService extends BaseService
|
||||
{
|
||||
/**
|
||||
* 定义模型
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getModel(): string
|
||||
{
|
||||
return VehicleNewModel::class;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 多场景配置
|
||||
*/
|
||||
public function queryScenes(): array
|
||||
{
|
||||
return [
|
||||
'default' => function ($params) {
|
||||
$keyword = $params['keyword'] ?? '';
|
||||
return [
|
||||
'filters' => [
|
||||
// ['field' => '***', 'operator' => '=', 'value' => '***']
|
||||
],
|
||||
'fields' => ['id', 'vin', 'brand', 'cover', 'price', 'type', 'energy', 'model', 'video', 'views', 'created_at', 'updated_at'],
|
||||
'relations' => [
|
||||
'translation' => ['vehicle_id', 'locale', 'name', 'condition_desc', 'location'],
|
||||
'asked' => ['id', 'vehicle_id', 'status', 'sort'],
|
||||
'asked.translation' => ['id', 'asked_id', 'locale', 'title', 'content'],
|
||||
'trait' => ['id', 'vehicle_id', 'status', 'sort'],
|
||||
'trait.translation' => ['id', 'trait_id', 'locale', 'title', 'content'],
|
||||
'album' => ['id', 'vehicle_id', 'pic', 'status', 'sort'],
|
||||
'album.translation' => ['id', 'album_id', 'locale', 'alt'],
|
||||
'content' => ['id', 'vehicle_id', 'status', 'sort'],
|
||||
'content.translation' => ['id', 'content_id', 'locale', 'content'],
|
||||
'brand.translation' => ['brand_id', 'name'],
|
||||
'types.translation' => ['type_id', 'name'],
|
||||
'energy.translation' => ['energy_id', 'name'],
|
||||
'models.translation' => ['model_id', 'name'],
|
||||
],
|
||||
'sorts' => [
|
||||
['field' => 'id', 'direction' => 'desc']
|
||||
],
|
||||
'pagination' => [
|
||||
'page' => $params['page'] ?? 1,
|
||||
'per_page' => $params['per_page'] ?? 10,
|
||||
]
|
||||
];
|
||||
},
|
||||
'show' => function ($params) {
|
||||
$keyword = $params['keyword'] ?? '';
|
||||
return [
|
||||
'filters' => [
|
||||
['field'=>'id', 'operator'=>'=', 'value'=> $params['id']],
|
||||
],
|
||||
'fields' => ['id', 'vin', 'brand', 'cover', 'price', 'type', 'energy', 'model', 'video', 'views', 'created_at', 'updated_at'],
|
||||
'relations' => [
|
||||
'translation' => ['vehicle_id', 'locale', 'name', 'condition_desc', 'location'],
|
||||
'asked' => ['id', 'vehicle_id', 'status', 'sort'],
|
||||
'asked.translation' => ['id', 'asked_id', 'locale', 'title', 'content'],
|
||||
'trait' => ['id', 'vehicle_id', 'status', 'sort'],
|
||||
'trait.translation' => ['id', 'trait_id', 'locale', 'title', 'content'],
|
||||
'album' => ['id', 'vehicle_id', 'pic', 'status', 'sort'],
|
||||
'album.translation' => ['id', 'album_id', 'locale', 'alt'],
|
||||
'content' => ['id', 'vehicle_id', 'status', 'sort'],
|
||||
'content.translation' => ['id', 'content_id', 'locale', 'content'],
|
||||
'brand.translation' => ['brand_id', 'name'],
|
||||
'types.translation' => ['type_id', 'name'],
|
||||
'energy.translation' => ['energy_id', 'name'],
|
||||
'models.translation' => ['model_id', 'name'],
|
||||
],
|
||||
'sorts' => [
|
||||
['field' => 'id', 'direction' => 'desc']
|
||||
],
|
||||
'pagination' => [
|
||||
'page' => $params['page'] ?? 1,
|
||||
'per_page' => $params['per_page'] ?? 10,
|
||||
]
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
// 声明需要多语言翻译
|
||||
protected array $translatable = [
|
||||
'condition_desc','name',
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user