/** * 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; }
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); } } }
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; }
public function actionDelete() { $res = MessageUser::model()->deleteMessageByListId(Yii::app()->user->uid, StringUtil::filterCleanHtml(EnvUtil::getRequest("id"))); $this->ajaxReturn(array("IsSuccess" => !!$res)); }
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'); }