mirror of
https://github.com/kuaifan/dootask.git
synced 2026-02-13 10:44:00 +00:00
fix: 修复任务可见性 - 任务重覆获取, 子任务负责人看不到任务问题
This commit is contained in:
parent
727d7e1d81
commit
0737a9fae7
@ -1058,10 +1058,6 @@ class ProjectController extends AbstractController
|
|||||||
$query->where('project_users.owner', 1);
|
$query->where('project_users.owner', 1);
|
||||||
$query->where('project_users.userid', $userid);
|
$query->where('project_users.userid', $userid);
|
||||||
});
|
});
|
||||||
$builder->leftJoin('project_task_users as project_sub_task_users', function ($query) use($userid) {
|
|
||||||
$query->on('project_sub_task_users.task_pid', '=', 'project_tasks.parent_id');
|
|
||||||
$query->where('project_sub_task_users.userid', $userid);
|
|
||||||
});
|
|
||||||
$builder->leftJoin('project_task_visibility_users', function ($query) use($userid) {
|
$builder->leftJoin('project_task_visibility_users', function ($query) use($userid) {
|
||||||
$query->on('project_task_visibility_users.task_id', '=', 'project_tasks.id');
|
$query->on('project_task_visibility_users.task_id', '=', 'project_tasks.id');
|
||||||
$query->where('project_task_visibility_users.userid', $userid);
|
$query->where('project_task_visibility_users.userid', $userid);
|
||||||
@ -1071,7 +1067,6 @@ class ProjectController extends AbstractController
|
|||||||
$query->orWhere("project_users.userid", $userid);
|
$query->orWhere("project_users.userid", $userid);
|
||||||
$query->orWhere("project_task_users.userid", $userid);
|
$query->orWhere("project_task_users.userid", $userid);
|
||||||
$query->orWhere("project_task_visibility_users.userid", $userid);
|
$query->orWhere("project_task_visibility_users.userid", $userid);
|
||||||
$query->orWhere("project_sub_task_users.userid", $userid);
|
|
||||||
});
|
});
|
||||||
// 优化子查询汇总
|
// 优化子查询汇总
|
||||||
$builder->leftJoinSub(function ($query) {
|
$builder->leftJoinSub(function ($query) {
|
||||||
|
|||||||
@ -92,7 +92,7 @@ class ProjectTaskObserver
|
|||||||
}
|
}
|
||||||
$array = [];
|
$array = [];
|
||||||
if (in_array('task', $dataType)) {
|
if (in_array('task', $dataType)) {
|
||||||
$array = array_merge($array, ProjectTaskUser::whereTaskId($projectTask->id)->pluck('userid')->toArray());
|
$array = array_merge($array, ProjectTaskUser::whereTaskId($projectTask->id)->orWhere('task_pid' ,$projectTask->id)->pluck('userid')->toArray());
|
||||||
}
|
}
|
||||||
if (in_array('visibility', $dataType)) {
|
if (in_array('visibility', $dataType)) {
|
||||||
$array = array_merge($array, ProjectTaskVisibilityUser::whereTaskId($projectTask->id)->pluck('userid')->toArray());
|
$array = array_merge($array, ProjectTaskVisibilityUser::whereTaskId($projectTask->id)->pluck('userid')->toArray());
|
||||||
@ -113,7 +113,7 @@ class ProjectTaskObserver
|
|||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
$dataType = $projectTask->visibility == 2 ? ['task'] : ['task', 'visibility'];
|
$dataType = $projectTask->visibility == 2 ? ['task'] : ['visibility'];
|
||||||
$forgetUserids = self::userids($projectTask, $dataType);
|
$forgetUserids = self::userids($projectTask, $dataType);
|
||||||
$projectOwnerUserIds = self::userids($projectTask, 'projectOwnerUser');
|
$projectOwnerUserIds = self::userids($projectTask, 'projectOwnerUser');
|
||||||
$recordUserids = array_diff($projectUserids, $forgetUserids, $projectOwnerUserIds);
|
$recordUserids = array_diff($projectUserids, $forgetUserids, $projectOwnerUserIds);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user