shish 2 vuotta sitten
vanhempi
commit
94955217d0
1 muutettua tiedostoa jossa 64 lisäystä ja 16 poistoa
  1. 64 16
      console/controllers/PtCpController.php

+ 64 - 16
console/controllers/PtCpController.php

@@ -2,6 +2,9 @@
 
 namespace console\controllers;
 
+use biz\cp\classes\PtCpClass;
+use biz\cp\classes\PtCpClassClass;
+use biz\cp\classes\PtCpItemClass;
 use biz\item\classes\PtItemCatClass;
 use biz\item\classes\PtItemCatRelateClass;
 use biz\item\classes\PtItemClass;
@@ -13,28 +16,73 @@ class PtCpController extends Controller
 {
 
     //生成平台需要的产品和产品的分类 ssh 20240215
-    public function actionInitCpAndClass()
+    public function actionInitCp()
     {
         ini_set('memory_limit', '2045M');
         set_time_limit(0);
-        $itemClassList = PtItemCatClass::getAllByCondition(['type' => 0], null, '*');
-        if (empty($itemClassList)) {
-            util::stop('没有花材的分类');
-        }
-        foreach ($itemClassList as $itemClass) {
-            $classId = $itemClass['id'] ?? 0;
-            $className = $itemClass['name'] ?? '';
-            $classCover = $itemClass['cover'] ?? '';
-            $classInTurn = $itemClass['inTurn'] ?? 100;
-            $itemList = PtItemCatRelateClass::getAllByCondition(['catId' => $classId], null, '*', 'itemId');
-            if (empty($itemList)) {
-                continue;
+
+        $sql = 'TRUNCATE `xhPtCp`;TRUNCATE `xhPtCpItem`;TRUNCATE `xhPtCpClass`;TRUNCATE `xhCp`;TRUNCATE `xhCpClass`;TRUNCATE `xhCpI`;';
+        Yii::$app->db->createCommand($sql)->execute();
+
+        $connection = Yii::$app->db;
+        $transaction = $connection->beginTransaction();
+        try {
+
+            $itemClassList = PtItemCatClass::getAllByCondition(['type' => 0], null, '*');
+            if (empty($itemClassList)) {
+                util::stop('没有花材的分类');
             }
-            $ids = array_keys($itemList);
-            $newItemList = PtItemClass::getAllByCondition(['id' => ['in', $ids]], null, '*');
-            foreach ($newItemList as $newItem) {
+            foreach ($itemClassList as $itemClass) {
+                $classId = $itemClass['id'] ?? 0;
+                $className = $itemClass['name'] ?? '';
+                $classCover = $itemClass['cover'] ?? '';
+                $classInTurn = $itemClass['inTurn'] ?? 100;
+                $itemList = PtItemCatRelateClass::getAllByCondition(['catId' => $classId], null, '*', 'itemId');
+                if (empty($itemList)) {
+                    continue;
+                }
+
+                $addClass = ['cover' => $classCover, 'name' => $className, 'inTurn' => $classInTurn];
+                $newClass = PtCpClassClass::add($addClass, true);
+                $newClassId = $newClass->id ?? 0;
+
+                $ids = array_keys($itemList);
+                $newItemList = PtItemClass::getAllByCondition(['id' => ['in', $ids]], null, '*');
+                foreach ($newItemList as $newItem) {
+                    $itemId = $newItem['id'] ?? 0;
+                    $itemName = $newItem['name'] ?? '';
+                    $itemPy = $newItem['py'] ?? '';
+                    $itemCover = $newItem['cover'] ?? '';
+                    $itemAuth = $newItem['auth'] ?? 0;
+                    $addCp = [
+                        'classId' => $newClassId,
+                        'name' => $itemName,
+                        'cover' => $itemCover,
+                        'auth' => $itemAuth,
+                    ];
+                    $newCp = PtCpClass::addCp($addCp);
+                    $newCpId = $newCp->id ?? 0;
 
+                    $addCpItem = [
+                        'cpId' => $newCpId,
+                        'itemId' => $itemId,
+                        'auth' => $itemAuth,
+                        'name' => $itemName,
+                        'py' => $itemPy,
+                        'cpName' => $itemName,
+                        'cpPy' => $itemPy,
+                    ];
+                    PtCpItemClass::add($addCpItem, true);
+                }
             }
+            //最后创建一个默认分类
+            $addClass = ['cover' => '', 'name' => '默认分类', 'inTurn' => 0, 'isDefault' => 1];
+            PtCpClassClass::add($addClass, true);
+            $transaction->commit();
+        } catch (\Exception $e) {
+            $transaction->rollBack();
+            $msg = $e->getMessage();
+            echo $msg;
         }
     }