正在显示
3 个修改的文件
包含
69 行增加
和
2 行删除
| @@ -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 | + |
-
请 注册 或 登录 后发表评论