|
|
@@ -2,13 +2,15 @@
|
|
|
namespace common\components\delivery\services;
|
|
|
|
|
|
//商户账号绑定管理
|
|
|
+use common\components\delivery\platform\dada\Dada;
|
|
|
use Yii;
|
|
|
use bizGhs\express\classes\DeliveryAuthTokenClass;
|
|
|
use common\components\delivery\platform\fengniao\Shop as FengniaoShop;
|
|
|
use common\components\delivery\platform\huolala\Shop as HuolalaShop;
|
|
|
use common\components\delivery\platform\shansong\Shop as ShansongShop;
|
|
|
use common\components\delivery\platform\shunfeng\Shop as ShunfengShop;
|
|
|
-use common\components\delivery\services\adapter\FengniaoAdapter;
|
|
|
+use common\components\delivery\platform\didi\Didi;
|
|
|
+use common\components\util;
|
|
|
|
|
|
/**
|
|
|
* 聚合调度逻辑(平台选择/优先级)
|
|
|
@@ -27,7 +29,7 @@ class ShopService
|
|
|
foreach($authPlatforms as $pt) {
|
|
|
switch($pt['platform']) {
|
|
|
case 'shansong':
|
|
|
- $this->adapters['shansong'] = new ShansongShop($pt['accessToken']);
|
|
|
+ $this->adapters['shansong'] = new ShansongShop($pt['accessToken'], $pt['shopId']);
|
|
|
break;
|
|
|
case 'huolala':
|
|
|
$this->adapters['huolala'] = new HuolalaShop($pt['accessToken']);
|
|
|
@@ -39,7 +41,13 @@ class ShopService
|
|
|
$this->adapters['fengniao'] = $adapter;
|
|
|
break;
|
|
|
case 'shunfeng':
|
|
|
- $this->adapters['shunfeng'] = new ShunfengShop($pt['accessToken'], $pt['shopId']);
|
|
|
+ $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;
|
|
|
}
|
|
|
}
|
|
|
@@ -47,20 +55,25 @@ class ShopService
|
|
|
$authPlatform = DeliveryAuthTokenClass::getByCondition(['mainId' => $mainId, 'platform' => $platform]);
|
|
|
switch($platform) {
|
|
|
case 'shansong':
|
|
|
- $this->adapters['shansong'] = new ShansongShop($authPlatform['accessToken']);
|
|
|
+ $this->adapters['shansong'] = new ShansongShop($authPlatform['accessToken'], $authPlatform['shopId']);
|
|
|
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']);
|
|
|
+ $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;
|
|
|
@@ -77,22 +90,45 @@ class ShopService
|
|
|
$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'];
|
|
|
}
|
|
|
|
|
|
@@ -146,13 +182,12 @@ class ShopService
|
|
|
Yii::error('绑定门店失败: ' . $e->getMessage());
|
|
|
return false;
|
|
|
}
|
|
|
- return true;
|
|
|
}
|
|
|
|
|
|
public function unbindStore($mainId, $platform, $storeId)
|
|
|
{
|
|
|
try {
|
|
|
- switch($platform) {
|
|
|
+ switch($platform) {
|
|
|
case 'fengniao':
|
|
|
/** @var FengniaoShop $shop */
|
|
|
$shop = $this->adapters[$platform];
|
|
|
@@ -166,4 +201,38 @@ class ShopService
|
|
|
}
|
|
|
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;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|