diff --git a/app/Http/Controllers/Api/ApproveController.php b/app/Http/Controllers/Api/ApproveController.php index d0c408515..35f871fd2 100755 --- a/app/Http/Controllers/Api/ApproveController.php +++ b/app/Http/Controllers/Api/ApproveController.php @@ -190,12 +190,25 @@ class ApproveController extends AbstractController $data['userid'] = (string)$user->userid; $data['content'] = Request::input('content'); //内容+图片 + $processInst = $this->getProcessById($data['proc_inst_id']); + $ret = Ihttp::ihttp_post($this->flow_url.'/api/v1/workflow/process/addGlobalComment', json_encode(Base::arrayKeyToCamel($data))); $process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); if (!$process || $process['status'] != 200) { return Base::retError($process['message'] ?? '添加失败'); } - // + + // 推送通知 + $botUser = User::botGetOrCreate('approval-alert'); + foreach ( $processInst['userids'] as $id) { + if($id != $user->userid){ + $dialog = WebSocketDialog::checkUserDialog($botUser, $id); + $processInst['comment_user_id'] = $user->userid; + $processInst['comment_content'] = json_decode($data['content'],true)['content']; + $this->approveMsg('approve_comment_notifier', $dialog, $botUser, $processInst, $processInst); + } + } + $res = Base::arrayKeyToUnderline($process['data']); return Base::retSuccess('success', $res); } @@ -958,6 +971,8 @@ class ApproveController extends AbstractController 'type' => $process['var']['type'], 'start_time' => $process['var']['start_time'], 'end_time' => $process['var']['end_time'], + 'comment_nickname' => $process['comment_user_id'] ? User::userid2nickname($process['comment_user_id']) : '', + 'comment_content' => $process['comment_content'] ?? '' ]; $text = view('push.bot', ['type' => $type, 'action' => $action, 'is_finished' => $process['is_finished'], 'data' => (object)$data])->render(); $text = preg_replace("/^\x20+/", "", $text); @@ -1011,6 +1026,7 @@ class ApproveController extends AbstractController } // $res = Base::arrayKeyToUnderline($process['data']); + $res['userids'] = []; foreach ($res['node_infos'] as &$val) { if (isset($val['node_user_list'])) { $node = $val['node_user_list']; @@ -1020,10 +1036,12 @@ class ApproveController extends AbstractController continue; } $val['node_user_list'][$k]['userimg'] = User::getAvatar($info->userid, $info->userimg, $info->email, $info->nickname); + $res['userids'][] = $item['target_id']; } }else if($val['aprover_id']){ $info = User::whereUserid($val['aprover_id'])->first(); $val['userimg'] = $info ? User::getAvatar($info->userid, $info->userimg, $info->email, $info->nickname) : ''; + $res['userids'][] = $val['aprover_id']; } } // 全局评论 @@ -1039,6 +1057,10 @@ class ApproveController extends AbstractController } $info = User::whereUserid($res['start_user_id'])->first(); $res['userimg'] = $info ? User::getAvatar($info->userid, $info->userimg, $info->email, $info->nickname) : ''; + // + $res['userids'][] = $info->userid; + $res['userids'] = array_unique($res['userids']); + // return $res; } diff --git a/app/Http/Controllers/Api/ProjectController.php b/app/Http/Controllers/Api/ProjectController.php index 613177483..91bbf462b 100755 --- a/app/Http/Controllers/Api/ProjectController.php +++ b/app/Http/Controllers/Api/ProjectController.php @@ -1079,8 +1079,8 @@ class ProjectController extends AbstractController $timerange = explode(',', $timerange); } if (Base::isDateOrTime($timerange[0]) && Base::isDateOrTime($timerange[1])) { - $query->where('project_tasks.start_at', '>=', Carbon::parse($timerange[0])->startOfDay()); - $query->where('project_tasks.end_at', '<=', Carbon::parse($timerange[1])->endOfDay()); + $query->where('project_tasks.start_at', '<=', Carbon::parse($timerange[1])->endOfDay()); + $query->where('project_tasks.end_at', '>=', Carbon::parse($timerange[0])->startOfDay()); } }) ->when(!empty($taskid), function ($query) use ($taskid) { diff --git a/docker-compose.yml b/docker-compose.yml index 8e656f032..b89aba407 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -150,7 +150,7 @@ services: approve: container_name: "dootask-approve-${APP_ID}" - image: "hitosea2020/go-approve:latest" + image: "hitosea2020/go-approve:0.1.1" environment: TZ: "Asia/Shanghai" MYSQL_HOST: "${DB_HOST}" diff --git a/resources/assets/js/pages/manage/approve/details.vue b/resources/assets/js/pages/manage/approve/details.vue index 1f9616fc6..b2fd8c984 100644 --- a/resources/assets/js/pages/manage/approve/details.vue +++ b/resources/assets/js/pages/manage/approve/details.vue @@ -1,6 +1,6 @@