db->createCommand($sql)->execute(); $connection = Yii::$app->db; $transaction = $connection->beginTransaction(); try { $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; } $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; $itemInTurn = $newItem['inTurn'] ?? 100; $addCp = [ 'classId' => $newClassId, 'name' => $itemName, 'cover' => $itemCover, 'auth' => $itemAuth, 'inTurn' => $itemInTurn, ]; $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); $a = $newItem; $a['name'] = $a['name'] . ' A级'; unset($a['id']); $b = $newItem; $b['name'] = $b['name'] . ' B级'; unset($b['id']); $c = $newItem; $c['name'] = $c['name'] . ' C级'; unset($c['id']); $d = $newItem; $d['name'] = $d['name'] . ' D级'; unset($d['id']); $e = $newItem; $e['name'] = $e['name'] . ' E级'; unset($e['id']); $arr = [$a, $b, $c, $d, $e]; foreach ($arr as $levelKey => $levelItem) { $newItem = PtItemClass::add($levelItem, true); $newItemName = $newItem->name ?? ''; $newItemPy = $newItem->py ?? ''; $newItemId = $newItem->id ?? 0; $newAddCpItem = [ 'cpId' => $newCpId, 'itemId' => $newItemId, 'auth' => $itemAuth, 'name' => $newItemName, 'py' => $newItemPy, 'cpName' => $itemName, 'cpPy' => $itemPy, ]; PtCpItemClass::add($newAddCpItem, true); } } } //最后创建一个默认分类 $addClass = ['cover' => 'item_class/mrfl.png', 'name' => '默认分类', 'inTurn' => 0, 'isDefault' => 1]; PtCpClassClass::add($addClass, true); $transaction->commit(); } catch (\Exception $e) { $transaction->rollBack(); $msg = $e->getMessage(); echo $msg; } } }