Ejemplo n.º 1
0
    /**
     * セッションテーブルに追加します
     */
    public function Result_HotenUpload_insertSession($code, &$data)
    {
        $tables = new CampaignDbTables($code);
        $name = $tables->getTableName_Session();
        $db =& $this->_core->getDBForUpdate();
        $sql = <<<SQL
insert into {$name}
(anken_id,media_id,reg_time)
values
(?,?,now())
SQL;
        $param = array($data['anken_id'], $data['media_id']);
        $db->execute($sql, $param);
        return mysql_insert_id();
    }
Ejemplo n.º 2
0
    /**
     * セッション情報を取得します。
     * @param string $code キャンペーンコード
     * @param string $sessionId セッションID
     * @param string $deviceCd デバイスコード
     */
    public function &Result_HotenActionIdUpload_getSession($code, $sessionId, $deviceCd)
    {
        $db =& $this->_core->getDB();
        $tables = new CampaignDbTables($code);
        $table_name_session = $tables->getTableName_Session();
        $addField = "";
        if ($deviceCd == 2) {
            $addField = ",  mob_carrier, mob_uid";
        }
        $sql = <<<SQL
select
 session_id,
 anken_id,
 media_id,
 media_user_id,
 cookie_id,
 reg_time,
 remote_add,
 referer,
 lpo_pattern_id,
 bid,
 option1,
 option2,
 option3,
 option4,
 option5
 {$addField}
from {$table_name_session}
where session_id=?
SQL;
        $param = array($sessionId);
        $data =& $db->query($sql, $param);
        if (count($data) != 1) {
            throw new SessionNotFountException();
        }
        return $data[0];
    }
Ejemplo n.º 3
0
    /**
     * デバイス対応制御。
     */
    public function checkDevice($ankenId)
    {
        $db =& $this->_core->getDB();
        $anken =& $this->getAnkenData($ankenId);
        $tables = new CampaignDbTables($anken['campaign_code']);
        $name_media = $tables->getTableName_Media();
        $name_seika = $tables->getTableName_Seika();
        $name_session = $tables->getTableName_Session();
        //テーブル存在するかどうかを判断する
        $sql = <<<SQL
SHOW TABLES LIKE '{$name_media}' 
SQL;
        $data = $db->query($sql);
        if (empty($data)) {
            return false;
        } else {
            // カラム(smartphone_url, $seika_device, $session_device)存在するかどうかを判断する
            $sql = <<<SQL
Describe {$name_media} smartphone_url
SQL;
            $smartphone_url = $db->query($sql);
        }
        $sql = <<<SQL
SHOW TABLES LIKE '{$name_seika}' 
SQL;
        $data = $db->query($sql);
        if (empty($data)) {
            return false;
        } else {
            $sql = <<<SQL
Describe {$name_seika} device
SQL;
            $seika_device = $db->query($sql);
        }
        $sql = <<<SQL
SHOW TABLES LIKE '{$name_session}' 
SQL;
        $data = $db->query($sql);
        if (empty($data)) {
            return false;
        } else {
            $sql = <<<SQL
Describe {$name_session} device
SQL;
            $session_device = $db->query($sql);
        }
        if (empty($smartphone_url) == false && empty($seika_device) == false && empty($session_device) == false) {
            return true;
        } else {
            return false;
        }
    }
Ejemplo n.º 4
0
    /**
     * セッションIDから提携メディア情報を取得します。
     * @param string $code 案件コード
     * @param string $sessionId セッションID
     */
    public function &Result_HotenItemActionIdUpload_getTeikeiMediaBySessionId($code, $sessionId)
    {
        $db =& $this->_core->getDB();
        try {
            // 該当提携メディア
            $tables = new CampaignDbTables($code);
            $mediaTbl = $tables->getTableName_Media();
            $sessionTbl = $tables->getTableName_Session();
            $sql = <<<SQL
select
price,
oroshi_price,
extra_price,
extra_oroshi,
oroshi_rounding_type
from {$mediaTbl}
where
media_id=
(select media_id from {$sessionTbl}
 where session_id = ?)
SQL;
            $param = array($sessionId);
            $data =& $db->query($sql, $param);
        } catch (Exception $e) {
            // テーブルなし
            throw new MediaNotFountException('sql exception', $e);
        }
        if (count($data) != 1) {
            // 提携メディア特定できない
            throw new MediaNotFountException();
        }
        return $data[0];
    }