PartnerDao.class.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  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 PartnerDao
  19. {
  20. /**
  21. * 邀请协作人员
  22. * @param $projectID int 项目ID
  23. * @param $inviteUserID int 邀请人ID
  24. * @return bool|int
  25. */
  26. public function invitePartner(&$projectID, &$userID, &$inviteUserID)
  27. {
  28. $db = getDatabase();
  29. $db->prepareExecute('INSERT INTO eo_conn_project (eo_conn_project.projectID,eo_conn_project.userID,eo_conn_project.userType,eo_conn_project.inviteUserID) VALUES (?,?,2,?);', array(
  30. $projectID,
  31. $userID,
  32. $inviteUserID
  33. ));
  34. if ($db->getAffectRow() > 0)
  35. return $db->getLastInsertID();
  36. else
  37. return FALSE;
  38. }
  39. /**
  40. * 移除协作人员
  41. * @param $projectID int 项目ID
  42. * @param $connID int 用户与项目联系ID
  43. * @return bool
  44. */
  45. public function removePartner(&$projectID, &$connID)
  46. {
  47. $db = getDatabase();
  48. $db->prepareExecute('DELETE FROM eo_conn_project WHERE eo_conn_project.projectID = ? AND eo_conn_project.connID = ? AND eo_conn_project.userType != 0;', array(
  49. $projectID,
  50. $connID
  51. ));
  52. if ($db->getAffectRow() > 0)
  53. return TRUE;
  54. else
  55. return FALSE;
  56. }
  57. /**
  58. * 获取协作人员列表
  59. * @param $projectID int 项目ID
  60. * @return bool|array
  61. */
  62. public function getPartnerList(&$projectID)
  63. {
  64. $db = getDatabase();
  65. $result = $db->prepareExecuteAll('SELECT eo_conn_project.userID,eo_conn_project.connID,eo_conn_project.userType,eo_user.userName,eo_user.userNickName,eo_conn_project.partnerNickName FROM eo_conn_project INNER JOIN eo_user ON eo_conn_project.userID = eo_user.userID WHERE eo_conn_project.projectID = ? ORDER BY eo_conn_project.userType ASC;', array($projectID));
  66. if (empty($result))
  67. return FALSE;
  68. else
  69. return $result;
  70. }
  71. /**
  72. * 退出协作项目
  73. * @param $projectID int 项目ID
  74. * @param $userID int 用户ID
  75. * @return bool
  76. */
  77. public function quitPartner(&$projectID, &$userID)
  78. {
  79. $db = getDatabase();
  80. $db->prepareExecute('DELETE FROM eo_conn_project WHERE eo_conn_project.projectID = ? AND eo_conn_project.userID = ? AND eo_conn_project.userType != 0;', array(
  81. $projectID,
  82. $userID
  83. ));
  84. if ($db->getAffectRow() > 0) {
  85. return TRUE;
  86. } else
  87. return FALSE;
  88. }
  89. /**
  90. * 查询是否已经加入过项目
  91. * @param $projectID int 项目ID
  92. * @param $userName string 用户名
  93. * @return bool
  94. */
  95. public function checkIsInvited(&$projectID, &$userName)
  96. {
  97. $db = getDatabase();
  98. $result = $db->prepareExecuteAll('SELECT eo_conn_project.connID FROM eo_conn_project INNER JOIN eo_user ON eo_user.userID = eo_conn_project.userID WHERE eo_conn_project.projectID = ? AND eo_user.userName = ?;', array(
  99. $projectID,
  100. $userName
  101. ));
  102. if (empty($result))
  103. return FALSE;
  104. else
  105. return TRUE;
  106. }
  107. /**
  108. * 获取用户ID
  109. * @param $connID int 用户与项目联系ID
  110. * @return bool|int
  111. */
  112. public function getUserID(&$connID)
  113. {
  114. $db = getDatabase();
  115. $result = $db->prepareExecute('SELECT eo_conn_project.userID FROM eo_conn_project WHERE eo_conn_project.connID = ?;', array($connID));
  116. if (empty($result))
  117. return FALSE;
  118. else
  119. return $result['userID'];
  120. }
  121. /**
  122. * 修改协作成员的昵称
  123. * @param $project_id int 项目ID
  124. * @param $conn_id int 连接ID
  125. * @param $nick_name string 昵称
  126. * @return bool
  127. */
  128. public function editPartnerNickName(&$project_id, &$conn_id, &$nick_name)
  129. {
  130. $db = getDatabase();
  131. $db->prepareExecute('UPDATE eo_conn_project SET eo_conn_project.partnerNickName = ? WHERE eo_conn_project.connID = ? AND eo_conn_project.projectID = ?;', array(
  132. $nick_name,
  133. $conn_id,
  134. $project_id
  135. ));
  136. if ($db->getAffectRow() > 0) {
  137. return TRUE;
  138. } else
  139. return FALSE;
  140. }
  141. /**
  142. * 修改协作成员的类型
  143. * @param $project_id int 项目ID
  144. * @param $conn_id int 连接ID
  145. * @param $user_type int 用户类型
  146. * @return bool
  147. */
  148. public function editPartnerType(&$project_id, &$conn_id, &$user_type)
  149. {
  150. $db = getDatabase();
  151. $db->prepareExecute('UPDATE eo_conn_project SET eo_conn_project.userType = ? WHERE eo_conn_project.connID = ? AND eo_conn_project.projectID = ?;', array(
  152. $user_type,
  153. $conn_id,
  154. $project_id
  155. ));
  156. if ($db->getAffectRow() > 0) {
  157. return TRUE;
  158. } else
  159. return FALSE;
  160. }
  161. /**
  162. * 获取协作成员账号名
  163. * @param $user_id
  164. * @return bool
  165. */
  166. public function getPartnerUserCall(&$user_id)
  167. {
  168. $db = getDatabase();
  169. $result = $db->prepareExecute('SELECT eo_user.userName FROM eo_user WHERE eo_user.userID = ?;', array(
  170. $user_id
  171. ));
  172. if (empty($result)) {
  173. return FALSE;
  174. } else {
  175. return $result['userName'];
  176. }
  177. }
  178. public function getProjectInviteCode(&$project_id)
  179. {
  180. $db = getDatabase();
  181. // 尝试次数,超过3次则认为是服务器出错
  182. $count = 0;
  183. do {
  184. $count++;
  185. // 获取随机6位字符串
  186. $invite_code = '';
  187. $strPool = 'NMqlzxcvdfghjQXCER67ty5HuasJKLZYTWmPASDFGk12iBpn34UIb9werV8';
  188. for ($i = 0; $i <= 5; $i++) {
  189. $invite_code .= $strPool[rand(0, 58)];
  190. }
  191. // 查重
  192. $result = $db->prepareExecute('SELECT eo_project_invite.projectID FROM eo_project_invite WHERE eo_project_invite.projectInviteCode = ?;', array(
  193. $invite_code
  194. ));
  195. } while (!empty($result) && $count < 3);
  196. if (!empty($result)) {
  197. return FALSE;
  198. }
  199. }
  200. }
  201. ?>