diff --git a/app/apis/controller/VehicleNewController.php b/app/apis/controller/VehicleNewController.php index 7f8661d..9f549de 100644 --- a/app/apis/controller/VehicleNewController.php +++ b/app/apis/controller/VehicleNewController.php @@ -156,4 +156,20 @@ class VehicleNewController extends BaseController return $this->errorResponse($th->getMessage()); } } + + public function enegry(Request $request, string $scene = 'energy'): Response + { + try { + $enegry = VehicleNewService::enegry($request->all()); + foreach ($enegry as $key => $item) { + $enegry[$key] = [ + 'id' => $item['id'], + 'name' => $item['name'] + ]; + } + return $this->successResponse($enegry); + } catch (\Throwable $th) { + return $this->errorResponse($th->getMessage().$th->getLine().$th->getFile()); + } + } } \ No newline at end of file diff --git a/app/apis/service/BrandService.php b/app/apis/service/BrandService.php index 37de96c..e2683e4 100644 --- a/app/apis/service/BrandService.php +++ b/app/apis/service/BrandService.php @@ -65,7 +65,7 @@ class BrandService extends BaseService return [ 'filters' => [ ['field' => 'status', 'operator' => '=', 'value' => '1'], - ['field' => 'is_hot', 'operator' => '=', 'value' => 1], + ['field' => 'id', 'operator' => '=', 'value' => $params['id']], ], 'fields' => ['id', 'status', 'sort', 'toppic', 'descpic', 'logo', 'letter', 'is_hot', 'created_at', 'updated_at'], 'relations' => [ diff --git a/app/apis/service/VehicleNewService.php b/app/apis/service/VehicleNewService.php index f07d994..c444c01 100644 --- a/app/apis/service/VehicleNewService.php +++ b/app/apis/service/VehicleNewService.php @@ -2,6 +2,8 @@ namespace app\apis\service; +use app\apis\model\EnergyModel; +use app\apis\model\EnergyTranslationModel; use app\apis\model\VehicleNewModel; use app\mzl\common\services\BaseService; use Illuminate\Database\Eloquent\Builder; @@ -89,6 +91,17 @@ class VehicleNewService extends BaseService ]; } + public static function enegry($params) + { + $locale = locale(); + $energyId = VehicleNewModel::select('energy')->where(['brand'=>$params['brand']])->groupBy('energy')->get()->pluck('energy'); + $energys = EnergyModel::whereIn('id',$energyId)->get()->toArray(); + foreach ($energys as $key => $energy) { + $translation = EnergyTranslationModel::where(['locale'=>$locale,'energy_id'=>$energy['id']])->first()->toArray(); + $energys[$key]['name'] = isset($translation['name'])?$translation['name']:''; + } + return $energys; + } // 声明需要多语言翻译 protected array $translatable = [ diff --git a/config/route.php b/config/route.php index 99beb21..df60449 100644 --- a/config/route.php +++ b/config/route.php @@ -36,6 +36,8 @@ Route::group('/apis', function() { Route::any('/email/subscribe', [\app\apis\controller\SubscribeController::class, 'store']); // 车辆类型 Route::any('/vehicle/types', [\app\apis\controller\TypesController::class, 'all']); + // 品牌下车辆的能源类型 + Route::any('/vehicle/energy', [\app\apis\controller\VehicleNewController::class, 'enegry']); // 车辆随机 Route::any('/vehicle/random', [\app\apis\controller\VehicleDataController::class, 'random']); // 隐私协议