作者 赵彬吉

update

@@ -7,7 +7,10 @@ @@ -7,7 +7,10 @@
7 */ 7 */
8 namespace App\Http\Controllers\Api; 8 namespace App\Http\Controllers\Api;
9 9
  10 +use App\Enums\Common\Code;
10 use App\Http\Controllers\Controller; 11 use App\Http\Controllers\Controller;
  12 +use Illuminate\Http\Exceptions\HttpResponseException;
  13 +use Illuminate\Http\JsonResponse;
11 14
12 /** 15 /**
13 * Class BaseController 16 * Class BaseController
@@ -38,4 +41,23 @@ class BaseController extends Controller @@ -38,4 +41,23 @@ class BaseController extends Controller
38 $array = compact('status', 'message', 'data'); 41 $array = compact('status', 'message', 'data');
39 return json_encode($array, JSON_UNESCAPED_UNICODE); 42 return json_encode($array, JSON_UNESCAPED_UNICODE);
40 } 43 }
41 -}  
  44 +
  45 + /**
  46 + * @name :统一返回参数
  47 + * @return JsonResponse
  48 + * @author :liyuhang
  49 + * @method
  50 + */
  51 + public function response($msg = null,string $code = Code::SUCCESS,$data = [],$result_code = 200,$type = 'application/json'): JsonResponse
  52 + {
  53 + $code = Code::fromValue($code);
  54 + $result = [
  55 + 'code' => $code->value,
  56 + 'data' => $data,
  57 + 'message' => $msg == ' ' ? $code->description : $msg,
  58 + ];
  59 + $header['Content-Type'] = $type;
  60 + $response = response($result,$result_code,$header);
  61 + throw new HttpResponseException($response);
  62 + }
  63 +}
  1 +<?php
  2 +
  3 +namespace App\Http\Controllers\Api;
  4 +
  5 +use App\Enums\Common\Code;
  6 +use App\Models\Product\Product;
  7 +use App\Services\ProjectServer;
  8 +use Illuminate\Http\Request;
  9 +use Illuminate\Support\Arr;
  10 +
  11 +/**
  12 + * Class ProductController
  13 + * @package App\Http\Controllers\Api
  14 + * @author zbj
  15 + * @date 2024/2/1
  16 + */
  17 +class ProductController extends BaseController
  18 +{
  19 + /**
  20 + * 获取项目随机产品的图片
  21 + * @param Request $request
  22 + * @return void
  23 + */
  24 + public function getImages(Request $request)
  25 + {
  26 + $project_id = $request->input('project_id');
  27 +
  28 + $project = ProjectServer::useProject($project_id);
  29 + if (!$project) {
  30 + $this->response('项目不存在', Code::SYSTEM_ERROR);
  31 + }
  32 +
  33 + try {
  34 + $gallery = Product::where('status', Product::STATUS_ON)->whereNotNull('gallery')->inRandomOrder()->value('gallery');
  35 + $gallery = array_map(function ($item) use ($project) {
  36 + return getImageUrl($item, $project['storage_type'], $project['project_location']);
  37 + }, Arr::pluck($gallery, 'url'));
  38 + } catch (\Exception $e) {
  39 + $gallery = [];
  40 + }
  41 + $this->response('success', Code::SUCCESS, $gallery);
  42 + }
  43 +}
@@ -20,4 +20,6 @@ Route::middleware('auth:sanctum')->get('/user', function (Request $request) { @@ -20,4 +20,6 @@ Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
20 20
21 Route::any('traffic_visit', [\App\Http\Controllers\Api\NoticeController::class, 'trafficVisit'])->name('api.traffic_visit'); 21 Route::any('traffic_visit', [\App\Http\Controllers\Api\NoticeController::class, 'trafficVisit'])->name('api.traffic_visit');
22 Route::get('optimize_project_list', [\App\Http\Controllers\Api\PrivateController::class, 'optimizeProjectList'])->name('api.optimize_project_list'); 22 Route::get('optimize_project_list', [\App\Http\Controllers\Api\PrivateController::class, 'optimizeProjectList'])->name('api.optimize_project_list');
23 -Route::get('get_project_route', [\App\Http\Controllers\Api\PrivateController::class, 'getProjectRoute'])->name('api.get_project_route');  
  23 +Route::get('get_project_route', [\App\Http\Controllers\Api\PrivateController::class, 'getProjectRoute'])->name('api.get_project_route');
  24 +Route::any('get_product_images', [\App\Http\Controllers\Api\ProductController::class, 'getImages'])->name('api.get_product_images');
  25 +