projectUser->pluck('userid')->toArray(); $dialog = WebSocketDialog::createGroup($this->name, $userid, 'project'); if ($dialog) { $this->dialog_id = $value = $dialog->id; $this->save(); } } return $value; } /** * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function projectColumn(): \Illuminate\Database\Eloquent\Relations\HasMany { return $this->hasMany(projectColumn::class, 'project_id', 'id')->orderBy('sort')->orderBy('id'); } /** * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function projectLog(): \Illuminate\Database\Eloquent\Relations\HasMany { return $this->hasMany(projectLog::class, 'project_id', 'id')->orderByDesc('id'); } /** * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function projectUser(): \Illuminate\Database\Eloquent\Relations\HasMany { return $this->hasMany(projectUser::class, 'project_id', 'id')->orderBy('id'); } /** * 加入项目 * @param int $userid 加入的会员ID * @return bool */ public function joinProject($userid) { $result = AbstractModel::transaction(function () use ($userid) { ProjectUser::updateInsert([ 'project_id' => $this->id, 'userid' => $userid, ]); WebSocketDialogUser::updateInsert([ 'dialog_id' => $this->dialog_id, 'userid' => $userid, ]); }); return Base::isSuccess($result); } /** * 删除项目 * @return bool */ public function deleteProject() { $result = AbstractModel::transaction(function () { ProjectTask::whereProjectId($this->id)->delete(); ProjectColumn::whereProjectId($this->id)->delete(); WebSocketDialog::whereId($this->dialog_id)->delete(); if ($this->delete()) { return Base::retSuccess('success'); } else { return Base::retError('error'); } }); return Base::isSuccess($result); } }