/** * Save info page * * @author youzhao.zxw<*****@*****.**> * @param String $infoType bug,case or result * @param String $actionType edit action type * @param array $basicInfo basic info array * @param array $customInfo custom information * @param array $attachmentFile attachment information * @param array $requestIdArr user requested id info * @return array save result info */ public static function saveInfo($infoType, $actionType, $basicInfo, $customInfo, $attachmentFile, $requestIdArr = array()) { $mixedInfo = array('basic' => $basicInfo, 'custom' => $customInfo, 'attachment_file' => $attachmentFile); $result = self::editInfo($infoType, $actionType, $mixedInfo); if (CommonService::$ApiResult['SUCCESS'] == $result['status']) { if (isset($requestIdArr['result_id'])) { $resultModel = ResultInfo::model()->findByPk($requestIdArr['result_id']); $resultModel->assign_to_name = CommonService::getUserRealName($resultModel->assign_to); if (!empty($resultModel->related_bug)) { $resultModel->related_bug = $resultModel->related_bug . ',' . $result['detail']['id']; } else { $resultModel->related_bug = $result['detail']['id']; } $resultModel->save(); } elseif (isset($requestIdArr['case_id'])) { $caseModel = CaseInfo::model()->findByPk($requestIdArr['case_id']); $oldRecordAttributs = array(); $oldRecordAttributs['basic'] = $caseModel->attributes; $oldRecordAttributs['custom'] = array(); $caseModel->assign_to_name = CommonService::getUserRealName($caseModel->assign_to); if (!empty($caseModel->related_result)) { $caseModel->related_result = $caseModel->related_result . ',' . $result['detail']['id']; } else { $caseModel->related_result = $result['detail']['id']; } $caseModel->save(); if (isset($_GET['step_run']) && 1 == $_GET['step_run']) { $addActionResult = self::addActionNotes(Info::TYPE_CASE, CaseInfo::ACTION_STEP_RUN, $caseModel, $oldRecordAttributs); } else { $addActionResult = self::addActionNotes(Info::TYPE_CASE, CaseInfo::ACTION_RUN, $caseModel, $oldRecordAttributs); } } } return $result; }
/** * replace html select element with span element * * @author youzhao.zxw<*****@*****.**> * @param string $stepStr result st string * @return string handled result step */ public static function removeSelectFromResultStep($stepStr) { $resultValueColorConfig = ResultInfo::getResultValueColorConfig(); $stepDom = str_get_html($stepStr); if (empty($stepDom)) { return $stepStr; } foreach ($stepDom->find('select') as $selectElement) { $handledStr = ''; $index = 1; foreach ($selectElement->find('option') as $optionElement) { if ($optionElement->hasAttribute('bugfree_set_option')) { $selectedValue = $optionElement->innertext; if ('' == $selectedValue) { $selectElement->outertext = '<span class="bugfree_step_result_span" style="width:90px;font-weight:bold;">' . $selectedValue . '</span>'; } else { $selectElement->outertext = '<span class="bugfree_step_result_span" style="width:90px;font-weight:bold;color:' . $resultValueColorConfig[$selectedValue] . '">' . $selectedValue . '</span>'; } break; } } } return $stepDom->__toString(); }
private function addUrlInfos($arrData) { if (empty($arrData)) { return; } $ecResult = $arrData['uiData']['ecResult']; $arrResult = $arrData['uiData']['asResult']; $topResult = $arrData['uiData']['topResult']; $leftResult = $arrData['uiData']['leftResult']; $rightResult = $arrData['uiData']['rightResult']; $arrQueryInfo = $arrData['uiData']['queryInfo']; $intI = 0; // ec队列 foreach ($ecResult['ecResultItem'] as $result) { $urlInfo = new UrlInfo(); if ($result['source'] == SRC_PPIM) { $ppImInfoLog = new PPimInfoLog(); $intI++; $urlInfo->setIndex($intI); $urlInfo->setUrlType(UrlID::PPIM_ID); $ppImInfoLog->setAdNum($result['adNum'] + $intI - 1); $ppImInfoLog->setAspUid($arrData['uiData']['ecResult']['aspuid']); $urlInfo->setPpimLog($ppImInfoLog); $this->BaiduLog->addUrlInfo($urlInfo); } else { if ($result['source'] == SRC_NEWPP) { $ppInfoLog = new PPInfoLog(); $intI++; $urlInfo->setIndex($intI); $urlInfo->setUrlType(UrlID::PP_ID); $ppInfoLog->setAdNum($result['adNum']); $urlInfo->setPpLog($ppInfoLog); $this->BaiduLog->addUrlInfo($urlInfo); } } } //左侧队列 foreach ($leftResult['item'] as $result) { $urlInfo = new UrlInfo(); $intI++; $urlInfo->setIndex($intI); $urlInfo->setUrl(trim($result['itemUrl'])); $urlInfo->setUrlType(UrlID::LEFT_ZX_ID); $leftZxUrlInfoLog = new LeftZXUrlInfoLog(); $leftZxUrlInfoLog->setIsClAs($result['isClAs']); $leftZxUrlInfoLog->setStdStg(intval($result['dispData']['StdStg'])); $leftZxUrlInfoLog->setStdStl(intval($result['dispData']['StdStl'])); $leftZxUrlInfoLog->setUrlJiucuoFlag('0'); for ($i = 0; $i < 4; $i++) { $leftZxUrlInfoLog->addStrategys('0'); } $leftZxUrlInfoLog->setCategoryId($result['dispData']['category_id']); $leftZxUrlInfoLog->setCardId($result['dispData']['card_id']); $leftZxUrlInfoLog->setEntityName(urlencode($result['dispData']['entityname'])); $leftZxUrlInfoLog->setUri(urlencode($result['dispData']['uri'])); $leftZxUrlInfoLog->setTempName($result['dispData']['strategy']['tempName']); $leftZxUrlInfoLog->setTitle(urlencode($result['dispData']['resultData']['tplData']['title'])); $itemUriInfo = $this->addItemUriInfo($result); if (!empty($itemUriInfo)) { $leftZxUrlInfoLog->setItemUriInfo($itemUriInfo); } if (isset($result['burstFlag']) && !empty($result['burstFlag'])) { $leftZxUrlInfoLog->setBurstFlag(intval($result['burstFlag'])); } //透传日志 $arrInfo = mc_pack_pack2array($result['gSampleLog']); if (false != $arrInfo) { foreach ($arrInfo as $key => $value) { $dispData = new DispData(); $dispData->setKey($key); $dispData->setVal($value); $leftZxUrlInfoLog->addGSampleLog($dispData); } } $urlInfo->setLeftZxLog($leftZxUrlInfoLog); $this->BaiduLog->addUrlInfo($urlInfo); } //as 队列 foreach ($arrResult['item'] as $result) { $urlInfo = new UrlInfo(); $intI++; if ($result['source'] == SRC_AS) { $asUrlInfoLog = new AsUrlInfoLog(); $urlInfo->setIndex($intI); $urlInfo->setUrl(trim($result['offsetInfo']['url'])); $urlInfo->setUrlType(UrlID::AS_ID); $asUrlInfoLog->setWeight($result['urls']['asUrls']['weight']); $asUrlInfoLog->setUrlNo($result['urls']['asUrls']['urlno']); $asUrlInfoLog->setSuburlSign($result['urls']['asUrls']['suburlSign']); $asUrlInfoLog->setSiteSign1($result['urls']['asUrls']['siteSign1']); $asUrlInfoLog->setMixSignsitesign($result['urls']['asUrls']['mixSignSiteSign']); $asUrlInfoLog->setMixSignSex($result['urls']['asUrls']['mixSignSex']); $asUrlInfoLog->setMixSignPol($result['urls']['asUrls']['mixSignPol']); $asUrlInfoLog->setContSign($result['urls']['asUrls']['contSign']); $asUrlInfoLog->setMatchProp($result['urls']['asUrls']['matchProp']); foreach ($result['urls']['asUrls']['strategys'] as $strategy) { $asUrlInfoLog->addStrategys($strategy); } $asUrlInfoLog->setInfo($result['info']); $oriIndex = ($result['info'] & 0xff0000) >> 16; if (0 < $oriIndex && $oriIndex <= $GLOBALS['URLLOG']['MAX_PB_PAGESIZE']) { $asUrlInfoLog->setAuthWeight($result['authWeight']); $asUrlInfoLog->setTimeFactor($result['timeFactor']); $asUrlInfoLog->setPageType($result['pageType']); $asUrlInfoLog->setField($result['field']); } $asUrlInfoLog->setStdStg(intval($result['dispData']['StdStg'])); $asUrlInfoLog->setStdStl(intval($result['dispData']['StdStl'])); $arrInfo = mc_pack_pack2array($result['gSampleLog']); $hasSampleLog = false; if (false != $arrInfo) { foreach ($arrInfo as $key => $value) { $dispData = new DispData(); $dispData->setKey($key); $dispData->setVal($value); $asUrlInfoLog->addGSampleLog($dispData); } $hasSampleLog = true; } if ($hasSampleLog) { foreach ($result['dispData']['addSubArr'] as $arrPromot) { $asUrlInfoLog->addItemSecureId($arrPromot['typeID']); } } if (isset($result['dispData']['as_struct_exp']) && !empty($result['dispData']['as_struct_exp'])) { $asUrlInfoLog->setFakeImageShow($result['dispData']['as_struct_exp']); } if (isset($result['dispData']['src_id']) && !empty($result['dispData']['src_id'])) { $asUrlInfoLog->setSrcId($result['dispData']['src_id']); } if (isset($result['dispData']['img']) && !empty($result['dispData']['img'])) { $asUrlInfoLog->setImg((bool) $result['dispData']['img']); } if (isset($result['dispData']['FavURL']) && !empty($result['dispData']['FavURL'])) { $asUrlInfoLog->setFavUrl('1'); } //打印title和showTime $asUrlInfoLog->setTitle(urlencode($result['offsetInfo']['title'])); $asUrlInfoLog->setShowTime($result['timeShow']); $asUrlInfoLog->setNewTimeFactor(sprintf('%s', $result['dispData']['newTimeFactor'])); if (isset($result['burstFlag']) && !empty($result['burstFlag'])) { $asUrlInfoLog->setBurstFlag(intval($result['burstFlag'])); } //大V包括安全联盟和百度身份认证两部分 if (!empty($result['dispData']['safeUnion'])) { $asUrlInfoLog->setSafeUnion('1'); } if (!empty($result['dispData']['eVcard'])) { $asUrlInfoLog->setEVcard('1'); } //官网标记 if (!empty($result['dispData']['sublink']['is_main'])) { $asUrlInfoLog->setIsMain('1'); } if (!empty($result['dispData']['womcEntranceFilter'])) { $dispData = new DispData(); $dispData->setKey('pjzx_show'); $dispData->setVal('1'); $asUrlInfoLog->addGSampleLog($dispData); } if (empty($result['dispData']['ASURL'])) { $asUrlInfoLog->setAsUrl('0'); } else { $asUrlInfoLog->setAsUrl('1'); } $asUrlInfoLog->setClickWeight($result['clickWeight']); $asUrlInfoLog->setTemplateName($result['dispData']['templateName']); if (Util::getConf('/feature', 'FEATURE_LIST/ABSTRACT_PB_LOG/TURN') === 'ON') { $asUrlInfoLog->setAbstractTxt($result['offsetInfo']['summary']); } $itemUriInfo = $this->addItemUriInfo($result); if (!empty($itemUriInfo)) { $asUrlInfoLog->setItemUriInfo($itemUriInfo); } $urlInfo->setAsLog($asUrlInfoLog); $this->BaiduLog->addUrlInfo($urlInfo); } else { if ($result['source'] == SRC_SP) { $urlInfo = new UrlInfo(); $urlInfo->setIndex($intI); $urlInfo->setUrl(trim($result['resUrl'])); $urlInfo->setUrlType(UrlID::SP_ID); $spUrlInfoLog = new SpUrlInfoLog(); $spUrlInfoLog->setIsClAs($result['isClAs']); $spUrlInfoLog->setDispLog($result['dispLog']); foreach ($result['strategyS'] as $arrStrategys) { $spUrlInfoLog->addStrategys($arrStrategys); } //透传数据 $arrInfo = mc_pack_pack2array($result['gSampleLog']); if (false != $arrInfo) { foreach ($arrInfo as $key => $value) { $dispData = new DispData(); $dispData->setKey($key); $dispData->setVal($value); $spUrlInfoLog->addGSampleLog($dispData); } } if (isset($result['clickWeightMerge']) && !empty($result['clickWeightMerge'])) { $dispData = new DispData(); $dispData->setKey("clickweightmerge"); $dispData->setVal((string) $result['clickWeightMerge']); $spUrlInfoLog->addGSampleLog($dispData); } if (isset($result['dispData']['as_struct_exp']) && !empty($result['dispData']['as_struct_exp'])) { $spUrlInfoLog->setFakeImageShow($result['dispData']['as_struct_exp']); } if (isset($result['burstFlag']) && !empty($result['burstFlag'])) { $spUrlInfoLog->setBurstFlag(intval($result['burstFlag'])); } if (isset($result['dispData']['resultData']['tplData']['title']) && !empty($result['dispData']['resultData']['tplData']['title'])) { $spUrlInfoLog->setTitle(urlencode($result['dispData']['resultData']['tplData']['title'])); } if (isset($result['dispData']['strategy']['tempName']) && !empty($result['dispData']['strategy']['tempName'])) { $spUrlInfoLog->setTempName($result['dispData']['strategy']['tempName']); } foreach ($result['subUrlInfo'] as $arrUrlInfo) { $subUrlInfo = new SubUrlInfo(); $subUrlInfo->setSubUrl($arrUrlInfo['subUrl']); $subUrlInfo->setSubSiteId($arrUrlInfo['subSiteId']); $spUrlInfoLog->addSubUrlInfo($subUrlInfo); } $itemUriInfo = $this->addItemUriInfo($result); if (!empty($itemUriInfo)) { $spUrlInfoLog->setItemUriInfo($itemUriInfo); } $urlInfo->setSpLog($spUrlInfoLog); $this->BaiduLog->addUrlInfo($urlInfo); } else { $urlInfo = new UrlInfo(); $urlInfo->setIndex($intI); $urlInfo->setUrlType(UrlInfo::UNKNOW_ID); } } } $intI = 0; //上侧队列 foreach ($topResult['item'] as $result) { $intI++; $topResultInfo = new ResultInfo(); $topResultInfo->setIndex($intI); $topResultInfo->setUrl(trim($result['itemUrl'])); $topResultInfo->setResultType(ResultID::TOPZHIXINRESULT); $topResult = new ZhiXinResult(); $topResult->setStdStg(intval($result['dispData']['StdStg'])); $topResult->setStdStl(intval($result['dispData']['StdStl'])); $topResult->setCategoryId($result['dispData']['category_id']); $topResult->setCardId($result['dispData']['card_id']); $topResult->setEntityName(urlencode($result['dispData']['entityname'])); $topResult->setUri(urlencode($result['dispData']['uri'])); $topResult->setTempName($result['dispData']['strategy']['tempName']); $itemUriInfo = $this->addItemUriInfo($result); if (!empty($itemUriInfo)) { $topResult->setItemUriInfo($itemUriInfo); } //标题 $topResult->setTitle($result['title']); //透传日志 $arrInfo = mc_pack_pack2array($result['gSampleLog']); if (false != $arrInfo) { foreach ($arrInfo as $key => $value) { $dispData = new DispData(); $dispData->setKey($key); $dispData->setVal($value); $topResult->addGSampleLog($dispData); } } $topResultInfo->setZxResult($topResult); $this->BaiduLog->addResultInfo($topResultInfo); } $intI = 0; //右侧队列 foreach ($rightResult['item'] as $result) { $intI++; $rightResultInfo = new ResultInfo(); $rightResultInfo->setIndex($intI); $rightResultInfo->setUrl(trim($result['itemUrl'])); $rightResultInfo->setResultType(ResultID::RIGHTZHIXINRESULT); $rightResult = new ZhiXinResult(); $rightResult->setStdStg(intval($result['dispData']['StdStg'])); $rightResult->setStdStl(intval($result['dispData']['StdStl'])); $rightResult->setCategoryId($result['dispData']['category_id']); $rightResult->setCardId($result['dispData']['card_id']); $rightResult->setEntityName(urlencode($result['dispData']['entityname'])); $rightResult->setUri(urlencode($result['dispData']['uri'])); $rightResult->setTempName($result['dispData']['strategy']['tempName']); $itemUriInfo = $this->addItemUriInfo($result); if (!empty($itemUriInfo)) { $rightResult->setItemUriInfo($itemUriInfo); } //标题 $rightResult->setTitle($result['title']); //透传日志 $arrInfo = mc_pack_pack2array($result['gSampleLog']); if (false != $arrInfo) { foreach ($arrInfo as $key => $value) { $dispData = new DispData(); $dispData->setKey($key); $dispData->setVal($value); $rightResult->addGSampleLog($dispData); } } $rightResultInfo->setZxResult($rightResult); $this->BaiduLog->addResultInfo($rightResultInfo); } $intI = 0; // ec队列 // 先计算之和并打印 $intNum = 0; foreach ($ecResult['ecResultItem'] as $result) { $intNum += $result['adNum']; } // ec队列不为空时才处理 if ($intNum) { $intI++; $aspResultInfo = new ResultInfo(); $aspResultInfo->setIndex($intI); $aspResultInfo->setResultType(ResultID::ASPRESULT); $aspResult = new AspResult(); $aspResult->setAspUid($arrData['uiData']['ecResult']['aspuid']); $aspResult->setAspSrcId(0); $aspResult->setNumber($intNum); $aspResultInfo->setAdResult($aspResult); $itemUriInfo = $this->addItemUriInfo($result); if (!empty($itemUriInfo)) { $aspResult->setItemUriInfo($itemUriInfo); } $this->BaiduLog->addResultInfo($aspResultInfo); foreach ($ecResult['ecResultItem'] as $result) { $intI++; $aspResultInfo = new ResultInfo(); $aspResultInfo->setIndex($intI); $aspResultInfo->setResultType(ResultID::ASPRESULT); $aspResult = new AspResult(); $aspResult->setAspUid($arrData['uiData']['ecResult']['aspuid']); $aspResult->setAspSrcId($result['id']); $aspResult->setNumber($result['adNum']); $itemUriInfo = $this->addItemUriInfo($result); if (!empty($itemUriInfo)) { $aspResult->setItemUriInfo($itemUriInfo); } $aspResultInfo->setAdResult($aspResult); $this->BaiduLog->addResultInfo($aspResultInfo); } } }
public static function getFilterLink($infoType, $productId, $columnName, $value, $fieldType) { if (Info::$InputType['date'] == $fieldType) { $value = substr($value, 0, 10); } if ('delete_flag' == $columnName) { return '<a href="' . Yii::app()->createUrl('info/index', array('type' => $infoType, 'product_id' => $productId, 'filter' => $columnName . '|' . $value)) . '">' . CHtml::encode(CommonService::getTrueFalseName($value)) . '</a>'; } else { if ('result_value' == $columnName && Info::TYPE_RESULT == $infoType) { $statusColorConfig = ResultInfo::getResultValueColorConfig(); return '<a href="' . Yii::app()->createUrl('info/index', array('type' => $infoType, 'product_id' => $productId, 'filter' => $columnName . '|' . $value)) . '" style="color:' . $statusColorConfig[$value] . '">' . CHtml::encode($value) . '</a>'; } else { if ('priority' == $columnName || 'severity' == $columnName) { $nameArr = array(); if ('priority' == $columnName) { if (Info::TYPE_BUG == $infoType) { $nameArr = ProductService::getBugPriorityOption($productId); } else { if (Info::TYPE_CASE == $infoType) { $nameArr = ProductService::getCasePriorityOption($productId); } } } else { $nameArr = ProductService::getBugSeverityOption($productId); } return '<a href="' . Yii::app()->createUrl('info/index', array('type' => $infoType, 'product_id' => $productId, 'filter' => $columnName . '|' . $value)) . '">' . CHtml::encode(CommonService::getNameByValue($nameArr, $value)) . '</a>'; } else { return '<a href="' . Yii::app()->createUrl('info/index', array('type' => $infoType, 'product_id' => $productId, 'filter' => $columnName . '|' . $value)) . '">' . CHtml::encode($value) . '</a>'; } } } }
public static function model($className = __CLASS__) { return parent::model($className); }