获取商品数据-分页
This commit is contained in:
parent
397db7dfa1
commit
00937e9154
@ -129,6 +129,22 @@ class BasicDataController extends AbstractController
|
||||
return $this->response->json($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取商品数据-分页
|
||||
* @return ResponseInterface
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function getProductPage(): ResponseInterface
|
||||
{
|
||||
$request = $this->container->get(BasicDataRequest::class);
|
||||
$request->scene('getProductPage')->validateResolved();
|
||||
|
||||
$BasicDataService = new BasicDataService();
|
||||
$data = $BasicDataService->getProductPage();
|
||||
return $this->response->json($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 搜索平台疾病分类
|
||||
* @return ResponseInterface
|
||||
|
||||
@ -159,6 +159,39 @@ class Product extends Model
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取列表-分页
|
||||
* @param array $params 条件
|
||||
* @param string $keyword 搜索条件
|
||||
* @param array $fields 字段
|
||||
* @param int|null $page 页码
|
||||
* @param int|null $per_page 每页个数
|
||||
* @return array
|
||||
*/
|
||||
public static function getWithAmountPage(array $params,string $keyword, array $fields = ["*"], int $page = null, ?int $per_page = 10): array
|
||||
{
|
||||
$raw = self::with([
|
||||
'ProductPlatformAmount:amount_id,product_platform_id,stock'
|
||||
])
|
||||
->when($keyword, function ($query, $keyword) {
|
||||
$query->where(function ($query) use ($keyword) {
|
||||
$query->orwhere("product_name", 'like', '%' . $keyword . '%');
|
||||
$query->orwhere("common_name", 'like', '%' . $keyword . '%');
|
||||
$query->orwhere("mnemonic_code", 'like', '%' . $keyword . '%');
|
||||
});
|
||||
})
|
||||
->where($params)->paginate($per_page, $fields, "page", $page);
|
||||
|
||||
$data = array();
|
||||
$data['current_page'] = $raw->currentPage();// 当前页码
|
||||
$data['total'] = $raw->total();//数据总数
|
||||
$data['data'] = $raw->items();//数据
|
||||
$data['per_page'] = $raw->perPage();//每页个数
|
||||
$data['last_page'] = $raw->lastPage();//最后一页
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
* @param array $data
|
||||
|
||||
@ -31,6 +31,9 @@ class BasicDataRequest extends FormRequest
|
||||
'getDetectionDiseaseList' => [ // 获取检测疾病分类列表
|
||||
'detection_project_id',
|
||||
],
|
||||
'getProductPage' => [ // 获取商品数据-分页
|
||||
'keyword',
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
@ -415,4 +415,55 @@ class BasicDataService extends BaseService
|
||||
|
||||
return success($disease_class_detections->toArray());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取商品数据-分页
|
||||
* @return array
|
||||
*/
|
||||
public function getProductPage(): array
|
||||
{
|
||||
$user_info = $this->request->getAttribute("userInfo") ?? [];
|
||||
|
||||
$keyword = $this->request->input('keyword',"");
|
||||
|
||||
$page = $this->request->input('page', 1);
|
||||
$per_page = $this->request->input('per_page', 10);
|
||||
|
||||
$fields = [
|
||||
'product_id',
|
||||
'product_platform_id',
|
||||
'product_name',
|
||||
'product_price',
|
||||
'product_cover_img',
|
||||
'product_spec',
|
||||
'manufacturer',
|
||||
'single_unit',
|
||||
'single_use',
|
||||
'packaging_unit',
|
||||
'frequency_use',
|
||||
'available_days',
|
||||
];
|
||||
|
||||
$params = array();
|
||||
|
||||
|
||||
$product = Product::getWithAmountPage($params, $keyword,$fields, $page, $per_page);
|
||||
if (empty($product['data'])) {
|
||||
return success($product);
|
||||
}
|
||||
|
||||
foreach ($product['data'] as &$item) {
|
||||
$item['product_cover_img'] = addAliyunOssWebsite($item['product_cover_img']);
|
||||
|
||||
$item['product_name'] = $item['product_name'] . ' ' . $item['product_spec'];
|
||||
$item['stock'] = 0;
|
||||
if (!empty($item['ProductPlatformAmount'])){
|
||||
$item['stock'] = $item['ProductPlatformAmount']['stock'];
|
||||
}
|
||||
|
||||
unset($item['ProductPlatformAmount']);
|
||||
}
|
||||
|
||||
return success($product);
|
||||
}
|
||||
}
|
||||
@ -585,10 +585,13 @@ Router::addGroup('/basic', function () {
|
||||
Router::get('/search', [BasicDataController::class, 'getDiseaseIcdSearch']);
|
||||
});
|
||||
|
||||
// 搜索商品
|
||||
// 商品
|
||||
Router::addGroup('/product', function () {
|
||||
// 搜索商品
|
||||
Router::get('/search', [BasicDataController::class, 'getProductSearch']);
|
||||
|
||||
// 获取商品数据-分页
|
||||
Router::get('', [BasicDataController::class, 'getProductPage']);
|
||||
});
|
||||
|
||||
// 获取民族数据
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user