$mainId]); foreach($authPlatforms as $pt) { switch($pt['platform']) { case 'shansong': $this->adapters['shansong'] = new ShansongShop($pt['accessToken']); break; case 'huolala': $this->adapters['huolala'] = new HuolalaShop($pt['accessToken']); break; case 'fengniao': $adapter = new FengniaoShop($pt['accessToken']); $adapter->setMerchantId($authPlatforms['merchantId']); $adapter->setShopId($authPlatforms['shopId']); $this->adapters['fengniao'] = $adapter; break; case 'shunfeng': $this->adapters['shunfeng'] = new ShunfengShop($pt['accessToken'], $pt['shopId']); break; } } } else { $authPlatform = DeliveryAuthTokenClass::getByCondition(['mainId' => $mainId, 'platform' => $platform]); switch($platform) { case 'shansong': $this->adapters['shansong'] = new ShansongShop($authPlatform['accessToken']); break; case 'huolala': $this->adapters['huolala'] = new HuolalaShop($authPlatform['accessToken']); break; case 'fengniao': //$this->adapters['fengniao'] = new FengniaoAdapter($authPlatform['accessToken']); $adapter = new FengniaoShop($authPlatform['accessToken']); $adapter->setMerchantId($authPlatform['merchantId']); $adapter->setShopId($authPlatform['shopId']); $this->adapters['fengniao'] = $adapter; break; case 'shunfeng': $this->adapters['shunfeng'] = new ShunfengShop($authPlatform['accessToken'], $authPlatform['shopId']); break; } $this->platformName = $platform; } } public function getAdapter() { return $this->adapters[$this->platformName]; } public function getBalance($platform) { $ret = []; switch($platform) { case 'shansong': $adapter = $this->adapters[$platform]; $ret = $adapter->getUserAccount(); break; case 'huolala': $adapter = $this->adapters[$platform]; $ret = $adapter->queryWalletBalance(); break; case 'fengniao': $ret['success'] = false; $ret['balance'] = 0; $ret['message'] = '蜂鸟平台不支持查询余额'; break; case 'shunfeng': $adapter = $this->adapters[$platform]; $ret = $adapter->getShopAccountBalance(); break; } return $ret['balance']; } /** * 获取商家的所有门店 */ public function getMerchantStores($platform) { $storeDatas = []; switch($platform) { case 'fengniao': /** @var FengniaoShop $shop */ $shop = $this->adapters[$platform]; $ret = $shop->chainstoreQueryList(); $stores = $ret['data']['list']; break; } if($platform == 'fengniao') { $bindShopId = $shop->getShopId(); foreach($stores as $store) { $storeDatas[] = [ 'id' => $store['chain_store_id'], 'merchant_id' => $store['merchant_id'], 'out_shop_code' => $store['out_shop_code'], 'name' => $store['name'], 'address' => $store['address'], 'status' => $store['status'], 'status_desc' => $store['status'], 'latitude' => $store['latitude'], 'longitude' => $store['longitude'], 'bindStatus' => $bindShopId == $store['chain_store_id'] ? true : false, ]; } } return $storeDatas; } public function bindStore($mainId, $platform, $storeId) { try { switch($platform) { case 'fengniao': /** @var FengniaoShop $shop */ $shop = $this->adapters[$platform]; $shop->bindStore($mainId, $storeId); break; } return true; } catch(\Exception $e) { Yii::error('绑定门店失败: ' . $e->getMessage()); return false; } return true; } public function unbindStore($mainId, $platform, $storeId) { try { switch($platform) { case 'fengniao': /** @var FengniaoShop $shop */ $shop = $this->adapters[$platform]; $shop->unbindStore($mainId, $storeId); break; } return true; } catch(\Exception $e) { Yii::error('解绑门店失败: ' . $e->getMessage()); return false; } return true; } }