|
|
@@ -3,15 +3,44 @@ namespace hd\controllers;
|
|
|
|
|
|
use biz\ghs\classes\GhsClass;
|
|
|
use bizGhs\custom\classes\CustomClass;
|
|
|
+use bizGhs\express\classes\DeliveryAuthTokenClass;
|
|
|
use Yii;
|
|
|
use biz\shop\classes\ShopClass;
|
|
|
use common\components\delivery\services\DispatchService;
|
|
|
use common\components\util;
|
|
|
-use ghs\controllers\BaseController;
|
|
|
use yii\helpers\ArrayHelper;
|
|
|
|
|
|
class DeliveryController extends BaseController
|
|
|
{
|
|
|
+ public function actionList()
|
|
|
+ {
|
|
|
+ $platformList = [];
|
|
|
+ $platformLogos = [
|
|
|
+ 'data' => ['name'=>'达达', 'logo'=>'📦'],
|
|
|
+ 'shunfeng' => ['name'=>'顺丰同城', 'logo'=>'🚚'],
|
|
|
+ 'meituan' => ['name'=>'美团', 'logo'=>'🍱'] ,
|
|
|
+ 'fengniao' => ['name'=>'蜂鸟', 'logo'=>'🍜'],
|
|
|
+ 'huolala' => ['name'=>'货拉拉跑腿', 'logo'=>'🚛'],
|
|
|
+ 'shansong' => ['name'=>'闪送', 'logo'=>'⚡'],
|
|
|
+ 'didi' => ['name'=>'滴滴', 'logo'=>'🚗'],
|
|
|
+ 'uu' => ['name'=>'UU跑腿', 'logo'=>'🛵']
|
|
|
+ ];
|
|
|
+ $mainId = $this->mainId;
|
|
|
+ $allDeliveries = DeliveryAuthTokenClass::getAllByCondition(['mainId'=>$mainId]);
|
|
|
+ foreach($allDeliveries as $d){
|
|
|
+ $item = [
|
|
|
+ 'id'=>$d['platform'],
|
|
|
+ 'logo'=>$platformLogos[$d['platform']]['logo'],
|
|
|
+ 'name'=>$platformLogos[$d['platform']]['name'],
|
|
|
+ 'is_authorized' => true,
|
|
|
+ 'balance' => $d['balance']/100.0,
|
|
|
+ 'access_type' => 'oauth'
|
|
|
+ ];
|
|
|
+ $platformList[] = $item;
|
|
|
+ }
|
|
|
+ util::success(['platformList'=>$platformList]);
|
|
|
+ }
|
|
|
+
|
|
|
// 获取多个平台报价
|
|
|
public function actionAllDeliveryQuotes()
|
|
|
{
|
|
|
@@ -72,4 +101,66 @@ class DeliveryController extends BaseController
|
|
|
$ret['deliveryList'] = $deliveryList;
|
|
|
util::success($ret, "success");
|
|
|
}
|
|
|
+
|
|
|
+ public function actionCancelAuth()
|
|
|
+ {
|
|
|
+ // 有平台有对应的取消授权接口,有的没有。
|
|
|
+ // 有的就对接下,然后再删除数据。没有的直接删除数据就行。
|
|
|
+ $platform = Yii::$app->request->get('platform');
|
|
|
+ $delivery = DeliveryAuthTokenClass::getByCondition(['mainId'=>$this->mainId, 'platform'=>$platform]);
|
|
|
+ if($delivery) {
|
|
|
+ if($platform == 'shansong') {
|
|
|
+ $auth = new \common\components\delivery\platform\shansong\Auth();
|
|
|
+ $result = $auth->cancelAuthorization($delivery['accessToken']);
|
|
|
+ if($result['success']) {
|
|
|
+ // 授权已取消
|
|
|
+ }else{
|
|
|
+ if($result['message'] == '商户未授权,请授权后再次尝试'){
|
|
|
+ Yii::info($this->mainId . '--商户未授权,请授权后再次尝试');
|
|
|
+ }else{
|
|
|
+ util::fail('取消授权失败:'.$result['message']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ util::fail('取消授权失败,数据未找到');
|
|
|
+ }
|
|
|
+
|
|
|
+ $ret = DeliveryAuthTokenClass::deleteByCondition(['mainId'=>$this->mainId, 'platform'=>$platform]);
|
|
|
+ if($ret > 0){
|
|
|
+ util::success(['message'=>'取消授权成功']);
|
|
|
+ } else {
|
|
|
+ util::fail('取消授权失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public function actionGetAuthUrl()
|
|
|
+ {
|
|
|
+ $platform = Yii::$app->request->get('platformId');
|
|
|
+
|
|
|
+ $Auth = new \common\components\delivery\services\AuthService();
|
|
|
+ $mainId = $this->mainId;
|
|
|
+ switch($platform){
|
|
|
+ case 'shansong':
|
|
|
+ $Auth->shansongAuth($mainId);
|
|
|
+ break;
|
|
|
+ case 'huolala':
|
|
|
+ $Auth->huolalaAuth($mainId);
|
|
|
+ break;
|
|
|
+ case 'fengniao':
|
|
|
+ $Auth->fengniaoAuth($mainId);
|
|
|
+ break;
|
|
|
+ case 'dada':
|
|
|
+ $Auth->dadaAuth($mainId);
|
|
|
+ break;
|
|
|
+ case 'shunfeng':
|
|
|
+ $Auth->shunfengAuth($mainId);
|
|
|
+ break;
|
|
|
+ case 'didi':
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ util::error(-1, $platform . '不存在');
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|