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.
116 lines
3.7 KiB
116 lines
3.7 KiB
<?php
|
|
|
|
namespace App\Controller\v3;
|
|
|
|
use App\Controller\BaseController;
|
|
use App\Model\v3\ServicePersonnel;
|
|
use App\Request\v3\StoreIndexRequest;
|
|
use App\Service\v3\Interfaces\CategoryServiceInterface;
|
|
use App\Service\v3\Interfaces\CollectStoreServiceInterface;
|
|
use App\Service\v3\Interfaces\GoodsServiceInterface;
|
|
use App\Service\v3\Interfaces\StoreServiceInterface;
|
|
use Hyperf\Di\Annotation\Inject;
|
|
use Psr\Http\Message\ResponseInterface;
|
|
use \App\Service\v3\Interfaces\BusinessHoursServiceInterface;
|
|
|
|
class StoreController extends BaseController
|
|
{
|
|
|
|
/**
|
|
* @Inject
|
|
* @var StoreServiceInterface
|
|
*/
|
|
protected $storeService;
|
|
|
|
/**
|
|
* @Inject
|
|
* @var CategoryServiceInterface
|
|
*/
|
|
protected $categoryService;
|
|
|
|
/**
|
|
* @Inject
|
|
* @var CollectStoreServiceInterface
|
|
*/
|
|
protected $collectService;
|
|
|
|
/**
|
|
* @Inject
|
|
* @var BusinessHoursServiceInterface
|
|
*/
|
|
protected $businessHoursService;
|
|
|
|
/**
|
|
* @Inject
|
|
* @var GoodsServiceInterface
|
|
*/
|
|
protected $goodsService;
|
|
|
|
/**
|
|
* 商户详情页
|
|
* 1、商户id用来查询的,还要有user_id
|
|
* 2、返回数据,id、logo、name、收藏状态、简介、地址、营业状态、营业时间、联系电话
|
|
* 3、返回数据,商品推荐的分类,需要经过商户商品反查
|
|
* 4、分类下的商品,则复用商品搜索接口
|
|
* @param StoreIndexRequest $request
|
|
* @return ResponseInterface
|
|
*/
|
|
public function index(StoreIndexRequest $request)
|
|
{
|
|
$params = $this->request->all();
|
|
|
|
$data = $this->storeService->detail($params['store_id']);
|
|
$data['is_collected'] = (bool)$this->collectService->check($params['user_id'],$params['store_id']);
|
|
$data['goods_types'] = $this->categoryService->allForStore($params['store_id']);
|
|
$data['in_business'] = $this->storeService->check($params['store_id']);
|
|
if($data['in_business'] === true)
|
|
{
|
|
$data['in_business_text'] = '营业中';
|
|
}else{
|
|
$data['in_business_text'] = '休息中';
|
|
}
|
|
return $this->success(['store' => $data]);
|
|
}
|
|
|
|
public function getBusinessHours()
|
|
{
|
|
$storeId = $this->request->input('store_id');
|
|
$res = $this->businessHoursService->check($storeId);
|
|
return $this->success($res);
|
|
}
|
|
|
|
public function updateBusinessHours()
|
|
{
|
|
$storeId = $this->request->input('store_id');
|
|
$isRest = $this->request->input('is_rest','');
|
|
$time1 = $this->request->input('time1','');
|
|
$time2 = $this->request->input('time2','');
|
|
$time3 = $this->request->input('time3','');
|
|
$time4 = $this->request->input('time4','');
|
|
$res = $this->businessHoursService->do($storeId,$isRest,$time1,$time2,$time3,$time4);
|
|
return $this->success($res);
|
|
}
|
|
|
|
public function getGoodsByType()
|
|
{
|
|
$storeId = $this->request->input('store_id');
|
|
$typeId = $this->request->input('type_id','');
|
|
$page = $this->request->input('page',1);
|
|
$pagesize = $this->request->input('pagesize',10);
|
|
$goods = $this->goodsService->getByType($storeId,$typeId,$page,$pagesize);
|
|
return $this->success($goods);
|
|
}
|
|
|
|
public function getList()
|
|
{
|
|
$userId = $this->request->input('user_id');
|
|
$page = $this->request->input('page',1);
|
|
$pagesize = $this->request->input('pagesize',10);
|
|
$personnel = ServicePersonnel::query()->where('user_id',$userId)->first();
|
|
if(empty($personnel)){
|
|
return $this->success(['personnel' => false]);
|
|
}
|
|
$res['market'] = $this->storeService->getList($personnel->market_id,$page,$pagesize);
|
|
return $this->success($res);
|
|
}
|
|
}
|