Ignore:
Timestamp:
2012/11/06 12:03:56 (11 years ago)
Author:
pineray
Message:

.#1960 (page クラスからビジネスロジックを分離)

支払方法の管理ページクラスにあるロジックをヘルパークラスへ移動.

Location:
branches/version-2_12-dev/data/class
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/helper/SC_Helper_Payment.php

    r22076 r22078  
    3232{ 
    3333    /** 
     34     * 支払方法の情報を取得. 
     35     *  
     36     * @param integer $payment_id 支払方法ID 
     37     * @return array 
     38     */ 
     39    public function get($payment_id) { 
     40        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     41        $where = 'payment_id = ?'; 
     42        $arrRet = $objQuery->select('*', 'dtb_payment', $where, array($payment_id)); 
     43        return $arrRet[0]; 
     44    } 
     45 
     46    /** 
     47     * 支払方法一覧の取得. 
     48     * 
     49     * @return array 
     50     */ 
     51    public function getList() { 
     52        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     53        $col = 'payment_id, payment_method, charge, rule_max, upper_rule, note, fix, charge_flg'; 
     54        $where = 'del_flg = 0'; 
     55        $table = 'dtb_payment'; 
     56        $objQuery->setOrder('rank DESC'); 
     57        $arrRet = $objQuery->select($col, $table, $where); 
     58        return $arrRet; 
     59    } 
     60 
     61    /** 
     62     * 支払方法の登録. 
     63     *  
     64     * @param array $sqlval 
     65     * @return void 
     66     */ 
     67    public function save($sqlval) { 
     68        $payment_id = $sqlval['payment_id']; 
     69 
     70        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     71        // 新規登録 
     72        if ($payment_id == '') { 
     73            // INSERTの実行 
     74            $sqlval['rank'] = $objQuery->max('rank', 'dtb_payment') + 1; 
     75            $sqlval['create_date'] = 'CURRENT_TIMESTAMP'; 
     76            $sqlval['payment_id'] = $objQuery->nextVal('dtb_payment_payment_id'); 
     77            $objQuery->insert('dtb_payment', $sqlval); 
     78        // 既存編集 
     79        } else { 
     80            unset($sqlval['creator_id']); 
     81            $where = 'payment_id = ?'; 
     82            $objQuery->update('dtb_payment', $sqlval, $where, array($payment_id)); 
     83        } 
     84    } 
     85 
     86    /** 
     87     * 支払方法の削除. 
     88     *  
     89     * @param integer $payment_id 支払方法ID 
     90     * @return void 
     91     */ 
     92    public function delete($payment_id) { 
     93        $objDb = new SC_Helper_DB_Ex(); 
     94        // ランク付きレコードの削除 
     95        $objDb->sfDeleteRankRecord('dtb_payment', 'payment_id', $payment_id); 
     96    } 
     97 
     98    /** 
     99     * 支払方法の表示順をひとつ上げる. 
     100     *  
     101     * @param integer $payment_id 支払方法ID 
     102     * @return void 
     103     */ 
     104    public function rankUp($payment_id) { 
     105        $objDb = new SC_Helper_DB_Ex(); 
     106        $objDb->sfRankUp('dtb_payment', 'payment_id', $payment_id); 
     107    } 
     108 
     109    /** 
     110     * 支払方法の表示順をひとつ下げる. 
     111     *  
     112     * @param integer $payment_id 支払方法ID 
     113     * @return void 
     114     */ 
     115    public function rankDown($payment_id) { 
     116        $objDb = new SC_Helper_DB_Ex(); 
     117        $objDb->sfRankDown('dtb_payment', 'payment_id', $payment_id); 
     118    } 
     119 
     120    /** 
    34121     * 決済モジュールを使用するかどうか. 
    35122     * 
  • branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Payment.php

    r21867 r22078  
    6868    function action() { 
    6969 
    70         $objDb = new SC_Helper_DB_Ex(); 
    71  
    72         $mode = $this->getMode(); 
     70        $objPayment = new SC_Helper_Payment_Ex(); 
    7371 
    7472        if (!empty($_POST)) { 
    7573            $objFormParam = new SC_FormParam_Ex(); 
    76             $objFormParam->addParam('配送業者ID', 'payment_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 
     74            $objFormParam->addParam('支払方法ID', 'payment_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 
    7775            $objFormParam->setParam($_POST); 
    7876            $objFormParam->convParam(); 
    7977 
    80             $arrErr = $objFormParam->checkError(); 
     78            $this->arrErr = $objFormParam->checkError(); 
    8179            if (!empty($this->arrErr['payment_id'])) { 
    8280                trigger_error('', E_USER_ERROR); 
     
    8987            case 'delete': 
    9088                // ランク付きレコードの削除 
    91                 $objDb->sfDeleteRankRecord('dtb_payment', 'payment_id', $post['payment_id']); 
     89                $objPayment->delete($post['payment_id']); 
    9290 
    9391                // 再表示 
     
    9593                break; 
    9694            case 'up': 
    97                 $objDb->sfRankUp('dtb_payment', 'payment_id', $post['payment_id']); 
     95                $objPayment->rankUp($post['payment_id']); 
    9896 
    9997                // 再表示 
     
    10199                break; 
    102100            case 'down': 
    103                 $objDb->sfRankDown('dtb_payment', 'payment_id', $post['payment_id']); 
     101                $objPayment->rankDown($post['payment_id']); 
    104102 
    105103                // 再表示 
     
    107105                break; 
    108106        } 
    109         $this->arrDelivList = $objDb->sfGetIDValueList('dtb_deliv', 'deliv_id', 'service_name'); 
    110         $this->arrPaymentListFree = $this->lfGetPaymentList(); 
     107        $this->arrPaymentListFree = $objPayment->getList(); 
    111108 
    112109    } 
     
    120117        parent::destroy(); 
    121118    } 
    122  
    123     /** 
    124      * 支払方法一覧の取得. 
    125      */ 
    126     function lfGetPaymentList() { 
    127         $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    128         $col = 'payment_id, payment_method, charge, rule_max, upper_rule, note, fix, charge_flg'; 
    129         $where = 'del_flg = 0'; 
    130         $table = 'dtb_payment'; 
    131         $objQuery->setOrder('rank DESC'); 
    132         $arrRet = $objQuery->select($col, $table, $where); 
    133         return $arrRet; 
    134     } 
    135119} 
  • branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_PaymentInput.php

    r21894 r22078  
    7373    function action() { 
    7474 
     75        $objPayment = new SC_Helper_Payment_Ex(); 
    7576        $objFormParam = new SC_FormParam_Ex(); 
    7677        $mode = $this->getMode(); 
     
    8990                $objFormParam->convParam(); 
    9091                $post = $objFormParam->getHashArray(); 
    91                 $this->arrErr = $this->lfCheckError($post, $objFormParam); 
     92                $this->arrErr = $this->lfCheckError($post, $objFormParam, $objPayment); 
    9293                $this->charge_flg = $post['charge_flg']; 
    9394                if (count($this->arrErr) == 0) { 
    94                     $this->lfRegistData($post['payment_id'], $_SESSION['member_id'], $objFormParam); 
     95                    $this->lfRegistData($objFormParam, $objPayment, $_SESSION['member_id'], $post['payment_id']); 
    9596                    $this->objUpFile->moveTempFile(); 
    9697                    $this->tpl_onload = "location.href = './payment.php'; return;"; 
     
    127128                $post = $objFormParam->getHashArray(); 
    128129                if (count($this->arrErr) == 0) { 
    129                     $arrRet = $this->lfGetData($post['payment_id']); 
     130                    $arrRet = $objPayment->get($post['payment_id']); 
    130131 
    131132                    $objFormParam->addParam('支払方法', 'payment_method', STEXT_LEN, 'KVa', array('EXIST_CHECK', 'MAX_LENGTH_CHECK')); 
     
    210211    } 
    211212 
    212     /* DBからデータを読み込む */ 
    213     function lfGetData($payment_id) { 
    214         $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    215         $where = 'payment_id = ?'; 
    216         $arrRet = $objQuery->select('*', 'dtb_payment', $where, array($payment_id)); 
    217         return $arrRet[0]; 
    218     } 
    219  
    220213    /* DBへデータを登録する */ 
    221     function lfRegistData($payment_id = '', $member_id, &$objFormParam) { 
    222  
    223         $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    224         $sqlval = $objFormParam->getHashArray(); 
    225         $arrRet = $this->objUpFile->getDBFileList(); // ファイル名の取得 
    226         $sqlval = array_merge($sqlval, $arrRet); 
     214    function lfRegistData(&$objFormParam, SC_Helper_Payment_Ex $objPayment, $member_id, $payment_id = '') { 
     215 
     216        $sqlval = array_merge($objFormParam->getHashArray(), $this->objUpFile->getDBFileList()); 
    227217        $sqlval['update_date'] = 'CURRENT_TIMESTAMP'; 
     218        $sqlval['payment_id'] = $payment_id; 
     219        $sqlval['creator_id'] = $member_id; 
    228220 
    229221        if ($sqlval['fix'] != '1') { 
     
    231223        } 
    232224 
    233         // 新規登録 
    234         if ($payment_id == '') { 
    235             // INSERTの実行 
    236             $sqlval['creator_id'] = $member_id; 
    237             $sqlval['rank'] = $objQuery->max('rank', 'dtb_payment') + 1; 
    238             $sqlval['create_date'] = 'CURRENT_TIMESTAMP'; 
    239             $sqlval['payment_id'] = $objQuery->nextVal('dtb_payment_payment_id'); 
    240             $objQuery->insert('dtb_payment', $sqlval); 
    241         // 既存編集 
    242         } else { 
    243             $where = 'payment_id = ?'; 
    244             $objQuery->update('dtb_payment', $sqlval, $where, array($payment_id)); 
    245         } 
     225        $objPayment->save($sqlval); 
    246226    } 
    247227 
     
    249229 
    250230    /* 入力内容のチェック */ 
    251     function lfCheckError($post, $objFormParam) { 
     231    function lfCheckError($post, $objFormParam, SC_Helper_Payment_Ex $objPayment) { 
    252232 
    253233        // DBのデータを取得 
    254         $arrPaymentData = $this->lfGetData($post['payment_id']); 
     234        $arrPaymentData = $objPayment->get($post['payment_id']); 
    255235 
    256236        // 手数料を設定できない場合には、手数料を0にする 
Note: See TracChangeset for help on using the changeset viewer.