paginate(); foreach ($shops as $shop) { $shop->authUrl = ''; if ('妙选' !== $shop->plat_id && '未授权' === $shop->status) { $shop->authUrl = BusinessFactory::init()->make($shop->plat_id)->getAuthUrl($shop->id, $shop->getOriginal('plat_id')); } } return ShopsResource::collection($shops); } public function getPlatList() { $shop = new Shop(); return new ShopsResource($shop->getPlatList()); } public function store(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required|string|max:191|unique:shops,name', 'plat_id' => 'required|integer', ]); if ($validator->fails()) { $this->setValidatorFailResponse($validator->getMessageBag()->getMessages()); return response($this->res, $this->res['httpCode']); } $shop = new Shop(); $shop->name = $request->name; $shop->plat_id = $request->plat_id; $shop->save(); return response($this->res, $this->res['httpCode']); } public function authBind(Request $request) { [$shopId, $platId] = explode('_', $request->get('state')); $shop = new Shop(); $platList = $shop->getPlatList(); $shop = $shop->find($shopId); if ($platList[$platId] === $shop->plat_id) { BusinessFactory::init()->make($shop->plat_id)->authCallback($request->get('code'), $shop); } else { $this->res = [ 'httpCode' => 403, 'errorCode' => 403400, 'errorMessage' => '信息不匹配', ]; } return response($this->res, $this->res['httpCode']); } public function business(Request $request) { $validator = Validator::make($request->all(), [ 'type' => ['required', 'string', Rule::in(['goods', 'orders'])], 'erp_shop_id' => ['required', 'integer', 'exists:shops,id'], ]); if ($validator->fails()) { $this->setValidatorFailResponse($validator->getMessageBag()->getMessages()); return response($this->res, $this->res['httpCode']); } $shop = new Shop(); $shop = $shop->find($request->get('erp_shop_id')); $business = BusinessFactory::init()->make($shop->plat_id); $business->setShop($shop); if ('goods' === $request->get('type')) { $business->bindGoods($request->get('data')); event(new BindBusinessGoods($shop)); } if ('orders' === $request->get('type')) { $business->saveOrders(); event(new UpdateBusinessGoodsStock($shop)); } } }