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.

76 lines
2.4 KiB

5 years ago
5 years ago
  1. <?php
  2. namespace App\Controller\v3;
  3. use App\Controller\BaseController;
  4. use App\Request\v3\StoreIndexRequest;
  5. use App\Service\v3\Interfaces\CategoryServiceInterface;
  6. use App\Service\v3\Interfaces\CollectStoreServiceInterface;
  7. use App\Service\v3\Interfaces\StoreServiceInterface;
  8. use Hyperf\Di\Annotation\Inject;
  9. use Psr\Http\Message\ResponseInterface;
  10. use \App\Service\v3\Interfaces\BusinessHoursServiceInterface;
  11. class StoreController extends BaseController
  12. {
  13. /**
  14. * @Inject
  15. * @var StoreServiceInterface
  16. */
  17. protected $storeService;
  18. /**
  19. * @Inject
  20. * @var CategoryServiceInterface
  21. */
  22. protected $categoryService;
  23. /**
  24. * @Inject
  25. * @var CollectStoreServiceInterface
  26. */
  27. protected $collectService;
  28. /**
  29. * @Inject
  30. * @var BusinessHoursServiceInterface
  31. */
  32. protected $businessHoursService;
  33. /**
  34. * 商户详情页
  35. * 1、商户id用来查询的,还要有user_id
  36. * 2、返回数据,id、logo、name、收藏状态、简介、地址、营业状态、营业时间、联系电话
  37. * 3、返回数据,商品推荐的分类,需要经过商户商品反查
  38. * 4、分类下的商品,则复用商品搜索接口
  39. * @param StoreIndexRequest $request
  40. * @return ResponseInterface
  41. */
  42. public function index(StoreIndexRequest $request)
  43. {
  44. $params = $request->validated();
  45. $data = $this->storeService->detail($params['store_id']);
  46. $data['is_collected'] = (bool)$this->collectService->check($params['user_id'],$params['store_id']);
  47. $data['goods_types'] = $this->categoryService->allForStore($params['store_id']);
  48. return $this->success(['store' => $data]);
  49. }
  50. public function getBusinessHours()
  51. {
  52. $storeId = $this->request->input('store_id');
  53. $res = $this->businessHoursService->check($storeId);
  54. return $this->success($res);
  55. }
  56. public function updateBusinessHours()
  57. {
  58. $storeId = $this->request->input('store_id');
  59. $isRest = $this->request->input('is_rest','');
  60. $time1 = $this->request->input('time1','');
  61. $time2 = $this->request->input('time2','');
  62. $time3 = $this->request->input('time3','');
  63. $time4 = $this->request->input('time4','');
  64. $res = $this->businessHoursService->do($storeId,$isRest,$time1,$time2,$time3,$time4);
  65. return $this->success($res);
  66. }
  67. }