ProjectDao.class.php 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591
  1. <?php
  2. /**
  3. * @name eolinker ams open source,eolinker开源版本
  4. * @link https://www.eolinker.com/
  5. * @package eolinker
  6. * @author www.eolinker.com 广州银云信息科技有限公司 ©2015-2018
  7. * eoLinker是目前全球领先、国内最大的在线API接口管理平台,提供自动生成API文档、API自动化测试、Mock测试、团队协作等功能,旨在解决由于前后端分离导致的开发效率低下问题。
  8. * 如在使用的过程中有任何问题,欢迎加入用户讨论群进行反馈,我们将会以最快的速度,最好的服务态度为您解决问题。
  9. *
  10. * eoLinker AMS开源版的开源协议遵循Apache License 2.0,如需获取最新的eolinker开源版以及相关资讯,请访问:https://www.eolinker.com/#/os/download
  11. *
  12. * 官方网站:https://www.eolinker.com/
  13. * 官方博客以及社区:http://blog.eolinker.com/
  14. * 使用教程以及帮助:http://help.eolinker.com/
  15. * 商务合作邮箱:market@eolinker.com
  16. * 用户讨论QQ群:284421832
  17. */
  18. class ProjectDao
  19. {
  20. /**
  21. * 创建项目
  22. *
  23. * @param $projectName string
  24. * 项目名
  25. * @param $projectType int
  26. * 项目类型 [0/1/2/3]=>[Web/App/PC/其他]
  27. * @param $projectVersion string
  28. * 项目版本,默认为1.0
  29. * @param $userID int
  30. * 用户ID
  31. * @return bool|array
  32. */
  33. public function addProject(&$projectName, &$projectType, &$projectVersion, &$userID)
  34. {
  35. // 获取数据库
  36. $db = getDatabase();
  37. $db->beginTransaction();
  38. // 插入项目
  39. $db->prepareExecute('INSERT INTO eo_project(eo_project.projectName,eo_project.projectType,eo_project.projectVersion,eo_project.projectUpdateTime) VALUES (?,?,?,?);', array(
  40. $projectName,
  41. $projectType,
  42. $projectVersion,
  43. date('Y-m-d H:i:s', time())
  44. ));
  45. if ($db->getAffectRow() < 1) {
  46. $db->rollback();
  47. return FALSE;
  48. }
  49. $projectID = $db->getLastInsertID();
  50. // 生成项目与用户的联系
  51. $db->prepareExecute('INSERT INTO eo_conn_project (eo_conn_project.projectID,eo_conn_project.userID) VALUES (?,?);', array(
  52. $projectID,
  53. $userID
  54. ));
  55. if ($db->getAffectRow() > 0) {
  56. $db->commit();
  57. return array(
  58. 'projectID' => $projectID,
  59. 'projectType' => $projectType,
  60. 'projectUpdateTime' => date("Y-m-d H:i:s", time()),
  61. 'projectVersion' => $projectVersion
  62. );
  63. } else {
  64. $db->rollback();
  65. return FALSE;
  66. }
  67. }
  68. /**
  69. * 判断项目和用户是否匹配
  70. *
  71. * @param $projectID int
  72. * 项目ID
  73. * @param $userID int
  74. * 用户ID
  75. * @return mixed
  76. */
  77. public function checkProjectPermission(&$projectID, &$userID)
  78. {
  79. $db = getDatabase();
  80. $result = $db->prepareExecute('SELECT projectID FROM `eo_conn_project` WHERE projectID = ? AND userID = ?;', array(
  81. $projectID,
  82. $userID
  83. ));
  84. if (empty($result))
  85. return FALSE;
  86. else
  87. return $result['projectID'];
  88. }
  89. /**
  90. * 删除项目
  91. *
  92. * @param $projectID int
  93. * 项目ID
  94. * @return bool
  95. */
  96. public function deleteProject(&$projectID)
  97. {
  98. $db = getDatabase();
  99. $db->beginTransaction();
  100. $db->prepareExecute('DELETE FROM eo_project WHERE eo_project.projectID = ?', array(
  101. $projectID
  102. ));
  103. if ($db->getAffectRow() < 1) {
  104. $db->rollback();
  105. return FALSE;
  106. }
  107. $db->prepareExecute('DELETE FROM eo_conn_project WHERE eo_conn_project.projectID = ? AND eo_conn_project.userType = 0;', array(
  108. $projectID
  109. ));
  110. if ($db->getAffectRow() < 1) {
  111. $db->rollback();
  112. return FALSE;
  113. }
  114. $db->prepareExecuteAll('DELETE FROM eo_api_group WHERE eo_api_group.projectID = ?;', array($projectID));
  115. $db->prepareExecuteAll('DELETE FROM eo_api_header WHERE eo_api_header.apiID IN (SELECT eo_api.apiID FROM eo_api WHERE eo_api.projectID = ?);', array($projectID));
  116. $db->prepareExecuteAll('DELETE FROM eo_api_request_value WHERE eo_api_request_value.paramID IN (SELECT eo_api_request_param.paramID FROM eo_api_request_param LEFT JOIN eo_api ON eo_api_request_param.apiID = eo_api.apiID WHERE eo_api.projectID = ?);', array($projectID));
  117. $db->prepareExecuteAll('DELETE FROM eo_api_request_param WHERE eo_api_request_param.apiID IN (SELECT eo_api.apiID FROM eo_api WHERE eo_api.projectID = ?)', array($projectID));
  118. $db->prepareExecuteAll('DELETE FROM eo_api_result_value WHERE eo_api_result_value.paramID IN (SELECT eo_api_result_param.paramID FROM eo_api_result_param LEFT JOIN eo_api ON eo_api_result_param.apiID = eo_api.apiID WHERE eo_api.projectID = ?);', array($projectID));
  119. $db->prepareExecuteAll('DELETE FROM eo_api_result_param WHERE eo_api_result_param.apiID IN (SELECT eo_api.apiID FROM eo_api WHERE eo_api.projectID = ?)', array($projectID));
  120. $db->prepareExecuteAll('DELETE FROM eo_api_group WHERE eo_api_group.projectID = ?;', array($projectID));
  121. $db->prepareExecuteAll('DELETE FROM eo_api WHERE eo_api.projectID = ?;', array($projectID));
  122. $db->prepareExecuteAll('DELETE FROM eo_api_cache WHERE eo_api_cache.projectID = ?;', array($projectID));
  123. $db->commit();
  124. return TRUE;
  125. }
  126. /**
  127. * 获取项目列表
  128. *
  129. * @param $userID int
  130. * 用户ID
  131. * @param $projectType int
  132. * 项目类型[-1/0/1/2/3]=>[全部/Web/App/PC/其他]
  133. * @return bool|array
  134. */
  135. public function getProjectList(&$userID, &$projectType = -1)
  136. {
  137. $db = getDatabase();
  138. if ($projectType < 0) {
  139. $result = $db->prepareExecuteAll("SELECT eo_project.projectID,eo_project.projectName,eo_project.projectType,eo_project.projectUpdateTime,eo_project.projectVersion,eo_conn_project.userType FROM eo_project INNER JOIN eo_conn_project ON eo_project.projectID = eo_conn_project.projectID WHERE eo_conn_project.userID=? ORDER BY eo_project.projectUpdateTime DESC;", array(
  140. $userID
  141. ));
  142. } else {
  143. $result = $db->prepareExecuteAll("SELECT eo_project.projectID,eo_project.projectName,eo_project.projectType,eo_project.projectUpdateTime,eo_project.projectVersion,eo_conn_project.userType FROM eo_project INNER JOIN eo_conn_project ON eo_project.projectID = eo_conn_project.projectID WHERE eo_conn_project.userID=? AND eo_project.projectType=? ORDER BY eo_project.projectUpdateTime DESC;", array(
  144. $userID,
  145. $projectType
  146. ));
  147. }
  148. if (empty($result))
  149. return FALSE;
  150. else
  151. return $result;
  152. }
  153. /**
  154. * 更改项目
  155. *
  156. * @param $projectID int
  157. * 项目ID
  158. * @param $projectName string
  159. * 项目名
  160. * @param $projectType int
  161. * 项目类型 [0/1/2/3]=>[Web/App/PC/其他]
  162. * @param $projectVersion string
  163. * 项目版本,默认为1.0
  164. * @return bool
  165. */
  166. public function editProject(&$projectID, &$projectName, &$projectType, &$projectVersion)
  167. {
  168. $db = getDatabase();
  169. $db->prepareExecute('UPDATE eo_project SET eo_project.projectType = ?,eo_project.projectName = ?, eo_project.projectUpdateTime = ?, eo_project.projectVersion = ? WHERE eo_project.projectID= ?;', array(
  170. $projectType,
  171. $projectName,
  172. date('Y-m-d H:i:s', time()),
  173. $projectVersion,
  174. $projectID
  175. ));
  176. if ($db->getAffectRow() > 0)
  177. return TRUE;
  178. else
  179. return FALSE;
  180. }
  181. /**
  182. * 获取项目信息
  183. *
  184. * @param $projectID int
  185. * 项目ID
  186. * @param $userID int
  187. * 用户ID
  188. * @return bool|array
  189. */
  190. public function getProject(&$projectID, &$userID)
  191. {
  192. $db = getDatabase();
  193. $project_info = array();
  194. $project_info = $db->prepareExecute("SELECT eo_project.projectID, eo_project.projectName, eo_project.projectType, eo_project.projectUpdateTime,eo_project.projectVersion,eo_conn_project.userType FROM eo_project INNER JOIN eo_conn_project ON eo_project.projectID = eo_conn_project.projectID WHERE eo_project.projectID= ? AND eo_conn_project.userID = ?;", array(
  195. $projectID,
  196. $userID
  197. ));
  198. // 获取接口数
  199. $api_count = $db->prepareExecute('SELECT COUNT(eo_api.apiID) AS count FROM eo_api WHERE eo_api.projectID = ? AND eo_api.removed = 0;', array(
  200. $projectID
  201. ));
  202. $project_info['apiCount'] = $api_count['count'] ? $api_count['count'] : 0;
  203. // 获取状态码数
  204. $status_code_count = $db->prepareExecute('SELECT COUNT(eo_project_status_code.codeID) AS count FROM eo_project_status_code LEFT JOIN eo_project_status_code_group ON eo_project_status_code.groupID = eo_project_status_code_group.groupID WHERE eo_project_status_code_group.projectID = ?;', array(
  205. $projectID
  206. ));
  207. $project_info['statusCodeCount'] = $status_code_count['count'] ? $status_code_count['count'] : 0;
  208. // 获取协作人员数量
  209. $partner_count = $db->prepareExecute('SELECT COUNT(eo_conn_project.connID) AS count FROM eo_conn_project WHERE eo_conn_project.projectID = ?;', array(
  210. $projectID
  211. ));
  212. $project_info['partnerCount'] = $partner_count['count'] ? $partner_count['count'] : 0;
  213. $project_info['importURL'] = (is_https() ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME'] . '?g=Web&c=AutoGenerate&o=importApi';
  214. if (empty($project_info))
  215. return FALSE;
  216. else
  217. return $project_info;
  218. }
  219. /**
  220. * 更新项目更新时间
  221. *
  222. * @param $projectID int
  223. * 项目ID
  224. * @return bool
  225. */
  226. public function updateProjectUpdateTime(&$projectID)
  227. {
  228. $db = getDatabase();
  229. $db->prepareExecute('UPDATE eo_project SET eo_project.projectUpdateTime = ? WHERE eo_project.projectID = ?;', array(
  230. date('Y-m-d H:i:s', time()),
  231. $projectID
  232. ));
  233. if ($db->getAffectRow() > 0)
  234. return TRUE;
  235. else
  236. return FALSE;
  237. }
  238. // /**
  239. // * 获取环境列表
  240. // *
  241. // * @param $projectID int
  242. // * 项目ID
  243. // * @return bool|array
  244. // */
  245. // public function getEnvList(&$projectID)
  246. // {
  247. // $db = getDatabase();
  248. //
  249. // $result = $db->prepareExecuteAll("SELECT eo_project_environment.envID,eo_project_environment.envName,eo_project_environment.envURI FROM eo_project_environment WHERE eo_project_environment.projectID = ?;", array(
  250. // $projectID
  251. // ));
  252. //
  253. // if (empty($result))
  254. // return FALSE;
  255. // else
  256. // return $result;
  257. // }
  258. //
  259. // /**
  260. // * 添加环境
  261. // *
  262. // * @param $projectID int
  263. // * 项目ID
  264. // * @param $envName string
  265. // * 环境名
  266. // * @param $envURI string
  267. // * 环境地址
  268. // * @return bool|int
  269. // */
  270. // public function addEnv(&$projectID, &$envName, &$envURI)
  271. // {
  272. // $db = getDatabase();
  273. // $result = $db->prepareExecute("INSERT INTO eo_project_environment (eo_project_environment.envName,eo_project_environment.envURI,eo_project_environment.projectID) VALUES (?,?,?);", array(
  274. // $envName,
  275. // $envURI,
  276. // $projectID
  277. // ));
  278. //
  279. // if ($db->getAffectRow() > 0)
  280. // return $db->getLastInsertID();
  281. // else
  282. // return FALSE;
  283. // }
  284. //
  285. // /**
  286. // * 删除环境
  287. // *
  288. // * @param $projectID int
  289. // * 项目ID
  290. // * @param $envID int
  291. // * 环境ID
  292. // * @return bool
  293. // */
  294. // public function deleteEnv(&$projectID, &$envID)
  295. // {
  296. // $db = getDatabase();
  297. // $result = $db->prepareExecute("DELETE FROM eo_project_environment WHERE eo_project_environment.envID = ? AND eo_project_environment.projectID = ?;", array(
  298. // $envID,
  299. // $projectID
  300. // ));
  301. //
  302. // if ($db->getAffectRow() > 0)
  303. // return TRUE;
  304. // else
  305. // return FALSE;
  306. // }
  307. //
  308. // /**
  309. // * 修改环境
  310. // *
  311. // * @param $envID int
  312. // * 环境ID
  313. // * @param $envName string
  314. // * 环境名
  315. // * @param $envURI string
  316. // * 环境地址
  317. // * @return bool
  318. // */
  319. // public function editEnv(&$envID, &$envName, &$envURI)
  320. // {
  321. // $db = getDatabase();
  322. // $result = $db->prepareExecute("UPDATE eo_project_environment SET eo_project_environment.envName = ?,eo_project_environment.envURI = ? WHERE eo_project_environment.envID = ?;", array(
  323. // $envName,
  324. // $envURI,
  325. // $envID
  326. // ));
  327. //
  328. // if ($db->getAffectRow() > 0)
  329. // return TRUE;
  330. // else
  331. // return FALSE;
  332. // }
  333. /**
  334. * 获取项目名称
  335. *
  336. * @param $projectID int
  337. * 项目ID
  338. * @return bool|array
  339. */
  340. public function getProjectName(&$projectID)
  341. {
  342. $db = getDatabase();
  343. $result = $db->prepareExecute("SELECT eo_project.projectName FROM eo_project WHERE eo_project.projectID= ?;", array(
  344. $projectID
  345. ));
  346. if (empty($result))
  347. return FALSE;
  348. else
  349. return $result;
  350. }
  351. /**
  352. * 导出项目
  353. *
  354. * @param $project_id int
  355. * 项目ID
  356. * @return bool|array
  357. */
  358. public function dumpProject(&$project_id)
  359. {
  360. $db = getDatabase();
  361. $dumpJson = array();
  362. // 获取项目信息
  363. $dumpJson['projectInfo'] = $db->prepareExecute("SELECT * FROM eo_project WHERE eo_project.projectID = ?;", array(
  364. $project_id
  365. ));
  366. $dumpJson['apiGroupList'] = array();
  367. // 获取接口父分组信息
  368. $apiGroupList = $db->prepareExecuteAll("SELECT * FROM eo_api_group WHERE eo_api_group.projectID = ? AND eo_api_group.isChild = 0;", array(
  369. $project_id
  370. ));
  371. $i = 0;
  372. foreach ($apiGroupList as $apiGroup) {
  373. $dumpJson['apiGroupList'][$i] = $apiGroup;
  374. // 获取接口信息
  375. $apiList = $db->prepareExecuteAll("SELECT eo_api_cache.apiJson FROM eo_api_cache WHERE eo_api_cache.projectID = ? AND eo_api_cache.groupID = ?;", array(
  376. $project_id,
  377. $apiGroup['groupID']
  378. ));
  379. $dumpJson['apiGroupList'][$i]['apiList'] = array();
  380. $j = 0;
  381. foreach ($apiList as $api) {
  382. $dumpJson['apiGroupList'][$i]['apiList'][$j] = json_decode($api['apiJson'], TRUE);
  383. // $dumpJson['apiGroupList'][$i]['apiList'][$j]['baseInfo']['starred'] = $api['starred'];
  384. ++$j;
  385. }
  386. $dumpJson['apiGroupList'][$i]['apiGroupChildList'] = array();
  387. $apiGroupChildList = $db->prepareExecuteAll('SELECT * FROM eo_api_group WHERE eo_api_group.projectID = ? AND eo_api_group.parentGroupID = ?', array(
  388. $project_id,
  389. $apiGroup['groupID']
  390. ));
  391. $k = 0;
  392. if ($apiGroupChildList) {
  393. foreach ($apiGroupChildList as $apiChildGroup) {
  394. $dumpJson['apiGroupList'][$i]['apiGroupChildList'][$k] = $apiChildGroup;
  395. // 获取接口信息
  396. $apiList = $db->prepareExecuteAll("SELECT * FROM eo_api_cache WHERE eo_api_cache.projectID = ? AND eo_api_cache.groupID = ?;", array(
  397. $project_id,
  398. $apiChildGroup['groupID']
  399. ));
  400. $dumpJson['apiGroupList'][$i]['apiGroupChildList'][$k]['apiList'] = array();
  401. $l = 0;
  402. foreach ($apiList as $api) {
  403. $dumpJson['apiGroupList'][$i]['apiGroupChildList'][$k]['apiList'][$l] = json_decode($api['apiJson'], TRUE);
  404. // $dumpJson['apiGroupList'][$i]['apiGroupChildList'][$k]['apiList'][$l]['baseInfo']['starred'] = $api['starred'];
  405. ++$l;
  406. }
  407. ++$k;
  408. }
  409. }
  410. ++$i;
  411. }
  412. $dumpJson['statusCodeGroupList'] = array();
  413. // 获取状态码分组信息
  414. $statusCodeGroupList = $db->prepareExecuteAll("SELECT * FROM eo_project_status_code_group WHERE eo_project_status_code_group.projectID = ? AND isChild = 0;", array(
  415. $project_id
  416. ));
  417. $i = 0;
  418. foreach ($statusCodeGroupList as $statusCodeGroup) {
  419. $dumpJson['statusCodeGroupList'][$i] = $statusCodeGroup;
  420. // 获取状态码信息
  421. $statusCodeList = $db->prepareExecuteAll("SELECT * FROM eo_project_status_code WHERE eo_project_status_code.groupID = ?;", array(
  422. $statusCodeGroup['groupID']
  423. ));
  424. $dumpJson['statusCodeGroupList'][$i]['statusCodeList'] = array();
  425. $j = 0;
  426. foreach ($statusCodeList as $statusCode) {
  427. $dumpJson['statusCodeGroupList'][$i]['statusCodeList'][$j] = $statusCode;
  428. ++$j;
  429. }
  430. $statusCodeGroupChildList = $db->prepareExecuteAll("SELECT * FROM eo_project_status_code_group WHERE eo_project_status_code_group.projectID = ? AND parentGroupID = ?;", array(
  431. $project_id,
  432. $statusCodeGroup['groupID']
  433. ));
  434. $k = 0;
  435. $dumpJson['statusCodeGroupList'][$i]['statusCodeGroupChildList'] = array();
  436. if ($statusCodeGroupChildList) {
  437. foreach ($statusCodeGroupChildList as $statusCodeChildGroup) {
  438. $dumpJson['statusCodeGroupList'][$i]['statusCodeGroupChildList'][$k] = $statusCodeChildGroup;
  439. // 获取状态码信息
  440. $statusCodeList = $db->prepareExecuteAll("SELECT * FROM eo_project_status_code WHERE eo_project_status_code.groupID = ?;", array(
  441. $statusCodeChildGroup['groupID']
  442. ));
  443. $dumpJson['statusCodeGroupList'][$i]['statusCodeGroupChildList'][$k]['statusCodeList'] = array();
  444. $l = 0;
  445. foreach ($statusCodeList as $statusCode) {
  446. $dumpJson['statusCodeGroupList'][$i]['statusCodeGroupChildList'][$k]['statusCodeList'][$l] = $statusCode;
  447. ++$l;
  448. }
  449. ++$k;
  450. }
  451. }
  452. ++$i;
  453. }
  454. $dumpJson['env'] = array();
  455. // 获取环境管理相关信息
  456. $envList = $db->prepareExecuteAll('SELECT eo_api_env.envID,eo_api_env.envName FROM eo_api_env WHERE eo_api_env.projectID = ?;', array($project_id));
  457. if ($envList) {
  458. foreach ($envList as &$env) {
  459. $front_uri = $db->prepareExecute('SELECT eo_api_env_front_uri.applyProtocol,eo_api_env_front_uri.uri,eo_api_env_front_uri.uriID FROM eo_api_env_front_uri WHERE eo_api_env_front_uri.envID = ?;', array(
  460. $env['envID']
  461. ));
  462. $headers = $db->prepareExecuteAll('SELECT eo_api_env_header.applyProtocol,eo_api_env_header.headerName,eo_api_env_header.headerValue,eo_api_env_header.headerID FROM eo_api_env_header WHERE eo_api_env_header.envID = ?;', array(
  463. $env['envID']
  464. ));
  465. $params = $db->prepareExecuteAll('SELECT eo_api_env_param.paramKey,eo_api_env_param.paramValue,eo_api_env_param.paramID FROM eo_api_env_param WHERE eo_api_env_param.envID = ?;', array(
  466. $env['envID']
  467. ));
  468. $env['frontURI'] = $front_uri ? $front_uri : array();
  469. $env['headerList'] = $headers ? $headers : array();
  470. $env['paramList'] = $params ? $params : array();
  471. }
  472. }
  473. $dumpJson['env'] = $envList ? $envList : array();
  474. $dumpJson['pageGroupList'] = array();
  475. //获取项目文档分组信息
  476. $documentGroupList = $db->prepareExecuteAll('SELECT eo_project_document_group.* FROM eo_project_document_group WHERE eo_project_document_group.projectID = ? AND eo_project_document_group.isChild = 0;', array(
  477. $project_id
  478. ));
  479. $i = 0;
  480. foreach ($documentGroupList as $documentGroup) {
  481. $dumpJson['pageGroupList'][$i] = $documentGroup;
  482. $dumpJson['pageGroupList'][$i]['pageList'] = array();
  483. //获取文档信息
  484. $documentList = $db->prepareExecuteAll('SELECT eo_project_document.documentID AS pageID,eo_project_document.groupID,eo_project_document.projectID,eo_project_document.contentType,eo_project_document.contentRaw,eo_project_document.content,eo_project_document.title,eo_project_document.updateTime,eo_project_document.userID AS authorID FROM eo_project_document WHERE eo_project_document.groupID = ?;', array($documentGroup['groupID']));
  485. $j = 0;
  486. foreach ($documentList as $document) {
  487. $dumpJson['pageGroupList'][$i]['pageList'][$j] = $document;
  488. $dumpJson['pageGroupList'][$i]['pageList'][$j]['groupName'] = $documentGroup['groupName'];
  489. $j++;
  490. }
  491. $documentGroupChildList = $db->prepareExecuteAll('SELECT eo_project_document_group.* FROM eo_project_document_group WHERE eo_project_document_group.projectID = ? AND eo_project_document_group.parentGroupID = ? AND eo_project_document_group.isChild = 1;', array(
  492. $project_id,
  493. $documentGroup['groupID']
  494. ));
  495. $k = 0;
  496. $dumpJson['pageGroupList'][$i]['pageGroupChildList'] = array();
  497. if ($documentGroupChildList) {
  498. foreach ($documentGroupChildList as $documentChildGroup) {
  499. $dumpJson['pageGroupList'][$i]['pageGroupChildList'][$k] = $documentChildGroup;
  500. $dumpJson['pageGroupList'][$i]['pageGroupChildList'][$k]['pageList'] = array();
  501. //获取文档信息
  502. $documentList = $db->prepareExecuteAll('SELECT eo_project_document.documentID AS pageID,eo_project_document.groupID,eo_project_document.projectID,eo_project_document.contentType,eo_project_document.contentRaw,eo_project_document.content,eo_project_document.title,eo_project_document.updateTime,eo_project_document.userID AS authorID FROM eo_project_document WHERE eo_project_document.groupID = ?;', array($documentChildGroup['groupID']));
  503. $l = 0;
  504. foreach ($documentList as $document) {
  505. $dumpJson['pageGroupList'][$i]['pageGroupChildList'][$k]['pageList'][$l] = $document;
  506. $dumpJson['pageGroupList'][$i]['pageGroupChildList'][$k]['pageList'][$l]['groupName'] = $documentChildGroup['groupName'];
  507. $l++;
  508. }
  509. $k++;
  510. }
  511. }
  512. $i++;
  513. }
  514. if (empty($dumpJson))
  515. return FALSE;
  516. else
  517. return $dumpJson;
  518. }
  519. /**
  520. * 获取api数量
  521. *
  522. * @param $projectID int
  523. * 项目ID
  524. * @return bool|array
  525. */
  526. public function getApiNum(&$projectID)
  527. {
  528. $db = getDatabase();
  529. $result = $db->prepareExecute('SELECT COUNT(*) AS num FROM eo_api WHERE eo_api.removed = 0 AND eo_api.groupID IN (SELECT groupID FROM eo_api_group WHERE eo_api.projectID = ?);', array(
  530. $projectID
  531. ));
  532. if (isset($result))
  533. return $result;
  534. else
  535. return FALSE;
  536. }
  537. }
  538. ?>