field('code, value') ->where('parent_id','>',0) ->select(); foreach ($res as $row) { $arr[$row['code']] = $row['value']; } /* 對數值型設置處理 */ $arr['watermark_alpha'] = intval($arr['watermark_alpha']); $arr['market_price_rate'] = floatval($arr['market_price_rate']); $arr['integral_scale'] = floatval($arr['integral_scale']); //$arr['integral_percent'] = floatval($arr['integral_percent']); $arr['cache_time'] = intval($arr['cache_time']); $arr['thumb_width'] = intval($arr['thumb_width']); $arr['thumb_height'] = intval($arr['thumb_height']); $arr['image_width'] = intval($arr['image_width']); $arr['image_height'] = intval($arr['image_height']); $arr['best_number'] = !empty($arr['best_number']) && intval($arr['best_number']) > 0 ? intval($arr['best_number']) : 3; $arr['new_number'] = !empty($arr['new_number']) && intval($arr['new_number']) > 0 ? intval($arr['new_number']) : 3; $arr['hot_number'] = !empty($arr['hot_number']) && intval($arr['hot_number']) > 0 ? intval($arr['hot_number']) : 3; $arr['promote_number'] = !empty($arr['promote_number']) && intval($arr['promote_number']) > 0 ? intval($arr['promote_number']) : 3; $arr['top_number'] = intval($arr['top_number']) > 0 ? intval($arr['top_number']) : 10; $arr['history_number'] = intval($arr['history_number']) > 0 ? intval($arr['history_number']) : 5; $arr['comments_number'] = intval($arr['comments_number']) > 0 ? intval($arr['comments_number']) : 5; $arr['article_number'] = intval($arr['article_number']) > 0 ? intval($arr['article_number']) : 5; $arr['page_size'] = intval($arr['page_size']) > 0 ? intval($arr['page_size']) : 10; $arr['bought_goods'] = intval($arr['bought_goods']); $arr['goods_name_length'] = intval($arr['goods_name_length']); $arr['top10_time'] = intval($arr['top10_time']); $arr['goods_gallery_number'] = intval($arr['goods_gallery_number']) ? intval($arr['goods_gallery_number']) : 5; $arr['no_picture'] = !empty($arr['no_picture']) ? str_replace('../', './', $arr['no_picture']) : 'images/no_picture.gif'; // 修改默認商品圖片的路徑 $arr['qq'] = !empty($arr['qq']) ? $arr['qq'] : ''; $arr['ww'] = !empty($arr['ww']) ? $arr['ww'] : ''; $arr['default_storage'] = isset($arr['default_storage']) ? intval($arr['default_storage']) : 1; $arr['min_goods_amount'] = isset($arr['min_goods_amount']) ? floatval($arr['min_goods_amount']) : 0; $arr['one_step_buy'] = empty($arr['one_step_buy']) ? 0 : 1; $arr['invoice_type'] = empty($arr['invoice_type']) ? array('type' => array(), 'rate' => array()) : unserialize($arr['invoice_type']); $arr['show_order_type'] = isset($arr['show_order_type']) ? $arr['show_order_type'] : 0; // 顯示方式默認為列表方式 $arr['help_open'] = isset($arr['help_open']) ? $arr['help_open'] : 1; // 顯示方式默認為列表方式 //限定語言項 $lang_array = array('zh_cn', 'zh_tw', 'en_us'); if (empty($arr['lang']) || !in_array($arr['lang'], $lang_array)) { $arr['lang'] = 'zh_tw'; // 默認語言為簡體中文 } if (empty($arr['integrate_code'])) { $arr['integrate_code'] = 'shop'; // 默認的會員整合插件為 shop } // write_static_cache('shop_config', $arr); // } // else // { // $arr = $data; // } return $arr; } function getConfigValue($key){ return Db::name('shop_config') ->where('code',$key) ->value('value'); } function getIdBySsoId($id){ $id =Db::name('users') ->where('sso_user_id',$id) ->value('user_id'); if(!$id){ return false; } return $id; } function getIdByLid($lid){ $id =Db::name('user') ->where('line_id',$lid) ->value('id'); if(!$id){ return false; } return $id; } function getUseridByCuid($cuid){ $id =Db::name('user') ->where('uniqid',$cuid) ->value('user_id'); if(!$id){ return false; } return $id; } function genUniqid($prefix='mc'){ $is_get = false; while(!$is_get){ $uniqid = $prefix.uniqid(); $result1 = Db::name('user') ->where('user_id',$uniqid) ->count(); $result2 = Db::name('precard') ->where('user_id',$uniqid) ->count(); if(!$result1 && !$result2){ $is_get=true; } } return $uniqid; } /** * 取得開通序號 * * @author Wayne * * @param integer $num 數量 * * @return array */ function genSerialNo(){ $code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $rand = $code[rand(0,25)] .strtoupper(dechex(date('m'))) .date('d').substr(time(),-5) .substr(microtime(),2,5) .sprintf('%02d',rand(0,99)); for( $a = md5( $rand, true ), $s = '0123456789ABCDEFGHIJKLMNOPQRSTUV', $d = '', $f = 0; $f < 8; $g = ord( $a[ $f ] ), $d .= $s[ ( $g ^ ord( $a[ $f + 8 ] ) ) - $g & 0x1F ], $f++ ); return $d; } function encodeRefer($userId) { $sourceString = 'E5FCDG3HQA4B1NOPIJ2RSTUV67MWX89KLYZ'; $code = ''; while ($userId > 0) { $mod = $userId % 35; $userId = ($userId - $mod) / 35; $code = $sourceString[$mod] . $code; } if (strlen($code) < 8) $code = str_pad($code, 8, '0', STR_PAD_LEFT); return $code; } function decodeRefer($code) { $sourceString = 'E5FCDG3HQA4B1NOPIJ2RSTUV67MWX89KLYZ'; //移除左側的 0 if (strrpos($code, '0') !== false) $code = substr($code, strrpos($code, '0') + 1); $len = strlen($code); $code = strrev($code); $num = 0; for ($i = 0; $i < $len; $i++) { $num += strpos($sourceString, $code[$i]) * pow(35, $i); } return $num; } /** * 功能:生成二維碼 * @param string $qrData 手機掃描後要跳轉的網址 * @param string $qrLevel 預設糾錯比例 分為L、M、Q、H四個等級,H代表最高糾錯能力 * @param string $qrSize 二維碼圖大小,1-10可選,數字越大圖片尺寸越大 * @param string $savePath 圖片儲存路徑 * @param string $savePrefix 圖片名稱字首 */ function createQRcode($savePath, $qrData = 'QR Code :)', $qrLevel = 'L', $qrSize = 4, $savePrefix = 'qrcode') { if (!isset($savePath)) return ''; //設定生成png圖片的路徑 $PNG_TEMP_DIR = $savePath; //檢測並建立生成資料夾 if (!file_exists($PNG_TEMP_DIR)) { mkdir($PNG_TEMP_DIR); } $filename = $PNG_TEMP_DIR . '/qrcode_temp.png'; $errorCorrectionLevel = 'L'; if (isset($qrLevel) && in_array($qrLevel, ['L', 'M', 'Q', 'H'])) { $errorCorrectionLevel = $qrLevel; } $matrixPointSize = 4; if (isset($qrSize)) { $matrixPointSize = min(max((int)$qrSize, 1), 10); } if (isset($qrData)) { if (trim($qrData) == '') { die('data cannot be empty!'); } //生成檔名 檔案路徑+圖片名字字首+md5(名稱)+.png $filename = $PNG_TEMP_DIR . $savePrefix . '_qrcode.png'; //開始生成 \PHPQRCode\QRcode::png($qrData, $filename, $errorCorrectionLevel, $matrixPointSize, 2); } else { //預設生成 \PHPQRCode\QRcode::png('PHP QR Code :)', $filename, $errorCorrectionLevel, $matrixPointSize, 2); } if (file_exists($PNG_TEMP_DIR . basename($filename))) return basename($filename); else return FALSE; } function genQrCode($url,$user_id,$prefix) { //$savePath 圖片儲存路徑 $savePath = $_SERVER['DOCUMENT_ROOT'].'/storage/'.$user_id.'/'; //路徑 $webPath = str_replace($_SERVER['DOCUMENT_ROOT'], '', $savePath); //$qrData 手機掃描後要跳轉的網址 $qrData = $url; // $qrLevel 預設糾錯比例 分為L、M、Q、H四個等級,H代表最高糾錯能力 $qrLevel = 'H'; //$qrSize 二維碼圖大小,1-10可選,數字越大圖片尺寸越大 $qrSize = '4'; // $savePrefix 圖片名稱字首 $savePrefix = $user_id.'_'.$prefix; $pic = ''; $filename = createQRcode($savePath, $qrData, $qrLevel, $qrSize, $savePrefix); if($filename = createQRcode($savePath, $qrData, $qrLevel, $qrSize, $savePrefix)){ $pic = $webPath . $filename; return $pic; } return false; } function asc_trim($val){ if(!is_array($val)){ return trim($val); }else{ return $val; } } /** * 得到新訂單號 * * @return string */ function get_order_sn() { /* 選擇一個隨機的方案 */ mt_srand((double) microtime() * 1000000); $sn = date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT); /* 檢查訂單號是否重複 */ $is_existed = Db::name('order_info') ->where('order_sn',$sn) ->count(); if ($is_existed != '0') get_order_sn(); return $sn; } function getUserIdByUid($uid){ return Db::name('users')->where('sso_user_id',$uid)->value('user_id'); }