* Change string|int to int for projectID param in productModel getProducts method

This commit is contained in:
wangyidong
2023-05-11 21:01:52 +08:00
parent 0ddfc66e62
commit 45a5fed539
4 changed files with 25 additions and 34 deletions
+3 -4
View File
@@ -257,7 +257,7 @@ class productModel extends model
* @access public
* @return int[]
*/
public function getProducts(string|int $projectID = '0', string $status = 'all', string $orderBy = '', bool $withBranch = true, string|array $append = '', bool $noDeleted = true): array
public function getProducts(int $projectID = 0, string $status = 'all', string $orderBy = '', bool $withBranch = true, string|array $append = '', bool $noDeleted = true): array
{
/* 如果是新手教程模式,直接返回测试数据。*/
if(defined('TUTORIAL'))
@@ -267,9 +267,8 @@ class productModel extends model
return $this->tutorial->getExecutionProducts();
}
if(!empty($append) and is_array($append)) $append = implode(',', $append);
/* 初始化变量。 */
$append = $this->productTao->formatAppendParam($append);
$views = $this->app->user->view->products . (empty($append) ? '' : ",$append");
$projectProducts = $this->productTao->getProductsByProjectID($projectID, $views, $status, $orderBy, $noDeleted);
$products = array();
@@ -281,7 +280,7 @@ class productModel extends model
return $products;
}
/* 将分支ID、计划ID合并到产品数据中。*/
/* 将分支 ID 、计划 ID 合并到产品数据中。*/
foreach($projectProducts as $product)
{
if(!isset($products[$product->id]))
+2 -2
View File
@@ -656,7 +656,7 @@ class productTao extends productModel
* @param string $orderBy
* @param bool $noDeleted
* @access protected
* @return int
* @return int[]
*/
protected function getProductsByProjectID(int $projectID, string $productIdListStr, string $status, string $orderBy, bool $noDeleted): array
{
@@ -665,7 +665,7 @@ class productTao extends productModel
->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product = t2.id')
->where('1=1')
->beginIF($noDeleted)->andWhere('t2.deleted')->eq(0)->fi()
->beginIF(!empty($projectID))->andWhere('t1.project')->in($projectID)->fi()
->beginIF(!empty($projectID))->andWhere('t1.project')->eq($projectID)->fi()
->beginIF(!$this->app->user->admin and $this->config->vision == 'rnd')->andWhere('t2.id')->in($productIdListStr)->fi()
->andWhere('t2.vision')->eq($this->config->vision)
->beginIF(strpos($status, 'noclosed') !== false)->andWhere('t2.status')->ne('closed')->fi()
+18 -27
View File
@@ -1,43 +1,34 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/product.class.php';
zdTable('product')->gen(10);
zdTable('project')->gen(20);
zdTable('projectproduct')->gen(50);
/**
title=productModel->getProducts();
cid=1
pid=1
测试获取项目11 状态为all的产品信息 >> 正常产品1;多平台产品81;多平台产品91
测试获取项目12 状态为all的产品信息 >> 正常产品2;多平台产品82;多平台产品92
测试获取项目13 状态为all的产品信息 >> 正常产品3;多平台产品83;多平台产品93
测试获取项目14 状态为all的产品信息 >> 正常产品4;多平台产品84;多平台产品94
测试获取项目15 状态为all的产品信息 >> 正常产品5;多平台产品85;多平台产品95
测试获取不存在的项目状态为all的产品信息 >> 0
测试获取项目11 状态为unclosed的产品信息 >> 正常产品1;多平台产品81;多平台产品91
测试获取项目12 状态为unclosed的产品信息 >> 正常产品2;多平台产品82;多平台产品92
测试获取项目13 状态为unclosed的产品信息 >> 正常产品3;多平台产品83;多平台产品93
测试获取项目14 状态为unclosed的产品信息 >> 正常产品4;多平台产品84;多平台产品94
测试获取项目15 状态为unclosed的产品信息 >> 正常产品5;多平台产品85;多平台产品95
测试获取不存在的项目状态为unclosed的产品信息 >> 0
*/
$projectIDList = array('11', '12', '13', '14', '15', '1000001');
$projectIdList = array(11, 12, 13, 14, 15, 1000001);
$statusList = array('all', 'noclosed');
$product = new productTest('admin');
r($product->getProductsTest($projectIDList[0], $statusList[0])) && p('1:name;81:name;91:name') && e('正常产品1;多平台产品81;多平台产品91'); // 测试获取项目11 状态为all的产品信息
r($product->getProductsTest($projectIDList[1], $statusList[0])) && p('2:name;82:name;92:name') && e('正常产品2;多平台产品82;多平台产品92'); // 测试获取项目12 状态为all的产品信息
r($product->getProductsTest($projectIDList[2], $statusList[0])) && p('3:name;83:name;93:name') && e('正常产品3;多平台产品83;多平台产品93'); // 测试获取项目13 状态为all的产品信息
r($product->getProductsTest($projectIDList[3], $statusList[0])) && p('4:name;84:name;94:name') && e('正常产品4;多平台产品84;多平台产品94'); // 测试获取项目14 状态为all的产品信息
r($product->getProductsTest($projectIDList[4], $statusList[0])) && p('5:name;85:name;95:name') && e('正常产品5;多平台产品85;多平台产品95'); // 测试获取项目15 状态为all的产品信息
r($product->getProductsTest($projectIDList[5], $statusList[0])) && p() && e('0'); // 测试获取不存在的项目状态为all的产品信息
r($product->getProductsTest($projectIDList[0], $statusList[1])) && p('1:name;81:name;91:name') && e('正常产品1;多平台产品81;多平台产品91'); // 测试获取项目11 状态为unclosed的产品信息
r($product->getProductsTest($projectIDList[1], $statusList[1])) && p('2:name;82:name;92:name') && e('正常产品2;多平台产品82;多平台产品92'); // 测试获取项目12 状态为unclosed的产品信息
r($product->getProductsTest($projectIDList[2], $statusList[1])) && p('3:name;83:name;93:name') && e('正常产品3;多平台产品83;多平台产品93'); // 测试获取项目13 状态为unclosed的产品信息
r($product->getProductsTest($projectIDList[3], $statusList[1])) && p('4:name;84:name;94:name') && e('正常产品4;多平台产品84;多平台产品94'); // 测试获取项目14 状态为unclosed的产品信息
r($product->getProductsTest($projectIDList[4], $statusList[1])) && p('5:name;85:name;95:name') && e('正常产品5;多平台产品85;多平台产品95'); // 测试获取项目15 状态为unclosed的产品信息
r($product->getProductsTest($projectIDList[5], $statusList[1])) && p() && e('0'); // 测试获取不存在的项目状态为unclosed的产品信息
r($product->getProductsTest($projectIdList[0], $statusList[0])) && p('1:name') && e('正常产品1'); // 测试获取项目11 状态为all的产品信息
r($product->getProductsTest($projectIdList[1], $statusList[0])) && p('2:name') && e('正常产品2'); // 测试获取项目12 状态为all的产品信息
r($product->getProductsTest($projectIdList[2], $statusList[0])) && p('3:name') && e('正常产品3'); // 测试获取项目13 状态为all的产品信息
r($product->getProductsTest($projectIdList[3], $statusList[0])) && p('4:name') && e('正常产品4'); // 测试获取项目14 状态为all的产品信息
r($product->getProductsTest($projectIdList[4], $statusList[0])) && p('5:name') && e('正常产品5'); // 测试获取项目15 状态为all的产品信息
r($product->getProductsTest($projectIdList[5], $statusList[0])) && p() && e('0'); // 测试获取不存在的项目状态为all的产品信息
r($product->getProductsTest($projectIdList[0], $statusList[1])) && p('1:name') && e('正常产品1'); // 测试获取项目11 状态为unclosed的产品信息
r($product->getProductsTest($projectIdList[1], $statusList[1])) && p('2:name') && e('正常产品2'); // 测试获取项目12 状态为unclosed的产品信息
r($product->getProductsTest($projectIdList[2], $statusList[1])) && p('3:name') && e('正常产品3'); // 测试获取项目13 状态为unclosed的产品信息
r($product->getProductsTest($projectIdList[3], $statusList[1])) && p('4:name') && e('正常产品4'); // 测试获取项目14 状态为unclosed的产品信息
r($product->getProductsTest($projectIdList[4], $statusList[1])) && p('5:name') && e('正常产品5'); // 测试获取项目15 状态为unclosed的产品信息
r($product->getProductsTest($projectIdList[5], $statusList[1])) && p() && e('0'); // 测试获取不存在的项目状态为unclosed的产品信息
+2 -1
View File
@@ -472,8 +472,9 @@ class productTest
* @access public
* @return array
*/
public function getProductsTest($projectID, $status)
public function getProductsTest(int $projectID, string $status): array
{
$this->objectModel->app->user->admin = true;
$objects = $this->objectModel->getProducts($projectID, $status);
if(dao::isError())