From 088c922f4272047e104f0d29805144041f997e99 Mon Sep 17 00:00:00 2001 From: sunguangming Date: Mon, 18 Dec 2023 19:31:29 +0800 Subject: [PATCH] * kanban: refactor getCardGroupByExecution(). --- module/execution/js/kanban.ui.js | 4 +- module/kanban/model.php | 47 ++-------------- module/kanban/tao.php | 25 ++++++--- .../test/model/getcardgroupbyexecution.php | 56 +++++++++++-------- 4 files changed, 58 insertions(+), 74 deletions(-) diff --git a/module/execution/js/kanban.ui.js b/module/execution/js/kanban.ui.js index ff44fc8ee0..3b193630e6 100644 --- a/module/execution/js/kanban.ui.js +++ b/module/execution/js/kanban.ui.js @@ -186,8 +186,8 @@ window.renderAvatar = function(item) } else { - if(assignLink != '') return '' + item.uavatar + ''; - return '
' + item.uavatar + '
'; + if(assignLink != '') return '' + item.avatarList[0] + ''; + return '
' + item.avatarList[0] + '
'; } } diff --git a/module/kanban/model.php b/module/kanban/model.php index 2406b9908c..d1bbea3190 100755 --- a/module/kanban/model.php +++ b/module/kanban/model.php @@ -1328,7 +1328,7 @@ class kanbanModel extends model * @access public * @return array */ - public function getCardGroupByExecution($executionID, $browseType = 'all', $orderBy = 'id_asc', $searchValue = '') + public function getCardGroupByExecution(int $executionID, string $browseType = 'all', string $orderBy = 'id_asc', string $searchValue = ''): array { $cards = $this->dao->select('t1.*, t2.type as columnType, t2.group') ->from(TABLE_KANBANCELL)->alias('t1') @@ -1351,7 +1351,7 @@ class kanbanModel extends model { foreach($cells as $cell) { - $cardOrder = 1; + $order = 0; $cardIdList = array_filter(explode(',', $cell->cards)); foreach($cardIdList as $cardID) { @@ -1361,46 +1361,11 @@ class kanbanModel extends model if(empty($object)) continue; - $cardData['id'] = $object->id; - $cardData['name'] = $object->id; - $cardData['order'] = $cardOrder++; - $cardData['pri'] = $object->pri ? $object->pri : ''; - $cardData['estimate'] = $cell->type == 'bug' ? '' : $object->estimate; - $cardData['assignedTo'] = $object->assignedTo; - $cardData['deadline'] = $cell->type == 'story' ? '' : $object->deadline; - $cardData['severity'] = $cell->type == 'bug' ? $object->severity : ''; - $cardData['acl'] = 'open'; - $cardData['lane'] = $laneID; - $cardData['column'] = $cell->column; - $cardData['openedDate'] = $object->openedDate; - $cardData['closedDate'] = $object->closedDate; - $cardData['lastEditedDate'] = $object->lastEditedDate; - $cardData['status'] = $object->status; - $cardData['cardType'] = $cell->type; - $cardData['uavatar'] = ''; - $cardData['assignedToRealName'] = ''; + $cardData = $this->kanbanTao->initCardItem($object, $cell, $order, $avatarPairs, $users); + $cardData['acl'] = 'open'; + $order ++; - if($object->assignedTo) - { - $userAvatar = zget($avatarPairs, $object->assignedTo, ''); - $userAvatar = $userAvatar ? "" : strtoupper(mb_substr($object->assignedTo, 0, 1, 'utf-8')); - $cardData['uavatar'] = $userAvatar; - $cardData['assignedToRealName'] = zget($users, $object->assignedTo, ''); - } - - if($cell->type == 'task') - { - if($searchValue != '' and strpos($object->name, $searchValue) === false) continue; - $cardData['title'] = $object->name; - $cardData['left'] = $object->left; - $cardData['estStarted'] = $object->estStarted; - $cardData['mode'] = $object->mode; - } - else - { - if($searchValue != '' and strpos($object->title, $searchValue) === false) continue; - $cardData['title'] = $object->title; - } + if($searchValue != '' and strpos($cardData['title'], $searchValue) === false) continue; $cardGroup[$cell->group][$laneID][$cell->column][] = $cardData; } } diff --git a/module/kanban/tao.php b/module/kanban/tao.php index 6763e0369e..1cd0a54ebf 100644 --- a/module/kanban/tao.php +++ b/module/kanban/tao.php @@ -526,21 +526,25 @@ class kanbanTao extends kanbanModel $item['id'] = $card->id; $item['name'] = $card->id; $item['pri'] = $card->pri; - $item['begin'] = $card->begin; - $item['end'] = $card->end; - $item['group'] = $card->group; - $item['region'] = $card->region; $item['color'] = $card->color; - $item['progress'] = $card->progress; $item['assignedTo'] = $card->assignedTo; - $item['fromID'] = $card->fromID; - $item['fromType'] = $card->fromType; + $item['progress'] = !empty($card->progress) ? $card->progress : 0; + $item['group'] = !empty($card->group) ? $card->group : ''; + $item['region'] = !empty($card->region) ? $card->region : ''; + $item['begin'] = !empty($card->begin) ? $card->begin : ''; + $item['end'] = !empty($card->end) ? $card->end : ''; + $item['fromID'] = !empty($card->fromID) ? $card->fromID : 0; + $item['fromType'] = !empty($card->fromType) ? $card->fromType : ''; $item['desc'] = !empty($card->desc) ? $card->desc : ''; $item['delay'] = !empty($card->delay) ? $card->delay : 0; $item['status'] = !empty($card->status) ? $card->status : ''; $item['objectStatus'] = !empty($card->objectStatus) ? $card->objectStatus : ''; $item['deleted'] = !empty($card->deleted) ? $card->deleted : 0; $item['date'] = !empty($card->date) ? $card->date : ''; + $item['estimate'] = !empty($card->estimate) ? $card->estimate : ''; + $item['deadline'] = !empty($card->deadline) ? $card->deadline : ''; + $item['severity'] = !empty($card->severity) ? $card->severity : ''; + $item['cardType'] = $cell->type; $item['avatarList'] = array(); $item['realnames'] = ''; $item['order'] = $order; @@ -559,6 +563,13 @@ class kanbanTao extends kanbanModel } } + if($cell->type == 'task') + { + $item['left'] = $card->left; + $item['estStarted'] = $card->estStarted; + $item['mode'] = $card->mode; + } + return $item; } } diff --git a/module/kanban/test/model/getcardgroupbyexecution.php b/module/kanban/test/model/getcardgroupbyexecution.php index 8df5d1ffe7..4c4a470780 100755 --- a/module/kanban/test/model/getcardgroupbyexecution.php +++ b/module/kanban/test/model/getcardgroupbyexecution.php @@ -4,38 +4,46 @@ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/kanban.class.php'; su('admin'); +zdTable('project')->config('kanbanexecution')->gen(5); +zdTable('kanbanregion')->config('rdkanbanregion')->gen(5); +zdTable('kanbangroup')->config('rdkanbangroup')->gen(20); +zdTable('kanbancolumn')->gen(20); +zdTable('kanbanlane')->config('rdkanbanlane')->gen(10); +zdTable('kanbancell')->config('rdkanbancell')->gen(20); +zdTable('task')->config('rdkanbantask')->gen(20); + /** title=测试 kanbanModel->getCardGroupByExecution(); +timeout=0 cid=1 -pid=1 -测试查询execution161的卡片 >> 5 -测试查询execution161的task卡片 >> 1 -测试查询execution161的bug卡片 >> 3 -测试查询execution161的story卡片 >> 1 -测试查询execution162的卡片 >> 5 -测试查询execution162的task卡片 >> 1 -测试查询execution162的bug卡片 >> 3 -测试查询execution162的story卡片 >> 1 -测试查询execution163的卡片 >> 4 -测试查询execution164的卡片 >> 4 -测试查询execution165的卡片 >> 0 +- 测试查询execution1的卡片数量 @2 +- 测试查询execution1的task卡片数量 @2 +- 测试查询execution1的bug卡片数量 @0 +- 测试查询execution1的story卡片数量 @0 +- 测试查询execution2的卡片数量 @2 +- 测试查询execution2的task卡片数量 @2 +- 测试查询execution2的bug卡片数量 @0 +- 测试查询execution2的story卡片数量 @0 +- 测试查询execution3的卡片数量 @2 +- 测试查询execution4的卡片数量 @2 +- 测试查询execution5的卡片数量 @2 */ -$executionIDList = array('161', '162', '163', '164', '165'); +$executionIDList = array(1, 2, 3, 4, 5); $browseTypeList = array('task', 'bug', 'story'); $kanban = new kanbanTest(); -r($kanban->getCardGroupByExecutionTest($executionIDList[0])) && p() && e('5'); // 测试查询execution161的卡片 -r($kanban->getCardGroupByExecutionTest($executionIDList[0], $browseTypeList[0])) && p() && e('1'); // 测试查询execution161的task卡片 -r($kanban->getCardGroupByExecutionTest($executionIDList[0], $browseTypeList[1])) && p() && e('3'); // 测试查询execution161的bug卡片 -r($kanban->getCardGroupByExecutionTest($executionIDList[0], $browseTypeList[2])) && p() && e('1'); // 测试查询execution161的story卡片 -r($kanban->getCardGroupByExecutionTest($executionIDList[1])) && p() && e('5'); // 测试查询execution162的卡片 -r($kanban->getCardGroupByExecutionTest($executionIDList[1], $browseTypeList[0])) && p() && e('1'); // 测试查询execution162的task卡片 -r($kanban->getCardGroupByExecutionTest($executionIDList[1], $browseTypeList[1])) && p() && e('3'); // 测试查询execution162的bug卡片 -r($kanban->getCardGroupByExecutionTest($executionIDList[1], $browseTypeList[2])) && p() && e('1'); // 测试查询execution162的story卡片 -r($kanban->getCardGroupByExecutionTest($executionIDList[2])) && p() && e('4'); // 测试查询execution163的卡片 -r($kanban->getCardGroupByExecutionTest($executionIDList[3])) && p() && e('4'); // 测试查询execution164的卡片 -r($kanban->getCardGroupByExecutionTest($executionIDList[4])) && p() && e('0'); // 测试查询execution165的卡片 \ No newline at end of file +r($kanban->getCardGroupByExecutionTest($executionIDList[0])) && p() && e('2'); // 测试查询execution1的卡片数量 +r($kanban->getCardGroupByExecutionTest($executionIDList[0], $browseTypeList[0])) && p() && e('2'); // 测试查询execution1的task卡片数量 +r($kanban->getCardGroupByExecutionTest($executionIDList[0], $browseTypeList[1])) && p() && e('0'); // 测试查询execution1的bug卡片数量 +r($kanban->getCardGroupByExecutionTest($executionIDList[0], $browseTypeList[2])) && p() && e('0'); // 测试查询execution1的story卡片数量 +r($kanban->getCardGroupByExecutionTest($executionIDList[1])) && p() && e('2'); // 测试查询execution2的卡片数量 +r($kanban->getCardGroupByExecutionTest($executionIDList[1], $browseTypeList[0])) && p() && e('2'); // 测试查询execution2的task卡片数量 +r($kanban->getCardGroupByExecutionTest($executionIDList[1], $browseTypeList[1])) && p() && e('0'); // 测试查询execution2的bug卡片数量 +r($kanban->getCardGroupByExecutionTest($executionIDList[1], $browseTypeList[2])) && p() && e('0'); // 测试查询execution2的story卡片数量 +r($kanban->getCardGroupByExecutionTest($executionIDList[2])) && p() && e('2'); // 测试查询execution3的卡片数量 +r($kanban->getCardGroupByExecutionTest($executionIDList[3])) && p() && e('2'); // 测试查询execution4的卡片数量 +r($kanban->getCardGroupByExecutionTest($executionIDList[4])) && p() && e('2'); // 测试查询execution5的卡片数量 \ No newline at end of file