public function readDialog($dialogIds) { if (!is_array($dialogIds)) { $dialogIds = array($dialogIds); } Wind::import('WINDID:service.message.dm.WindidMessageDm'); $ds = $this->_getMessageDs(); foreach ($dialogIds as $id) { $dialog = $ds->getDialog($id); $ds->readDialogMessages($id); $dm = new WindidMessageDm(); $dm->setUnreadCount(0); $ds->updateDialog($id, $dm); $this->_getMessageService()->resetUserMessages($dialog['to_uid']); $this->_getNotifyClient()->send('editMessageNum', $dialog['to_uid']); } return WindidError::SUCCESS; }
public function batchUpdateDialog($dialogIds, WindidMessageDm $dm) { if (($result = $dm->beforeUpdateDialog()) !== true) { return $result; } return $this->_getDialogDao()->batchUpdateDialog($dialogIds, $dm->getData(), $dm->getIncreaseData()); }
/** * * 重新统计某会话的统计数 * @param int $dialogId */ public function resetDialogMessages($dialogId) { list($messages, $reads) = $this->_getMessageDs()->countDialogMessages($dialogId); $unreads = $reads > $messages ? 0 : $messages - $reads; if ($messages < 1) { return $this->_getMessageDs()->deleteDialog($dialogId); } $dm = new WindidMessageDm(); $dm->setMessageCount($messages); $dm->setUnreadCount($unreads); return $this->_getMessageDs()->updateDialog($dialogId, $dm); }