From f4c75cd9af952dd68b9c6f1a4164c5f49db2f970 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B9=BF=E6=98=8E?= Date: Thu, 21 Jul 2022 11:28:19 +0800 Subject: [PATCH] * Code for my-block. --- module/project/model.php | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/module/project/model.php b/module/project/model.php index 509bdc8618..845972b515 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -319,15 +319,9 @@ class projectModel extends model ->groupBy('t2.project') ->fetchPairs(); - $this->loadModel('product'); - foreach($projectIdList as $projectID) - { - $productIdList = $this->product->getProductIDByProject($projectID, false); - - $allStories[$projectID] = $this->getTotalStoriesByProject($projectID, $productIdList, 'story'); - $doneStories[$projectID] = $this->getTotalStoriesByProject($projectID, $productIdList, 'story', 'closed'); - $leftStories[$projectID] = $this->getTotalStoriesByProject($projectID, $productIdList, 'story', 'active'); - } + $allStories = $this->getTotalStoriesByProject($projectIdList, 'story'); + $doneStories = $this->getTotalStoriesByProject($projectIdList, 'story', 'closed'); + $leftStories = $this->getTotalStoriesByProject($projectIdList, 'story', 'active'); $leftBugs = $this->getTotalBugByProject($projectIdList, 'active'); $allBugs = $this->getTotalBugByProject($projectIdList, 'all'); @@ -349,9 +343,9 @@ class projectModel extends model $project->leftBugs = isset($leftBugs[$projectID]) ? $leftBugs[$projectID] : 0; $project->allBugs = isset($allBugs[$projectID]) ? $allBugs[$projectID] : 0; $project->doneBugs = isset($doneBugs[$projectID]) ? $doneBugs[$projectID] : 0; - $project->allStories = $allStories[$projectID]; - $project->doneStories = $doneStories[$projectID]; - $project->leftStories = $leftStories[$projectID]; + $project->allStories = isset($allStories[$projectID]) ? $allStories[$projectID] : 0; + $project->doneStories = isset($doneStories[$projectID]) ? $doneStories[$projectID] : 0; + $project->leftStories = isset($leftStories[$projectID]) ? $leftStories[$projectID] : 0; $project->leftTasks = isset($leftTasks[$projectID]) ? $leftTasks[$projectID] : 0; $project->allTasks = isset($allTasks[$projectID]) ? $allTasks[$projectID] : 0; $project->waitTasks = isset($waitTasks[$projectID]) ? $waitTasks[$projectID] : 0; @@ -369,25 +363,24 @@ class projectModel extends model /** * Get the number of stories associated with the project. * - * @param int $projectID - * @param array $productIdList - * @param string $type story|requirement - * @param string $status all|closed|active + * @param array $projectIdList + * @param string $type story|requirement + * @param string $status all|closed|active * @access public * @return int */ - public function getTotalStoriesByProject($projectID = 0, $productIdList = array(), $type = 'story', $status = 'all') + public function getTotalStoriesByProject($projectIdList = 0, $type = 'story', $status = 'all') { - return $this->dao->select('count(t2.id) as stories')->from(TABLE_PROJECTSTORY)->alias('t1') + return $this->dao->select('t1.project, count(t2.id) as stories')->from(TABLE_PROJECTSTORY)->alias('t1') ->leftJoin(TABLE_STORY)->alias('t2')->on('t1.story=t2.id') - ->where('t1.project')->eq($projectID) + ->where('t1.project')->in($projectIdList) ->andWhere('t2.type')->eq($type) - ->andWhere('t2.product')->in($productIdList) ->beginIF($status == 'active')->andWhere('t2.status')->in('active,changed')->fi() ->beginIF($status == 'closed')->andWhere('t2.status')->eq('closed')->fi() ->beginIF($status == 'closed')->andWhere('t2.closedReason')->eq('done')->fi() ->andWhere('deleted')->eq('0') - ->fetch('stories'); + ->groupBy('project') + ->fetchPairs(); } /**