Site.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  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: Site.php 29263 2012-03-31 05:45:08Z yexinhao $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. class Cloud_Service_Server_Site extends Cloud_Service_Server_Restful {
  12. protected static $_instance;
  13. public static function getInstance() {
  14. if (!(self::$_instance instanceof self)) {
  15. self::$_instance = new self();
  16. }
  17. return self::$_instance;
  18. }
  19. public function onSiteGetAllUsers($from, $userNum, $friendNum = 500, $isExtra) {
  20. $result = array();
  21. if ($userNum <= 0) {
  22. $totalNum = C::t('common_member')->count();
  23. $maxUId = C::t('common_member')->max_uid();
  24. $result['totalNum'] = $totalNum;
  25. $result['maxUId'] = $maxUId;
  26. } else {
  27. $spaces = C::t('common_member')->range_by_uid($from, $userNum);
  28. $uIds = array_keys($spaces);
  29. $users = $this->getUsers($uIds, $spaces, true, $isExtra, true, $friendNum, true);
  30. $result['users'] = $users;
  31. }
  32. return $result;
  33. }
  34. public function onSiteGetUpdatedUsers($num) {
  35. $totalNum = C::t('common_member_log')->count();
  36. $users = array();
  37. if ($totalNum) {
  38. $deletedUsers = $userLogs = $uIds = array();
  39. $undeletedUserIds = array();
  40. foreach(C::t('common_member_log')->fetch_all_range($num) as $row) {
  41. $uIds[] = $row['uid'];
  42. if ($row['action'] == 'delete') {
  43. $deletedUsers[] = array('uId' => $row['uid'],
  44. 'action' => $row['action'],
  45. );
  46. } else {
  47. $undeletedUserIds[] = $row['uid'];
  48. }
  49. $userLogs[$row['uid']] = $row;
  50. }
  51. $updatedUsers = $this->getUsers($undeletedUserIds, false, true, true, false);
  52. foreach($updatedUsers as $k => $v) {
  53. $updatedUsers[$k]['action'] = $userLogs[$v['uId']]['action'];
  54. $updatedUsers[$k]['updateType'] = 'all';
  55. }
  56. $users = array_merge($updatedUsers, $deletedUsers);
  57. if ($uIds) {
  58. C::t('common_member_log')->delete($uIds);
  59. }
  60. }
  61. $result = array('totalNum' => $totalNum, 'users' => $users);
  62. return $result;
  63. }
  64. public function onSiteGetUpdatedFriends($num) {
  65. $friends = array();
  66. $totalNum = C::t('home_friendlog')->count();
  67. if ($totalNum) {
  68. foreach(C::t('home_friendlog')->fetch_all_order_by_dateline(0, $num) as $friend) {
  69. $friends[] = array('uId' => $friend['uid'],
  70. 'uId2' => $friend['fuid'],
  71. 'action' => $friend['action']
  72. );
  73. C::t('home_friendlog')->delete_by_uid_fuid($friend['uid'], $friend['fuid']);
  74. }
  75. }
  76. return array('totalNum' => $totalNum, 'friends' => $friends);
  77. }
  78. public function onSiteGetStat($beginDate = null, $num = null, $orderType = 'ASC') {
  79. $result = array();
  80. $fields = array('login' => 'loginUserNum',
  81. 'doing' => 'doingNum',
  82. 'blog' => 'blogNum',
  83. 'pic' => 'photoNum',
  84. 'poll' => 'pollNum',
  85. 'event' => 'eventNum',
  86. 'share' => 'shareNum',
  87. 'thread' => 'threadNum',
  88. 'docomment' => 'doingCommentNum',
  89. 'blogcomment' => 'blogCommentNum',
  90. 'piccomment' => 'photoCommentNum',
  91. 'pollcomment' => 'pollCommentNum',
  92. 'eventcomment' => 'eventCommentNum',
  93. 'sharecomment' => 'shareCommentNum',
  94. 'pollvote' => 'pollUserNum',
  95. 'eventjoin' => 'eventUserNum',
  96. 'post' => 'postNum',
  97. 'wall' => 'wallNum',
  98. 'poke' => 'pokeNum',
  99. 'click' => 'clickNum',
  100. );
  101. foreach(C::t('common_stat')->fetch_all_by_daytime($beginDate, 0, $num, $orderType) as $row) {
  102. $stat = array('date' => $row['daytime']);
  103. foreach($row as $k => $v) {
  104. if (array_key_exists($k, $fields)) {
  105. $stat[$fields[$k]] = $v;
  106. }
  107. }
  108. $result[] = $stat;
  109. }
  110. return $result;
  111. }
  112. }