Exemplo n.º 1
0
 /**
  * Deletes the message if all references in message_user indicate 'deleted'
  * @return bool
  */
 public function removeIfOrphaned()
 {
     if (!MessageUser::countBySQL("message_id = ? AND snd_rec IN('rec','snd') AND deleted = 0", array($this->message_id))) {
         return (bool) $this->delete();
     }
     return false;
 }
Exemplo n.º 2
0
 private function addMessageUser($data, $fromUid)
 {
     if (!$data["listid"] || !is_array($data["users"]) || !$fromUid) {
         return false;
     }
     $user["listid"] = $data["listid"];
     $user["listctime"] = $data["mtime"];
     foreach ($data["users"] as $k => $u) {
         $userInfo = MessageUser::model()->findByAttributes(array("listid" => $data["listid"], "uid" => $u));
         if (!empty($userInfo)) {
             $user["ctime"] = $userInfo["ctime"];
             $user["new"] = $u == $fromUid ? $userInfo["new"] : 2;
             $user["messagenum"] = $userInfo["messagenum"] + 1;
             MessageUser::model()->updateAll($user, "`listid` = :listid AND uid = :uid", array(":listid" => $data["listid"], ":uid" => $u));
         } else {
             $user["ctime"] = $u == $fromUid ? time() : 0;
             $user["new"] = $u == $fromUid ? 0 : 2;
             $user["messagenum"] = 1;
             $user["uid"] = $u;
             MessageUser::model()->add($user);
         }
     }
 }
Exemplo n.º 3
0
 protected function delete_message($message_id)
 {
     $messageuser = new MessageUser(array($GLOBALS['user']->id, $message_id, "snd"));
     $success = 0;
     if (!$messageuser->isNew()) {
         $messageuser['deleted'] = 1;
         $success = $messageuser->store();
     }
     $messageuser = new MessageUser(array($GLOBALS['user']->id, $message_id, "rec"));
     if (!$messageuser->isNew()) {
         $messageuser['deleted'] = 1;
         $success += $messageuser->store();
     }
     return $success;
 }
Exemplo n.º 4
0
 public function actionDelete()
 {
     $res = MessageUser::model()->deleteMessageByListId(Yii::app()->user->uid, StringUtil::filterCleanHtml(EnvUtil::getRequest("id")));
     $this->ajaxReturn(array("IsSuccess" => !!$res));
 }
Exemplo n.º 5
0
 private static function folder($user_id, $sndrec, $folder, $unread = null)
 {
     $temp = \MessageUser::findBySQL('user_id = ? AND snd_rec = ? AND deleted = 0', array($user_id, $sndrec));
     $messages = \SimpleORMapCollection::createFromArray($temp);
     if ($unread !== null) {
         $messages = $messages->filter(function ($message) use($unread) {
             return $message->readed == ($unread ? 0 : 1);
         });
     }
     return $messages->pluck('message_id');
 }