diff --git a/module/project/model.php b/module/project/model.php index dc14f1ed4b..924001b9d9 100755 --- a/module/project/model.php +++ b/module/project/model.php @@ -179,8 +179,8 @@ class projectModel extends model } /** - * Get a project by id. * 根据项目ID获取项目信息。 + * Get a project by id. * * @param int $projectID * @access public @@ -198,17 +198,18 @@ class projectModel extends model } /** + * 通过影子产品ID获取一条项目记录。 * Get a project by its shadow product. * - * @param int $product + * @param int $productID * @access public - * @return object + * @return object|false */ - public function getByShadowProduct($product) + public function getByShadowProduct(int $productID): object|false { return $this->dao->select('t2.*')->from(TABLE_PROJECTPRODUCT)->alias('t1') ->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project=t2.id') - ->where('t1.product')->eq($product) + ->where('t1.product')->eq($productID) ->andWhere('t2.type')->eq('project') ->limit(1) ->fetch(); diff --git a/module/project/test/model/getbyshadowproduct.php b/module/project/test/model/getbyshadowproduct.php new file mode 100644 index 0000000000..e1c8e471dc --- /dev/null +++ b/module/project/test/model/getbyshadowproduct.php @@ -0,0 +1,45 @@ +#!/usr/bin/env php +id->range('2-5'); + $project->project->range('2-5'); + $project->name->prefix("项目")->range('2-5'); + $project->code->prefix("project")->range('2-5'); + $project->type->range("project"); + $project->gen(4); + + $projectproduct = zdTable('projectproduct'); + $projectproduct->product->range('1-3'); + $projectproduct->project->range('2-4'); + $projectproduct->branch->range("0"); + $projectproduct->gen(3); +} + +/** + +title=测试 projectModel::getByShadowProduct; +timeout=0 +cid=1 + +- 执行projectTester模块的testGetByShadowPro方法,参数是2属性code @project3 + +- 执行projectTester模块的testGetByShadowPro方法,参数是5属性code @0 + +- 执行projectTester模块的testGetByShadowPro方法,参数是aaa属性code @($productID) must be of type int + + + +*/ + +initData(); + +$projectTester = new Project(); +r($projectTester->testGetByShadowProduct(2)) && p('code') && e('project3'); //获取ID为1的产品关联的项目 +r($projectTester->testGetByShadowProduct(5)) && p('code') && e('0'); //获取ID为4的产品关联的项目 +r($projectTester->testGetByShadowProduct('aaa')) && p('code') && e('($productID) must be of type int'); //获取ID为字符串的产品的项目 diff --git a/module/project/test/project.class.php b/module/project/test/project.class.php index f6c736f0de..537cd498ab 100644 --- a/module/project/test/project.class.php +++ b/module/project/test/project.class.php @@ -61,6 +61,18 @@ class Project return $this->triggerMethod('fetchProjectInfo', array('projectID' => $projectID)); } + /** + * Test getByShadowProduct function. + * + * @param int $productID + * @access public + * @return string|bool|object + */ + public function testGetByShadowProduct($productID) + { + return $this->triggerMethod('getByShadowProduct', array('productID' => $productID)); + } + /** * Test start a project. *