fix: 显示无关系的子任务、指定成员可见消息推送

This commit is contained in:
kuaifan 2024-03-02 12:45:01 +08:00
parent 47832ececb
commit 2e70c9617c
2 changed files with 53 additions and 44 deletions

View File

@ -1430,53 +1430,62 @@ class ProjectTask extends AbstractModel
} }
// //
$array = []; $array = [];
if (empty($data['parent_id'])) { if (Arr::exists($data, 'owner') || Arr::exists($data, 'assist')) {
if (Arr::exists($data, 'owner') || Arr::exists($data, 'assist')) { $taskUser = ProjectTaskUser::select(['userid', 'owner'])->whereTaskId($data['id'])->get();
$taskUser = ProjectTaskUser::select(['userid', 'owner'])->whereTaskId($data['id'])->get(); // 负责人
// 负责人 $owners = $taskUser->where('owner', 1)->pluck('userid')->toArray();
$owners = $taskUser->where('owner', 1)->pluck('userid')->toArray(); $owners = array_intersect($userids, $owners);
$owners = array_intersect($userids, $owners); if ($owners) {
if ($owners) { $array[] = [
$array[] = [ 'userid' => array_values($owners),
'userid' => array_values($owners), 'data' => array_merge($data, [
'data' => array_merge($data, [ 'owner' => 1,
'owner' => 1, 'assist' => 1,
'assist' => 1, ])
]) ];
]; }
} // 协助人
// 协助人 $assists = $taskUser->where('owner', 0)->pluck('userid')->toArray();
$assists = $taskUser->where('owner', 0)->pluck('userid')->toArray(); $assists = array_intersect($userids, $assists);
$assists = array_intersect($userids, $assists); if ($assists) {
if ($assists) { $array[] = [
$array[] = [ 'userid' => array_values($assists),
'userid' => array_values($assists), 'data' => array_merge($data, [
'data' => array_merge($data, [ 'owner' => 0,
'owner' => 0, 'assist' => 1,
'assist' => 1, ])
]) ];
]; }
} // 其他人
// 项目成员(其他人) switch ($data['visibility']) {
if ($data['visibility'] == 1) { case 1:
// 全部可见 // 项目人员,除了负责人、协助人项目其他人
$userids = array_diff($userids, $owners, $assists); $userids = array_diff($userids, $owners, $assists);
} else { break;
// 指定可见 case 2:
$userids = $taskUser->pluck('userid')->toArray(); // 任务人员,除了负责人、协助人
} $userids = [];
$data = array_merge($data, [ break;
'owner' => 0, case 3:
'assist' => 0, // 指定成员
]); $specifys = ProjectTaskVisibilityUser::select(['userid'])->whereTaskId($data['id'])->pluck('userid')->toArray();
$userids = array_diff($specifys, $owners, $assists);
break;
default:
$userids = [];
break;
}
if ($userids) {
$array[] = [
'userid' => array_values($userids),
'data' => array_merge($data, [
'owner' => 0,
'assist' => 0,
])
];
} }
} }
// //
$array[] = [
'userid' => array_values($userids),
'data' => $data
];
//
foreach ($array as $item) { foreach ($array as $item) {
$params = [ $params = [
'ignoreFd' => Request::header('fd'), 'ignoreFd' => Request::header('fd'),

View File

@ -7,7 +7,7 @@ export default {
clientId: "", clientId: "",
// 缓存版本号(如果想升级后清除客户端缓存则修改此参数值) // 缓存版本号(如果想升级后清除客户端缓存则修改此参数值)
cacheVersion: "v5", cacheVersion: "v6",
// 窗口是否激活 // 窗口是否激活
windowActive: true, windowActive: true,