From ae036fca50c66c3b7be7054228606980e9155b33 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Thu, 14 Sep 2023 09:14:02 +0800 Subject: [PATCH] * Adjust params sort for program getList. --- module/program/control.php | 4 ++-- module/program/model.php | 14 +++++++------- module/program/test/model/getlist.php | 27 ++++++++++----------------- module/program/test/program.class.php | 6 +++--- 4 files changed, 22 insertions(+), 29 deletions(-) diff --git a/module/program/control.php b/module/program/control.php index 00f4269037..16df3cadd2 100644 --- a/module/program/control.php +++ b/module/program/control.php @@ -61,7 +61,7 @@ class program extends control else { /* Get top programs and projects. */ - $topObjects = $this->program->getList($status == 'unclosed' ? 'doing,suspended,wait' : $status, $orderBy, $pager, 'top'); + $topObjects = $this->program->getList($status == 'unclosed' ? 'doing,suspended,wait' : $status, $orderBy, 'top', array(), $pager); if(!$topObjects) $topObjects = array(0); $programs = $this->program->getList($status, $orderBy, null, 'child', array_keys($topObjects)); @@ -618,7 +618,7 @@ class program extends control /* Get and process program list. */ $users = $this->loadModel('user')->getPairs('noletter'); - $programs = $this->program->getList($status, $orderBy, null); + $programs = $this->program->getList($status, $orderBy); $products = $this->program->getProductByProgram(array_keys($programs)); foreach($programs as $programID => $program) { diff --git a/module/program/model.php b/module/program/model.php index 61d4300352..1f6a07f17d 100644 --- a/module/program/model.php +++ b/module/program/model.php @@ -162,13 +162,13 @@ class programModel extends model * * @param string $status * @param string $orderBy - * @param object $pager * @param string $type top|child * @param array $topIdList + * @param object $pager * @access public * @return array */ - public function getList($status = 'all', $orderBy = 'id_asc', $pager = null, $type = '', $topIdList = array()) + public function getList(string $status = 'all', string $orderBy = 'id_asc', string $type = '', array $topIdList = array(), object $pager = null): array { $userViewIdList = trim($this->app->user->view->programs, ',') . ',' . trim($this->app->user->view->projects, ','); $userViewIdList = array_filter(explode(',', $userViewIdList)); @@ -185,7 +185,7 @@ class programModel extends model foreach($pathList as $path) { - if($type == 'child' and !empty($topIdList)) + if($type == 'child' && !empty($topIdList)) { $topID = $this->getTopByPath($path); if(!in_array($topID, $topIdList)) continue; @@ -199,11 +199,11 @@ class programModel extends model ->where('type')->in('program,project') ->andWhere('deleted')->eq(0) ->andWhere('vision')->eq($this->config->vision) - ->beginIF($status != 'all' and $status != 'unclosed')->andWhere('status')->in($status)->fi() + ->beginIF($status != 'all' && $status != 'unclosed')->andWhere('status')->in($status)->fi() ->beginIF($status == 'unclosed')->andWhere('status')->ne('closed')->fi() - ->beginIF($this->app->rawMethod == 'browse' and $type === 'top')->andWhere('parent')->eq(0)->fi() - ->beginIF($this->app->rawMethod == 'browse' and ($type === 'child' or !$this->app->user->admin))->andWhere('id')->in($objectIdList)->fi() - ->beginIF(!$this->app->user->admin and $this->app->rawMethod != 'browse')->andWhere('id')->in($userViewIdList)->fi() + ->beginIF($this->app->rawMethod == 'browse' && $type === 'top')->andWhere('parent')->eq(0)->fi() + ->beginIF($this->app->rawMethod == 'browse' && ($type === 'child' or !$this->app->user->admin))->andWhere('id')->in($objectIdList)->fi() + ->beginIF(!$this->app->user->admin && $this->app->rawMethod != 'browse')->andWhere('id')->in($userViewIdList)->fi() ->orderBy($orderBy) ->page($pager) ->fetchAll('id'); diff --git a/module/program/test/model/getlist.php b/module/program/test/model/getlist.php index 99b79cc42e..4973284093 100755 --- a/module/program/test/model/getlist.php +++ b/module/program/test/model/getlist.php @@ -19,35 +19,28 @@ $program->gen(20); /** title=测试 programModel::getList(); +timeout=0 cid=1 -pid=1 - -查看所有项目和项目集的个数 >> 20 -查看分页后项目集和项目的个数 >> 10 -查看所有'closed'的项目和项目集的个数 >> 5 -查看所有'suspended'的项目和项目集的个数 >> 5 -按照项目和项目集名称倒序获取第一个ID >> 9 -按照ID正序获取项目和项目集列表第一个ID >> 1 -获取顶级项目集个数 >> 20 -获取分页后顶级项目集个数 >> 10 -获取所有项目集个数 >> 20 */ -global $tester; +global $tester, $app; $programTester = new programTest(); -$tester->app->loadClass('pager', $static = true); + +$app->moduleName = 'program'; +$app->methodName = 'browse'; +$app->loadClass('pager', true); $pager = new pager(0, 10, 1); $allPorgrams = $programTester->getListTest('all'); -$pagerPrograms = $programTester->getListTest('all', 'id_asc', $pager); +$pagerPrograms = $programTester->getListTest('all', 'id_asc', '', array(), $pager); $closedPrograms = $programTester->getListTest('closed'); $suspendedPrograms = $programTester->getListTest('closed'); $namedescPrograms = $programTester->getListTest('all', 'name_desc'); $idascPrograms = $programTester->getListTest('all', 'id_asc'); -$topPrograms = $programTester->getListTest('all', 'id_asc', null, 'top'); -$topPagePrograms = $programTester->getListTest('all', 'id_asc', $pager, 'top'); -$childPrograms = $programTester->getListTest('all', 'id_asc', null, 'child', $topPrograms); +$topPrograms = $programTester->getListTest('all', 'id_asc', 'top'); +$topPagePrograms = $programTester->getListTest('all', 'id_asc', 'top', array(), $pager); +$childPrograms = $programTester->getListTest('all', 'id_asc', 'child', $topPrograms); r(count($allPorgrams)) && p() && e('20'); // 查看所有项目和项目集的个数 r(count($pagerPrograms)) && p() && e('10'); // 查看分页后项目集和项目的个数 diff --git a/module/program/test/program.class.php b/module/program/test/program.class.php index ca34a39829..70dd512dce 100644 --- a/module/program/test/program.class.php +++ b/module/program/test/program.class.php @@ -168,16 +168,16 @@ class programTest * * @param mixed $status * @param string $orderBy - * @param object $pager * @param string $type top|child * @param mixed $idList + * @param object $pager * @access public * @return void */ - public function getListTest($status = 'all', $orderBy = 'id_asc', $pager = NULL, $type = '', $idList = '') + public function getListTest($status = 'all', $orderBy = 'id_asc', $type = '', $idList = array(), $pager = NULL) { $this->program->cookie->showClosed = 'ture'; - $programs = $this->program->getList($status, $orderBy, $pager, $type, $idList); + $programs = $this->program->getList($status, $orderBy, $type, $idList, $pager); if(dao::isError()) return array('message' => dao::getError());