where(['node' => $vo])->find(); if (empty($nodeInfo)) { list($nodeCount, $nodeType) = [substr_count($vo, '/'), 0]; switch ($nodeCount) { case 0: $nodeType = 1; break; case 1: $nodeType = 2; break; case 2: $nodeType = 3; break; } $insertNode[] = ['type' => $nodeType, 'node' => $vo]; } } if (!empty($insertNode)) { Db::startTrans(); try { Db::name('SystemNode')->insertAll($insertNode); Db::commit(); } catch (\Exception $e) { Db::rollback(); return ['code' => 1, 'msg' => $e->getMessage()]; } return ['code' => 0, 'msg' => '节点刷新成功!']; } else { return ['code' => 1, 'msg' => '节点数据暂无变化!']; } } /** * 清除失效节点 * @param array $modules */ public static function cleanNode($modules = []) { empty($modules) && $modules = self::getFolders(env('app_path')); $nodeList = Db::name('SystemNode')->where(['is_auto' => 0])->select(); $autoNodeList = self::getNodeList($modules); foreach ($nodeList as $voNode) { $is_exist = false; foreach ($autoNodeList as $voAutoNode) { $voNode['node'] == $voAutoNode && $is_exist = true; } $is_exist == false && $delete[] = $voNode['id']; } if (!empty($delete)) { Db::startTrans(); try { Db::name('SystemNode')->delete($delete); Db::commit(); } catch (\Exception $e) { Db::rollback(); return ['code' => 1, 'msg' => $e->getMessage()]; } return ['code' => 0, 'msg' => '清除失效节点成功!']; } else { return ['code' => 1, 'msg' => '无失效节点!']; } } }