/** * 可回滚的版本设置 * * @return int */ private function _enableRollBack() { $where = ' status = :status AND project_id = :project_id '; $param = [':status' => Task::STATUS_DONE, ':project_id' => $this->task->project_id]; $offset = Task::find()->select(['id'])->where($where, $param)->orderBy(['id' => SORT_DESC])->offset($this->conf->keep_version_num)->limit(1)->scalar(); if (!$offset) { return true; } $where .= ' AND id <= :offset '; $param[':offset'] = $offset; return Task::updateAll(['enable_rollback' => Task::ROLLBACK_FALSE], $where, $param); }