Message.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. /**
  3. * [Discuz!] (C)2001-2099 Comsenz Inc.
  4. * This is NOT a freeware, use is subject to license terms
  5. *
  6. * $Id: Message.php 31448 2012-08-28 09:04:57Z songlixin $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. Cloud::loadFile('Service_Client_Restful');
  12. class Cloud_Service_Client_Message extends Cloud_Service_Client_Restful {
  13. protected static $_instance;
  14. public static function getInstance($debug = false) {
  15. if (!(self::$_instance instanceof self)) {
  16. self::$_instance = new self($debug);
  17. }
  18. return self::$_instance;
  19. }
  20. public function __construct($debug = false) {
  21. return parent::__construct($debug);
  22. }
  23. public function add($siteUids, $authorId, $author, $dateline) {
  24. $toUids = array();
  25. if($siteUids) {
  26. $users = C::t('#qqconnect#common_member')->fetch_all((array)$siteUids);
  27. $connectUsers = C::t('#qqconnect#common_member_connect')->fetch_all((array)$siteUids);
  28. $i = 1;
  29. foreach ($users as $uid => $user) {
  30. $conopenid = $connectUsers[$uid]['conopenid'];
  31. if (!$conopenid) {
  32. $conopenid = 'n' . $i ++;
  33. }
  34. $toUids[$conopenid] = $user['uid'];
  35. }
  36. $_params = array(
  37. 'openidData' => $toUids,
  38. 'authorId' => $authorId,
  39. 'author' => $author,
  40. 'dateline' => $dateline,
  41. 'deviceToken' => $this->getUserDeviceToken($siteUids),
  42. 'extra' => array(
  43. 'isAdminGroup' => getglobal('adminid'),
  44. 'groupId' => getglobal('groupid'),
  45. 'groupName' => getglobal('group/grouptitle')
  46. )
  47. );
  48. return $this->_callMethod('connect.discuz.message.add', $_params);
  49. }
  50. return false;
  51. }
  52. public function setMsgFlag($siteUid, $dateline) {
  53. $_params = array(
  54. 'openid' => $this->getUserOpenId($siteUid),
  55. 'sSiteUid' => $siteUid,
  56. 'dateline' => $dateline
  57. );
  58. return $this->_callMethod('connect.discuz.message.read', $_params);
  59. }
  60. protected function _callMethod($method, $args) {
  61. try {
  62. return parent::_callMethod($method, $args);
  63. } catch (Exception $e) {
  64. }
  65. }
  66. }