* Refactor getProjectPairsByProduct method and case.
This commit is contained in:
@@ -828,14 +828,13 @@ class productModel extends model
|
||||
$appendProject = $this->productTao->formatAppendParam($appendProject);
|
||||
return $this->dao->select('t2.id, t2.name')->from(TABLE_PROJECTPRODUCT)->alias('t1')
|
||||
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id')
|
||||
->where('(1=1')
|
||||
->andWhere('t1.product')->eq($productID)
|
||||
->where('(t1.product')->eq($productID)
|
||||
->andWhere('t2.type')->eq('project')
|
||||
->andWhere('t2.deleted')->eq('0')
|
||||
->beginIF($status == 'noclosed')->andWhere('t2.status')->ne('closed')->fi()
|
||||
->beginIF(strpos($param, 'multiple') !== false)->andWhere('t2.multiple')->ne('0')->fi()
|
||||
->andWhere('t2.type')->eq('project')
|
||||
->beginIF(!$this->app->user->admin)->andWhere('t2.id')->in($this->app->user->view->projects)->fi()
|
||||
->beginIF($product->type != 'normal' and $branch !== '' and $branch != 'all')->andWhere('t1.branch')->in($branch)->fi()
|
||||
->andWhere('t2.deleted')->eq('0')
|
||||
->markRight(1)
|
||||
->beginIF($appendProject)->orWhere('t2.id')->in($appendProject)->fi()
|
||||
->orderBy('order_asc')
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/product.class.php';
|
||||
|
||||
zdTable('user')->gen(5);
|
||||
su('admin');
|
||||
|
||||
$product = zdTable('product');
|
||||
$product->type->range('normal{2},branch,normal{2}');
|
||||
$product->gen(5);
|
||||
@@ -10,6 +13,7 @@ $product->gen(5);
|
||||
$project = zdTable('project');
|
||||
$project->status->range('wait{2},doing{4},suspended,closed');
|
||||
$project->multiple->range('0{25},1{25}');
|
||||
$project->deleted->range('0');
|
||||
$project->gen(50);
|
||||
|
||||
$projectproduct = zdTable('projectproduct');
|
||||
@@ -21,8 +25,8 @@ $projectproduct->gen(50);
|
||||
/**
|
||||
|
||||
title=测试productModel->getProjectPairsByProduct();
|
||||
timeout=0
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
*/
|
||||
|
||||
@@ -33,17 +37,17 @@ $product->app->user->admin = true;
|
||||
r($product->getProjectPairsByProduct(0)) && p() && e('0'); //不传入产品 ID。
|
||||
r($product->getProjectPairsByProduct(10)) && p() && e('0'); //传入不存在产品 ID。
|
||||
|
||||
r(count($product->getProjectPairsByProduct(4))) && p() && e('12'); //用超级管理员,传入产品 ID,确认获取条目数。
|
||||
r(count($product->getProjectPairsByProduct(4, '', '', 'noclosed'))) && p() && e('6'); //用超级管理员,传入产品 ID,确认获取非关闭项目的条目数。
|
||||
r(count($product->getProjectPairsByProduct(4, '', '18', 'noclosed'))) && p() && e('7'); //用超级管理员,传入产品 ID 和追加查询的项目,确认获取非关闭项目的条目数。
|
||||
r(count($product->getProjectPairsByProduct(4, '', '', 'noclosed', 'multiple'))) && p() && e('3'); //用超级管理员,传入产品 ID,确认获取启用执行非关闭项目的条目数。
|
||||
r(count($product->getProjectPairsByProduct(3, 'all'))) && p() && e('12'); //用超级管理员,传入产品 ID 和所有分支,确认获取条目数。
|
||||
r(count($product->getProjectPairsByProduct(3, '1'))) && p() && e('12'); //用超级管理员,传入产品 ID 和存在分支,确认获取条目数。
|
||||
r(count($product->getProjectPairsByProduct(3, '2'))) && p() && e('0'); //用超级管理员,传入产品 ID 和不存在分支,确认获取条目数。
|
||||
r(count($product->getProjectPairsByProduct(4))) && p() && e('10'); // 用超级管理员,传入产品 ID,确认获取条目数。
|
||||
r(count($product->getProjectPairsByProduct(4, '', '', 'noclosed'))) && p() && e('10'); // 用超级管理员,传入产品 ID,确认获取非关闭项目的条目数。
|
||||
r(count($product->getProjectPairsByProduct(4, '', '18', 'noclosed'))) && p() && e('10'); // 用超级管理员,传入产品 ID 和追加查询的项目,确认获取非关闭项目的条目数。
|
||||
r(count($product->getProjectPairsByProduct(4, '', '', 'noclosed', 'multiple'))) && p() && e('7'); // 用超级管理员,传入产品 ID,确认获取启用执行非关闭项目的条目数。
|
||||
r(count($product->getProjectPairsByProduct(3, 'all'))) && p() && e('10'); // 用超级管理员,传入产品 ID 和所有分支,确认获取条目数。
|
||||
r(count($product->getProjectPairsByProduct(3, '1'))) && p() && e('10'); // 用超级管理员,传入产品 ID 和存在分支,确认获取条目数。
|
||||
r(count($product->getProjectPairsByProduct(3, '2'))) && p() && e('0'); // 用超级管理员,传入产品 ID 和不存在分支,确认获取条目数。
|
||||
|
||||
$product->app->user->admin = false;
|
||||
$product->app->user->view->projects = '14,38,46,58';
|
||||
r(count($product->getProjectPairsByProduct(4))) && p() && e('4'); //用超级管理员,传入产品 ID,确认获取条目数。
|
||||
r(count($product->getProjectPairsByProduct(4))) && p() && e('3'); //用超级管理员,传入产品 ID,确认获取条目数。
|
||||
r(count($product->getProjectPairsByProduct(4, '', '', 'noclosed'))) && p() && e('3'); //用超级管理员,传入产品 ID,确认获取非关闭项目的条目数。
|
||||
r(count($product->getProjectPairsByProduct(4, '', '18', 'noclosed'))) && p() && e('4'); //用超级管理员,传入产品 ID 和追加查询的项目,确认获取非关闭项目的条目数。
|
||||
r(count($product->getProjectPairsByProduct(4, '', '', 'noclosed', 'multiple'))) && p() && e('2'); //用超级管理员,传入产品 ID,确认获取启用执行非关闭项目的条目数。
|
||||
|
||||
Reference in New Issue
Block a user