예제 #1
0
 public function afterSave(Entity $entity)
 {
     if (!$entity->isFetched()) {
         $parentType = $entity->get('parentType');
         $parentId = $entity->get('parentId');
         if ($parentType && $parentId) {
             $pdo = $this->getEntityManager()->getPDO();
             $sql = "\n\t\t\t\t\tSELECT user_id AS userId \n\t\t\t\t\tFROM subscription\n\t\t\t\t\tWHERE entity_id = " . $pdo->quote($parentId) . " AND entity_type = " . $pdo->quote($parentType);
             $sth = $pdo->prepare($sql);
             $sth->execute();
             $userIdList = array();
             while ($row = $sth->fetch(\PDO::FETCH_ASSOC)) {
                 if ($this->getUser()->id != $row['userId']) {
                     $userIdList[] = $row['userId'];
                 }
             }
             if (!empty($userIdList)) {
                 $job = $this->getEntityManager()->getEntity('Job');
                 $job->set(array('serviceName' => 'Notification', 'method' => 'notifyAboutNoteFromJob', 'data' => json_encode(array('userIdList' => $userIdList, 'noteId' => $entity->id)), 'executeTime' => date('Y-m-d H:i:s')));
                 $this->getEntityManager()->saveEntity($job);
             }
         }
     }
 }