Explorar o código

修改分类同步

shish %!s(int64=3) %!d(string=hai) anos
pai
achega
65cfb4b89c
Modificáronse 1 ficheiros con 39 adicións e 16 borrados
  1. 39 16
      app-ghs/controllers/ItemClassController.php

+ 39 - 16
app-ghs/controllers/ItemClassController.php

@@ -5,6 +5,7 @@ namespace ghs\controllers;
 use bizGhs\item\classes\ItemClassClass;
 use bizGhs\item\services\ItemClassService;
 use bizGhs\product\classes\ProductClass;
+use bizGhs\shop\classes\ShopClass;
 use common\components\util;
 use Yii;
 
@@ -58,12 +59,13 @@ class ItemClassController extends BaseController
         util::complete('添加成功');
     }
 
+    //修改分类同步 ssh 20220906
     public function actionUpdate()
     {
         $data = Yii::$app->request->post();
         $id = $data['id'] ?? 0;
         $name = $data['name'] ?? '';
-
+        $inTurn = $data['inTurn'] ?? 0;
         $class = ItemClassClass::getById($id, true);
         if (empty($class)) {
             util::fail('没有找到分类');
@@ -71,26 +73,47 @@ class ItemClassController extends BaseController
         if ($class->isDefault == 1) {
             util::fail('不能修改默认分组');
         }
-        $itemName = $class->name;
-        if ($itemName == $name) {
-            if (isset($data['inTurn']) && is_numeric($data['inTurn'])) {
-                $class->inTurn = $data['inTurn'];
-            }
-            $class->save();
-            util::success('修改成功');
-        }
         if ($class->mainId != $this->mainId) {
-            util::fail('没有权限修改');
+            util::fail('不是您的分类');
         }
+        $originName = $class->name ?? '';
         $has = ItemClassClass::getByCondition(['mainId' => $this->mainId, 'name' => $name]);
-        if (!empty($has)) {
+        if (!empty($has) && $id != $has->id) {
             util::fail('名称已经存在');
         }
         $class->name = $name;
-        if (isset($data['inTurn']) && is_numeric($data['inTurn'])) {
-            $class->inTurn = $data['inTurn'];
-        }
+        $class->inTurn = $inTurn;
         $class->save();
+
+        //在首店修改,则父级下所有直营店,同步修改
+        $masterShop = $this->shop;
+        if (isset($masterShop->default) && $masterShop->default == 1) {
+            $sjId = $masterShop->sjId ?? 0;
+            $shopList = ShopClass::getAllByCondition(['sjId' => $sjId], null, '*', null, true);
+            foreach ($shopList as $shop) {
+                $shopId = $shop->id ?? 0;
+                if (isset($shop->join) && $shop->join == 1) {
+                    //加盟店不同步修改
+                    continue;
+                }
+                if ($shopId == $masterShop->id) {
+                    //前面已经修改过了
+                    continue;
+                }
+                $currentMainId = $shop->mainId ?? 0;
+                $chainList = ItemClassClass::getAllByCondition(['mainId' => $currentMainId], null, '*', null, true);
+                if (!empty($chainList)) {
+                    foreach ($chainList as $chain) {
+                        if ($chain->name == $originName) {
+                            $chain->name = $name;
+                            $chain->inTurn = $inTurn;
+                            $chain->save();
+                        }
+                    }
+                }
+            }
+        }
+
         util::complete('修改成功');
     }
 
@@ -104,10 +127,10 @@ class ItemClassController extends BaseController
             $default = ItemClassClass::getByCondition(['mainId' => $this->mainId, 'isDefault' => 1], true);
             $defaultClassId = $default->id ?? 0;
             if (empty($defaultClassId)) {
-                util::fail('没有找到默认分类');
+                util::fail('没有默认分类');
             }
             if ($defaultClassId == $id) {
-                util::fail('默认分类不可删除');
+                util::fail('不能删除默认分类');
             }
             $class = ItemClassClass::getById($id, true);
             ItemClassClass::valid($class, $this->mainId);