Example #1
0
 public function home()
 {
     global $db, $config, $scodeModel;
     // 初始化資料庫連結介面
     $db = new mysql($config["db"]);
     $db->connect();
     $scodeModel = new ScodeModel();
     $this->str = new convertString();
     $ret['status'] = 0;
     if (empty($_POST['scsn']) || empty($_POST['scpw'])) {
         //S码序号、S码密码不能空白
         $ret['status'] = 2;
     } else {
         $query = "SELECT * \r\n\t\t\tFROM `{$config['db'][1]['dbname']}`.`{$config['default_prefix']}scode_item` \r\n\t\t\tWHERE \r\n\t\t\t\tprefixid = '{$config['default_prefix_id']}' \r\n\t\t\t\tAND serial = '{$_POST['scsn']}' \r\n\t\t\t\tAND switch = 'Y' \r\n\t\t\t";
         $table = $db->getQueryRecord($query);
         $scode_item = isset($table['table']['record'][0]) ? $table['table']['record'][0] : '';
         if (empty($scode_item)) {
             //'不存在'
             $ret['status'] = 3;
         } elseif ($_POST['scpw'] !== $scode_item['pwd']) {
             //'密码错误'
             $ret['status'] = 4;
         } elseif ($scode_item['verified'] == 'Y') {
             //已激活
             $ret['status'] = 5;
         }
     }
     if (empty($ret['status'])) {
         //S码激活
         $query = "UPDATE `{$config['db'][1]['dbname']}`.`{$config['default_prefix']}scode_item` \r\n\t\t\tSET `verified`='Y', userid='{$_SESSION['auth_id']}'\r\n\t\t\tWHERE \r\n\t\t\t\t`prefixid` = '{$config['default_prefix_id']}'\r\n\t\t\t\tAND serial = '{$_POST['scsn']}'\r\n\t\t\t";
         $db->query($query);
         //實體S碼序號
         $scode_promote['spid'] = $scode_item['spid'];
         $scode_promote['behav'] = 'e';
         $scode_promote['promote_amount'] = 1;
         $scode_promote['num'] = $scode_item['amount'];
         //插入S碼收取記錄
         $scodeModel->insert_scode($scode_promote, $_SESSION['auth_id'], $_POST['scsn']);
         //回傳:
         $ret['status'] = 200;
     }
     echo json_encode($ret);
 }
Example #2
0
 public function mk_history($product)
 {
     $time_start = microtime(true);
     global $db, $config;
     $r['err'] = '';
     $r['winner'] = '';
     $r['rank'] = '';
     $values = array();
     if ($_POST['use_sgift'] == 'Y') {
         /****************************
          * 使用禮券
          ****************************/
         //檢查禮券數量
         $query = "SELECT *\r\n\t\t\tFROM `{$config['db'][1]['dbname']}`.`{$config['default_prefix']}sgift`  \r\n\t\t\tWHERE \r\n\t\t\t\t`prefixid` = '{$config['default_prefix_id']}'\r\n\t\t\t\tAND productid = '{$product['productid']}' \r\n\t\t\t\tAND userid = '{$this->userid}'\r\n\t\t\t\tAND used = 'N'\r\n\t\t\t\tAND switch = 'Y'\r\n\t\t\tORDER BY seq\r\n\t\t\t";
         $table = $db->getQueryRecord($query);
         if (empty($table['table']['record'])) {
             $sgift = 0;
         } else {
             $sgift = count($table['table']['record']);
             //礼券數量
         }
         if ($this->tickets > $sgift) {
             //'礼券不足'
             $r['err'] = 15;
         } else {
             //使用礼券
             for ($i = 0; $i < round($this->tickets); $i++) {
                 $query = "UPDATE `{$config['db'][1]["dbname"]}`.`{$config['default_prefix']}sgift` \r\n\t\t\t\t\tSET \r\n\t\t\t\t\t\tused = 'Y',\r\n\t\t\t\t\t\tused_time = NOW()\r\n\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t`prefixid` = '{$config['default_prefix_id']}'\r\n\t\t\t\t\t\tAND sgiftid = '{$table['table']['record'][$i]['sgiftid']}'\r\n\t\t\t\t\t\tAND switch = 'Y'\r\n\t\t\t\t\t";
                 $res = $db->query($query);
                 //殺價下標歷史記錄(對應下標記錄與下標禮券id)
                 $values[$i] = "\r\n\t\t\t\t\t(\r\n\t\t\t\t\t\t'{$config['default_prefix_id']}',\r\n\t\t\t\t\t\t'{$product['productid']}',\r\n\t\t\t\t\t\t'{$this->userid}',\r\n\t\t\t\t\t\t'{$this->username}',\r\n\t\t\t\t\t\t'0',\r\n\t\t\t\t\t\t'0',\r\n\t\t\t\t\t\t'{$table['table']['record'][$i]['sgiftid']}',\r\n\t\t\t\t\t\t'0',\r\n\t\t\t\t\t\t'" . ($this->price + $i * $this->currency_unit) . "',\r\n\t\t\t\t\t\tNOW()\r\n\t\t\t\t\t)";
             }
             if (empty($values)) {
                 //'下标失败'
                 $r['err'] = -1;
             }
         }
     } elseif ($_POST['pay_type'] == 'oscode') {
         /****************************
          * 使用殺價券 : 為針對某特定商品免費的「下標次數」, 1張殺價券可以下標乙次
          ****************************/
         //檢查殺價券數量
         $query = "SELECT *\r\n\t\t\tFROM `{$config['db'][1]['dbname']}`.`{$config['default_prefix']}oscode`  \r\n\t\t\tWHERE `prefixid` = '{$config['default_prefix_id']}'\r\n\t\t\t\tAND productid = '{$product['productid']}' \r\n\t\t\t\tAND userid = '{$this->userid}'\r\n\t\t\t\tAND used = 'N'\r\n\t\t\t\tAND switch = 'Y'\r\n\t\t\t    ORDER BY oscodeid\r\n\t\t\t";
         $table = $db->getQueryRecord($query);
         if (empty($table['table']['record'])) {
             $osq = 0;
         } else {
             $osq = count($table['table']['record']);
         }
         error_log("[ajax/product/mk_history]: needed ==>" . round($this->tickets));
         error_log("[ajax/product/mk_history]:" . $query . "==>" . $osq);
         if (round($this->tickets) > $osq) {
             //'殺價券不足'
             $r['err'] = 14;
         } else {
             //使用殺價券
             for ($i = 0; $i < round($this->tickets); $i++) {
                 $query = "UPDATE `{$config['db'][1]["dbname"]}`.`{$config['default_prefix']}oscode` \r\n\t\t\t\t\tSET \r\n\t\t\t\t\t\t`behav`='user_saja',\r\n\t\t\t\t\t\tused = 'Y',\r\n\t\t\t\t\t\tused_time = NOW()\r\n\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t`prefixid` = '{$config['default_prefix_id']}'\r\n\t\t\t\t\t\tAND oscodeid = '{$table['table']['record'][$i]['oscodeid']}'\r\n\t\t\t\t\t\tAND switch = 'Y'\r\n\t\t\t\t\t";
                 $res = $db->query($query);
                 //殺價下標歷史記錄(對應下標記錄與 oscodeid)
                 $values[$i] = "\r\n\t\t\t\t\t(\r\n\t\t\t\t\t\t'{$config['default_prefix_id']}',\r\n\t\t\t\t\t\t'{$product['productid']}',\r\n\t\t\t\t\t\t'{$this->userid}',\r\n\t\t\t\t\t\t'{$this->username}',\r\n\t\t\t\t\t\t'0',\r\n\t\t\t\t\t\t'0',\r\n\t\t\t\t\t\t'0',\r\n\t\t\t\t\t\t'{$table['table']['record'][$i]['oscodeid']}',\r\n\t\t\t\t\t\t'" . ($this->price + $i * $this->currency_unit) . "',\r\n\t\t\t\t\t\tNOW()\r\n\t\t\t\t\t)";
             }
             if (empty($values)) {
                 //'下标失败'
                 $r['err'] = -1;
             }
         }
     } elseif ($_POST['pay_type'] == 'scode') {
         /****************************
          * 使用S碼 : 為免費的「下標次數」,1組S碼可以下標乙次
          * 有效時間為30天(發送當天開始算30天),逾期失效不補回。
          ****************************/
         $scodeModel = new ScodeModel();
         $scode = $scodeModel->get_scode($this->userid);
         //檢查S碼數量
         if ($this->tickets > $scode) {
             //'S碼不足'
             $r['err'] = 12;
         } else {
             //確認S碼
             $query = "select scodeid from `{$config['db'][1]["dbname"]}`.`{$config['default_prefix']}scode` \r\n\t\t\t\t\twhere \r\n\t\t\t\t\t`prefixid`='{$config['default_prefix_id']}' \r\n\t\t\t\t\tand `userid` = '{$this->userid}' \r\n\t\t\t\t\tand `behav` != 'a' \r\n\t\t\t\t\tand `closed` = 'N'\r\n\t\t\t\t\tand `remainder` > 0\r\n\t\t\t\t\tand `switch` = 'Y'\r\n\t\t\t\t\torder by insertt asc\r\n\t\t\t\t\tlimit 0, 1\r\n\t\t\t\t";
             $table = $db->getQueryRecord($query);
             //使用S碼
             $query = "update `{$config['db'][1]["dbname"]}`.`{$config['default_prefix']}scode` \r\n\t\t\t\tSET\r\n\t\t\t\t\t`remainder`=`remainder` - {$this->tickets},\r\n\t\t\t\t\t`modifyt`=NOW()\r\n\t\t\t\twhere\r\n\t\t\t\t\t`prefixid`='{$config['default_prefix_id']}' \r\n\t\t\t\t\tand `scodeid` =  '{$table['table']['record'][0]['scodeid']}'\r\n\t\t\t\t\tand `userid` = '{$this->userid}' \r\n\t\t\t\t\tand `behav` != 'a' \r\n\t\t\t\t\tand `closed` = 'N'\r\n\t\t\t\t\tand `remainder` > 0\r\n\t\t\t\t\tand `switch` = 'Y'\r\n\t\t\t\t";
             $res = $db->query($query);
             $query = "INSERT INTO `{$config['db'][1]["dbname"]}`.`{$config['default_prefix']}scode` \r\n\t\t\t\tSET\r\n\t\t\t\t\t`prefixid`='{$config['default_prefix_id']}',\r\n\t\t\t\t\t`userid`='{$this->userid}',\r\n\t\t\t\t\t`behav`='a',\r\n\t\t\t\t\t`productid`='{$product['productid']}',\r\n\t\t\t\t\t`amount`='" . -$this->tickets . "',\r\n\t\t\t\t\t`insertt`=NOW()\r\n\t\t\t\t";
             $res = $db->query($query);
             $scodeid = $db->_con->insert_id;
             for ($i = 0; $i < round($this->tickets); $i++) {
                 //殺價下標歷史記錄(對應下標記錄與使用S碼id)
                 $values[$i] = "\r\n\t\t\t\t\t(\r\n\t\t\t\t\t\t'{$config['default_prefix_id']}',\r\n\t\t\t\t\t\t'{$product['productid']}',\r\n\t\t\t\t\t\t'{$this->userid}',\r\n\t\t\t\t\t\t'{$this->username}',\r\n\t\t\t\t\t\t'0',\r\n\t\t\t\t\t\t'{$scodeid}',\r\n\t\t\t\t\t\t'0',\r\n\t\t\t\t\t\t'0',\r\n\t\t\t\t\t\t'" . ($this->price + $i * $this->currency_unit) . "',\r\n\t\t\t\t\t\tNOW()\r\n\t\t\t\t\t)";
             }
             if (empty($values)) {
                 //'下标失败'
                 $r['err'] = -1;
             }
         }
     } elseif ($_POST['pay_type'] == 'saja_test') {
         /****************************
          * 壓力測試 : 使用殺價券下標, 測試商品productid=2923
          ****************************/
         //檢查殺價券數量
         $query = "SELECT *\r\n\t\t\tFROM `{$config['db'][1]['dbname']}`.`{$config['default_prefix']}oscode`  \r\n\t\t\tWHERE `prefixid` = '{$config['default_prefix_id']}'\r\n\t\t\t\tAND productid = '2923' \r\n\t\t\t\tAND userid = '{$this->userid}'\r\n\t\t\t\tAND used = 'N'\r\n\t\t\t\tAND switch = 'Y'\r\n\t\t\t    ORDER BY oscodeid\r\n\t\t\t";
         $table = $db->getQueryRecord($query);
         if (empty($table['table']['record'])) {
             $osq = 0;
         } else {
             $osq = count($table['table']['record']);
         }
         $osq = 9999;
         // error_log("[ajax/product/saja_test]: needed ==>".round($this->tickets));
         // error_log("[ajax/product/saja_test]:".$query."==>".$osq);
         if (round($this->tickets) > $osq) {
             //'殺價券不足'
             $r['err'] = 14;
         } else {
             //使用殺價券
             for ($i = 0; $i < round($this->tickets); $i++) {
                 $query = "UPDATE `{$config['db'][1]["dbname"]}`.`{$config['default_prefix']}oscode` \r\n\t\t\t\t\tSET behav ='saja_test',\r\n\t\t\t\t\t\tused = 'Y',\r\n\t\t\t\t\t\tused_time = NOW()\r\n\t\t\t\t\tWHERE\r\n\t\t\t\t\t\tprefixid = '{$config['default_prefix_id']}'\r\n\t\t\t\t\t\tAND oscodeid = 0\r\n\t\t\t\t\t\tAND switch = 'Y'\r\n\t\t\t\t\t";
                 $res = $db->query($query);
                 // error_log("[ajax/product/saja_test]:".$query."==>".$res);
                 //殺價下標歷史記錄(對應下標記錄與 oscodeid)
                 $values[$i] = "\r\n\t\t\t\t\t(\r\n\t\t\t\t\t\t'{$config['default_prefix_id']}',\r\n\t\t\t\t\t\t'2923',\r\n\t\t\t\t\t\t'{$_POST['userid']}',\r\n\t\t\t\t\t\t'{$_POST['username']}',\r\n\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t'" . ($this->price + $i * $this->currency_unit) . "',\r\n\t\t\t\t\t\tNOW()\r\n\t\t\t\t\t)";
             }
             if (empty($values)) {
                 //'下标失败'
                 $r['err'] = -1;
             }
         }
     } else {
         /****************************
          * 使用殺幣
          ****************************/
         $scode_fee = 0;
         //檢查殺幣餘額
         $query = "SELECT SUM(amount) as amount\r\n\t\t\tFROM `{$config['db'][1]["dbname"]}`.`{$config['default_prefix']}spoint` \r\n\t\t\tWHERE userid = '{$this->userid}'\r\n\t\t\t\tAND prefixid = '{$config['default_prefix_id']}' \r\n\t\t\t\tAND countryid = '{$this->countryid}'\r\n\t\t\t\tAND switch = 'Y'\r\n\t\t\t";
         $table = $db->getQueryRecord($query);
         $saja_fee = (double) $this->tickets * (double) $product['saja_fee'];
         //下標手續費
         $saja_fee_amount = $saja_fee;
         //下標費用 = 手續費
         if ($saja_fee_amount > (double) $table['table']['record'][0]['amount']) {
             //'杀价币不足'
             $r['err'] = 13;
         } else {
             //使用殺幣
             $query = "INSERT INTO `{$config['db'][1]["dbname"]}`.`{$config['default_prefix']}spoint` \r\n\t\t\t\tSET\r\n\t\t\t\t\t`prefixid`='{$config['default_prefix_id']}',\r\n\t\t\t\t\t`userid`='{$this->userid}',\r\n\t\t\t\t\t`countryid`='{$this->countryid}',\r\n\t\t\t\t\t`behav`='user_saja',\r\n\t\t\t\t\t`amount`='" . -$saja_fee_amount . "',\r\n\t\t\t\t\t`insertt`=NOW()\r\n\t\t\t\t";
             $res = $db->query($query);
             $spointid = $db->_con->insert_id;
             for ($i = 0; $i < round($this->tickets); $i++) {
                 //殺價下標歷史記錄(對應下標記錄與使用殺幣記錄id)
                 $values[$i] = "\r\n\t\t\t\t\t(\r\n\t\t\t\t\t\t'{$config['default_prefix_id']}',\r\n\t\t\t\t\t\t'{$product['productid']}',\r\n\t\t\t\t\t\t'{$this->userid}',\r\n\t\t\t\t\t\t'saja_test',\r\n\t\t\t\t\t\t'{$spointid}',\r\n\t\t\t\t\t\t'0',\r\n\t\t\t\t\t\t'0',\r\n\t\t\t\t\t\t'0',\r\n\t\t\t\t\t\t'" . ($this->price + $i * $this->currency_unit) . "',\r\n\t\t\t\t\t\tNOW()\r\n\t\t\t\t\t)";
             }
             if (empty($values)) {
                 //'下标失败'
                 $r['err'] = -1;
             }
         }
     }
     if (empty($r['err']) && !empty($values)) {
         // 取得目前winner
         $arr_ori_winner = array();
         $arr_ori_winner = $this->getBidWinner($product['productid']);
         if (!empty($arr_ori_winner)) {
             error_log("[ajax/product/mk_history]: ori Winner of " . $arr_ori_winner['prodname'] . " is :" . $arr_ori_winner['nickname']);
         } else {
             error_log("[ajax/product/mk_history]: ori Winner is Empty !");
         }
         //產生下標歷史記錄
         $query = "INSERT INTO `{$config['db'][4]["dbname"]}`.`{$config['default_prefix']}history` \r\n\t\t\t(\r\n\t\t\t\tprefixid,\r\n\t\t\t\tproductid,\r\n\t\t\t\tuserid,\r\n\t\t\t\tnickname,\r\n\t\t\t\tspointid,\r\n\t\t\t\tscodeid,\r\n\t\t\t\tsgiftid,\r\n\t\t\t\toscodeid,\r\n\t\t\t\tprice,\r\n\t\t\t\tinsertt\r\n\t\t\t)\r\n\t\t\tVALUES\r\n\t\t\t" . implode(',', $values) . "\r\n\t\t\t";
         $res = $db->query($query);
         // error_log("[ajax/product]:".$query."-->".$res);
         $r['rank'] = $last_rank;
         // 結標一分鐘以前, 單次下標將提示順位
         if ($_POST['type'] == 'single') {
             if ($product['offtime'] > 0 && $product['offtime'] - $product['now'] > $this->display_rank_time_limit) {
                 // 檢查重複
                 $query = "SELECT count(userid) as cnt \r\n\t\t\t\t\t\t\t   FROM `{$config['db'][4]["dbname"]}`.`{$config['default_prefix']}history` \r\n\t\t\t\t\t\t\t  WHERE productid='{$product['productid']}' \r\n\t\t\t\t\t\t\t\tAND price={$_POST['price']} \r\n\t\t\t\t\t\t\t\tAND switch='Y' ";
                 $table = $db->getQueryRecord($query);
                 $dup_cnt = $table['table']['record'][0]['cnt'];
                 // error_log("[ajax/product]Dup chk: ".$query." --> ".$dup_cnt);
                 if ($dup_cnt > 1) {
                     // 重複出價
                     $r['rank'] = -1;
                 } else {
                     if ($dup_cnt <= 1) {
                         // 無重複出價
                         $query1 = "SELECT count(*) as cnt FROM  `{$config['db'][4]["dbname"]}`.`v_unique_price` \r\n\t\t\t\t\t\t\t\t   WHERE productid='{$product['productid']}' AND price<{$_POST['price']} ";
                         error_log("[ajax/product]rank chk cnt : " . $query1);
                         $table1 = $db->getQueryRecord($query1);
                         $r['rank'] = $table1['table']['record'][0]['cnt'];
                         error_log("[ajax/product]rank : " . $r['rank']);
                     }
                 }
             }
         }
         // 結標一分鐘以前, 區間下標10標以上, 將提示該區間內唯一出价個數, 及該次下標的唯一最低價
         if ($_POST['type'] == 'range') {
             if ($product['offtime'] > 0 && $product['offtime'] - $product['now'] > $this->display_rank_time_limit) {
                 $r['total_num'] = $this->tickets;
                 error_log("range tickets : " . $this->tickets);
                 // 顯示提示
                 // 取得該區間內唯一出價的個數
                 if ($this->tickets > 1) {
                     $query = "SELECT * FROM saja_shop.saja_history sh JOIN saja_shop.v_unique_price up \r\n\t\t\t\t\t\t\t\t   ON sh.productid=up.productid AND sh.price=up.price AND sh.productid='{$product['productid']}' AND sh.switch='Y' \r\n\t\t\t\t\t\t\t\tWHERE sh.switch='Y'  \r\n\t\t\t\t\t\t\t\t  AND sh.productid='{$product['productid']}' \r\n\t\t\t\t\t\t\t\t  AND sh.price between {$_POST['price_start']} AND {$_POST['price_stop']}\r\n\t\t\t\t\t\t\t\t  AND sh.userid='{$this->userid}' ORDER BY sh.price asc ";
                     error_log("[ajax/product]range chk: " . $query);
                     $table = $db->getQueryRecord($query);
                     error_log("[ajax/product]range chk count:" . count($table['table']['record']) . "-->lowest" . $table['table']['record'][0]['price']);
                     if (empty($table['table']['record'])) {
                         // 無唯一出价
                         $r['num_uniprice'] = 0;
                         $r['lowest_uniprice'] = 0;
                     } else {
                         // 有唯一出价
                         $r['num_uniprice'] = count($table['table']['record']);
                         $r['lowest_uniprice'] = sprintf("%01.2f", $table['table']['record'][0]['price']);
                     }
                 } else {
                     // 不提示
                     $r['total_num'] = -1;
                 }
             } else {
                 // 不提示
                 $r['total_num'] = -1;
             }
         }
         // 結標一分鐘以前, 得標者改變會發微信通知(openid)
         if ($product['offtime'] > 0 && $product['offtime'] - $product['now'] > $this->display_rank_time_limit) {
             $arr_new_winner = array();
             $arr_new_winner = $this->getBidWinner($product['productid']);
             $r['winner'] = empty($arr_new_winner['nickname']) ? '无' : $arr_new_winner['nickname'];
             $redis = new Redis();
             $redis->connect('127.0.0.1');
             $redis->set('PROD:' . $product['productid'] . ':BIDDER', $r['winner']);
             if ($_POST['pay_type'] != 'saja_test') {
                 if ($arr_ori_winner['userid'] != $arr_new_winner['userid']) {
                     $options['appid'] = APP_ID;
                     $options['appsecret'] = APP_SECRET;
                     $wx = new WeixinChat($options);
                     if (!empty($arr_new_winner['openid'])) {
                         $msg = '【目前中标通知】 恭喜你!刚刚干掉之前<a href="http://www.shajiawang.com/wx_auth.php?jdata=gotourl:/site/product/saja/?productid=' . $arr_new_winner['productid'] . '">《' . $arr_new_winner['prodname'] . '》</a>的中标者。请持续关注,以确保领先地位。';
                         $wx->sendCustomMessage($arr_new_winner['openid'], $msg, 'text');
                         $wx->sendCustomMessage('oNmoZtxOu0pKnlUjZjO0beFCSfEY', $msg, 'text');
                     }
                     if (!empty($arr_ori_winner['openid'])) {
                         if (!empty($arr_new_winner['userid'])) {
                             $msg = '【紧急通知】原本你中标的<a href="http://www.shajiawang.com/wx_auth.php?jdata=gotourl:/site/product/saja/?productid=' . $arr_ori_winner['productid'] . '">《' . $arr_ori_winner['prodname'] . '》</a>在刚刚被某个小伙伴给抢走了!赶紧去看看是哪个家伙!再把它抢回来吧!';
                         } else {
                             if (empty($arr_new_winner['userid'])) {
                                 $msg = '【紧急通知】原本你中标的<a href="http://www.shajiawang.com/wx_auth.php?jdata=gotourl:/site/product/saja/?productid=' . $arr_ori_winner['productid'] . '">《' . $arr_ori_winner['prodname'] . '》</a>目前无人中标 ! 赶紧再去把它抢回来吧!';
                             }
                         }
                         $wx->sendCustomMessage($arr_ori_winner['openid'], $msg, 'text');
                         $wx->sendCustomMessage('oNmoZtxOu0pKnlUjZjO0beFCSfEY', $msg, 'text');
                     }
                 }
             }
         }
         // 得標者
         /*
         $query2="SELECT userid, productid, nickname, price FROM `{$config['db'][4]["dbname"]}`.`{$config['default_prefix']}history` 
         		  WHERE (productid, price) = (SELECT productid, min_price FROM  `{$config['db'][4]["dbname"]}`.`v_min_unique_price` WHERE productid='{$product['productid']}') ";
         		
         error_log("[ajax/product]winner chk: ".$query2);
         $table2 = $db->getQueryRecord($query2);
         $r['winner'] = $table2['table']['record'][0]['nickname'];  
         */
         //單次下標而且離結標還有$this->display_rank_time_limit秒以上,回傳目前順位
         //if($_POST['type'] == 'single')
         /*
         $rank = $this->last_rank-1;//最大顯示排名為第10位
                     $query = "SELECT h.userid, h.nickname, h.price
               			FROM `{$config['db'][4]["dbname"]}`.`{$config['default_prefix']}history` h 
           WHERE h.prefixid = '{$config['default_prefix_id']}'
         	AND h.productid = '{$product['productid']}'
         	AND h.price < '{$_POST['price']}'
         	AND h.price is not null
         	AND h.switch = 'Y'
         GROUP BY h.price
         HAVING COUNT(*) = 1
         ORDER BY h.price asc
         LIMIT {$rank}
         ";
         $table = $db->getQueryRecord($query);
         
         if (!empty($table['table']['record'])) 
         {
         	//回傳中標者
         	$r['winner'] = $table['table']['record'][0]['nickname']; 
         
         	//下標而且離結標還有十分鐘以上,回傳目前順位
         	if ($product['offtime'] > 0 && ($product['offtime'] - $product['now'] > $this->display_rank_time_limit) ) 
         	{
         		foreach ($table['table']['record'] as $rk => $rv)
         		{
         			if ($rv['price'] == $_POST['price']) {
         				$rank = $rk + 1;
         				break;
         			}
         		}
         		$r['rank'] = $rank;
         	}
         }
         else 
         {
         	if ($product['offtime'] > 0 && ($product['offtime'] - $product['now'] > $this->display_rank_time_limit) ) 
         	{
         		$r['rank'] = $rank;
         	}
         }
         */
     }
     $time_end = microtime(true);
     $time = number_format($time_end - $time_start, 10);
     //echo "產生下標歷史記錄 $time 秒<br>";
     error_log("[ajax/mk_history] r : " . json_encode($r));
     return $r;
 }
Example #3
0
//S碼贈點活動
$query = "SELECT spr . * , sp.name spname\n\tFROM `{$config['db'][1]['dbname']}`.`{$config['default_prefix']}scode_promote_rt` spr \n\tLEFT OUTER JOIN `{$config['db'][1]['dbname']}`.`{$config['default_prefix']}scode_promote` sp ON \n\t    spr.prefixid = sp.prefixid \n\t\tAND spr.spid = sp.spid \n\t\tAND unix_timestamp( sp.offtime ) >0 \n\t\tAND unix_timestamp() >= unix_timestamp( sp.ontime ) \n\t\tAND unix_timestamp() <= unix_timestamp( sp.offtime )  \n\t\tAND sp.switch = 'Y' \n\tWHERE \n\t\tspr.prefixid = '{$config['default_prefix_id']}' \n\t\tAND spr.behav = 'c' \n\t\tAND spr.amount = '{$spoint}' \n\t\tAND spr.switch = 'Y' \n\t\tAND sp.spid IS NOT NULL \n\t";
$row = $db->getQueryRecord($query);
if (empty($row['table']['record'])) {
    $row_scode = '';
} else {
    $row_scode = $row['table']['record'][0];
}
//查驗藍新支付寶銷帳狀態
$order = queryOrder($config, $table['table']['record']);
if (empty($order) || $order['status'] != 1 || $order['merchantnumber'] != $config['alipay']['merchantnumber'] || $order['ordernumber'] != $table['table']['record'][0]['dhid']) {
    die;
} else {
    if ($row_scode) {
        //會員充值滿額送S碼
        $scodeModel = new ScodeModel();
        $scode_promote['spid'] = $row_scode['spid'];
        $scode_promote['behav'] = 'c';
        $scode_promote['promote_amount'] = $row_scode['num'];
        $scode_promote['num'] = $row_scode['amount'];
        //插入S碼收取記錄
        $scodeModel->insert_scode($scode_promote, $table['table']['record'][0]['userid'], $row_scode['spname']);
    }
    $query = "INSERT INTO `{$config['db'][1]['dbname']}`.`{$config['default_prefix']}deposit`\n\t\tSET\n\t\t\t `prefixid`='{$config['default_prefix_id']}',\n\t\t\t `userid`='{$table['table']['record'][0]['userid']}', \n\t\t\t `countryid`='{$config['country']}', \n\t\t\t `behav`='user_deposit', \n\t\t\t `currency`='{$currency}',\n\t\t\t `amount`='{$table['table']['record'][0]['amount']}', \n\t\t\t `insertt`=NOW()\n\t\t";
    $db->query($query);
    $depositid = $db->_con->insert_id;
    if (!empty($table['table']['record'][0]['spointid'])) {
        $spointid = $table['table']['record'][0]['spointid'];
    } else {
        $query = "INSERT INTO `{$config['db'][1]['dbname']}`.`{$config['default_prefix']}spoint`\n\t\t  SET\n\t\t\t   `prefixid`='{$config['default_prefix_id']}',\n\t\t\t   `userid`='{$table['table']['record'][0]['userid']}', \n\t\t\t   `countryid`='{$config['country']}',\n\t\t\t   `behav`='user_deposit', \n\t\t\t   `amount`='{$table['table']['record'][0]['spoint']}', \n\t\t\t   `insertt`=NOW()\n\t\t  ";
        $db->query($query);