From 9adb825a88a600c53f29d54547a833f4fa31564f Mon Sep 17 00:00:00 2001 From: weifashi <605403358@qq.com> Date: Sat, 1 Jul 2023 22:37:55 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A1.=E4=BF=AE=E5=A4=8D=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2=E4=B8=8D=E5=87=BA?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=9A=84=E9=97=AE=E9=A2=98=20=EF=BC=8C2.?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E4=BB=BB=E5=8A=A1=E8=A1=A8=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=A1=B9=E7=9B=AEid=E7=9A=84=E7=B4=A2=E5=BC=95=20=202,=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=BB=E5=8A=A1=E8=AF=A6=E6=83=85-?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Api/ProjectController.php | 70 ++++++++++--------- ...12841_add_index_to_project_tasks_table.php | 34 +++++++++ resources/assets/js/components/UserSelect.vue | 2 +- 3 files changed, 72 insertions(+), 34 deletions(-) create mode 100644 database/migrations/2023_07_01_212841_add_index_to_project_tasks_table.php diff --git a/app/Http/Controllers/Api/ProjectController.php b/app/Http/Controllers/Api/ProjectController.php index 3286b50d1..5f4a72a6f 100755 --- a/app/Http/Controllers/Api/ProjectController.php +++ b/app/Http/Controllers/Api/ProjectController.php @@ -2,36 +2,36 @@ namespace App\Http\Controllers\Api; -use App\Exceptions\ApiException; -use App\Models\AbstractModel; -use App\Models\Deleted; -use App\Models\File; -use App\Models\FileContent; -use App\Models\Project; -use App\Models\ProjectColumn; -use App\Models\ProjectFlow; -use App\Models\ProjectFlowItem; -use App\Models\ProjectInvite; -use App\Models\ProjectLog; -use App\Models\ProjectTask; -use App\Models\ProjectTaskFile; -use App\Models\ProjectTaskFlowChange; -use App\Models\ProjectTaskUser; -use App\Models\ProjectUser; -use App\Models\User; -use App\Models\WebSocketDialog; -use App\Module\Base; -use App\Module\BillExport; -use App\Module\BillMultipleExport; -use App\Module\Doo; -use App\Module\TimeRange; -use Carbon\Carbon; -use Illuminate\Support\Arr; -use Madzipper; -use Redirect; use Request; -use Response; use Session; +use Redirect; +use Response; +use Madzipper; +use Carbon\Carbon; +use App\Module\Doo; +use App\Models\File; +use App\Models\User; +use App\Module\Base; +use App\Models\Deleted; +use App\Models\Project; +use App\Module\TimeRange; +use App\Models\ProjectLog; +use App\Module\BillExport; +use App\Models\FileContent; +use App\Models\ProjectFlow; +use App\Models\ProjectTask; +use App\Models\ProjectUser; +use Illuminate\Support\Arr; +use App\Models\AbstractModel; +use App\Models\ProjectColumn; +use App\Models\ProjectInvite; +use App\Models\ProjectFlowItem; +use App\Models\ProjectTaskFile; +use App\Models\ProjectTaskUser; +use App\Models\WebSocketDialog; +use App\Exceptions\ApiException; +use App\Module\BillMultipleExport; +use App\Models\ProjectTaskFlowChange; /** * @apiDefine project @@ -909,12 +909,16 @@ class ProjectController extends AbstractController $sorts = Request::input('sorts'); $keys = is_array($keys) ? $keys : []; $sorts = is_array($sorts) ? $sorts : []; - - // 任务可见性 - $visibility_task_ids = ProjectTask::getVisibleUserids($userid, $project_id); - + $builder = ProjectTask::with(['taskUser', 'taskTag']); - $builder->whereIn("project_tasks.id", $visibility_task_ids); + // 任务可见性 + $builder->leftJoin('projects as projects', 'project_tasks.project_id', '=', 'projects.id'); + $builder->leftJoin('project_task_users as task_users', 'project_tasks.id', '=', 'task_users.task_id'); + $builder->where(function ($q) use ($userid) { + $q->where("project_tasks.is_all_visible", 1); + $q->orWhere("projects.userid", $userid); + $q->orWhere("task_users.userid", $userid); + }); // if ($keys['name']) { if (Base::isNumber($keys['name'])) { diff --git a/database/migrations/2023_07_01_212841_add_index_to_project_tasks_table.php b/database/migrations/2023_07_01_212841_add_index_to_project_tasks_table.php new file mode 100644 index 000000000..7d2b3f3a4 --- /dev/null +++ b/database/migrations/2023_07_01_212841_add_index_to_project_tasks_table.php @@ -0,0 +1,34 @@ +index('project_id'); + } + }); + } + + /** + * Reverse the migrations. + * + * @return voidw + */ + public function down() + { + Schema::table('project_tasks', function (Blueprint $table) { + $table->dropIndex('project_id'); + }); + } +} diff --git a/resources/assets/js/components/UserSelect.vue b/resources/assets/js/components/UserSelect.vue index 5cca8dc92..42b8a4974 100755 --- a/resources/assets/js/components/UserSelect.vue +++ b/resources/assets/js/components/UserSelect.vue @@ -312,7 +312,7 @@ export default { } else { this.searchKey = "" } - this.$emit("onShowChange",value) + this.$emit("on-show-change",value) }, searchKey() {