objTable->getRow($where); if (!$msg) { throw new Exception('message not found', CODE_NORMAL_ERROR); } if ($msg['from'] != $from) { throw new Exception('no permission', CODE_NO_PERMITION); } if ((time() - strtotime($msg['create_time']) > self::MAX_REPEAL_TIME)) { throw new Exception('repeal message time out', CODE_NORMAL_ERROR); } $this->objTable->updateObject(['state' => 0], $where); // 如果撤销的是最后一条 if ($msg['msg_num'] == Session::getLastMsgNum($session_id)) { Session::setLastMsg($session_id, Session::MSG_TYPE_REPEAL, '', $from, ''); } ThirdApi::pushPersonEvent($msg['to'], [ 'type' => 'repeal', 'from' => (int) $from, 'nick_name' => User::getUserNameById($from), 'to' => (int) $msg['to'], 'hash' => $hash, ]); return true; } }