From 0b963223e9bdc5160f99a937b653c7580912aa4f Mon Sep 17 00:00:00 2001 From: tianshujie Date: Wed, 23 Aug 2023 11:21:34 +0800 Subject: [PATCH] * Refactor updateTeam method and case. --- module/task/control.php | 2 +- module/task/model.php | 14 +++++--------- module/task/test/model/updateteam.php | 15 +-------------- module/task/test/task.class.php | 9 ++++++++- 4 files changed, 15 insertions(+), 25 deletions(-) diff --git a/module/task/control.php b/module/task/control.php index b79baaca0c..4694d1416f 100755 --- a/module/task/control.php +++ b/module/task/control.php @@ -1146,7 +1146,7 @@ class task extends control /* Update assign of multi task. */ $postData = form::data($this->config->task->form->manageTeam); $task = $this->taskZen->prepareManageTeam($postData, $taskID); - $changes = $this->task->updateTeam($task, $this->post->team, $this->post->teamSource, $this->post->teamEstimate, $this->post->teamConsumed, $this->post->teamLeft); + $changes = $this->task->updateTeam($task, $postData); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); diff --git a/module/task/model.php b/module/task/model.php index f164e395ce..e30a93ad93 100755 --- a/module/task/model.php +++ b/module/task/model.php @@ -881,24 +881,20 @@ class taskModel extends model * Update team. * * @param object $task - * @param array $team - * @param array $teamSource - * @param array $teamEstimate - * @param array $teamConsumed - * @param array $teamLeft + * @param object $postData * @access public * @return array|false */ - public function updateTeam(object $task, array $team, array $teamSource, array $teamEstimate, array $teamConsumed, array $teamLeft): array|false + public function updateTeam(object $task, object $postData): array|false { $taskID = $task->id; $oldTask = $this->getById($taskID); /* Check team data. */ - $team = array_filter($team); + $team = array_filter($postData->team); foreach($team as $i => $account) { - if($teamConsumed[$i] == 0 and $teamLeft[$i] == 0) + if($postData->teamConsumed[$i] == 0 and $postData->teamLeft[$i] == 0) { dao::$errors[] = $this->lang->task->noticeTaskStart; return false; @@ -911,7 +907,7 @@ class taskModel extends model } /* Manage the team and calculate task work information. */ - $teams = $this->manageTaskTeam($oldTask->mode, $task, $team, $teamSource, $teamEstimate, $teamConsumed, $teamLeft); + $teams = $this->manageTaskTeam($oldTask->mode, $task, $postData); !empty($teams) ? $task = $this->computeMultipleHours($oldTask, $task) : $task->mode = ''; /* Update parent task status. */ diff --git a/module/task/test/model/updateteam.php b/module/task/test/model/updateteam.php index f2d20928ae..bc5c8f8306 100755 --- a/module/task/test/model/updateteam.php +++ b/module/task/test/model/updateteam.php @@ -9,19 +9,6 @@ title=taskModel->updateTeam(); timeout=0 cid=1 -- 分配2个成员团队后任务 - - 第1条的field属性 @estimate - - 第1条的old属性 @0 - - 第1条的new属性 @3.5 - -- 分配1个成员团队后任 @团队成员必须大于1人 - -- 分配预计剩余为0工时团队后任务 @"总计消耗"和"预计剩余"不能同时为0 - -- 改变团队第二个成员后任务团队属性1 @user3 - -- 增加一个成员后任务团队属性2 @user2 - */ $task = zdTable('task'); @@ -39,4 +26,4 @@ r($task->updateTeamTest($taskIDList[0], $taskStatusList[1], array($teamList[0], r($task->updateTeamTest($taskIDList[1], $taskStatusList[1], array($teamList[0]), array($teamList[0]), $teamEstimateList = array(1), $teamConsumedList = array(0), $teamLeftList = array(1))) && p() && e('团队成员必须大于1人'); //分配1个成员团队后任 r($task->updateTeamTest($taskIDList[2], $taskStatusList[1], array($teamList[0], $teamList[1]), array($teamList[0], $teamList[1]), $teamEstimateList = array(1, 2.5), $teamConsumedList = array(0, 0), $teamLeftList = array(0, 0))) && p() && e('"总计消耗"和"预计剩余"不能同时为0'); //分配预计剩余为0工时团队后任务 r($task->updateTeamTest($taskIDList[0], $taskStatusList[0], array($teamList[0], $teamList[2]), array($teamList[0], $teamList[1]), $teamEstimateList = array(1, 2.5), $teamConsumedList = array(0, 0), $teamLeftList = array(1, 0.5), true)) && p(1) && e('user3'); //改变团队第二个成员后任务团队 -r($task->updateTeamTest($taskIDList[0], $taskStatusList[0], array($teamList[0], $teamList[2], $teamList[1]), array($teamList[0], $teamList[2]), $teamEstimateList = array(1, 2.5, 3), $teamConsumedList = array(0, 0, 0), $teamLeftList = array(1, 0.5, 3), true)) && p(2) && e('user2'); //增加一个成员后任务团队 \ No newline at end of file +r($task->updateTeamTest($taskIDList[0], $taskStatusList[0], array($teamList[0], $teamList[2], $teamList[1]), array($teamList[0], $teamList[2]), $teamEstimateList = array(1, 2.5, 3), $teamConsumedList = array(0, 0, 0), $teamLeftList = array(1, 0.5, 3), true)) && p(2) && e('user2'); //增加一个成员后任务团队 diff --git a/module/task/test/task.class.php b/module/task/test/task.class.php index a93731ae9c..7bc5e9745e 100755 --- a/module/task/test/task.class.php +++ b/module/task/test/task.class.php @@ -360,7 +360,14 @@ class taskTest $task->id = $taskID; $task->status = $status; $task->lastEditedBy = $this->objectModel->app->user->account; - $object = $this->objectModel->updateTeam($task, $team, $teamSource, $teamEstimate, $teamConsumed, $teamLeft); + + $postData = new stdclass(); + $postData->team = $team; + $postData->teamSource = $teamSource; + $postData->teamEstimate = $teamEstimate; + $postData->teamConsumed = $teamConsumed; + $postData->teamLeft = $teamLeft; + $object = $this->objectModel->updateTeam($task, $postData); if($getTeam) return $this->objectModel->getMultiTaskMembers($taskID); if(dao::isError())