Beispiel #1
0
 /**
  * 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));
    }
Beispiel #3
0
 protected function findActivityList($params, $actionIds)
 {
     return NEWSFEED_BOL_ActivityDao::getInstance()->findFeedActivity($params['feedType'], $params['feedId'], $actionIds);
 }
Beispiel #4
0
 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));
 }
Beispiel #6
0
 protected function findActivityList($params, $actionIds)
 {
     return NEWSFEED_BOL_ActivityDao::getInstance()->findSiteFeedActivity($actionIds);
 }