+ Add getProductByProgram method and case.

This commit is contained in:
tianshujie
2023-09-13 15:37:25 +08:00
parent 0b3984e467
commit 7086fedd6a
4 changed files with 130 additions and 0 deletions
+19
View File
@@ -30,6 +30,25 @@ class programTao extends programModel
->fetchAll('id');
}
/**
* 获取项目集下的产品列表信息。
* Get product list information under the program.
*
* @param array $programIdList
* @access protected
* @return array
*/
protected function getProductByProgram(array $programIdList = array()): array
{
return $this->dao->select('*')->from(TABLE_PRODUCT)
->where('deleted')->eq(0)
->andWhere('status')->ne('closed')
->beginIF(!empty($programIdList))->andWhere('program')->in($programIdList)->fi()
->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->products)->fi()
->orderBy('order_asc')
->fetchGroup('program');
}
/**
*获取所有根项目集基本数据。
* Get base data of all root programs.
@@ -0,0 +1,24 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
zdTable('user')->gen(5);
su('admin');
zdTable('product')->config('product')->gen(30);
/**
title=测试 programModel::getProductByProgram();
timeout=0
cid=1
*/
$programIdList = array(array(), array(1, 2, 3));
global $tester;
$tester->loadModel('program');
r(current($tester->program->getProductByProgram($programIdList[0]))) && p('0:program,name') && e('1,产品1'); // 获取系统内所有项目集下的产品信息
r(current($tester->program->getProductByProgram($programIdList[1]))) && p('0:program,name') && e('1,产品1'); // 获取系统内所有项目集1、项目集2、项目集3下的产品信息
r(count($tester->program->getProductByProgram($programIdList[0]))) && p() && e('10'); // 获取系统内所有项目集下的产品数量
r(count($tester->program->getProductByProgram($programIdList[1]))) && p() && e('3'); // 获取系统内所有项目集1、项目集2、项目集3下的产品数量
+18
View File
@@ -0,0 +1,18 @@
title: product data
author: zhouxin
version: 1.0.0
fields:
- field: id
range: 1-30
- field: name
range: 1-30
prefix: '产品'
- field: program
range: 1-10
- field: line
range: 1{10},2{10},3{10}
- field: status
range: 'normal{20},closed{10}'
- field: PO
range: 'admin{10},user1{10},user2{10}'
+69
View File
@@ -0,0 +1,69 @@
title: program.
desc: program data.
author: Shujie Tian
version: "1.0"
fields:
- field: id
range: 1-10,11,60,61,100,101-700
- field: name
note: "名称"
fields:
- field: name1
range: 项目集{10},敏捷项目,瀑布项目{2},看板项目,迭代{5},阶段{18},看板{5}
- field: name2
range: 1-10000
- field: project
range: 0{14},11{5},60{12},61{6},100{5}
- field: model
range: "[]{10},scrum,waterfall{2},kanban,[]{28}"
- field: attribute
range: "[]{19},request,design,dev,qa,release,review,request,design,dev,qa,release,review,request,design,dev,qa,release,review,[]{5}"
- field: type
range: program{10},project{4},sprint{5},stage{18},kanban{5}
- field: budget
range: 800000-1:100
- field: status
range: doing{2},wait{8},doing{4},wait{2},doing{2},suspended{2},closed{2}
- field: auth
range: "extend"
- field: desc
range: 1-10000
prefix: "迭代描述"
- field: begin
range: "(-2M)-(+M):1D"
type: timestamp
format: "YY/MM/DD"
postfix: "\t"
- field: end
range: "(+1w)-(+2M):1D"
type: timestamp
format: "YY/MM/DD"
postfix: "\t"
- field: grade
range: 1,2,1{12},1{5},1{6},2{6},1{6},1{5}
- field: parent
range: 0,1,0{8},1,2,0{2},11{5},60{6},106-111,61{6},100{5}
- field: path
fields:
- field: path1
prefix: ","
range: 1,1,3-10,1,2,61,100,11{5},60{12},61{6},100{5}
- field: path2
prefix: ","
range: "[],2,[]{8},11,60,[]{2},101-105,106-111,106-111,118-700"
postfix: ","
- field: path3
range: "[]{25},112-117,[]{50}"
postfix: ","
- field: acl
range: open{10},program{2},open{2},private{4}
- field: multiple
range: 1{14},1{3},0{2},1{18},1{5}
- field: whitelist
prefix: ","
range: "admin,user1,user2,user3,[]{10}"
postfix: ","
- field: hasProduct
range: 1{10},0,1,0,1{100}
- field: deleted
range: 0{40},1