diff --git a/app/Controller/v3/SearchController.php b/app/Controller/v3/SearchController.php index 3477e75..2536726 100644 --- a/app/Controller/v3/SearchController.php +++ b/app/Controller/v3/SearchController.php @@ -3,6 +3,7 @@ namespace App\Controller\v3; use App\Controller\BaseController; +use App\Model\v3\Employees; use App\Request\v3\SearchGoodsRequest; use App\Request\v3\SearchStoreRequest; use App\Service\v3\Interfaces\LocationServiceInterface; @@ -83,4 +84,24 @@ class SearchController extends BaseController $data = $this->locationService->searchMarket($keywords,$lng,$lat,$cityId); return $this->success(['markets' => $data]); } + + /** + * 服务专员店铺搜索 + */ + public function storesForPersonnel() + { + $userId = $this->request->input('user_id'); + $page = $this->request->input('page',1); + $pagesize = $this->request->input('pagesize',10); + $keywords = $this->request->input('keywords',''); + $employees = Employees::query() + ->where('user_id',$userId) + ->whereJsonContains('position', '30') + ->first(); + if(empty($employees)){ + return $this->success(['personnel' => false]); + } + $res = $this->searchService->getStoresForPersonnel($employees->market_id,$keywords,$page,$pagesize); + return $this->success($res); + } } \ No newline at end of file diff --git a/app/Controller/v3/StoreController.php b/app/Controller/v3/StoreController.php index 7e21afd..4261a21 100644 --- a/app/Controller/v3/StoreController.php +++ b/app/Controller/v3/StoreController.php @@ -5,6 +5,7 @@ namespace App\Controller\v3; use App\Constants\v3\ErrorCode; use App\Exception\ErrorCodeException; use App\Controller\BaseController; +use App\Model\v3\Employees; use App\Model\v3\ServicePersonnel; use App\Request\v3\StoreIndexRequest; use App\Service\v3\Interfaces\CategoryServiceInterface; @@ -109,11 +110,14 @@ class StoreController extends BaseController $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)){ + $employees = Employees::query() + ->where('user_id',$userId) + ->whereJsonContains('position', '30') + ->first(); + if(empty($employees)){ return $this->success(['personnel' => false]); } - $res = $this->storeService->getList($personnel->market_id,$page,$pagesize); + $res = $this->storeService->getList($employees->market_id,$page,$pagesize); return $this->success($res); } diff --git a/app/Service/v3/Implementations/SearchService.php b/app/Service/v3/Implementations/SearchService.php index f10dcb5..3a2c5b2 100644 --- a/app/Service/v3/Implementations/SearchService.php +++ b/app/Service/v3/Implementations/SearchService.php @@ -8,6 +8,7 @@ use App\Constants\v3\Goods as GoodsConstants; use App\Model\v3\Category; use App\Model\v3\Goods; use App\Model\v3\GoodsCategory; +use App\Model\v3\Market; use App\Model\v3\Store; use App\Service\v3\Interfaces\SearchServiceInterface; use Hyperf\Paginator\Paginator; @@ -195,4 +196,17 @@ class SearchService implements SearchServiceInterface { // TODO: Implement undo() method. } + + public function getStoresForPersonnel($marketId, $keywords, $page = 1, $pagesize = 10) + { + $market = Market::query()->withoutGlobalScope('normal')->find($marketId); + $builder = Store::query()->where('market_id',$marketId); + if(!is_null($keywords)){ + $builder->where('name','like','%'.$keywords.'%'); + } + $paginate = $builder->orderBy('is_rest', 'asc')->paginate($pagesize); + $stores = $paginate->toArray(); + $market->stores = $stores['data']; + return ['has_more_pages' => $paginate->hasMorePages(), 'market' => $market]; + } } \ No newline at end of file diff --git a/app/Service/v3/Interfaces/SearchServiceInterface.php b/app/Service/v3/Interfaces/SearchServiceInterface.php index 0767938..b50dde9 100644 --- a/app/Service/v3/Interfaces/SearchServiceInterface.php +++ b/app/Service/v3/Interfaces/SearchServiceInterface.php @@ -10,4 +10,5 @@ interface SearchServiceInterface public function do(); public function check(); public function undo(); + public function getStoresForPersonnel($marketId, $keywords ,$page=1, $pagesize=10); } \ No newline at end of file diff --git a/config/routes.php b/config/routes.php index fbb8832..a82953c 100644 --- a/config/routes.php +++ b/config/routes.php @@ -176,6 +176,7 @@ Router::addGroup('/v3/', function () { Router::post('horseman/getOrderInfo', 'App\Controller\v3\HorsemanController@getOrderInfo'); Router::post('horseman/orderComplete', 'App\Controller\v3\HorsemanController@orderComplete'); Router::post('goods/bannerDelete', 'App\Controller\v3\GoodsController@bannerDelete'); + Router::post('search/storesForPersonnel', 'App\Controller\v3\SearchController@storesForPersonnel'); },['middleware' => [\App\Middleware\Auth\ApiMiddleware::class, \App\Middleware\Auth\UserMiddleware::class]]); // 微信支付回调