shish 6 лет назад
Родитель
Сommit
fd7a9fc262

+ 11 - 1
app/www/controllers/WxOpenController.php

@@ -2,6 +2,7 @@
 
 namespace www\controllers;
 
+use biz\merchant\classes\MerchantExtendClass;
 use biz\merchant\services\MerchantService;
 use biz\weixin\services\WxOpenService;
 use common\services\xhMerchantExtendService;
@@ -153,7 +154,16 @@ class WxOpenController extends PublicController
 		$upData['wxRefreshToken'] = $authorize_refresh_token;
 		$upData['status'] = 1;//审核通过
 		xhMerchantService::updateById($id, $upData);
-		
+
+		//还没有完成初始化先进行初始化
+		$extend = MerchantExtendClass::getByMerchantId($id);
+		if (isset($extend['init']) && $extend['init'] == 0) {
+			$data = ['merchantId' => $merchantId, 'platform' => 1];
+			$producer = Yii::$app->rabbitmq->getProducer('openShopInitProducer');
+			$msg = serialize($data);
+			$producer->publish($msg, 'openShopInitExchange', 'openShopInitRoute');
+		}
+
 		echo 'ok';
 	}
 	

+ 9 - 6
biz/merchant/services/MerchantService.php

@@ -8,6 +8,7 @@ use biz\base\services\BaseService;
 use biz\merchant\classes\AdminClass;
 use biz\merchant\classes\MerchantAssetClass;
 use biz\merchant\classes\MerchantClass;
+use biz\merchant\classes\MerchantExtendClass;
 use biz\merchant\classes\ShopClass;
 use biz\message\services\TMessageService;
 use biz\saas\services\SetAuthService;
@@ -149,24 +150,26 @@ class MerchantService extends BaseService
 		if (empty($merchant)) {
 			return false;
 		}
-		$connection = Yii::$app->db;//事务处理
+		$extend = MerchantExtendClass::getByMerchantId($merchantId);
+		if (isset($extend['init']) && $extend['init'] == 1) {
+			return true;
+		}
+		//事务处理
+		$connection = Yii::$app->db;
 		$transaction = $connection->beginTransaction();
 		try {
-			
 			//初始化微信菜单
 			xhWxMenuService::applyInit($merchant);
-			
 			//微信客户初始化
 			$return = UserService::syncWxAllUser($merchantId);
 			$totalNum = isset($return['total']) ? $return['total'] : 0;
 			MerchantAssetClass::updateByCondition(['merchantId' => $merchantId], ['totalFans' => $totalNum, 'totalUser' => $totalNum]);
-			
 			//模板消息
 			xhTMessageService::init($merchant);
-			
+			//完成初始化标识
+			MerchantExtendClass::updateByCondition(['merchantId' => $merchantId], ['init' => 1]);
 			$transaction->commit();
 			return true;
-			
 		} catch (Exception $e) {
 			$transaction->rollBack();
 			return false;

+ 2 - 3
common/components/rabbitmq/consumer/openShopInitConsumer.php

@@ -22,8 +22,7 @@ class openShopInitConsumer implements ConsumerInterface
 	{
 		$data = unserialize($msg->body);
 		$merchantId = isset($data['merchantId']) ? $data['merchantId'] : 0;
-		$platform = isset($data['platform']) ? $data['platform'] : 0;
-		$return = MerchantService::openShopInit(['merchantId' => $merchantId, 'platform' => $platform]);
+		$return = MerchantService::openShopInit(['merchantId' => $merchantId]);
 		if ($return == false) {
 			//没有初始化成功短信通知管理员
 			$merchant = MerchantService::getMerchantById($merchantId);
@@ -34,5 +33,5 @@ class openShopInitConsumer implements ConsumerInterface
 		//return ConsumerInterface::MSG_REQUEUE;
 		return ConsumerInterface::MSG_ACK;
 	}
-
+	
 }