* finish task #40005.

This commit is contained in:
wangyidong
2021-07-13 09:38:27 +08:00
parent 9267c1e6b1
commit 9d95d960e5
6 changed files with 151 additions and 43 deletions
+25 -2
View File
@@ -558,14 +558,37 @@ class projectModel extends model
*/
public function getPairsByModel($model = 'all', $programID = 0)
{
return $this->dao->select('id, name')->from(TABLE_PROJECT)
$projects = $this->dao->select('id, name, path')->from(TABLE_PROJECT)
->where('type')->eq('project')
->beginIF($programID)->andWhere('parent')->eq($programID)->fi()
->beginIF($model != 'all')->andWhere('model')->eq($model)->fi()
->andWhere('deleted')->eq('0')
->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->projects)->fi()
->orderBy('id_desc')
->fetchPairs();
->fetchAll();
$programIdList = array();
$projectProgram = array();
foreach($projects as $project)
{
list($programID) = explode(',', trim($project->path, ','));
$programIdList[$programID] = $programID;
$projectProgram[$project->id] = $programID;
}
$programs = $this->dao->select('id, name')->from(TABLE_PROGRAM)->where('id')->in($programIdList)->fetchPairs('id', 'name');
$pairs = array();
foreach($projects as $project)
{
$projectName = $project->name;
$programID = zget($projectProgram, $project->id, '');
if($programID != $project->id) $projectName = zget($programs, $programID, '') . ' / ' . $projectName;
$pairs[$project->id] = $projectName;
}
return $pairs;
}
/**