Example #1
0
 /**
  * get reports
  *
  * @param string $infoType
  * @param integer $productId
  * @param string $where
  * @param array $selected
  * @return array
  */
 public function getReports($infoType, $productId, $selected = array())
 {
     $reports = array();
     $productIds = Yii::app()->user->getState('visit_product_id');
     $condition = 'product_id IN (' . join(',', $productIds) . ')';
     if (isset($productId)) {
         $condition .= ' AND product_id = ' . $productId;
     }
     $searchRowArr = Yii::app()->user->getState($productId . '_' . $infoType . '_search');
     if (null == $searchRowArr) {
         $searchRowArr = array();
     }
     $searchFieldConfig = SearchService::getSearchableFields($infoType, $productId);
     $result = SqlService::baseGetGroupQueryStr($searchFieldConfig, $infoType, $searchRowArr);
     if (CommonService::$ApiResult['SUCCESS'] == $result['status']) {
         $condition .= ' AND ' . $result['detail'];
     }
     $reportDatas = $this->getReportData($infoType, $productId, $condition, $selected);
     foreach ($reportDatas as $key => $data) {
         $show = false;
         if (!empty($selected) && in_array($key, $selected)) {
             $show = true;
         }
         $reports[] = new Report($infoType, $productId, $data['type'], $condition, $data, $show);
     }
     return $reports;
 }
Example #2
0
 private function getGridShowContent($searchFieldConfig, $showFieldArr, $infoType, $productId, $filterColumn, $whereStr, $isAllBasicField = false)
 {
     $pageSize = CommonService::getPageSize();
     $viewColumnArr = SearchService::getViewColumnArr($searchFieldConfig, $showFieldArr, $infoType, $productId, $filterColumn);
     $totalNum = SqlService::getTotalFoundNum($infoType, $productId, $whereStr, $isAllBasicField);
     $sql = SqlService::getRawDataSql($searchFieldConfig, $infoType, $productId, $this->getSqlSelectFieldArr($infoType, $showFieldArr), $whereStr, $isAllBasicField);
     $dataProvider = new CSqlDataProvider($sql, array('totalItemCount' => $totalNum, 'sort' => array('defaultOrder' => array('id' => true), 'multiSort' => true, 'attributes' => array_merge($showFieldArr, array(Info::MARK))), 'pagination' => array('pageSize' => $pageSize)));
     $sortArr = $dataProvider->getSort()->getDirections();
     Yii::app()->user->setState($productId . '_' . $infoType . '_sortArr', $sortArr);
     $preNextSessionSql = SqlService::getPreNextSql($searchFieldConfig, $infoType, $productId, $whereStr, Yii::app()->user->getState($productId . '_' . $infoType . '_sortArr', $isAllBasicField));
     Yii::app()->user->setState($productId . '_' . $infoType . '_prenextsql', $preNextSessionSql);
     return array('viewColumnArr' => $viewColumnArr, 'dataProvider' => $dataProvider, 'totalNum' => $totalNum);
 }
<?php

require 'SQL/sql_controller.php';
require 'objects/car.php';
$t = new Car('admin', 'KIY7364', 'Wolks', 'Voyage G2');
$s = serialize($t);
$query = "insert into s \n          (user, object)\n          values \n          ('admin','{$s}');";
$go = mysql_query($query);
if ($go) {
    echo "ma";
} else {
    echo "mu";
}
$query = SqlService::BuildSelecFromWhere('object', 's', 'user', 'admin');
$go = SqlService::mySqlResult($query);
$us = unserialize($go);
echo $us->getIdUser() . "<br>";
echo $us->getMark();
/*$write = fopen('sql.txt', 'w');
fwrite($write, $s);
fclose($write);

$open = fopen('sql.txt', 'r');
$string2 = fread($open, filesize('sql.txt'));


*/
Example #4
0
 public function createService(ServiceLocatorInterface $services)
 {
     $service = new SqlService();
     $service->setDbAdapter($services->get('DbAdapter'));
     return $service;
 }
Example #5
0
 /**
  * check if show field is legal
  *
  * @author                                  youzhao.zxw<*****@*****.**>
  * @param   string      $infoType           bug,case or result
  * @param   array       $searchRowArr       search condition
  * @param   int         $productId          product id
  * @param   array       $showFieldArr       show field array
  * @param   array       $orderArr           order array
  * @param   string      $filterSql          filter sql
  * @param   int         $pageSize           page size
  * @param   int         $currentPageSize    current page size
  * @return  array                           export date result
  */
 public static function getExportData($infoType, $searchRowArr, $productId = null, $showFieldArr = null, $orderArr = null, $filterSql = null, $pageSize = null, $currentPage = null)
 {
     $resultInfo = array();
     if (!empty($productId)) {
         $accessIdArr = Yii::app()->user->getState('visit_product_id');
         if (!in_array($productId, $accessIdArr)) {
             $resultInfo['status'] = CommonService::$ApiResult['FAIL'];
             $resultInfo['detail'] = Yii::t('Product', 'No access right to this product');
             return $resultInfo;
         }
     }
     $searchFieldConfig = SearchService::getSearchableFields($infoType, $productId);
     $checkSearchRowResult = self::checkSearchRowField($searchFieldConfig, $searchRowArr);
     if ('' != $checkSearchRowResult) {
         $resultInfo['status'] = CommonService::$ApiResult['FAIL'];
         $resultInfo['detail'] = $checkSearchRowResult;
         return $resultInfo;
     }
     if (!empty($showFieldArr)) {
         $showFieldCheckResult = self::checkShowField($searchFieldConfig, $showFieldArr);
         if ('' != $showFieldCheckResult) {
             $resultInfo['status'] = CommonService::$ApiResult['FAIL'];
             $resultInfo['detail'] = $showFieldCheckResult;
             return $resultInfo;
         }
     }
     $getSqlResult = SqlService::baseGetGroupQueryStr($searchFieldConfig, $infoType, $searchRowArr);
     if (CommonService::$ApiResult['FAIL'] == $getSqlResult['status']) {
         $resultInfo = $getSqlResult;
         return $resultInfo;
     }
     $whereStr = $getSqlResult['detail'];
     if (!empty($filterSql)) {
         $whereStr .= ' and ' . $filterSql;
     }
     if (empty($showFieldArr)) {
         $showFieldArr = array_keys($searchFieldConfig);
         $showFieldArr = array_diff($showFieldArr, array(Info::MARK));
     }
     $allRelatedFieldArr = array();
     foreach ($searchRowArr as $searchRowTmp) {
         $allRelatedFieldArr[] = $searchRowTmp['field'];
     }
     $isAllBasicField = SearchService::isAllBasicField(SearchService::getBasicFieldArr($infoType), array_merge($showFieldArr, $allRelatedFieldArr));
     $sql = SqlService::getRawDataSql($searchFieldConfig, $infoType, $productId, $showFieldArr, $whereStr, $isAllBasicField);
     $totalNum = SqlService::getTotalFoundNum($infoType, $productId, $whereStr, $isAllBasicField);
     if (empty($pageSize)) {
         $pageSize = $totalNum;
     }
     if ($pageSize > 5000) {
         $resultInfo['status'] = CommonService::$ApiResult['FAIL'];
         $resultInfo['detail'] = 'items can not exceed 5000';
         return $resultInfo;
     }
     if (!isset($currentPage)) {
         $currentPage = 1;
     } else {
         if (0 == $currentPage) {
             $resultInfo['status'] = CommonService::$ApiResult['FAIL'];
             $resultInfo['detail'] = 'page should start from 1';
             return $resultInfo;
         }
         $maxPage = ceil($totalNum / $pageSize);
         if ($currentPage > $maxPage && 0 != $maxPage) {
             $resultInfo['status'] = CommonService::$ApiResult['FAIL'];
             $resultInfo['detail'] = 'current page [' . $currentPage . '] is greater than the max page [' . $maxPage . ']';
             return $resultInfo;
         }
     }
     if (empty($orderArr)) {
         $orderArr = array('{{bug_info_view}}.id' => true);
     }
     $dataProvider = new CSqlDataProvider($sql, array('totalItemCount' => $totalNum, 'sort' => array('defaultOrder' => $orderArr, 'attributes' => array_keys($searchFieldConfig)), 'pagination' => array('pageSize' => $pageSize, 'currentPage' => $currentPage - 1)));
     $rawData = $dataProvider->getData();
     $rawData = SqlService::handleRawData($rawData, $infoType, $searchFieldConfig, $showFieldArr, $productId);
     $rawData = self::getExportComment($infoType, $rawData, $productId);
     $resultInfo['status'] = CommonService::$ApiResult['SUCCESS'];
     $resultInfo['detail'] = $rawData;
     return $resultInfo;
 }