作者 赵彬吉

searchProduct

... ... @@ -160,4 +160,57 @@ class ProductController extends BaseController
}
return $category_id;
}
/**
* @param Request $request
* @author zbj
* @date 2024/1/22
*/
protected function searchProduct(Request $request)
{
$text = $request->input('text');
$limit = $request->input('limit');
$project_id = $request->input('project_id');
$project = ProjectServer::useProject($project_id);
if (!$project) {
$this->response('项目不存在', Code::SYSTEM_ERROR);
}
//匹配产品
$products = Product::with('category')
->where("title", 'like', $text . '%')
->where("status", 1)
->orderBy("id", "DESC")
->limit($limit)
->select('title', 'thumb', 'id', 'route')
->get()
->toArray();
//对应分类
$categories = [];
foreach ($products as &$product) {
foreach ($product['category'] as $category) {
$categories[$category['route']] = [
'title' => $category['title'],
'route' => '/' . $category['route'] . '/',
];
}
unset($product['id']);
unset($product['category']);
if(!empty($product['thumb']) && !empty($product['thumb']['url'])){
$product['thumb'] = getImageUrl($product['thumb']['url'],$project['storage_type'] ?? 0,$project['project_location']);
}
$product['route'] = '/' . $product['route'] . '/';
}
$data = [
'products' => $products,
'categories' => array_values($categories),
];
$this->response('success', Code::SUCCESS, $data);
}
}
... ...
... ... @@ -4,6 +4,7 @@ namespace App\Models\Product;
use App\Helper\Arr;
use App\Models\Base;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\SoftDeletes;
/**
... ... @@ -209,4 +210,15 @@ class Product extends Base
}
return $value;
}
/**
* 多对多关联
* @return BelongsToMany
* @author zbj
* @date 2024/1/22
*/
public function category(): BelongsToMany
{
return $this->belongsToMany(Category::class, 'gl_product_category_related', 'product_id', 'cate_id');
}
}
... ...
... ... @@ -23,6 +23,7 @@ Route::get('optimize_project_list', [\App\Http\Controllers\Api\PrivateController
Route::get('get_project_route', [\App\Http\Controllers\Api\PrivateController::class, 'getProjectRoute'])->name('api.get_project_route');
Route::any('get_product_images', [\App\Http\Controllers\Api\ProductController::class, 'getImages'])->name('api.get_product_images');
Route::any('saveProduct', [\App\Http\Controllers\Api\ProductController::class, 'saveProduct'])->name('api.saveProduct');
Route::any('searchProduct', [\App\Http\Controllers\Api\ProductController::class, 'searchProduct'])->name('api.searchProduct');
Route::post('inquiry_submit', [\App\Http\Controllers\Api\InquiryController::class, 'submit'])->name('api.inquiry_submit');
Route::any('getOptimizationReport', [\App\Http\Controllers\Api\OptimizationReportController::class, 'getOptimizationReport'])->name('api.getOptimizationReport');
// 视频任务回调信息
... ...