public function updateOvertime($tid) { $overtimes = $this->_getOvertimeDs()->getOvertimeByTid($tid); $deltop = 0; $dm = new PwTopicDm($tid); if ($overtimes) { $timestamp = Pw::getTime(); $newOvertime = 0; $ids = array(); foreach ($overtimes as $v) { if ($v['overtime'] > $timestamp) { (!$newOvertime || $newOvertime > $v['overtime']) && ($newOvertime = $v['overtime']); } else { switch ($v['m_type']) { case 'topped': $dm->setTopped(0); $deltop = 1; break; case 'highlight': $dm->setHighlight(''); break; } $ids[] = $v['id']; } } $ids && $this->_getOvertimeDs()->batchDelete($ids); $dm->setOvertime($newOvertime); } else { $dm->setOvertime(0); } $this->_getThreadDs()->updateThread($dm); if ($deltop) { Wekit::load('forum.PwSpecialSort')->deleteSpecialSortByTid($tid); } }
public function run() { $topicDm = new PwTopicDm(true); $topicDm->setHighlight($this->hightlight); $threadDs = Wekit::load('forum.PwThread'); $threadDs->batchUpdateThread($this->tids, $topicDm, PwThread::FETCH_MAIN); if ($this->overtime) { if ($this->overids) { $topicDm = new PwTopicDm(true); $topicDm->setOvertime($this->overtime); $threadDs->batchUpdateThread($this->overids, $topicDm, PwThread::FETCH_MAIN); } $this->_getOvertimeDs()->batchAdd($this->tids, 'highlight', $this->overtime); } else { $this->_getOvertimeDs()->batchDeleteByTidAndType($this->tids, 'highlight'); } //管理日志添加 Wekit::load('log.srv.PwLogService')->addThreadManageLog($this->srv->user, 'highlight', $this->srv->getData(), $this->_reason, $this->overtime ? $this->overtime : '永久'); }