Ignore:
Timestamp:
2010/08/20 18:06:32 (16 years ago)
Author:
nanasess
bzr:base-revision:
[email protected]
bzr:committer:
Kentaro Ohkouchi <[email protected]>
bzr:file-ids:

data/class/SC_CustomerList.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2FSC_CustomerList.php
data/class/batch/SC_Batch_Daily.php 15600@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fbatch%2FSC_Batch_Daily.php
data/class/db/SC_DB_DBFactory.php 15123@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fdb%2FSC_DB_DBFactory.php
data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php 15123@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fdb%2Fdbfactory%2FSC_DB_DBFactory_MYSQL.php
data/class/db/dbfactory/SC_DB_DBFactory_PGSQL.php 15123@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fdb%2Fdbfactory%2FSC_DB_DBFactory_PGSQL.php
data/class/helper/SC_Helper_DB.php 15176@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fhelper%2FSC_Helper_DB.php
data/class/pages/admin/LC_Page_Admin_Home.php 15287@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2FLC_Page_Admin_Home.php
data/class/pages/admin/mail/LC_Page_Admin_Mail_Sendmail.php 16321@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fmail%2FLC_Page_Admin_Mail_Sendmail.php
data/class/pages/admin/order/LC_Page_Admin_Order.php 15584@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Forder%2FLC_Page_Admin_Order.php
data/class/pages/admin/order/LC_Page_Admin_Order_ProductSelect.php 17293@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Fcomu-ver2%2Fdata%2Fclass%2Fpages%2Fadmin%2Forder%2FLC_Page_Admin_Order_ProductSelect.php
data/class/pages/admin/products/LC_Page_Admin_Products.php 15342@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fproducts%2FLC_Page_Admin_Products.php
data/class/pages/admin/products/LC_Page_Admin_Products_ProductSelect.php 15557@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fproducts%2FLC_Page_Admin_Products_ProductSelect.php
data/class/pages/mypage/LC_Page_Mypage_DownLoad.php 18777@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Fversion-2_5-dev%2Fdata%2Fclass%2Fpages%2Fmypage%2FLC_Page_Mypage_DownLoad.php
data/class/util/SC_Utils.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Futil%2FSC_Utils.php
test/class/db/SC_DB_DBFactory_Test.php 15242@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Ftest%2Fclass%2Fdb%2FSC_DB_DBFactory_Test.php
bzr:mapping-version:
v4
bzr:repository-uuid:
1e3b908f-19a9-db11-a64c-001125224ba8
bzr:revision-id:
[email protected]
bzr:revno:
2272
bzr:revprop:branch-nick:
branches/version-2_5-dev
bzr:root:
branches/version-2_5-dev
bzr:text-parents:

data/class/SC_CustomerList.php [email protected]
data/class/batch/SC_Batch_Daily.php [email protected]
data/class/db/SC_DB_DBFactory.php [email protected]
data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php [email protected]
data/class/db/dbfactory/SC_DB_DBFactory_PGSQL.php [email protected]
data/class/helper/SC_Helper_DB.php [email protected]
data/class/pages/admin/LC_Page_Admin_Home.php [email protected]
data/class/pages/admin/mail/LC_Page_Admin_Mail_Sendmail.php [email protected]
data/class/pages/admin/order/LC_Page_Admin_Order.php [email protected]
data/class/pages/admin/order/LC_Page_Admin_Order_ProductSelect.php [email protected]
data/class/pages/admin/products/LC_Page_Admin_Products.php [email protected]
data/class/pages/admin/products/LC_Page_Admin_Products_ProductSelect.php [email protected]
data/class/pages/mypage/LC_Page_Mypage_DownLoad.php svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:18777
data/class/util/SC_Utils.php [email protected]
test/class/db/SC_DB_DBFactory_Test.php [email protected]
bzr:timestamp:
2010-08-20 18:06:26.950999975 +0900
bzr:user-agent:
bzr2.1.2+bzr-svn1.0.2
svn:original-date:
2010-08-20T09:06:26.951000Z
Message:

DB_TYPE で条件分岐している箇所の抽象化(#801)

  • DB_TYPE で条件分岐している箇所の修正
  • SC_DB_DBFactory に関数を追加
    • getOrderYesterdaySql()
    • getOrderMonthSql()
    • getReviewYesterdaySql()
    • getSendHistoryWhereStartdateSql()
    • concatColumn()
  • SC_Utils::sfManualEscape() の実装を SC_Query::quote() に変更
Location:
branches/version-2_5-dev/data/class/db
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/db/SC_DB_DBFactory.php

    r18775 r18789  
    101101 
    102102    /** 
     103     * 昨日の売上高・売上件数を算出する SQL を返す. 
     104     * 
     105     * @param string $method SUM または COUNT 
     106     * @return string 昨日の売上高・売上件数を算出する SQL 
     107     */ 
     108    function getOrderYesterdaySql($method) { return null; } 
     109 
     110    /** 
     111     * 当月の売上高・売上件数を算出する SQL を返す. 
     112     * 
     113     * @param string $method SUM または COUNT 
     114     * @return string 当月の売上高・売上件数を算出する SQL 
     115     */ 
     116    function getOrderMonthSql($method) { return null; } 
     117 
     118    /** 
     119     * 昨日のレビュー書き込み件数を算出する SQL を返す. 
     120     * 
     121     * @return string 昨日のレビュー書き込み件数を算出する SQL 
     122     */ 
     123    function getReviewYesterdaySql() { return null; } 
     124 
     125    /** 
     126     * メール送信履歴の start_date の検索条件の SQL を返す. 
     127     * 
     128     * @return string 検索条件の SQL 
     129     */ 
     130    function getSendHistoryWhereStartdateSql() { return null; } 
     131 
     132    /** 
     133     * 文字列連結を行う. 
     134     * 
     135     * @param array $columns 連結を行うカラム名 
     136     * @return string 連結後の SQL 文 
     137     */ 
     138    function concatColumn($columns) { return null; } 
     139 
     140    /** 
    103141     * インデックスの検索結果を配列で返す. 
    104142     * 
  • branches/version-2_5-dev/data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php

    r18784 r18789  
    9898 
    9999    /** 
     100     * 昨日の売上高・売上件数を算出する SQL を返す. 
     101     * 
     102     * @param string $method SUM または COUNT 
     103     * @return string 昨日の売上高・売上件数を算出する SQL 
     104     */ 
     105    function getOrderYesterdaySql($method) { 
     106        return "SELECT ".$method."(total) FROM dtb_order " 
     107              . "WHERE del_flg = 0 " 
     108                . "AND cast(create_date as date) = DATE_ADD(current_date, interval -1 day) " 
     109                . "AND status <> " . ORDER_CANCEL; 
     110    } 
     111 
     112    /** 
     113     * 当月の売上高・売上件数を算出する SQL を返す. 
     114     * 
     115     * @param string $method SUM または COUNT 
     116     * @return string 当月の売上高・売上件数を算出する SQL 
     117     */ 
     118    function getOrderMonthSql($method) { 
     119        return "SELECT ".$method."(total) FROM dtb_order " 
     120              . "WHERE del_flg = 0 " 
     121                . "AND date_format(create_date, '%Y/%m') = ? " 
     122                . "AND date_format(create_date, '%Y/%m/%d') <> date_format(now(), '%Y/%m/%d') " 
     123                . "AND status <> " . ORDER_CANCEL; 
     124    } 
     125 
     126    /** 
     127     * 昨日のレビュー書き込み件数を算出する SQL を返す. 
     128     * 
     129     * @return string 昨日のレビュー書き込み件数を算出する SQL 
     130     */ 
     131    function getReviewYesterdaySql() { 
     132        return "SELECT COUNT(*) FROM dtb_review AS A " 
     133          . "LEFT JOIN dtb_products AS B " 
     134                 . "ON A.product_id = B.product_id " 
     135              . "WHERE A.del_flg = 0 " 
     136                . "AND B.del_flg = 0 " 
     137                . "AND cast(A.create_date as date) = DATE_ADD(current_date, interval -1 day) " 
     138                . "AND cast(A.create_date as date) != current_date"; 
     139    } 
     140 
     141    /** 
     142     * メール送信履歴の start_date の検索条件の SQL を返す. 
     143     * 
     144     * @return string 検索条件の SQL 
     145     */ 
     146    function getSendHistoryWhereStartdateSql() { 
     147        return "start_date BETWEEN date_add(now(),INTERVAL -5 minute) AND date_add(now(),INTERVAL 5 minute)"; 
     148    } 
     149 
     150    /** 
     151     * 文字列連結を行う. 
     152     * 
     153     * @param array $columns 連結を行うカラム名 
     154     * @return string 連結後の SQL 文 
     155     */ 
     156    function concatColumn($columns) { 
     157        $sql = "concat("; 
     158        $i = 0; 
     159        $total = count($columns); 
     160        foreach ($columns as $column) { 
     161            $sql .= $column; 
     162            if ($i < $total -1) { 
     163                $sql .= ", "; 
     164            } 
     165            $i++; 
     166        } 
     167        $sql .= ")"; 
     168        return $sql; 
     169    } 
     170 
     171    /** 
    100172     * インデックスの検索結果を配列で返す. 
    101173     * 
     
    148220    function findTableNames($expression = "") { 
    149221        $objQuery =& SC_Query::getSingletonInstance(); 
    150         $sql = "SHOW TABLES LIKE ?"; 
    151         $arrColList = $objQuery->getAll($sql, array("%" . $expression . "%")); 
     222        $sql = "SHOW TABLES LIKE ". $objQuery->quote("%" . $expression . "%"); 
     223        $arrColList = $objQuery->getAll($sql); 
    152224        $arrColList = SC_Utils_Ex::sfswaparray($arrColList, false); 
    153225        return $arrColList[0]; 
  • branches/version-2_5-dev/data/class/db/dbfactory/SC_DB_DBFactory_PGSQL.php

    r18784 r18789  
    7878             . "     AND relname = " . $objQuery->quote($table_name) 
    7979             . "GROUP BY relname"; 
     80    } 
     81 
     82    /** 
     83     * 昨日の売上高・売上件数を算出する SQL を返す. 
     84     * 
     85     * @param string $method SUM または COUNT 
     86     * @return string 昨日の売上高・売上件数を算出する SQL 
     87     */ 
     88    function getOrderYesterdaySql($method) { 
     89        return "SELECT ".$method."(total) FROM dtb_order " 
     90              . "WHERE del_flg = 0 " 
     91                . "AND to_char(create_date,'YYYY/MM/DD') = to_char(now() - interval '1 days','YYYY/MM/DD') " 
     92                . "AND status <> " . ORDER_CANCEL; 
     93    } 
     94 
     95    /** 
     96     * 当月の売上高・売上件数を算出する SQL を返す. 
     97     * 
     98     * @param string $method SUM または COUNT 
     99     * @return string 当月の売上高・売上件数を算出する SQL 
     100     */ 
     101    function getOrderMonthSql($method) { 
     102        return "SELECT ".$method."(total) FROM dtb_order " 
     103              . "WHERE del_flg = 0 " 
     104                . "AND to_char(create_date,'YYYY/MM') = ? " 
     105                . "AND to_char(create_date,'YYYY/MM/DD') <> to_char(now(),'YYYY/MM/DD') " 
     106                . "AND status <> " . ORDER_CANCEL; 
     107    } 
     108 
     109    /** 
     110     * 昨日のレビュー書き込み件数を算出する SQL を返す. 
     111     * 
     112     * @return string 昨日のレビュー書き込み件数を算出する SQL 
     113     */ 
     114    function getReviewYesterdaySql() { 
     115        return "SELECT COUNT(*) FROM dtb_review AS A " 
     116          . "LEFT JOIN dtb_products AS B " 
     117                 . "ON A.product_id = B.product_id " 
     118              . "WHERE A.del_flg=0 " 
     119                . "AND B.del_flg = 0 " 
     120                . "AND to_char(A.create_date, 'YYYY/MM/DD') = to_char(now() - interval '1 days','YYYY/MM/DD') " 
     121                . "AND to_char(A.create_date,'YYYY/MM/DD') != to_char(now(),'YYYY/MM/DD')"; 
     122    } 
     123 
     124    /** 
     125     * メール送信履歴の start_date の検索条件の SQL を返す. 
     126     * 
     127     * @return string 検索条件の SQL 
     128     */ 
     129    function getSendHistoryWhereStartdateSql() { 
     130        return "start_date BETWEEN current_timestamp + '- 5 minutes' AND current_timestamp + '5 minutes'"; 
     131    } 
     132 
     133    /** 
     134     * 文字列連結を行う. 
     135     * 
     136     * @param array $columns 連結を行うカラム名 
     137     * @return string 連結後の SQL 文 
     138     */ 
     139    function concatColumn($columns) { 
     140        $sql = ""; 
     141        $i = 0; 
     142        $total = count($columns); 
     143        foreach ($columns as $column) { 
     144            $sql .= $column; 
     145            if ($i < $total -1) { 
     146                $sql .= " || "; 
     147            } 
     148            $i++; 
     149        } 
     150        return $sql; 
    80151    } 
    81152 
Note: See TracChangeset for help on using the changeset viewer.