Răsfoiți Sursa

从首店同步客户

shizhongqi 4 ani în urmă
părinte
comite
e56431ca82

+ 17 - 0
app-ghs/controllers/CustomController.php

@@ -10,6 +10,7 @@ use bizGhs\custom\services\CustomService;
 use bizHd\saas\classes\ApplyClass;
 use bizHd\saas\services\ApplyService;
 use bizHd\stat\classes\StatVisitClass;
+use bizGhs\shop\classes\ShopClass;
 use common\components\imgUtil;
 use common\components\stringUtil;
 use common\components\util;
@@ -157,6 +158,22 @@ class CustomController extends BaseController
         util::complete();
     }
 
+    //向队列写入执行复制客户的任务 shizhongqi 2022.6.9
+    public function actionCopyCustomers()
+    {
+        $shopId = $this->shopId;
+        // 检测首店存在
+        $defaultShopId = ShopClass::getDefaultShopId($shopId);
+        if (empty($defaultShopId)) {
+            Yii::info("通过分店 id = $shopId 取首店 id 失败");
+            return;
+        }
+
+        $cachedKey = 'copy_firstShop_customers';
+        Yii::$app->redis->executeCommand('LPUSH', [$cachedKey, $shopId . '_' . $defaultShopId]);
+        Yii::info("复制首店的客户:分店id =  " . $shopId . ' 首店id = ' . $defaultShopId);
+    }
+
     //客户列表 ssh 2021.7.8
     public function actionList()
     {

+ 16 - 1
biz-ghs/shop/classes/ShopClass.php

@@ -7,8 +7,8 @@ use biz\shop\classes\ShopExtClass;
 use bizGhs\admin\classes\AdminClass;
 use common\components\stringUtil;
 use common\components\util;
-use Yii;
 use bizHd\base\classes\BaseClass;
+use biz\sj\classes\SjClass;
 
 class ShopClass extends BaseClass
 {
@@ -51,4 +51,19 @@ class ShopClass extends BaseClass
         return $shop;
     }
 
+    // 通过分店门店id取首店门店id
+    public static function getDefaultShopId($shopId)
+    {
+        $shop = self::getById($shopId);
+        if (empty($shop)) {
+            return null;
+        }
+        $sjId = $shop['sjId'];
+        $sj = SjClass::getById($sjId);
+        if (empty($sj)) {
+            return null;
+        }
+
+        return $sj['defaultShopId'];
+    }
 }

+ 38 - 1
console/controllers/CustomController.php

@@ -14,7 +14,6 @@ use bizHd\purchase\classes\PurchaseClass;
 use bizHd\saas\classes\ApplyClass;
 use bizHd\saas\services\ApplyService;
 use common\components\dict;
-use common\components\jwt;
 use common\components\noticeUtil;
 use common\components\stringUtil;
 use common\components\util;
@@ -137,6 +136,12 @@ class CustomController extends Controller
     }
 
     public function actionCreateCustomer()
+    {
+        $this->createCustomer();
+        $this->copyCustomers();
+    }
+
+    private function createCustomer()
     {
         $customerCachedKey = 'customers_list';
         while ($count = Yii::$app->redis->executeCommand('LLEN', [$customerCachedKey])) {
@@ -255,4 +260,36 @@ class CustomController extends Controller
         }
     }
 
+    private function copyCustomers()
+    {
+        $cachedKey = 'copy_firstShop_customers';
+        while ($count = Yii::$app->redis->executeCommand('LLEN', [$cachedKey])) {
+            $shopIdData = Yii::$app->redis->executeCommand('RPOP', [$cachedKey]);
+            $shopIdDatas[] = $shopIdData;
+        }
+
+        if (!isset($shopIdDatas)) {
+            return;
+        }
+
+        foreach($shopIdDatas as $shopIdData) {
+            $shopIdArr = explode('_', $shopIdData);
+            if (count($shopIdArr) != 2) {
+                Yii::info('copyCustomers 数据出错:' . json_encode($shopIdArr));
+                continue;
+            }
+
+            $shopId = $shopIdArr[0];
+            $defaultShopId = $shopIdArr[1];
+
+            $customers = CustomClass::getByCondition(['ownShopId' => $defaultShopId], true);
+            foreach($customers as $customer) {
+                $exist = CustomClass::exists(['ownShopId'=> $shopId, 'shopId'=>$customer->shopId]);
+                if (!$exist) {
+                    CustomClass::build($shopId, $customer->shopId);
+                }
+            }
+        }
+    }
+
 }