/** * Returns an instance of class (singleton pattern implementation). * * @return NEWSFEED_BOL_ActivityDao */ public static function getInstance() { if (self::$classInstance === null) { self::$classInstance = new self(); } return self::$classInstance; }
/** * @param int $userId * @param int $startTime */ public function generateActionSet($userId, $startTime = null) { $followDao = NEWSFEED_BOL_FollowDao::getInstance(); $actionFeedDao = NEWSFEED_BOL_ActionFeedDao::getInstance(); $activityDao = NEWSFEED_BOL_ActivityDao::getInstance(); /*$query = ' REPLACE INTO '. $this->getTableName() . ' ( `actionId`, `userId`, `timestamp` ) SELECT DISTINCT sactivity.actionId, :u as `userId`, :st FROM ' . $activityDao->getTableName() . ' sactivity INNER JOIN ' . $actionFeedDao->getTableName() . ' saction_feed ON sactivity.id=saction_feed.activityId INNER JOIN ' . $followDao->getTableName() . ' sfollow ON saction_feed.feedId = sfollow.feedId AND saction_feed.feedType = sfollow.feedType WHERE sactivity.status=:s AND sactivity.activityType=:ac AND sactivity.timeStamp<:st AND sfollow.userId=:u AND ( sactivity.privacy=sfollow.permission OR sactivity.privacy=:peb) AND sactivity.visibility & :vf UNION SELECT DISTINCT sactivity.actionId, :u as `userId`, :st FROM ' . $activityDao->getTableName() . ' sactivity INNER JOIN ' . $actionFeedDao->getTableName() . ' saction_feed ON sactivity.id=saction_feed.activityId WHERE sactivity.status=:s AND sactivity.activityType=:ac AND sactivity.timeStamp<:st AND saction_feed.feedId=:u AND saction_feed.feedType="user" AND sactivity.visibility & :vfeed UNION SELECT DISTINCT sactivity.actionId, :u as `userId`, :st FROM ' . $activityDao->getTableName() . ' sactivity WHERE sactivity.status=:s AND sactivity.timeStamp<:st AND ( sactivity.userId=:u AND sactivity.visibility & :va )';*/ $query = ' REPLACE INTO ' . $this->getTableName() . ' ( `actionId`, `userId`, `timestamp` ) SELECT DISTINCT sactivity.actionId, :u as `userId`, :st FROM ' . $activityDao->getTableName() . ' sactivity INNER JOIN ' . $actionFeedDao->getTableName() . ' saction_feed ON sactivity.id=saction_feed.activityId INNER JOIN ' . $followDao->getTableName() . ' sfollow ON saction_feed.feedId = sfollow.feedId AND saction_feed.feedType = sfollow.feedType WHERE sactivity.status=:s AND sactivity.activityType=:ac AND sactivity.timeStamp<:st AND sfollow.userId=:u AND ( sactivity.privacy=sfollow.permission OR sactivity.privacy=:peb) AND sactivity.visibility & :vf UNION SELECT DISTINCT sactivity.actionId, :u as `userId`, :st FROM ' . $activityDao->getTableName() . ' sactivity INNER JOIN ' . $activityDao->getTableName() . ' cactivity ON sactivity.actionId = cactivity.actionId WHERE sactivity.status=:s AND sactivity.timeStamp<:st AND cactivity.activityType=:ac AND cactivity.visibility & :va AND sactivity.userId=:u AND sactivity.visibility & :va AND cactivity.status=:s UNION SELECT DISTINCT sactivity.actionId, :u as `userId`, :st FROM ' . $activityDao->getTableName() . ' sactivity INNER JOIN ' . $actionFeedDao->getTableName() . ' saction_feed ON sactivity.id=saction_feed.activityId INNER JOIN ' . $activityDao->getTableName() . ' cactivity ON sactivity.actionId = cactivity.actionId WHERE sactivity.status=:s AND sactivity.timeStamp<:st AND cactivity.activityType=:ac AND sactivity.visibility & :vfeed AND saction_feed.feedId=:u AND saction_feed.feedType="user" AND cactivity.status=:s'; $this->dbo->update($query, array('u' => (int) $userId, 'va' => NEWSFEED_BOL_Service::VISIBILITY_AUTHOR, 'vf' => NEWSFEED_BOL_Service::VISIBILITY_FOLLOW, 'vfeed' => NEWSFEED_BOL_Service::VISIBILITY_FEED, 's' => NEWSFEED_BOL_Service::ACTION_STATUS_ACTIVE, 'st' => empty($startTime) ? time() : $startTime, 'peb' => NEWSFEED_BOL_Service::PRIVACY_EVERYBODY, 'ac' => NEWSFEED_BOL_Service::SYSTEM_ACTIVITY_CREATE, 'as' => NEWSFEED_BOL_Service::SYSTEM_ACTIVITY_SUBSCRIBE)); }
protected function findActivityList($params, $actionIds) { return NEWSFEED_BOL_ActivityDao::getInstance()->findFeedActivity($params['feedType'], $params['feedId'], $actionIds); }
public function removeActivityByUserId($userId) { $this->activityDao->deleteByUserId($userId); }
public function findExpiredIdList($inactivePeriod, $count = null) { $activityDao = NEWSFEED_BOL_ActivityDao::getInstance(); $systemActivities = NEWSFEED_BOL_Service::getInstance()->SYSTEM_ACTIVITIES; $limit = ''; if (!empty($count)) { $limit = ' LIMIT ' . $count; } $query = 'SELECT DISTINCT cactivity.actionId FROM ' . $activityDao->getTableName() . ' cactivity LEFT JOIN ' . $activityDao->getTableName() . ' activity ON cactivity.actionId=activity.actionId AND activity.activityType NOT IN ("' . implode('", "', $systemActivities) . '") WHERE activity.id IS NULL AND cactivity.activityType=:c AND cactivity.timeStamp < :ts' . $limit; return $this->dbo->queryForColumnList($query, array('c' => NEWSFEED_BOL_Service::SYSTEM_ACTIVITY_CREATE, 'ts' => time() - $inactivePeriod)); }
protected function findActivityList($params, $actionIds) { return NEWSFEED_BOL_ActivityDao::getInstance()->findSiteFeedActivity($actionIds); }