fix:修复可见性任务,子任务不显示的bug

This commit is contained in:
weifashi 2023-08-08 15:53:50 +08:00
parent 1b090c1c6e
commit b8aa32dcaa
2 changed files with 9 additions and 4 deletions

View File

@ -979,10 +979,14 @@ class ProjectController extends AbstractController
$builder->leftJoin('project_users', function ($query) { $builder->leftJoin('project_users', function ($query) {
$query->on('project_tasks.project_id', '=', 'project_users.project_id')->where('project_users.owner', 1); $query->on('project_tasks.project_id', '=', 'project_users.project_id')->where('project_users.owner', 1);
}); });
$builder->leftJoin('project_task_users as project_p_task_users', function ($query) {
$query->on('project_p_task_users.task_pid', '=', 'project_tasks.parent_id');
});
$builder->where(function ($query) use ($userid) { $builder->where(function ($query) use ($userid) {
$query->where("project_tasks.is_all_visible", 1); $query->where("project_tasks.is_all_visible", 1);
$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_p_task_users.userid", $userid);
}); });
// 优化子查询汇总 // 优化子查询汇总
$builder->leftJoinSub(function ($query) { $builder->leftJoinSub(function ($query) {
@ -1778,7 +1782,7 @@ class ProjectController extends AbstractController
'column_id' => $task->column_id, 'column_id' => $task->column_id,
'times' => [$task->start_at, $task->end_at], 'times' => [$task->start_at, $task->end_at],
'owner' => [User::userid()], 'owner' => [User::userid()],
'is_all_visible' => 2, 'is_all_visible' => $task->is_all_visible,
]); ]);
$data = ProjectTask::oneTask($task->id); $data = ProjectTask::oneTask($task->id);
$pushUserIds = ProjectTaskUser::whereTaskId($task->id)->pluck('userid')->toArray(); $pushUserIds = ProjectTaskUser::whereTaskId($task->id)->pluck('userid')->toArray();

View File

@ -371,8 +371,8 @@ class ProjectTask extends AbstractModel
$p_color = $data['p_color']; $p_color = $data['p_color'];
$top = intval($data['top']); $top = intval($data['top']);
$userid = User::userid(); $userid = User::userid();
$is_all_visible = $data['visibility_appoint']; $is_all_visible = isset($data['visibility_appoint']) ? $data['visibility_appoint'] : $data['is_all_visible'];
$visibility_userids = $data['visibility_appointor']; $visibility_userids = $data['visibility_appointor'] ?: [];
// //
if (ProjectTask::whereProjectId($project_id) if (ProjectTask::whereProjectId($project_id)
->whereNull('project_tasks.complete_at') ->whereNull('project_tasks.complete_at')
@ -401,7 +401,7 @@ class ProjectTask extends AbstractModel
'p_level' => $p_level, 'p_level' => $p_level,
'p_name' => $p_name, 'p_name' => $p_name,
'p_color' => $p_color, 'p_color' => $p_color,
'is_all_visible' => $is_all_visible 'is_all_visible' => $is_all_visible ?: 1
]); ]);
if ($content) { if ($content) {
$task->desc = Base::getHtml($content, 100); $task->desc = Base::getHtml($content, 100);
@ -725,6 +725,7 @@ class ProjectTask extends AbstractModel
if (Arr::exists($data, 'is_all_visible') || Arr::exists($data, 'visibility_appointor')) { if (Arr::exists($data, 'is_all_visible') || Arr::exists($data, 'visibility_appointor')) {
if (Arr::exists($data, 'is_all_visible')) { if (Arr::exists($data, 'is_all_visible')) {
ProjectTask::whereId($data['task_id'])->update(['is_all_visible' => $data["is_all_visible"]]); ProjectTask::whereId($data['task_id'])->update(['is_all_visible' => $data["is_all_visible"]]);
ProjectTask::whereParentId($data['task_id'])->update(['is_all_visible' => $data["is_all_visible"]]);
} }
ProjectTaskUser::whereTaskId($data['task_id'])->whereOwner(2)->delete(); ProjectTaskUser::whereTaskId($data['task_id'])->whereOwner(2)->delete();
if (Arr::exists($data, 'visibility_appointor')) { if (Arr::exists($data, 'visibility_appointor')) {