示例#1
0
 /**
  * Returns class instance
  *
  * @return FRIENDS_BOL_FriendshipDao
  */
 public static function getInstance()
 {
     if (self::$classInstance === null) {
         self::$classInstance = new self();
     }
     return self::$classInstance;
 }
示例#2
0
 public function findUsers($kw, $userId, $limit = null)
 {
     if (!OW::getPluginManager()->isPluginActive('friends')) {
         return array();
     }
     $friendsTable = FRIENDS_BOL_FriendshipDao::getInstance()->getTableName();
     $questionName = OW::getConfig()->getValue('base', 'display_name_question');
     $questionDataTable = BOL_QuestionDataDao::getInstance()->getTableName();
     $limitStr = $limit === null ? '' : 'LIMIT 0, ' . intval($limit);
     $query = "SELECT `fr`.`userId` FROM `" . $friendsTable . "` AS `fr`\n            INNER JOIN " . $questionDataTable . " qd ON fr.userId = qd.userId\n            LEFT JOIN `" . BOL_UserSuspendDao::getInstance()->getTableName() . "` AS `us` ON ( `fr`.`friendId` = `us`.`userId` )\n            WHERE `fr`.`status` = :status AND `us`.`userId` IS NULL AND `fr`.`friendId` = :userId\n                AND qd.questionName=:name AND qd.textValue LIKE :kw\n            UNION\n            SELECT `fr`.`friendId` AS `userId` FROM `" . $friendsTable . "` AS `fr`\n            INNER JOIN " . $questionDataTable . " qd ON fr.friendId = qd.userId\n            LEFT JOIN `" . BOL_UserSuspendDao::getInstance()->getTableName() . "` AS `us` ON ( `fr`.`friendId` = `us`.`userId` )\n            WHERE `fr`.`status` = :status AND `us`.`userId` IS NULL AND `fr`.`userId` = :userId\n                AND qd.questionName=:name AND qd.textValue LIKE :kw\n            {$limitStr}\n            ";
     return OW::getDbo()->queryForColumnList($query, array('userId' => $userId, 'status' => FRIENDS_BOL_FriendshipDao::VAL_STATUS_ACTIVE, 'kw' => '%' . $kw . '%', 'name' => $questionName));
 }
示例#3
0
 public function findFriendsActivity($startStamp, $questionIds, $userId)
 {
     if (empty($questionIds)) {
         return array();
     }
     $friendsDao = FRIENDS_BOL_FriendshipDao::getInstance();
     $questionsIN = implode(',', $questionIds);
     $query = "SELECT a.* FROM " . $this->getTableName() . " a\n            INNER JOIN " . $friendsDao->getTableName() . " f ON ( a.userId=f.userId OR a.userId=f.friendId ) AND f.status=:fs\n            WHERE a.privacy!=:pn AND a.timeStamp <= :ss AND a.questionId IN ({$questionsIN}) AND ( f.userId =:u OR f.friendId=:u )\n            ORDER BY a.timeStamp DESC";
     return $this->dbo->queryForObjectList($query, $this->getDtoClassName(), array('ss' => $startStamp, 'fs' => FRIENDS_BOL_FriendshipDao::VAL_STATUS_ACTIVE, 'u' => $userId, 'pn' => EQUESTIONS_BOL_FeedService::PRIVACY_NOBODY));
 }
示例#4
0
 public function findFriendsFeedCount($startStamp, $userId)
 {
     $activityDao = EQUESTIONS_BOL_ActivityDao::getInstance();
     $friendsDao = FRIENDS_BOL_FriendshipDao::getInstance();
     $query = "SELECT COUNT(DISTINCT q.id)\n            FROM " . $this->getTableName() . " q\n            INNER JOIN " . $activityDao->getTableName() . " a ON q.id=a.questionId\n            INNER JOIN " . $friendsDao->getTableName() . " f ON ( a.userId=f.userId OR a.userId=f.friendId ) AND f.status=:fs\n            WHERE a.timeStamp <= :ss\n                AND ( f.userId =:u OR f.friendId=:u )\n                AND a.userId!=:u\n                AND a.userId!=:pn";
     return $this->dbo->queryForColumn($query, array('fs' => FRIENDS_BOL_FriendshipDao::VAL_STATUS_ACTIVE, 'ss' => $startStamp, 'u' => $userId, 'pn' => EQUESTIONS_BOL_FeedService::PRIVACY_NOBODY));
 }
示例#5
0
 public function findFriendIdListByDisplayName($userId, $search, $first, $count, $userIdList)
 {
     return $this->friendshipDao->findFriendIdListByDisplayName($userId, $search, $first, $count, $userIdList);
 }
示例#6
0
文件: service.php 项目: vazahat/dudex
 public function markAllViewedByUserId($userId, $viewed = true)
 {
     $this->friendshipDao->markAllViewedByUserId($userId, $viewed);
 }