| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- <?php
- namespace app\controller\admin\alibaba;
- use app\services\ThirdParty\AlibabaAgent\ProductService;
- /**
- * 1688分销严选 - 商品管理
- *
- * API文档:
- * 商品列表: https://open.1688.com/api/apidocdetail.htm?id=com.alibaba.fenxiao%3Ajxhy.product.getPageList-1
- * 商品详情: https://open.1688.com/api/apidocdetail.htm?id=com.alibaba.fenxiao%3Aalibaba.fenxiao.productInfo.get-1
- */
- class Goods
- {
- /**
- * 获取1688分销商品分页列表
- *
- * @param ProductService $productService
- * @return \think\response\Json
- *
- * @api {GET} /admin/alibaba/goods/lst 获取商品列表
- * @apiParam {string} [access_token] 1688 access_token(不传则使用配置中的默认token)
- * @apiParam {int} [page=1] 页码
- * @apiParam {int} [limit=20] 每页条数(最大50)
- * @apiParam {string} [keyword] 关键词搜索
- * @apiParam {int} [categoryId] 类目ID
- * @apiParam {number} [minPrice] 最低价格
- * @apiParam {number} [maxPrice] 最高价格
- * @apiParam {string} [sort] 排序方式
- */
- public function lst(ProductService $productService)
- {
- $request = app('request');
- // 获取请求参数
- $page = (int)$request->param('page', 1);
- $limit = (int)$request->param('limit', 20);
- $keyword = $request->param('keyword', '');
- $categoryId = $request->param('categoryId', '');
- $minPrice = $request->param('minPrice', '');
- $maxPrice = $request->param('maxPrice', '');
- $sort = $request->param('sort', '');
- // 构建搜索参数
- $params = [
- 'page' => max(1, $page),
- 'limit' => min(max(1, $limit), 50),
- ];
- if (!empty($keyword)) {
- $params['keyword'] = $keyword;
- }
- if (!empty($categoryId)) {
- $params['categoryId'] = (int)$categoryId;
- }
- if ($minPrice !== '' && $minPrice > 0) {
- $params['minPrice'] = (float)$minPrice;
- }
- if ($maxPrice !== '' && $maxPrice > 0) {
- $params['maxPrice'] = (float)$maxPrice;
- }
- if (!empty($sort)) {
- $params['sort'] = $sort;
- }
- // 调用1688 API获取商品列表
- $result = $productService->searchProducts($params);
- if ($result === false) {
- return app('json')->fail('获取1688商品列表失败,请查看日志');
- }
- return app('json')->success($result);
- }
- /**
- * 获取1688分销商品详情
- *
- * @param ProductService $productService
- * @return \think\response\Json
- *
- * @api {GET} /admin/alibaba/goods/detail 获取商品详情
- * @apiParam {string} [access_token] 1688 access_token(不传则使用配置中的默认token)
- * @apiParam {int} productId 1688商品ID(必填)
- */
- public function detail(ProductService $productService)
- {
- $request = app('request');
- $productId = $request->param('productId', '');
- if (empty($productId)) {
- return app('json')->fail('参数错误:productId不能为空');
- }
- // 调用1688 API获取商品详情
- $result = $productService->getProductDetail($productId);
- if ($result === false) {
- return app('json')->fail('获取1688商品详情失败,请查看日志');
- }
- return app('json')->success($result);
- }
- }
|