From 91e26c2ba0a08657ed4e9dfefea7f8b25a5abb23 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Thu, 14 Sep 2023 11:00:50 +0800 Subject: [PATCH] * Refactor hasUnfinished method. --- module/program/model.php | 5 +++-- module/program/test/model/hasunfinished.php | 24 ++++++--------------- module/program/test/program.class.php | 5 +++-- 3 files changed, 13 insertions(+), 21 deletions(-) diff --git a/module/program/model.php b/module/program/model.php index 8264be441b..44c93b909c 100644 --- a/module/program/model.php +++ b/module/program/model.php @@ -1231,15 +1231,16 @@ class programModel extends model } /** + * 该项目集下未关闭的子项目集或项目的数量。 * Judge whether there is an unclosed programs or projects. * * @param object $program * @access public * @return int */ - public function hasUnfinished($program) + public function hasUnfinished(object $program): int { - return $this->dao->select("count(IF(id != {$program->id}, 1, null)) as count")->from(TABLE_PROJECT) + return $this->dao->select("count(IF(id != {$program->id}, 1, 0)) as count")->from(TABLE_PROJECT) ->where('type')->in('program, project') ->andWhere('path')->like($program->path . '%') ->andWhere('status')->ne('closed') diff --git a/module/program/test/model/hasunfinished.php b/module/program/test/model/hasunfinished.php index 691a9c1256..ad7353c1d0 100755 --- a/module/program/test/model/hasunfinished.php +++ b/module/program/test/model/hasunfinished.php @@ -2,31 +2,21 @@ gen(5); +zdTable('project')->config('program')->gen(20)->fixpath(); su('admin'); -$program = zdTable('project'); -$program->id->range('1-5'); -$program->name->range('项目集1,项目集2'); -$program->type->range('program'); -$program->status->range('wait'); -$program->parent->range('0,0,1,1,2'); -$program->path->range('1,2,`1,3`,`1,4`,`2,5`')->prefix(',')->postfix(','); -$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD'); -$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD'); -$program->gen(5); - /** title=测试 programModel::hasUnfinished(); +timeout=0 cid=1 -pid=1 - -获取项目集1下未完成的项目和项目集数量 >> 2 -获取项目集2下未完成的项目和项目集数量 >> 1 */ +$programIdList = array(1, 2, 3); $programTester = new programTest(); -r($programTester->hasUnfinishedTest(1)) && p() && e('2'); // 获取项目集1下未完成的项目和项目集数量 -r($programTester->hasUnfinishedTest(2)) && p() && e('1'); // 获取项目集2下未完成的项目和项目集数量 +r($programTester->hasUnfinishedTest($programIdList[0])) && p() && e('4'); // 获取项目集1下未完成的项目和项目集数量 +r($programTester->hasUnfinishedTest($programIdList[1])) && p() && e('2'); // 获取项目集2下未完成的项目和项目集数量 +r($programTester->hasUnfinishedTest($programIdList[2])) && p() && e('1'); // 获取项目集3下未完成的项目和项目集数量 diff --git a/module/program/test/program.class.php b/module/program/test/program.class.php index d62ec22260..66b40e0c01 100644 --- a/module/program/test/program.class.php +++ b/module/program/test/program.class.php @@ -275,13 +275,14 @@ class programTest } /** - * Has unfinished. + * 该项目集下未关闭的子项目集或项目的数量。 + * Judge whether there is an unclosed programs or projects. * * @param int $programID * @access public * @return int */ - public function hasUnfinishedTest($programID) + public function hasUnfinishedTest(int $programID): int { $program = $this->program->getByID($programID); return $this->program->hasUnfinished($program);