mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-13 12:02:51 +00:00
fix:修复任务列表查询不出数据的问题
This commit is contained in:
parent
9adb825a88
commit
5142497c7a
@ -912,11 +912,13 @@ class ProjectController extends AbstractController
|
|||||||
|
|
||||||
$builder = ProjectTask::with(['taskUser', 'taskTag']);
|
$builder = ProjectTask::with(['taskUser', 'taskTag']);
|
||||||
// 任务可见性
|
// 任务可见性
|
||||||
$builder->leftJoin('projects as projects', 'project_tasks.project_id', '=', 'projects.id');
|
$builder->leftJoin('project_users', function ($q) {
|
||||||
|
$q->on('project_tasks.project_id', '=', 'project_users.project_id')->where('project_users.owner', 1);
|
||||||
|
});
|
||||||
$builder->leftJoin('project_task_users as task_users', 'project_tasks.id', '=', 'task_users.task_id');
|
$builder->leftJoin('project_task_users as task_users', 'project_tasks.id', '=', 'task_users.task_id');
|
||||||
$builder->where(function ($q) use ($userid) {
|
$builder->where(function ($q) use ($userid) {
|
||||||
$q->where("project_tasks.is_all_visible", 1);
|
$q->where("project_tasks.is_all_visible", 1);
|
||||||
$q->orWhere("projects.userid", $userid);
|
$q->orWhere("project_users.userid", $userid);
|
||||||
$q->orWhere("task_users.userid", $userid);
|
$q->orWhere("task_users.userid", $userid);
|
||||||
});
|
});
|
||||||
//
|
//
|
||||||
@ -1359,7 +1361,7 @@ class ProjectController extends AbstractController
|
|||||||
$isArchived = str_replace(['all', 'yes', 'no'], [null, false, true], $archived);
|
$isArchived = str_replace(['all', 'yes', 'no'], [null, false, true], $archived);
|
||||||
$task = ProjectTask::userTask($task_id, $isArchived, true, false, ['taskUser', 'taskTag']);
|
$task = ProjectTask::userTask($task_id, $isArchived, true, false, ['taskUser', 'taskTag']);
|
||||||
// 项目可见性
|
// 项目可见性
|
||||||
$project_userid = Project::whereId($task->project_id)->value('userid'); // 项目负责人
|
$project_userid = ProjectUser::whereProjectId($task->project_id)->whereOwner(1)->value('userid'); // 项目负责人
|
||||||
if ($task->is_all_visible != 1 && $user->userid != $project_userid) {
|
if ($task->is_all_visible != 1 && $user->userid != $project_userid) {
|
||||||
$visibleUserids = ProjectTaskUser::whereTaskId($task_id)->pluck('userid')->toArray(); // 是否任务负责人、协助人、可见人
|
$visibleUserids = ProjectTaskUser::whereTaskId($task_id)->pluck('userid')->toArray(); // 是否任务负责人、协助人、可见人
|
||||||
$subVisibleUserids = ProjectTaskUser::whereTaskPid($task_id)->pluck('userid')->toArray(); // 是否子任务负责人、协助人
|
$subVisibleUserids = ProjectTaskUser::whereTaskPid($task_id)->pluck('userid')->toArray(); // 是否子任务负责人、协助人
|
||||||
@ -1627,7 +1629,7 @@ class ProjectController extends AbstractController
|
|||||||
if ($data['is_all_visible'] == 1) {
|
if ($data['is_all_visible'] == 1) {
|
||||||
$data['is_visible'] = 1;
|
$data['is_visible'] = 1;
|
||||||
} else {
|
} else {
|
||||||
$projectOwner = Project::whereId($data['project_id'])->pluck('userid')->toArray(); // 项目负责人
|
$projectOwner = ProjectUser::whereProjectId($task->project_id)->whereOwner(1)->pluck('userid')->toArray(); // 项目负责人
|
||||||
$taskOwnerAndAssists = ProjectTaskUser::select(['userid', 'owner'])->whereTaskId($data['id'])->pluck('userid')->toArray();
|
$taskOwnerAndAssists = ProjectTaskUser::select(['userid', 'owner'])->whereTaskId($data['id'])->pluck('userid')->toArray();
|
||||||
$visibleIds = array_merge($projectOwner, $taskOwnerAndAssists);
|
$visibleIds = array_merge($projectOwner, $taskOwnerAndAssists);
|
||||||
$data['is_visible'] = in_array($user->userid, $visibleIds) ? 1 : 0;
|
$data['is_visible'] = in_array($user->userid, $visibleIds) ? 1 : 0;
|
||||||
@ -1675,9 +1677,8 @@ class ProjectController extends AbstractController
|
|||||||
'is_all_visible' => 2,
|
'is_all_visible' => 2,
|
||||||
]);
|
]);
|
||||||
$data = ProjectTask::oneTask($task->id);
|
$data = ProjectTask::oneTask($task->id);
|
||||||
$projectUserid = Project::whereId($data->project_id)->value('userid');
|
|
||||||
$pushUserIds = ProjectTaskUser::whereTaskId($task->id)->pluck('userid')->toArray();
|
$pushUserIds = ProjectTaskUser::whereTaskId($task->id)->pluck('userid')->toArray();
|
||||||
$pushUserIds[] = $projectUserid;
|
$pushUserIds[] = ProjectUser::whereProjectId($this->project_id)->whereOwner(1)->value('userid');
|
||||||
foreach ($pushUserIds as $userId) {
|
foreach ($pushUserIds as $userId) {
|
||||||
$task->pushMsg('add', $data, $userId);
|
$task->pushMsg('add', $data, $userId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1551,7 +1551,7 @@ class ProjectTask extends AbstractModel
|
|||||||
if (empty($userids)) {
|
if (empty($userids)) {
|
||||||
// 默认 项目成员 与 项目负责人,任务负责人、协助人的差集
|
// 默认 项目成员 与 项目负责人,任务负责人、协助人的差集
|
||||||
$projectUserids = ProjectUser::whereProjectId($this->project_id)->pluck('userid')->toArray(); // 项目成员
|
$projectUserids = ProjectUser::whereProjectId($this->project_id)->pluck('userid')->toArray(); // 项目成员
|
||||||
$projectOwner = Project::whereId($this->project_id)->pluck('userid')->toArray(); // 项目负责人
|
$projectOwner = ProjectUser::whereProjectId($this->project_id)->whereOwner(1)->pluck('userid')->toArray(); // 项目负责人
|
||||||
$taskOwnerAndAssists = ProjectTaskUser::select(['userid', 'owner'])->whereIn('owner', [0, 1])->whereTaskId($this->id)->pluck('userid')->toArray();
|
$taskOwnerAndAssists = ProjectTaskUser::select(['userid', 'owner'])->whereIn('owner', [0, 1])->whereTaskId($this->id)->pluck('userid')->toArray();
|
||||||
$subUserids = ProjectTaskUser::whereTaskPid($this->id)->pluck('userid')->toArray();
|
$subUserids = ProjectTaskUser::whereTaskPid($this->id)->pluck('userid')->toArray();
|
||||||
$userids = array_diff($projectUserids, $projectOwner, $taskOwnerAndAssists, $subUserids);
|
$userids = array_diff($projectUserids, $projectOwner, $taskOwnerAndAssists, $subUserids);
|
||||||
@ -1720,27 +1720,4 @@ class ProjectTask extends AbstractModel
|
|||||||
//
|
//
|
||||||
return $task;
|
return $task;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取用户任务可见性
|
|
||||||
* @param $userid
|
|
||||||
* @param $project_id
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public static function getVisibleUserids($userid, $project_id = 0)
|
|
||||||
{
|
|
||||||
return (new ProjectTask)->setTable('pt')->from('project_tasks as pt')
|
|
||||||
->leftJoin('project_task_users as b', 'b.task_id', '=', 'pt.id')
|
|
||||||
->Join('projects as p', 'p.id', '=', 'pt.project_id')
|
|
||||||
->when($project_id, function ($q) use ($project_id) {
|
|
||||||
$q->where('pt.project_id', '=', $project_id); // 负责人项目ids
|
|
||||||
})
|
|
||||||
->where(function ($q) use ($userid) {
|
|
||||||
$q->where("pt.is_all_visible", '=', 1);
|
|
||||||
$q->OrWhere("p.userid", '=', $userid);
|
|
||||||
$q->OrWhere("b.userid", '=', $userid);
|
|
||||||
})
|
|
||||||
->pluck("pt.id")
|
|
||||||
->toArray();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user