* [bug#57536,done,1h] Demand pool requirements and demand pool support for Xuanxuan to send messages.

This commit is contained in:
hufangzhou
2024-11-28 11:10:08 +08:00
committed by 王于听
parent f2cda5ab90
commit 665a620ab4
@@ -17,6 +17,7 @@ class xuanxuanMessage extends messageModel
if($objectType == 'story') $field = 'obj.*,product.name as productName';
if($objectType == 'bug') $field = 'obj.*,project.name as projectName,product.name as productName,execu.name as execuName';
if($objectType == 'feedback') $field = 'obj.*,product.name as productName';
if($objectType == 'demand') $field = 'obj.*,pool.name as poolName';
$object = $this->dao->select($field)->from($this->config->objectTables[$objectType])->alias('obj')
->beginIF($objectType == 'task')
@@ -34,6 +35,9 @@ class xuanxuanMessage extends messageModel
->beginIF($objectType == 'feedback')
->leftJoin($this->config->objectTables['product'])->alias('product')->on('product.id = obj.product')
->fi()
->beginIF($objectType == 'demand')
->leftJoin($this->config->objectTables['demandpool'])->alias('pool')->on('pool.id = obj.pool')
->fi()
->where('obj.id')->eq($objectID)
->fetch();
$field = $this->config->action->objectNameFields[$objectType];
@@ -70,6 +74,21 @@ class xuanxuanMessage extends messageModel
foreach($senderUser as $user) $target .= ',' . $user;
}
}
elseif($objectType == 'demandpool')
{
if(!empty($object->owner)) $target .= trim($object->owner, ',');
if(!empty($object->reviewer)) $target .= ',' . trim($object->reviewer, ',');
}
elseif($objectType == 'demand')
{
$target .= $object->createdBy;
if(!empty($object->assignedTo)) $target .= $object->assignedTo == 'closed' ? '' : $object->assignedTo;
if(!empty($object->mailto)) $target .= ",{$object->mailto}";
$reviewers = $this->loadModel('demand')->getReviewerPairs($object->id, $object->version);
$reviewers = array_keys($reviewers);
if($reviewers) $target .= ',' . implode(',', $reviewers);
$target = trim($target, ',');
}
else
{
if(!empty($object->assignedTo)) $target .= $object->assignedTo == 'closed' ? $object->openedBy : $object->assignedTo;
@@ -126,18 +145,19 @@ class xuanxuanMessage extends messageModel
}
elseif($objectType == 'demandpool')
{
if(!empty($object->owner)) $target .= trim($object->owner, ',');
if(!empty($object->reviewer)) $target .= ',' . trim($object->reviewer, ',');
$subcontent->headTitle = $object->name;
$subcontent->parentType = '';
$subcontent->parent = 0;
$subcontent->parentURL = "xxc:openInApp/zentao-integrated/" . urlencode($server . helper::createLink('demandpool', 'browse', '', 'html'));
$subcontent->cardURL = $url;
}
elseif($objectType == 'demand')
{
$target .= $object->createdBy;
if(!empty($object->assignedTo)) $target .= $object->assignedTo == 'closed' ? '' : $object->assignedTo;
if(!empty($object->mailto)) $target .= ",{$object->mailto}";
$reviewers = $this->loadModel('demand')->getReviewerPairs($object->id, $object->version);
$reviewers = array_keys($reviewers);
if($reviewers) $target .= ',' . implode(',', $reviewers);
$target = trim($target, ',');
$subcontent->headTitle = $object->poolName;
$subcontent->parentType = 'demandpool';
$subcontent->parent = $object->pool;
$subcontent->parentURL = "xxc:openInApp/zentao-integrated/" . urlencode($server . helper::createLink('demand', 'browse', "id=$object->pool", 'html'));
$subcontent->cardURL = $url;
}
else
{
@@ -179,7 +199,7 @@ class xuanxuanMessage extends messageModel
$content = json_encode($contentData);
$avatarUrl = $server . $this->app->getWebRoot() . 'favicon.ico';
if($target && ($objectType == 'bug' || $objectType == 'task' || $objectType == 'story' || $objectType == 'feedback')) $this->loadModel('im')->messageCreateNotify($target, $title, $subtitle = '', $content, $contentType = 'object', $url, $actions = array(), $sender = array('id' => 'zentao', 'realname' => $this->lang->message->sender, 'name' => $this->lang->message->sender, 'avatar' => $avatarUrl));
if($target && ($objectType == 'bug' || $objectType == 'task' || $objectType == 'story' || $objectType == 'feedback' || $objectType == 'demand' || $objectType == 'demandpool')) $this->loadModel('im')->messageCreateNotify($target, $title, $subtitle = '', $content, $contentType = 'object', $url, $actions = array(), $sender = array('id' => 'zentao', 'realname' => $this->lang->message->sender, 'name' => $this->lang->message->sender, 'avatar' => $avatarUrl));
if($objectType == 'mr' and is_array($this->lang->message->mr->$actionType) and !empty($object->assignee))
{