From 8b5409de5af5036d7fe881796b6ef0dfa569065d Mon Sep 17 00:00:00 2001 From: weifashi <605403358@qq.com> Date: Sun, 17 Dec 2023 21:42:00 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=20=E9=A1=B9=E7=9B=AE=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E6=9F=A5=E8=AF=A2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Api/ProjectController.php | 27 ++++---- ...2_update_owner_add_index_some_20231217.php | 65 +++++++++++++++++++ 2 files changed, 80 insertions(+), 12 deletions(-) create mode 100644 database/migrations/2023_12_07_160642_update_owner_add_index_some_20231217.php diff --git a/app/Http/Controllers/Api/ProjectController.php b/app/Http/Controllers/Api/ProjectController.php index 2b5271fbb..96523fc58 100755 --- a/app/Http/Controllers/Api/ProjectController.php +++ b/app/Http/Controllers/Api/ProjectController.php @@ -876,10 +876,10 @@ class ProjectController extends AbstractController public function column__one() { User::auth(); - // + // $column_id = intval(Request::input('column_id')); $deleted = Request::input('deleted', 'no'); - // + // $builder = ProjectColumn::whereId($column_id); if ($deleted == 'all') { $builder->withTrashed(); @@ -890,10 +890,10 @@ class ProjectController extends AbstractController if (empty($column)) { return Base::retError('列表不存在'); } - // + // return Base::retSuccess('success', $column); } - + /** * @api {get} api/project/task/lists 19. 任务列表 @@ -1016,11 +1016,14 @@ class ProjectController extends AbstractController $builder->orderBy('project_tasks.' . $column, $direction); } // 任务可见性条件 - $builder->leftJoin('project_users', function ($query) { - $query->on('project_tasks.project_id', '=', 'project_users.project_id')->where('project_users.owner', 1); + $builder->leftJoin('project_users', function ($query) use($userid) { + $query->on('project_tasks.project_id', '=', 'project_users.project_id'); + $query->where('project_users.owner', 1); + $query->where('project_users.userid', $userid); }); - $builder->leftJoin('project_task_users as project_p_task_users', function ($query) { + $builder->leftJoin('project_task_users as project_p_task_users', function ($query) use($userid) { $query->on('project_p_task_users.task_pid', '=', 'project_tasks.parent_id'); + $query->where('project_p_task_users.userid', $userid); }); $builder->where(function ($query) use ($userid) { $query->where("project_tasks.visibility", 1); @@ -2219,21 +2222,21 @@ class ProjectController extends AbstractController $task_id = intval(Request::input('task_id')); $project_id = intval(Request::input('project_id')); $column_id = intval(Request::input('column_id')); - // + // $task = ProjectTask::userTask($task_id, true, true, 2); - // + // if( $task->project_id == $project_id && $task->column_id == $column_id){ return Base::retSuccess('移动成功', ['id' => $task_id]); } - // + // $project = Project::userProject($project_id); $column = ProjectColumn::whereProjectId($project->id)->whereId($column_id)->first(); if (empty($column)) { return Base::retError('列表不存在'); } - // + // $task->moveTask($project_id,$column_id); - // + // return Base::retSuccess('移动成功', ['id' => $task_id]); } diff --git a/database/migrations/2023_12_07_160642_update_owner_add_index_some_20231217.php b/database/migrations/2023_12_07_160642_update_owner_add_index_some_20231217.php new file mode 100644 index 000000000..fbd90bd6d --- /dev/null +++ b/database/migrations/2023_12_07_160642_update_owner_add_index_some_20231217.php @@ -0,0 +1,65 @@ +index('userid'); + $table->index('project_id'); + $table->index(['project_id','userid']); + // + $table->index('owner'); + $table->integer('owner')->change(); + }); + Schema::table('project_tasks', function (Blueprint $table) { + $table->index('parent_id'); + $table->index('dialog_id'); + $table->index('userid'); + // + if (Schema::hasColumn('project_tasks', 'visibility')) { + $table->integer('visibility')->change(); + } + }); + Schema::table('project_task_users', function (Blueprint $table) { + $table->index(['task_id','userid']); + // + $table->index('owner'); + $table->integer('owner')->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return voidw + */ + public function down() + { + Schema::table('project_users', function (Blueprint $table) { + $table->dropIndex(['userid']); + $table->dropIndex(['project_id']); + $table->dropIndex(['owner']); + $table->dropIndex(['project_id','userid']); + }); + Schema::table('project_tasks', function (Blueprint $table) { + $table->dropIndex(['parent_id']); + $table->dropIndex(['dialog_id']); + $table->dropIndex(['userid']); + }); + Schema::table('project_task_users', function (Blueprint $table) { + $table->dropIndex(['owner']); + $table->dropIndex(['task_id','userid']); + }); + + } +}