ExportDao.class.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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 ExportDao
  19. {
  20. /**
  21. * 获取项目数据
  22. * @param $projectID int 项目ID
  23. * @return array|bool
  24. */
  25. public function getProjectData(&$projectID)
  26. {
  27. $db = getdatabase();
  28. $dumpJson = array();
  29. //获取项目信息
  30. $dumpJson['projectInfo'] = $db->prepareExecute("SELECT projectName,projectType,projectUpdateTime,projectDesc,projectVersion FROM eo_api_project WHERE eo_api_project.projectID = ?;", array($projectID));
  31. //获取接口父分组信息
  32. $api_group_list = $db->prepareExecuteAll("SELECT * FROM eo_api_group WHERE eo_api_group.projectID = ? AND eo_api_group.isChild = ?;", array($projectID, 0));
  33. $i = 0;
  34. foreach ($api_group_list as $api_group) {
  35. $dumpJson['apiGroupList'][$i] = $api_group;
  36. //获取接口信息
  37. $apiList = $db->prepareExecuteAll("SELECT eo_api_cache.apiJson,eo_api_cache.starred FROM eo_api_cache INNER JOIN eo_api ON eo_api.apiID = eo_api_cache.apiID WHERE eo_api_cache.projectID = ? AND eo_api_cache.groupID = ? AND eo_api.removed = 0;", array(
  38. $projectID,
  39. $api_group['groupID']
  40. ));
  41. $dumpJson['apiGroupList'][$i]['apiList'] = array();
  42. $j = 0;
  43. foreach ($apiList as $api) {
  44. $dumpJson['apiGroupList'][$i]['apiList'][$j] = json_decode($api['apiJson'], TRUE);
  45. $dumpJson['apiGroupList'][$i]['apiList'][$j]['baseInfo']['starred'] = $api['starred'];
  46. ++$j;
  47. }
  48. $api_group_clild_list = $db->prepareExecuteAll("SELECT * FROM eo_api_group WHERE eo_api_group.parentGroupID = ? AND eo_api_group.isChild = ?;", array($api_group['groupID'], 1));
  49. $k = 0;
  50. if ($api_group_clild_list) {
  51. foreach ($api_group_clild_list as $api_group_clid) {
  52. $dumpJson['apiGroupList'][$i]['apiGroupChildList'][$k] = $api_group_clid;
  53. //获取接口信息
  54. $apiList = $db->prepareExecuteAll("SELECT eo_api_cache.apiJson,eo_api_cache.starred FROM eo_api_cache INNER JOIN eo_api ON eo_api.apiID = eo_api_cache.apiID WHERE eo_api_cache.projectID = ? AND eo_api_cache.groupID = ? AND eo_api.removed = 0;", array(
  55. $projectID,
  56. $api_group_clid['groupID']
  57. ));
  58. $dumpJson['apiGroupList'][$i]['apiGroupChildList'][$k]['apiList'] = array();
  59. $x = 0;
  60. foreach ($apiList as $api) {
  61. $dumpJson['apiGroupList'][$i]['apiGroupChildList'][$k]['apiList'][$x] = json_decode($api['apiJson'], TRUE);
  62. $dumpJson['apiGroupList'][$i]['apiGroupChildList'][$k]['apiList'][$x]['baseInfo']['starred'] = $api['starred'];
  63. ++$x;
  64. }
  65. ++$k;
  66. }
  67. }
  68. ++$i;
  69. }
  70. //获取状态码分组信息
  71. $statusCodeGroupList = $db->prepareExecuteAll("SELECT * FROM eo_api_status_code_group WHERE eo_api_status_code_group.projectID = ? AND eo_api_status_code_group.isChild = ?;", array($projectID, 0));
  72. $i = 0;
  73. foreach ($statusCodeGroupList as $statusCodeGroup) {
  74. $dumpJson['statusCodeGroupList'][$i] = $statusCodeGroup;
  75. //获取状态码信息
  76. $statusCodeList = $db->prepareExecuteAll("SELECT * FROM eo_api_status_code WHERE eo_api_status_code.groupID = ?;", array($statusCodeGroup['groupID']));
  77. $j = 0;
  78. foreach ($statusCodeList as $statusCode) {
  79. $dumpJson['statusCodeGroupList'][$i]['statusCodeList'][$j] = $statusCode;
  80. ++$j;
  81. }
  82. $statusCodeGroupList_child = $db->prepareExecuteAll("SELECT * FROM eo_api_status_code_group WHERE eo_api_status_code_group.parentGroupID = ? AND eo_api_status_code_group.isChild = ? ;", array($statusCodeGroup['groupID'], 1));
  83. $k = 0;
  84. if ($statusCodeGroupList_child) {
  85. foreach ($statusCodeGroupList_child as $statusCodeGroup_child) {
  86. $dumpJson['statusCodeGroupList'][$i]['statusCodeGroupChildList'][$k] = $statusCodeGroup_child;
  87. $statusCodeList = $db->prepareExecuteAll("SELECT * FROM eo_api_status_code WHERE eo_api_status_code.groupID = ?;", array($statusCodeGroup_child['groupID']));
  88. $x = 0;
  89. foreach ($statusCodeList as $statusCode) {
  90. $dumpJson['statusCodeGroupList'][$i]['statusCodeGroupChildList'][$k]['statusCodeList'][$x] = $statusCode;
  91. ++$x;
  92. }
  93. ++$k;
  94. }
  95. }
  96. ++$i;
  97. }
  98. if (empty($dumpJson))
  99. return FALSE;
  100. else
  101. return $dumpJson;
  102. }
  103. }
  104. ?>