diff --git a/module/my/model.php b/module/my/model.php index 33ebc027cd..f732eb5848 100644 --- a/module/my/model.php +++ b/module/my/model.php @@ -748,6 +748,7 @@ class myModel extends model $myStoryQuery = $this->session->{$queryName}; $myStoryQuery = preg_replace('/`(\w+)`/', 't1.`$1`', $myStoryQuery); + if(strpos($myStoryQuery, 'result') !== false) $myStoryQuery = str_replace('t1.`result`', 't5.`result`', $myStoryQuery); return $this->myTao->fetchStoriesBySearch($myStoryQuery, $type, $orderBy, $pager, $type == 'contribute' ? $this->getAssignedByMe($this->app->user->account, null, $orderBy, 'story') : array()); } @@ -898,6 +899,7 @@ class myModel extends model $myEpicQuery = $this->session->{$queryName}; $myEpicQuery = preg_replace('/`(\w+)`/', 't1.`$1`', $myEpicQuery); + if(strpos($myEpicQuery, 'result') !== false) $myEpicQuery = str_replace('t1.`result`', 't3.`result`', $myEpicQuery); $epicsAssignedByMe = $type == 'contribute' ? $this->getAssignedByMe($this->app->user->account, null, 'id_desc', 'epic') : array(); $epicIdList = array_keys($epicsAssignedByMe); @@ -940,6 +942,7 @@ class myModel extends model $myRequirementQuery = $this->session->{$queryName}; $myRequirementQuery = preg_replace('/`(\w+)`/', 't1.`$1`', $myRequirementQuery); + if(strpos($myRequirementQuery, 'result') !== false) $myRequirementQuery = str_replace('t1.`result`', 't3.`result`', $myRequirementQuery); $requirementsAssignedByMe = $type == 'contribute' ? $this->getAssignedByMe($this->app->user->account, null, 'id_desc', 'requirement') : array(); $requirementIdList = array_keys($requirementsAssignedByMe); diff --git a/module/my/test/model/getstoriesbysearch.php b/module/my/test/model/getstoriesbysearch.php index 34fee2a451..77cc80324c 100755 --- a/module/my/test/model/getstoriesbysearch.php +++ b/module/my/test/model/getstoriesbysearch.php @@ -8,13 +8,13 @@ title=测试 myModel->getStoriesBySearch(); timeout=0 cid=1 -- 测试获取 queryID 0 类型 contribute 排序 id_desc 的需求。 @17,13,8,7,6,3,2,1 +- 测试获取 queryID 0 类型 contribute 排序 id_desc 的需求。 @17,13,1 -- 测试获取 queryID 0 类型 contribute 排序 id_asc 的需求。 @1,2,3,6,7,8,13,17 +- 测试获取 queryID 0 类型 contribute 排序 id_asc 的需求。 @1,13,17 -- 测试获取 queryID 0 类型 other 排序 id_desc 的需求。 @16,13,8,7,1 +- 测试获取 queryID 0 类型 other 排序 id_desc 的需求。 @16,13,7,1 -- 测试获取 queryID 0 类型 other 排序 id_asc 的需求。 @1,7,8,13,16 +- 测试获取 queryID 0 类型 other 排序 id_asc 的需求。 @1,7,13,16 - 测试获取 queryID 1 类型 contribute 排序 id_desc 的需求。 @17,13,1 @@ -43,11 +43,11 @@ $queryID = array(0, 2); $typeList = array('contribute', 'other'); $orderBy = array('id_desc', 'id_asc'); -r($my->getStoriesBySearchTest($queryID[0], $typeList[0], $orderBy[0])) && p() && e('17,13,8,7,6,3,2,1'); // 测试获取 queryID 0 类型 contribute 排序 id_desc 的需求。 -r($my->getStoriesBySearchTest($queryID[0], $typeList[0], $orderBy[1])) && p() && e('1,2,3,6,7,8,13,17'); // 测试获取 queryID 0 类型 contribute 排序 id_asc 的需求。 -r($my->getStoriesBySearchTest($queryID[0], $typeList[1], $orderBy[0])) && p() && e('16,13,8,7,1'); // 测试获取 queryID 0 类型 other 排序 id_desc 的需求。 -r($my->getStoriesBySearchTest($queryID[0], $typeList[1], $orderBy[1])) && p() && e('1,7,8,13,16'); // 测试获取 queryID 0 类型 other 排序 id_asc 的需求。 -r($my->getStoriesBySearchTest($queryID[1], $typeList[0], $orderBy[0])) && p() && e('17,13,1'); // 测试获取 queryID 1 类型 contribute 排序 id_desc 的需求。 -r($my->getStoriesBySearchTest($queryID[1], $typeList[0], $orderBy[1])) && p() && e('1,13,17'); // 测试获取 queryID 1 类型 contribute 排序 id_asc 的需求。 -r($my->getStoriesBySearchTest($queryID[1], $typeList[1], $orderBy[0])) && p() && e('16,13,1'); // 测试获取 queryID 1 类型 other 排序 id_desc 的需求。 -r($my->getStoriesBySearchTest($queryID[1], $typeList[1], $orderBy[1])) && p() && e('1,13,16'); // 测试获取 queryID 1 类型 other 排序 id_asc 的需求。 \ No newline at end of file +r($my->getStoriesBySearchTest($queryID[0], $typeList[0], $orderBy[0])) && p() && e('17,13,1'); // 测试获取 queryID 0 类型 contribute 排序 id_desc 的需求。 +r($my->getStoriesBySearchTest($queryID[0], $typeList[0], $orderBy[1])) && p() && e('1,13,17'); // 测试获取 queryID 0 类型 contribute 排序 id_asc 的需求。 +r($my->getStoriesBySearchTest($queryID[0], $typeList[1], $orderBy[0])) && p() && e('16,13,7,1'); // 测试获取 queryID 0 类型 other 排序 id_desc 的需求。 +r($my->getStoriesBySearchTest($queryID[0], $typeList[1], $orderBy[1])) && p() && e('1,7,13,16'); // 测试获取 queryID 0 类型 other 排序 id_asc 的需求。 +r($my->getStoriesBySearchTest($queryID[1], $typeList[0], $orderBy[0])) && p() && e('17,13,1'); // 测试获取 queryID 1 类型 contribute 排序 id_desc 的需求。 +r($my->getStoriesBySearchTest($queryID[1], $typeList[0], $orderBy[1])) && p() && e('1,13,17'); // 测试获取 queryID 1 类型 contribute 排序 id_asc 的需求。 +r($my->getStoriesBySearchTest($queryID[1], $typeList[1], $orderBy[0])) && p() && e('16,13,1'); // 测试获取 queryID 1 类型 other 排序 id_desc 的需求。 +r($my->getStoriesBySearchTest($queryID[1], $typeList[1], $orderBy[1])) && p() && e('1,13,16'); // 测试获取 queryID 1 类型 other 排序 id_asc 的需求。 diff --git a/module/project/tao.php b/module/project/tao.php index f3d25af4b7..5b08da5749 100755 --- a/module/project/tao.php +++ b/module/project/tao.php @@ -802,7 +802,7 @@ class projectTao extends projectModel protected function fetchProjectList(string $status, string $orderBy, bool $involved, object|null $pager): array { $query = ''; - if($status == 'bysearch' && $this->this->session->projectQuery !== false) $query = $this->session->projectQuery; + if($status == 'bysearch' && $this->session->projectQuery !== false) $query = $this->session->projectQuery; $query = str_replace('`id`','t1.id', $query); return $this->dao->select('DISTINCT t1.*')->from(TABLE_PROJECT)->alias('t1') @@ -811,7 +811,7 @@ class projectTao extends projectModel ->where('t1.deleted')->eq('0') ->andWhere('t1.vision')->eq($this->config->vision) ->andWhere('t1.type')->eq('project') - ->beginIF(!in_array($status, array('all', 'undone', 'review', 'unclosed', 'delayed'), true))->andWhere('t1.status')->eq($status)->fi() + ->beginIF(!in_array($status, array('all', 'undone', 'review', 'unclosed', 'delayed', 'bysearch'), true))->andWhere('t1.status')->eq($status)->fi() ->beginIF(in_array($status, array('undone', 'unclosed')))->andWhere('t1.status')->in('wait,doing')->fi() ->beginIF($status == 'delayed')->andWhere('t1.status')->notIn('done,closed,suspend')->andWhere('t1.end')->lt(helper::today())->fi() ->beginIF($status == 'review') diff --git a/module/project/test/tao/fetchprojectlist.php b/module/project/test/tao/fetchprojectlist.php index a75da1dc7c..057bd1eb77 100755 --- a/module/project/test/tao/fetchprojectlist.php +++ b/module/project/test/tao/fetchprojectlist.php @@ -1,44 +1,5 @@ #!/usr/bin/env php id->range('11-19'); - $project->project->range('11-19'); - $project->name->prefix("项目")->range('11-19'); - $project->code->prefix("project")->range('11-19'); - $project->model->range("scrum"); - $project->auth->range("[]"); - $project->path->range("[]"); - $project->type->range("project"); - $project->grade->range("1"); - $project->days->range("1"); - $project->status->range("wait,doing,suspended,closed"); - $project->desc->range("[]"); - $project->budget->range("100000,200000"); - $project->budgetUnit->range("CNY"); - $project->percent->range("0-0"); - $project->openedDate->range("`2023-05-01 10:00:10`"); - $project->gen(9); - - zenData('team')->gen(10); - - $stakeholder = zenData('stakeholder'); - $stakeholder->id->range('1-9'); - $stakeholder->objectID->range('11-19'); - $stakeholder->objectType->range('program,project'); - $stakeholder->user->range("admin"); - $stakeholder->type->range("inside"); - $stakeholder->from->range("[]"); - $stakeholder->createdBy->range("admin"); - $stakeholder->createdDate->range("`2023-05-01 10:00:10`"); - $stakeholder->gen(9); -} - /** title=测试 projectModel::fetchProjectList(); @@ -52,8 +13,42 @@ cid=1 - 获取错误类型的项目 @0 */ +include dirname(__FILE__, 5) . "/test/lib/init.php"; +include dirname(__FILE__, 2) . '/lib/project.unittest.class.php'; + +$project = zenData('project'); +$project->id->range('11-19'); +$project->project->range('11-19'); +$project->name->prefix("项目")->range('11-19'); +$project->code->prefix("project")->range('11-19'); +$project->model->range("scrum"); +$project->auth->range("[]"); +$project->path->range("[]"); +$project->type->range("project"); +$project->grade->range("1"); +$project->days->range("1"); +$project->status->range("wait,doing,suspended,closed"); +$project->desc->range("[]"); +$project->budget->range("100000,200000"); +$project->budgetUnit->range("CNY"); +$project->percent->range("0-0"); +$project->openedDate->range("`2023-05-01 10:00:10`"); +$project->gen(9); + +zenData('team')->gen(10); + +$stakeholder = zenData('stakeholder'); +$stakeholder->id->range('1-9'); +$stakeholder->objectID->range('11-19'); +$stakeholder->objectType->range('program,project'); +$stakeholder->user->range("admin"); +$stakeholder->type->range("inside"); +$stakeholder->from->range("[]"); +$stakeholder->createdBy->range("admin"); +$stakeholder->createdDate->range("`2023-05-01 10:00:10`"); +$stakeholder->gen(9); +su('admin'); -initData(); $statusList = array('', 'all', 'undone', 'unclosed', 'error'); $projectTester = new projectTest();