- Timestamp:
- 2013/05/02 18:11:36 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_12-dev/data/class/helper/SC_Helper_Customer.php
r22569 r22796 30 30 * @version $Id$ 31 31 */ 32 class SC_Helper_Customer 33 { 32 class SC_Helper_Customer { 34 33 35 34 /** 36 35 * 会員情報の登録・編集処理を行う. 37 36 * 38 * @param array $arr Data登録するデータの配列(SC_FormParamのgetDbArrayの戻り値)37 * @param array $array 登録するデータの配列(SC_FormParamのgetDbArrayの戻り値) 39 38 * @param array $customer_id nullの場合はinsert, 存在する場合はupdate 40 39 * @access public 41 40 * @return integer 登録編集したユーザーのcustomer_id 42 41 */ 43 function sfEditCustomerData($arrData, $customer_id = null) 44 { 42 function sfEditCustomerData($array, $customer_id = null) { 45 43 $objQuery =& SC_Query_Ex::getSingletonInstance(); 46 44 $objQuery->begin(); 47 45 48 $old_version_flag = false; 49 50 $arrData['update_date'] = 'CURRENT_TIMESTAMP'; // 更新日 46 $array['update_date'] = 'CURRENT_TIMESTAMP'; // 更新日 51 47 52 48 // salt値の生成(insert時)または取得(update時)。 … … 55 51 56 52 // 旧バージョン(2.11未満)からの移行を考慮 57 if (strlen($salt) === 0) { 58 $old_version_flag = true; 59 } 53 if (empty($salt)) $old_version_flag = true; 60 54 } else { 61 55 $salt = SC_Utils_Ex::sfGetRandomString(10); 62 $arr Data['salt'] = $salt;56 $array['salt'] = $salt; 63 57 } 64 58 //-- パスワードの更新がある場合は暗号化 65 if ($arr Data['password'] == DEFAULT_PASSWORD or $arrData['password'] == '') {59 if ($array['password'] == DEFAULT_PASSWORD or $array['password'] == '') { 66 60 //更新しない 67 unset($arr Data['password']);61 unset($array['password']); 68 62 } else { 69 63 // 旧バージョン(2.11未満)からの移行を考慮 … … 71 65 $is_password_updated = true; 72 66 $salt = SC_Utils_Ex::sfGetRandomString(10); 73 $arr Data['salt'] = $salt;74 } 75 76 $arr Data['password'] = SC_Utils_Ex::sfGetHashString($arrData['password'], $salt);67 $array['salt'] = $salt; 68 } 69 70 $array['password'] = SC_Utils_Ex::sfGetHashString($array['password'], $salt); 77 71 } 78 72 //-- 秘密の質問の更新がある場合は暗号化 79 if ($arr Data['reminder_answer'] == DEFAULT_PASSWORD or $arrData['reminder_answer'] == '') {73 if ($array['reminder_answer'] == DEFAULT_PASSWORD or $array['reminder_answer'] == '') { 80 74 //更新しない 81 unset($arr Data['reminder_answer']);75 unset($array['reminder_answer']); 82 76 83 77 // 旧バージョン(2.11未満)からの移行を考慮 … … 85 79 // パスワードが更新される場合は、平文になっている秘密の質問を暗号化する 86 80 $reminder_answer = $objQuery->get('reminder_answer', 'dtb_customer', 'customer_id = ? ', array($customer_id)); 87 $arr Data['reminder_answer'] = SC_Utils_Ex::sfGetHashString($reminder_answer, $salt);81 $array['reminder_answer'] = SC_Utils_Ex::sfGetHashString($reminder_answer, $salt); 88 82 } 89 83 } else { … … 91 85 if ($old_version_flag && !$is_password_updated) { 92 86 // パスワードが更新されない場合は、平文のままにする 93 unset($arr Data['salt']);87 unset($array['salt']); 94 88 } else { 95 $arr Data['reminder_answer'] = SC_Utils_Ex::sfGetHashString($arrData['reminder_answer'], $salt);89 $array['reminder_answer'] = SC_Utils_Ex::sfGetHashString($array['reminder_answer'], $salt); 96 90 } 97 91 } … … 100 94 if (is_numeric($customer_id)) { 101 95 // 編集 102 $objQuery->update('dtb_customer', $arr Data, 'customer_id = ? ', array($customer_id));96 $objQuery->update('dtb_customer', $array, 'customer_id = ? ', array($customer_id)); 103 97 } else { 104 98 // 新規登録 … … 106 100 // 会員ID 107 101 $customer_id = $objQuery->nextVal('dtb_customer_customer_id'); 108 $arr Data['customer_id'] = $customer_id;102 $array['customer_id'] = $customer_id; 109 103 // 作成日 110 if (is_null($arr Data['create_date'])) {111 $arr Data['create_date'] = 'CURRENT_TIMESTAMP';112 } 113 $objQuery->insert('dtb_customer', $arr Data);104 if (is_null($array['create_date'])) { 105 $array['create_date'] = 'CURRENT_TIMESTAMP'; 106 } 107 $objQuery->insert('dtb_customer', $array); 114 108 } 115 109 116 110 $objQuery->commit(); 117 118 111 return $customer_id; 119 112 } … … 127 120 * @return array 最終ポイントの配列 128 121 */ 129 function sfGetCustomerPoint($order_id, $use_point, $add_point) 130 { 131 $objQuery =& SC_Query_Ex::getSingletonInstance(); 132 122 function sfGetCustomerPoint($order_id, $use_point, $add_point) { 123 $objQuery =& SC_Query_Ex::getSingletonInstance(); 133 124 $arrRet = $objQuery->select('customer_id', 'dtb_order', 'order_id = ?', array($order_id)); 134 125 $customer_id = $arrRet[0]['customer_id']; … … 146 137 $point = ''; 147 138 } 148 149 139 return array($point, $total_point); 150 140 } … … 158 148 * @return integer 0:登録可能 1:登録済み 2:再登録制限期間内削除ユーザー 3:自分のアドレス 159 149 */ 160 function sfCheckRegisterUserFromEmail($email) 161 { 150 function sfCheckRegisterUserFromEmail($email) { 162 151 $objCustomer = new SC_Customer_Ex(); 163 152 $objQuery =& SC_Query_Ex::getSingletonInstance(); … … 207 196 * @return boolean メールアドレスが重複する場合 true 208 197 */ 209 function sfCustomerEmailDuplicationCheck($customer_id, $email) 210 { 198 function sfCustomerEmailDuplicationCheck($customer_id, $email) { 211 199 $objQuery =& SC_Query_Ex::getSingletonInstance(); 212 200 … … 218 206 || strlen($arrResults['email_mobile']) >= 1 && $email === $arrResults['email_mobile'] 219 207 ; 220 221 208 return $return; 222 209 } … … 230 217 * @return array 会員情報の配列を返す 231 218 */ 232 function sfGetCustomerData($customer_id, $mask_flg = true) 233 { 219 function sfGetCustomerData($customer_id, $mask_flg = true) { 234 220 $objQuery =& SC_Query_Ex::getSingletonInstance(); 235 221 … … 253 239 $arrForm['reminder_answer'] = DEFAULT_PASSWORD; 254 240 } 255 256 241 return $arrForm; 257 242 } … … 268 253 * @return array 対象会員データ 269 254 */ 270 function sfGetCustomerDataFromId($customer_id, $add_where = '', $arrAddVal = array()) 271 { 255 function sfGetCustomerDataFromId($customer_id, $add_where = '', $arrAddVal = array()) { 272 256 $objQuery =& SC_Query_Ex::getSingletonInstance(); 273 274 257 if ($add_where == '') { 275 258 $where = 'customer_id = ?'; … … 283 266 $arrData = $objQuery->getRow('*', 'dtb_customer', $where, $arrAddVal); 284 267 } 285 286 268 return $arrData; 287 269 } … … 293 275 * @return string 会員登録キーの文字列 294 276 */ 295 function sfGetUniqSecretKey() 296 { 277 function sfGetUniqSecretKey() { 297 278 $objQuery =& SC_Query_Ex::getSingletonInstance(); 298 279 … … 301 282 $exists = $objQuery->exists('dtb_customer', 'secret_key = ?', array($uniqid)); 302 283 } while ($exists); 303 304 284 return $uniqid; 305 285 } … … 313 293 * @return integer 会員ID 314 294 */ 315 function sfGetCustomerId($uniqid, $check_status = false) 316 { 295 function sfGetCustomerId($uniqid, $check_status = false) { 317 296 $objQuery =& SC_Query_Ex::getSingletonInstance(); 318 319 297 $where = 'secret_key = ?'; 320 298 … … 334 312 * @return void 335 313 */ 336 function sfCustomerEntryParam(&$objFormParam, $isAdmin = false) 337 { 314 function sfCustomerEntryParam(&$objFormParam, $isAdmin = false) { 338 315 SC_Helper_Customer_Ex::sfCustomerCommonParam($objFormParam); 339 316 SC_Helper_Customer_Ex::sfCustomerRegisterParam($objFormParam, $isAdmin); … … 359 336 * @return void 360 337 */ 361 function sfCustomerMypageParam(&$objFormParam) 362 { 338 function sfCustomerMypageParam(&$objFormParam) { 363 339 SC_Helper_Customer_Ex::sfCustomerCommonParam($objFormParam); 364 340 SC_Helper_Customer_Ex::sfCustomerRegisterParam($objFormParam, false, true); … … 379 355 * @return void 380 356 */ 381 function sfCustomerCommonParam(&$objFormParam) 382 { 357 function sfCustomerCommonParam(&$objFormParam) { 383 358 $objFormParam->addParam('お名前(姓)', 'name01', STEXT_LEN, 'aKV', array('EXIST_CHECK', 'NO_SPTAB', 'SPTAB_CHECK' ,'MAX_LENGTH_CHECK')); 384 359 $objFormParam->addParam('お名前(名)', 'name02', STEXT_LEN, 'aKV', array('EXIST_CHECK', 'NO_SPTAB', 'SPTAB_CHECK' , 'MAX_LENGTH_CHECK')); … … 406 381 * @return void 407 382 */ 408 function sfCustomerRegisterParam(&$objFormParam, $isAdmin = false, $is_mypage = false) 409 { 410 $objFormParam->addParam('パスワード', 'password', PASSWORD_MAX_LEN, 'a', array('EXIST_CHECK', 'SPTAB_CHECK', 'ALNUM_CHECK')); 383 function sfCustomerRegisterParam(&$objFormParam, $isAdmin = false, $is_mypage = false) { 384 $objFormParam->addParam('パスワード', 'password', STEXT_LEN, 'a', array('EXIST_CHECK', 'SPTAB_CHECK', 'ALNUM_CHECK', 'MAX_LENGTH_CHECK')); 411 385 $objFormParam->addParam('パスワード確認用の質問の答え', 'reminder_answer', STEXT_LEN, 'aKV', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 412 386 $objFormParam->addParam('パスワード確認用の質問', 'reminder', STEXT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); … … 420 394 if (SC_Display_Ex::detectDevice() !== DEVICE_TYPE_MOBILE) { 421 395 $objFormParam->addParam('メールアドレス', 'email', null, 'a', array('NO_SPTAB', 'EXIST_CHECK', 'EMAIL_CHECK', 'SPTAB_CHECK' ,'EMAIL_CHAR_CHECK')); 422 $objFormParam->addParam('パスワード(確認)', 'password02', PASSWORD_MAX_LEN, 'a', array('EXIST_CHECK', 'SPTAB_CHECK' ,'ALNUM_CHECK'), '', false);396 $objFormParam->addParam('パスワード(確認)', 'password02', STEXT_LEN, 'a', array('EXIST_CHECK', 'SPTAB_CHECK' ,'ALNUM_CHECK'), '', false); 423 397 if (!$isAdmin) { 424 398 $objFormParam->addParam('メールアドレス(確認)', 'email02', null, 'a', array('NO_SPTAB', 'EXIST_CHECK', 'EMAIL_CHECK','SPTAB_CHECK' , 'EMAIL_CHAR_CHECK'), '', false); … … 437 411 * @return array エラーの配列 438 412 */ 439 function sfCustomerEntryErrorCheck(&$objFormParam) 440 { 413 function sfCustomerEntryErrorCheck(&$objFormParam) { 441 414 $objErr = SC_Helper_Customer_Ex::sfCustomerCommonErrorCheck($objFormParam); 442 415 $objErr = SC_Helper_Customer_Ex::sfCustomerRegisterErrorCheck($objErr); … … 467 440 * @return array エラーの配列 468 441 */ 469 function sfCustomerMypageErrorCheck(&$objFormParam, $isAdmin = false) 470 { 442 function sfCustomerMypageErrorCheck(&$objFormParam, $isAdmin = false) { 471 443 472 444 $objFormParam->toLower('email_mobile'); … … 485 457 unset($objErr->arrErr['reminder_answer']); 486 458 } 487 488 459 return $objErr->arrErr; 489 460 } … … 496 467 * @return array エラー情報の配列 497 468 */ 498 function sfCustomerCommonErrorCheck(&$objFormParam) 499 { 469 function sfCustomerCommonErrorCheck(&$objFormParam) { 500 470 $objFormParam->convParam(); 501 471 $objFormParam->toLower('email'); … … 521 491 * @return SC_CheckError $objErr エラー情報 522 492 */ 523 function sfCustomerRegisterErrorCheck(&$objErr, $isAdmin = false) 524 { 493 function sfCustomerRegisterErrorCheck(&$objErr, $isAdmin = false) { 525 494 $objErr->doFunc(array('生年月日', 'year', 'month', 'day'), array('CHECK_BIRTHDAY')); 526 $objErr->doFunc(array('パスワード', 'password', PASSWORD_MIN_LEN, PASSWORD_MAX_LEN) ,array('NUM_RANGE_CHECK'));527 495 528 496 if (SC_Display_Ex::detectDevice() !== DEVICE_TYPE_MOBILE) { 529 497 if (!$isAdmin) { 498 $objErr->doFunc(array('パスワード', 'password', PASSWORD_MIN_LEN, PASSWORD_MAX_LEN) ,array('SPTAB_CHECK', 'NUM_RANGE_CHECK')); 530 499 $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', 'email', 'email02') ,array('EQUAL_CHECK')); 531 500 } … … 538 507 $objErr->doFunc(array('携帯メールアドレス', 'email_mobile'), array('CHECK_REGIST_CUSTOMER_EMAIL', 'MOBILE_EMAIL_CHECK')); 539 508 } 540 541 509 return $objErr; 542 510 } … … 549 517 * @return void 550 518 */ 551 function sfSetSearchParam(&$objFormParam) 552 { 519 function sfSetSearchParam(&$objFormParam) { 553 520 $objFormParam->addParam('会員ID', 'search_customer_id', ID_MAX_LEN, 'n', array('NUM_CHECK','MAX_LENGTH_CHECK')); 554 521 $objFormParam->addParam('お名前', 'search_name', STEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); … … 599 566 * @return array エラー配列 600 567 */ 601 function sfCheckErrorSearchParam(&$objFormParam) 602 { 568 function sfCheckErrorSearchParam(&$objFormParam) { 603 569 // パラメーターの基本チェック 604 570 $arrErr = $objFormParam->checkError(); 605 // エラーチェック対象のパラメータ取得606 $array = $objFormParam->getHashArray();607 571 // 拡張エラーチェック初期化 608 $objErr = new SC_CheckError_Ex($ array);572 $objErr = new SC_CheckError_Ex($objFormParam->getHashArray()); 609 573 // 拡張エラーチェック 610 574 $objErr->doFunc(array('誕生日(開始日)', 'search_b_start_year', 'search_b_start_month', 'search_b_start_day'), array('CHECK_DATE')); … … 622 586 if (SC_Utils_Ex::sfIsInt($array['search_buy_total_from']) 623 587 && SC_Utils_Ex::sfIsInt($array['search_buy_total_to']) 624 && $array['search_buy_total_from'] > $array[' search_buy_total_to']588 && $array['search_buy_total_from'] > $array['buy_total_to'] 625 589 ) { 626 590 $objErr->arrErr['search_buy_total_from'] .= '※ 購入金額の指定範囲が不正です。'; … … 636 600 $arrErr = array_merge($arrErr, $objErr->arrErr); 637 601 } 638 639 602 return $arrErr; 640 603 } … … 647 610 * @return array( integer 全体件数, mixed 会員データ一覧配列, mixed SC_PageNaviオブジェクト) 648 611 */ 649 function sfGetSearchData($arrParam, $limitMode = '') 650 { 612 function sfGetSearchData($arrParam, $limitMode = '') { 651 613 $objQuery =& SC_Query_Ex::getSingletonInstance(); 652 614 $objSelect = new SC_CustomerList_Ex($arrParam, 'customer'); 653 654 615 $page_max = SC_Utils_Ex::sfGetSearchPageMax($arrParam['search_page_max']); 655 616 $disp_pageno = $arrParam['search_pageno']; … … 682 643 * @return boolean 仮会員の場合 true 683 644 */ 684 public function checkTempCustomer($login_email) 685 { 686 $objQuery =& SC_Query_Ex::getSingletonInstance(); 687 645 public function checkTempCustomer($login_email) { 646 $objQuery =& SC_Query_Ex::getSingletonInstance(); 688 647 $where = 'email = ? AND status = 1 AND del_flg = 0'; 689 648 $exists = $objQuery->exists('dtb_customer', $where, array($login_email)); 690 691 649 return $exists; 692 650 } 693 694 /**695 * 会員を削除する処理696 *697 * @param integer $customer_id 会員ID698 * @return boolean true:成功 false:失敗699 */700 public static function delete($customer_id)701 {702 $arrData = SC_Helper_Customer_Ex::sfGetCustomerDataFromId($customer_id, 'del_flg = 0');703 if (SC_Utils_Ex::isBlank($arrData)) {704 //対象となるデータが見つからない。705 return false;706 }707 // XXXX: 仮会員は物理削除となっていたが論理削除に変更。708 $arrVal = array(709 'del_flg' => '1',710 );711 SC_Helper_Customer_Ex::sfEditCustomerData($arrVal, $customer_id);712 return true;713 }714 651 }
Note: See TracChangeset
for help on using the changeset viewer.