Merge branch release/21.7.6 of zentao/zentaopms (#11930)

This commit is contained in:
刘刚
2025-10-20 14:32:38 +08:00
committed by Gitfox
4 changed files with 52 additions and 54 deletions
+3
View File
@@ -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);
+12 -12
View File
@@ -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 的需求。
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 的需求。
+2 -2
View File
@@ -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')
+35 -40
View File
@@ -1,44 +1,5 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/lib/project.unittest.class.php';
su('admin');
function initData()
{
$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);
}
/**
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();