MessageDao.class.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  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 MessageDao
  19. {
  20. /**
  21. * 获取消息列表
  22. * @param $userID int 用户ID
  23. * @param $page int 页码
  24. * @return bool|array
  25. */
  26. public function getMessageList(&$userID, &$page)
  27. {
  28. $db = getDatabase();
  29. $result['messageList'] = $db->prepareExecuteAll('SELECT eo_message.msgID,eo_message.msgType,eo_message.msg,eo_message.summary,eo_message.msgSendTime,eo_message.isRead FROM eo_message WHERE eo_message.toUserID = ? ORDER BY eo_message.msgSendTime DESC LIMIT ?,15;', array(
  30. $userID,
  31. ($page - 1) * 15
  32. ));
  33. $msgCount = $db->prepareExecute('SELECT COUNT(eo_message.msgID) AS msgCount FROM eo_message WHERE eo_message.toUserID = ?', array($userID));
  34. $result['msgCount'] = $msgCount['msgCount'];
  35. if (empty($result['messageList'][0]))
  36. return FALSE;
  37. else
  38. return $result;
  39. }
  40. /**
  41. * 已阅消息
  42. * @param $msgID int 消息ID
  43. * @return bool
  44. */
  45. public function readMessage(&$msgID)
  46. {
  47. $db = getDatabase();
  48. $db->prepareExecute('UPDATE eo_message SET eo_message.isRead = 1 WHERE eo_message.msgID = ?;', array($msgID));
  49. if ($db->getAffectRow() > 0)
  50. return TRUE;
  51. else
  52. return FALSE;
  53. }
  54. /**
  55. * 删除消息
  56. * @param $msgID int 消息ID
  57. * @return bool
  58. */
  59. public function delMessage(&$msgID)
  60. {
  61. $db = getDatabase();
  62. $db->prepareExecute('DELETE FROM eo_message WHERE eo_message.msgID = ?;', array($msgID));
  63. if ($db->getAffectRow() > 0)
  64. return TRUE;
  65. else
  66. return FALSE;
  67. }
  68. /**
  69. * 清空消息
  70. * @param $userID int 用户ID
  71. * @return bool
  72. */
  73. public function cleanMessage(&$userID)
  74. {
  75. //本接口只能清空所有接收到的消息
  76. $db = getDatabase();
  77. $db->prepareExecute('DELETE FROM eo_message WHERE eo_message.toUserID = ?;', array($userID));
  78. if ($db->getAffectRow() > 0)
  79. return TRUE;
  80. else
  81. return FALSE;
  82. }
  83. /**
  84. * 发送消息
  85. * @param $fromUserID int 发送者用户ID,系统消息ID为0
  86. * @param $toUserID int 接收者用户ID
  87. * @param $msgType int 消息类型 [0/1]=>[官方消息/团队消息]
  88. * @param $summary string 消息概要,默认为NULL
  89. * @param $msg string 消息内容
  90. * @return bool
  91. */
  92. public function sendMessage($fromUserID, $toUserID, $msgType, &$summary, &$msg)
  93. {
  94. //fromUserID默认为0也就是官方消息
  95. $db = getDatabase();
  96. $db->prepareExecute('INSERT INTO eo_message (eo_message.fromUserID,eo_message.toUserID,eo_message.msgType,eo_message.summary,eo_message.msg) VALUES (?,?,?,?,?);', array(
  97. $fromUserID,
  98. $toUserID,
  99. $msgType,
  100. $summary,
  101. $msg
  102. ));
  103. if ($db->getAffectRow() > 0)
  104. return TRUE;
  105. else
  106. return FALSE;
  107. }
  108. /**
  109. * 获取未读消息数量
  110. * @param $userID int 用户ID
  111. * @return bool|int
  112. */
  113. public function getUnreadMessageNum(&$userID)
  114. {
  115. $db = getDatabase();
  116. $result = $db->prepareExecute('SELECT COUNT(eo_message.msgID) AS unreadMsgNum FROM eo_message WHERE eo_message.toUserID = ? AND eo_message.isRead = 0;', array($userID));
  117. if (empty($result))
  118. return FALSE;
  119. else
  120. return $result['unreadMsgNum'];
  121. }
  122. }
  123. ?>