diff --git a/module/doc/test/doc.class.php b/module/doc/test/doc.class.php index 34c0a03b91..0fc3ce17bf 100644 --- a/module/doc/test/doc.class.php +++ b/module/doc/test/doc.class.php @@ -843,6 +843,31 @@ class docTest $lib = $this->objectModel->getLibByID($id); $item = $this->objectModel->buildLibItem($libID, $lib, $type, $moduleID, $objectID); + + if(dao::isError()) return dao::getError(); return $item; } + + /** + * 获取产品、项目、执行文档库的树形结构。 + * Get a tree structure of the product, project, and execution document library. + * + * @param int $libID + * @param array $libIdList + * @param string $type + * @param int $moduleID + * @param int $objectID + * @param string $browseType + * @param int $param + * @access public + * @return array + */ + public function getObjectTreeTest(int $libID, array $libIdList, string $type, int $moduleID = 0, int $objectID = 0, string $browseType = '', int $param = 0): array + { + $libs = $this->objectModel->dao->select('*')->from(TABLE_DOCLIB)->where('id')->in($libIdList)->fetchAll('id'); + $data = $this->objectModel->getObjectTree($libID, $libs, $type, $moduleID, $objectID, $browseType, $param); + + if(dao::isError()) return dao::getError(); + return isset($data[0][$type]) ? $data[0][$type] : array(); + } } diff --git a/module/doc/test/model/getobjecttree.php b/module/doc/test/model/getobjecttree.php new file mode 100644 index 0000000000..57a506436d --- /dev/null +++ b/module/doc/test/model/getobjecttree.php @@ -0,0 +1,54 @@ +#!/usr/bin/env php +getObjectTree(); +timeout=0 +cid=1 + +*/ + +include dirname(__FILE__, 5) . '/test/lib/init.php'; +include dirname(__FILE__, 2) . '/doc.class.php'; + +$userqueryTable = zdTable('userquery'); +$userqueryTable->id->range('1-2'); +$userqueryTable->sql->range("`(( 1 AND `title` LIKE '%文档%' ) AND ( 1 ))`"); +$userqueryTable->gen(1); + +zdTable('project')->config('execution')->gen(10); +zdTable('product')->config('product')->gen(5); +zdTable('module')->config('module')->gen(3); +zdTable('doclib')->config('doclib')->gen(30); +zdTable('doc')->config('doc')->gen(50); +zdTable('apilibrelease')->gen(0); +zdTable('user')->gen(5); +su('admin'); + +$libID = 1; +$libIds = array(1, 6, 11, 16, 20, 26); +$types = array('api', 'custom', 'mine', 'project', 'execution', 'product'); +$moduleID = 1; +$objectIds = array(0, 1, 11, 101); +$browseTypes = array('', 'bysearch', 'bysearch'); +$queries = array(0, 1); + +$docTester = new docTest(); +r($docTester->getObjectTreeTest($libID, $libIds, $types[0], $moduleID, $objectIds[2], $browseTypes[0], $queries[0])) && p() && e('0'); // 获取api文档树 +r($docTester->getObjectTreeTest($libID, $libIds, $types[0], $moduleID, $objectIds[2], $browseTypes[1], $queries[1])) && p() && e('0'); // 获取搜索后的api文档树 +r($docTester->getObjectTreeTest($libID, $libIds, $types[0], $moduleID, $objectIds[2], $browseTypes[2], $queries[1])) && p() && e('0'); // 获取切换版本后的api文档树 +r($docTester->getObjectTreeTest($libID, $libIds, $types[1], $moduleID, $objectIds[0], $browseTypes[0], $queries[0])) && p('6:type,name,objectType,objectID') && e('docLib,自定义文档库6,custom,0'); // 获取自定义文档树 +r($docTester->getObjectTreeTest($libID, $libIds, $types[1], $moduleID, $objectIds[0], $browseTypes[1], $queries[1])) && p('6:type,name,objectType,objectID') && e('docLib,自定义文档库6,custom,0'); // 获取搜索后的自定义文档树 +r($docTester->getObjectTreeTest($libID, $libIds, $types[1], $moduleID, $objectIds[0], $browseTypes[2], $queries[1])) && p('6:type,name,objectType,objectID') && e('docLib,自定义文档库6,custom,0'); // 获取切换版本后的自定义文档树 +r($docTester->getObjectTreeTest($libID, $libIds, $types[2], $moduleID, $objectIds[0], $browseTypes[0], $queries[0])) && p('11:type,name,objectType,objectID') && e('docLib,我的文档库11,mine,0'); // 获取我的文档树 +r($docTester->getObjectTreeTest($libID, $libIds, $types[2], $moduleID, $objectIds[0], $browseTypes[1], $queries[1])) && p('11:type,name,objectType,objectID') && e('docLib,我的文档库11,mine,0'); // 获取搜索后的我的文档树 +r($docTester->getObjectTreeTest($libID, $libIds, $types[2], $moduleID, $objectIds[0], $browseTypes[2], $queries[1])) && p('11:type,name,objectType,objectID') && e('docLib,我的文档库11,mine,0'); // 获取切换版本后的我的文档树 +r($docTester->getObjectTreeTest($libID, $libIds, $types[3], $moduleID, $objectIds[2], $browseTypes[0], $queries[0])) && p('16:type,name,objectType,objectID') && e('docLib,项目文档主库16,project,11'); // 获取项目文档树 +r($docTester->getObjectTreeTest($libID, $libIds, $types[3], $moduleID, $objectIds[2], $browseTypes[1], $queries[1])) && p('16:type,name,objectType,objectID') && e('docLib,项目文档主库16,project,11'); // 获取搜索后的项目文档树 +r($docTester->getObjectTreeTest($libID, $libIds, $types[3], $moduleID, $objectIds[2], $browseTypes[2], $queries[1])) && p('16:type,name,objectType,objectID') && e('docLib,项目文档主库16,project,11'); // 获取切换版本后的项目文档树 +r($docTester->getObjectTreeTest($libID, $libIds, $types[4], $moduleID, $objectIds[3], $browseTypes[0], $queries[0])) && p('20:type,name,objectType,objectID') && e('docLib,执行文档主库20,execution,101'); // 获取执行文档树 +r($docTester->getObjectTreeTest($libID, $libIds, $types[4], $moduleID, $objectIds[3], $browseTypes[1], $queries[1])) && p('20:type,name,objectType,objectID') && e('docLib,执行文档主库20,execution,101'); // 获取搜索后的执行文档树 +r($docTester->getObjectTreeTest($libID, $libIds, $types[4], $moduleID, $objectIds[3], $browseTypes[2], $queries[1])) && p('20:type,name,objectType,objectID') && e('docLib,执行文档主库20,execution,101'); // 获取切换版本后的执行文档树 +r($docTester->getObjectTreeTest($libID, $libIds, $types[5], $moduleID, $objectIds[1], $browseTypes[0], $queries[0])) && p('26:type,name,objectType,objectID') && e('docLib,产品文档主库26,product,1'); // 获取产品文档树 +r($docTester->getObjectTreeTest($libID, $libIds, $types[5], $moduleID, $objectIds[1], $browseTypes[1], $queries[1])) && p('26:type,name,objectType,objectID') && e('docLib,产品文档主库26,product,1'); // 获取搜索后的产品文档树 +r($docTester->getObjectTreeTest($libID, $libIds, $types[5], $moduleID, $objectIds[1], $browseTypes[2], $queries[1])) && p('26:type,name,objectType,objectID') && e('docLib,产品文档主库26,product,1'); // 获取切换版本后的产品文档树