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

<?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);
}
}