$mainId]); foreach($authPlatforms as $pt) { switch($pt['platform']) { case 'shansong': $this->adapters['shansong'] = new ShansongShop($pt['accessToken'], $pt['shopId']); 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, $pt['shopId']); break; case 'dada': $this->adapters['dada'] = new Dada($pt['accessToken'], $pt['shopId'], $pt['merchantId']); break; case 'didi': $this->adapters['didi'] = new Didi($pt['accessToken'], $pt['mainId']); break; } } } else { $authPlatform = DeliveryAuthTokenClass::getByCondition(['mainId' => $mainId, 'platform' => $platform]); switch($platform) { case 'shansong': $this->adapters['shansong'] = new ShansongShop($authPlatform['accessToken'], $authPlatform['shopId']); break; case 'huolala': $this->adapters['huolala'] = new HuolalaShop($authPlatform['accessToken']); break; case 'fengniao': $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, $authPlatform['shopId']); break; case 'dada': $this->adapters['dada'] = new Dada($authPlatform['accessToken'], $authPlatform['shopId'], $authPlatform['merchantId']); break; case 'didi': $this->adapters['didi'] = new Didi($authPlatform['accessToken'], $authPlatform['mainId']); break; } $this->platformName = $platform; } } public function getAdapter() { return $this->adapters[$this->platformName]; } public function getBalance($platform) { $ret = []; switch($platform) { case 'shansong': /** @var ShansongShop $adapter */ $adapter = $this->adapters[$platform]; $ret = $adapter->getUserAccount(); break; case 'huolala': /** @var HuolalaShop $adapter */ $adapter = $this->adapters[$platform]; $ret = $adapter->queryWalletBalance(); break; case 'fengniao': /** @var FengniaoShop $adapter */ $adapter = $this->adapters[$platform]; $ret = $adapter->getShopAccountBalance(); break; case 'shunfeng': /** @var ShunfengShop $adapter */ $adapter = $this->adapters[$platform]; $ret = $adapter->getShopAccountBalance(); break; case 'dada': /** @var Dada $adapter */ $adapter = $this->adapters[$platform]; $ret = $adapter->balance(); break; case 'didi': /** @var Didi $adapter */ $adapter = $this->adapters[$platform]; $ret = $adapter->walletBalance(); break; default: Yii::error("查询用户余额的平台{$platform}不存在"); util::fail("查询用户余额的平台{$platform}不存在"); } if($ret['success'] === false){ Yii::error("查询{$platform}帐户余额:{$ret['message']}"); util::fail("查询帐户余额失败: {$ret['message']}"); } 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; } } 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; } public function storeDetail($mainId, $platform, $storeId) { try { switch($platform) { case 'shunfeng': /** @var ShunfengShop $shop */ $shop = $this->adapters[$platform]; $ret = $shop->getShopInfo($storeId, 1); break; } return $ret; } catch(\Exception $e) { Yii::error('获取门店信息失败: ' . $e->getMessage()); return false; } } public function updateStore($shopId, $platform, $post) { try { switch($platform) { case 'shunfeng': /** @var ShunfengShop $shop */ $shop = $this->adapters[$platform]; $ret = $shop->updateshop($shopId, $post); break; } return $ret; } catch(\Exception $e) { Yii::error('获取门店信息失败: ' . $e->getMessage()); return false; } } }