You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.0 KiB
66 lines
2.0 KiB
<?php
|
|
|
|
namespace App\Controller\v3;
|
|
|
|
use App\Controller\BaseController;
|
|
use App\Service\v3\Interfaces\ShopCartServiceInterface;
|
|
use App\Service\v3\Implementations\GoodsActivityService;
|
|
use App\Service\v3\Interfaces\CollectStoreServiceInterface;
|
|
use Hyperf\Di\Annotation\Inject;
|
|
use App\Service\v3\Interfaces\GoodsServiceInterface;
|
|
use App\Service\v3\Interfaces\GoodsActivityServiceInterface;
|
|
use App\Constants\v3\Goods;
|
|
class GoodsController extends BaseController
|
|
{
|
|
/**
|
|
* @Inject
|
|
* @var GoodsServiceInterface
|
|
*/
|
|
protected $goodsService;
|
|
|
|
/**
|
|
* @Inject
|
|
* @var GoodsActivityServiceInterface
|
|
*/
|
|
protected $goodsActivityService;
|
|
|
|
/**
|
|
* @Inject
|
|
* @var CollectStoreServiceInterface
|
|
*/
|
|
protected $collectService;
|
|
|
|
/**
|
|
* @Inject
|
|
* @var ShopCartServiceInterface
|
|
*/
|
|
protected $shopCartService;
|
|
|
|
public function detail()
|
|
{
|
|
$params = $this->request->all();
|
|
//判断是普通商品还是特价商品
|
|
if(isset($params['activity']) && $params['activity'] == Goods::IS_ACTIVITY){
|
|
$res['detail'] = $this->goodsActivityService->detail($params['goods_id']);
|
|
$res['banner'] = $this->goodsActivityService->getBanner(1572);
|
|
}else{
|
|
$res['detail'] = $this->goodsService->detail($params['goods_id']);
|
|
$res['banner'] = $this->goodsService->getBanner(1572);
|
|
}
|
|
|
|
//如果没有banner数据,使用商品cover图
|
|
if(count($res['banner']) == 0){
|
|
$res['banner'] = [$res['detail']['cover_img']];
|
|
}
|
|
|
|
if(isset($params['user_id'])) {
|
|
$res['shopcart']['count'] = $this->shopCartService->check(111);
|
|
$res['shopcart']['total'] = $this->shopCartService->getTotal();
|
|
$res['detail']->store->is_collected = (bool)$this->collectService->check($params['user_id'], $res['detail']->store->id);
|
|
}else{
|
|
$res['shopcart'] = '';
|
|
$res['detail']->store->is_collected = '';
|
|
}
|
|
return $this->success($res);
|
|
}
|
|
}
|