Пример #1
0
 /**
  * Returns an instance of class (singleton pattern implementation).
  *
  * @return BOL_PreferenceDataDao
  */
 public static function getInstance()
 {
     if (self::$classInstance === null) {
         self::$classInstance = new self();
     }
     return self::$classInstance;
 }
Пример #2
0
 public function findUserIdListByPreferenceValues($preferenceValues)
 {
     if (empty($preferenceValues) || !is_array($preferenceValues)) {
         return array();
     }
     $sqlList = array();
     foreach ($preferenceValues as $key => $value) {
         $sqlList[$key] = " SELECT d.userId FROM " . BOL_PreferenceDao::getInstance()->getTableName() . " p\n                LEFT JOIN " . BOL_PreferenceDataDao::getInstance()->getTableName() . " d ON ( d.`key` = p.`key` )\n                WHERE p.`key` = '" . $this->dbo->escapeString($key) . "' AND ( d.value = '" . $this->dbo->escapeString($value) . "' OR d.value IS NULL AND p.defaultValue = '" . $this->dbo->escapeString($value) . "' ) ";
         if (!empty($value) && is_array($value)) {
             $sqlList[$key] = " SELECT d.userId FROM " . BOL_PreferenceDao::getInstance()->getTableName() . " p\n                    LEFT JOIN " . BOL_PreferenceDataDao::getInstance()->getTableName() . " d ON ( d.`key` = p.`key` )\n                    WHERE p.`key` = '" . $this->dbo->escapeString($key) . "' AND ( d.value IN " . $this->dbo->mergeInClause($value) . " OR d.value IS NULL AND p.defaultValue IN " . $this->dbo->mergeInClause($value) . " ) ";
         }
     }
     $sqlString = '';
     $queryNumber = 0;
     foreach ($sqlList as $sql) {
         if ($queryNumber > 0) {
             $sqlString .= ' UNION ';
         }
         $queryNumber++;
         $sqlString .= $sql;
     }
     return $this->dbo->queryForColumnList($sqlString);
 }
Пример #3
0
 public function deletePreferenceDataByUserId($userId)
 {
     return $this->preferenceDataDao->deleteByUserId($userId);
 }