public function settle($term) { $this->term = $term; $conn = Yii::app()->db; $msg = ""; $ltrRec = $conn->createCommand("select term as id,settling,status from tbl_ltr where term=:term")->queryRow(true, array(":term" => $this->term)); if ($ltrRec == false) { $msg = "期数不对,请重新登录再试"; $ltrRec = array("id" => $this->term, "settling" => false, "status" => 0); } elseif ($ltrRec['status'] == 0) { $msg = "本期还未开盘"; } elseif ($ltrRec['settling'] == 1) { $msg = "结账中,请稍等"; } elseif ($ltrRec['status'] == 2) { $msg = "已结帐,无法重复结账"; } if (strlen($msg) > 0) { CommonUtil::metaData($ltrRec, array("id" => '', "settling" => 'bool', "status" => 'int'), false); return CJSON::encode(array("ltr" => $ltrRec, "msg" => $msg, "success" => false)); } $codes = $conn->createCommand("select zm1,zm2,zm3,zm4,zm5,zm6,tm from tbl_ltr_codes where term=:term")->queryRow(true, array(":term" => $this->term)); foreach ($codes as $code) { if ($code == null || strlen($code) < 2) { CommonUtil::metaData($ltrRec, array('', 'bool', 'int')); return CJSON::encode(array("ltr" => $ltrRec, "msg" => "有号码为空", "success" => false)); } } $conn->createCommand("update tbl_ltr set settling=1 where term='{$this->term}'")->execute(); /*$dataReader=$conn->createCommand("select id,betSum,ltrBtcId,ltrTypeId,betType,betCode,rate0,rate1,rebate from tbl_bet where termid=:term")->query(array(":term"=>$this->term)); while(($bet=$dataReader->read())!==false) { $this->isBetWin($bet['id'],$bet['betSum'],$bet['ltrBtcId'],$bet['ltrTypeId'],$bet['betType'],$bet['betCode'],$bet['rate0'],$bet['rate1'],$bet['rebate'],$codes); }*/ $this->settleType($term); //update bet //update term Yii::app()->db->createCommand("update tbl_ltr set settling=0,status=2,tmstatus=1,ftmstatus=1 where term='{$this->term}'")->execute(); Yii::app()->cache->set('status', 2); Yii::app()->cache->set('tmstatus', 1); Yii::app()->cache->set('ftmstatus', 1); Yii::log("backgroud settle success", CLogger::LEVEL_ERROR, 'php'); }
/** * post: * btcs: * tm,tmds,tmdx,tmhsds,tmsb,tmwsdx,tmqs * | zm,zhds,zhdx * | lm * | tx * |bbds,bbdx * | mx 六肖 * | sx,ws * sxl * wsl * bz 五不中 * zt_0,zt_0_ds,zt_0_dx,zt_0_hsds,zt_0_sb,zt_0_wsdx,zt_0_qs正特1 * zt_1,zt_1_ds,zt_1_dx,zt_1_hsds,zt_1_sb,zt_1_wsdx,zt_1_qs lei 0 盘 ,0-A, 1-B marChangeFlag 0 onliner qq133 pan 2 get: marChangeFlag 第一次请求或 有改动,则为 -1 oc btcs:{open, rate, bet } * @return unknown_type */ public function actionRefreshJson() { $this->layout = false; header('Content-type: application/json'); $refresh = array(); //$site=Yii::app()->user->getState('site'); $huo = $_POST['huo']; $lei = $_POST['lei']; //盘 $roleid = Yii::app()->user->role; $userid = Yii::app()->user->id; $conn = Yii::app()->db; if ($_POST['marChangeFlag'] == -1) { $refresh['marChangeFlag'] = 0; $refresh['marMsg'] = implode(',', $conn->createCommand("select message from tbl_marquee where showMar=1 order by updatedTime desc")->queryColumn()); } $conn->createCommand("delete from tbl_online_user where lasttime<sysdate()-INTERVAL 10 MINUTE")->execute(); //$conn->createCommand("update tbl_online_user set lasttime=sysdate() where sessionid='".session_id()."'")->execute(); if (Yii::app()->user->level >= 0) { $onlineN = $conn->createCommand("select count(*) from tbl_online_user where sessionid='" . session_id() . "'")->queryRow(false); if ($onlineN[0] == 0) { echo "this.location.href='/main/login.do'"; Yii::app()->end(); } else { $conn->createCommand("update tbl_online_user set lasttime=sysdate() where sessionid='" . session_id() . "'")->execute(); } } $onlinerRec = $conn->createCommand("select count(*) from tbl_online_user o left join tbl_user u on o.userid=u.id where u.parent_{$roleid}='{$userid}' or o.userid='{$userid}'")->queryRow(false); $refresh['oc'] = $onlinerRec[0]; if ($huo == 2) { $huo = 0; $roleid = $roleid - 1; $userid = Yii::app()->user->parentId; } //$refresh['key']=session_id(); $xuHuo = array("1", "1-prorate_4-prorate_3-prorate_2", "1-prorate_4-prorate_3", "1-prorate_4", "1"); $sumHuo = $huo == 1 ? "*({$xuHuo[$roleid]})" : "*prorate_{$roleid}"; $whereStatUser = "******" . $userid . "' and betUserId<>'" . $userid . "'"; $ltrRec = $conn->createCommand("select resultDate,notTeAutoCloseTime,teAutoCloseTime from tbl_ltr where term='" . $this->term . "'")->queryRow(); $notTeAutoRemainTime = strtotime($ltrRec['resultDate'] . ' ' . $ltrRec['notTeAutoCloseTime']) - time(); $teAutoRemainTime = strtotime($ltrRec['resultDate'] . ' ' . $ltrRec['teAutoCloseTime']) - time(); if (isset($_POST['btcs'])) { $pan = $_POST['pan']; //A 0, B 1,AB 2,AB+ 3 种类 $btcs = array(); $termStatus = CommonUtil::getCachedTermStatus(); $sbs = array(0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 0, 0, 1, 1, 2, 2, 0, 0, 1, 2, 2, 0, 0, 1, 1, 2, 2, 0, 0, 1, 2, 2, 0, 0, 1, 1, 2, 2, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2); $jqs = array(11, 7, 10, 6, 9, 1); $betCmd = $conn->createCommand("select ltrBtcId,ltrTypeId,sum(betSum" . $sumHuo . ") as bet,sum(-hyResult" . $sumHuo . ") as win,sum(betSum{$sumHuo}*(rate0+rebate/100-1)) as winSum,sum(betSum{$sumHuo}*(1-rebate/100)) as noWinSum,betCode,prorate_{$roleid} as prorate,rate0,rate1,rebate from tbl_bet where termid='" . $this->term . "' and `ltrBtcId` in ('" . str_replace(",", "','", $_POST['btcs']) . "') {$whereStatUser} group by ltrTypeId order by ltrTypeId"); $selfBhCmd = $conn->createCommand("select ltrBtcId,ltrTypeId,sum(betSum) as bet,sum(-hyResult) as win,sum(betSum*(rate0+rebate/100-1)) as winSum,sum(betSum*(1-rebate/100)) as noWinSum,rate0,rate1,rebate from tbl_bet where termid='" . $this->term . "' and `ltrBtcId` in ('" . str_replace(",", "','", $_POST['btcs']) . "') and betUserId='" . $userid . "' group by ltrTypeId order by ltrTypeId"); $btcsRec = $conn->createCommand("select t.*,(SELECT IF(r.open=0,0,t.open) FROM tbl_default_rate r WHERE r.id=t.type OR (r.id='txbx' AND t.type='tx' AND t.id='tx_1') OR (r.id='txfbx' AND t.type='tx' AND t.id<>'tx_1') OR (r.id='sxbx' AND t.type='sx' AND t.id='sx_1') OR (r.id='sxfbx' AND t.type='sx' AND t.id<>'sx_1') OR (r.id='ws0' AND t.type='ws' AND t.id='ws_0') OR (r.id='wsf0' AND t.type='ws' AND t.id<>'ws_0')) AS defaultopen from tbl_ltr_type t where t.`btc` in ('" . str_replace(",", "','", $_POST['btcs']) . "') order by btc,REPLACE(RIGHT(id, 2),'_','0')")->queryAll(); foreach ($btcsRec as $btc) { if ($btc['btc'] == 'tm' || $btc['btc'] == 'zm') { //if($pan==2||$pan==3) $pan=0; // AB AB+ 都显示特码A赔率 //避免特码A B 重合,要么A赔率,要么B赔率 if ($btc['btc'] . '_' . ($pan == 1 ? 1 : 0) != substr($btc['id'], 0, strrpos($btc['id'], '_'))) { continue; } } $rate = floatval($btc['rate0' . $lei]); $rate1 = floatval($btc['rate1' . $lei]); if ($rate1 > 0) { $rate = array($rate, $rate1); } //$openStatus=(strpos($btc['btc'],'tm')===false||strpos($btc['btc'],'tm')>0)?$termStatus['ftmstatus']:$termStatus['tmstatus'];('tm','tmds','tmdx','tmhsds','tmsb','tmwsdx','tmqs','tx','bbds','bbdx','mx') $openStatus = 0; if ($termStatus['status'] != 2) { if (strpos("'tm','tmds','tmdx','tmhsds','tmsb','tmwsdx','tmqs','tx','bbds','bbdx','mx'", "'{$btc['btc']}'") !== false) { if ($teAutoRemainTime > 0) { $openStatus = intval($btc['defaultopen']); } } else { if ($notTeAutoRemainTime > 0) { $openStatus = intval($btc['defaultopen']); } } } $btcs[$btc['btc']]['open'][] = $openStatus; //$termStatus['status']==1?($openStatus==0?intval($btc['open']):($openStatus-1)):0; $btcs[$btc['btc']]['rate'][] = $rate; //tbl_stat,tbl_ltr_type[win,bet] A B C ? 实货虚货? $btcs[$btc['btc']]['bet'][] = 0; $btcs[$btc['btc']]['win'][] = 0; $btcs[$btc['btc']]['bh'][] = 0; //$btcs[$btc['btc']]['adjRate'][]=$btc['adjRate']; //$btcs[$btc['btc']]['name'][]=$btc['adjRate']; //$btcs[$btc['btc']]['items'][]=$btc['adjRate']; //$btcs[$btc['btc']]['cbIdx']= } $adjRateReader = $conn->createCommand("select * from tbl_adjrate where `btc` in ('" . str_replace(",", "','", $_POST['btcs']) . "') order by btId,nameIdx")->query(); while (($adjRate = $adjRateReader->read()) !== false) { if (isset($_POST['cbIdx']) && $_POST['cbIdx'] == $adjRate['idx']) { $rate = floatval($adjRate['rate0' . $lei]); $rate1 = floatval($adjRate['rate1' . $lei]); if (is_array($btcs[$adjRate['btc']]['rate'][$adjRate['idx']])) { $rate = array($rate, $rate1); } $btcs[$adjRate['btc']]['adjRates'][] = $rate; } if (!isset($btcs[$adjRate['btc']]['name'])) { $btcs[$adjRate['btc']]['name'] = array(); } if (!isset($btcs[$adjRate['btc']]['name'][$adjRate['nameIdx']])) { $btcs[$adjRate['btc']]['name'][$adjRate['nameIdx']] = 0; } //$btcs[$adjRate['btc']]['name'][$adjRate['nameIdx']]+=$adjRate['bet']; } $selfBhReader = $selfBhCmd->query(); $btcResultMap = array('tx' => 12, 'bbds' => 6, 'bbdx' => 6, 'zt_0' => 49, 'zt_1' => 49, 'zt_2' => 49, 'zt_3' => 49, 'zt_4' => 49, 'zt_5' => 49, 'qsb' => 4); $abBtc = array('tmds,tmdx,tmhsds,tmsb,tmwsdx,tmqs'); while (($selftBh = $selfBhReader->read()) !== false) { if (($selftBh['ltrBtcId'] == 'tm' || $selftBh['ltrBtcId'] == 'zm') && ($pan == 0 || $pan == 1) && substr($selftBh['ltrTypeId'], 0, 4) != $selftBh['ltrBtcId'] . '_' . $pan) { continue; } $betCbIdx = substr($selftBh['ltrTypeId'], strrpos($selftBh['ltrTypeId'], '_') + 1); $betResult = $selftBh['bet']; //-$btcs[$bet['ltrBtcId']]['bh'][$betCbIdx]; $winSum = $selftBh['winSum']; //$betResult*$selftBh['rate0']-(1-$selftBh['rebate']/100)*$betResult; $noWinSum = $selftBh['noWinSum']; //(1-$selftBh['rebate']/100)*$betResult; if ($selftBh['ltrBtcId'] == 'tm') { for ($i = 0; $i < 49; $i++) { if ($i == $betCbIdx) { $btcs[$selftBh['ltrBtcId']]['win'][$betCbIdx] += $winSum; } else { $btcs[$selftBh['ltrBtcId']]['win'][$i] -= $noWinSum; } } //echo "result:".($selftBh['ltrTypeId'])." ".$betResult."\n"; } elseif (isset($btcResultMap[$selftBh['ltrBtcId']])) { for ($i = 0; $i < $btcResultMap[$selftBh['ltrBtcId']]; $i++) { if ($i == $betCbIdx) { $btcs[$selftBh['ltrBtcId']]['win'][$betCbIdx] += $winSum; } else { $btcs[$selftBh['ltrBtcId']]['win'][$i] -= $noWinSum; } } } elseif ($selftBh['ltrBtcId'] == 'zx') { if ($betCbIdx == 4) { $btcs[$selftBh['ltrBtcId']]['win'][4] += $winSum; $btcs[$selftBh['ltrBtcId']]['win'][5] -= $noWinSum; } elseif ($betCbIdx == 5) { $btcs[$selftBh['ltrBtcId']]['win'][5] += $winSum; $btcs[$selftBh['ltrBtcId']]['win'][4] -= $noWinSum; } else { for ($i = 0; $i < 4; $i++) { if ($i == $betCbIdx) { $btcs[$selftBh['ltrBtcId']]['win'][$betCbIdx] += $winSum; } else { $btcs[$selftBh['ltrBtcId']]['win'][$i] -= $noWinSum; } } } } elseif (substr($selftBh['ltrBtcId'], 0, 3) == 'qm_') { $qm_i = substr($selftBh['ltrBtcId'], 3, 1); for ($i = 0; $i <= 7; $i++) { if ($i == $qm_i) { $btcs["qm_{$i}"]['win'][$betCbIdx] += $winSum; } else { $btcs["qm_{$i}"]['win'][$betCbIdx] -= $noWinSum; } } } elseif ($pan == 3) { //特单:原来特码的盈亏+ 特单下注额*(1-退水)- 特单下注额*特单赔率 //非特单号码:原来特码的盈亏+ 特单下注额*(1-退水) //tmds,tmdx,tmhsds,tmsb,tmwsdx,tmqs zt_0_ds $abBtc = substr($selftBh['ltrBtcId'], 0, 2); if ($abBtc == 'zt') { $abBtc = substr($selftBh['ltrBtcId'], 0, strrpos($selftBh['ltrBtcId'], '_')); //zt_0 } if ($selftBh['ltrBtcId'] == 'tmds' || substr($selftBh['ltrBtcId'], -3) == '_ds') { //$betCbIdx=0 单 for ($i = 0; $i < 24; $i++) { $btcs[$abBtc]['win'][2 * $i + $betCbIdx] += $winSum; $btcs[$abBtc]['win'][2 * $i + 1 - $betCbIdx] -= $noWinSum; $btcs[$abBtc]['bet'][2 * $i + $betCbIdx] -= $betResult / 24; } } elseif ($selftBh['ltrBtcId'] == 'tmdx' || substr($selftBh['ltrBtcId'], -3) == '_dx') { for ($i = 0; $i < 24; $i++) { $btcs[$abBtc]['win'][$i + (1 - $betCbIdx) * 24] += $winSum; $btcs[$abBtc]['win'][$i + $betCbIdx * 24] -= $noWinSum; $btcs[$abBtc]['bet'][$i + (1 - $betCbIdx) * 24] -= $betResult / 24; } } elseif ($selftBh['ltrBtcId'] == 'tmhsds' || substr($selftBh['ltrBtcId'], -3) == 'sds') { for ($i = 0; $i < 48; $i++) { $r = $i % 10 + floor($i / 10); $btcs[$abBtc]['win'][$i] += $r % 2 == $betCbIdx ? $winSum : -$noWinSum; $btcs[$abBtc]['bet'][$i] -= $r % 2 == $betCbIdx ? $betResult / 24 : 0; } } elseif ($selftBh['ltrBtcId'] == 'tmwsdx' || substr($selftBh['ltrBtcId'], -3) == 'sdx') { for ($i = 0; $i < 48; $i++) { $r = $i % 10; $btcs[$abBtc]['win'][$i] += ($r > 3 ? 0 : 1) == $betCbIdx ? $winSum : -$noWinSum; $btcs[$abBtc]['bet'][$i] -= ($r > 3 ? 0 : 1) == $betCbIdx ? $betResult / 24 : 0; } } elseif ($selftBh['ltrBtcId'] == 'tmsb' || substr($selftBh['ltrBtcId'], -3) == '_sb') { for ($i = 0; $i < 49; $i++) { $r = $sbs[$i]; $btcs[$abBtc]['win'][$i] += $r == $betCbIdx ? $winSum : -$noWinSum; $btcs[$abBtc]['bet'][$i] -= $r == $betCbIdx ? $betResult / 12 : 0; } } elseif ($selftBh['ltrBtcId'] == 'tmqs' || substr($selftBh['ltrBtcId'], -3) == '_qs') { for ($i = 0; $i < 48; $i++) { $r = in_array($i, $jqs) ? 0 : 1; $btcs[$abBtc]['win'][$i] += $r == $betCbIdx ? $winSum : -$noWinSum; $btcs[$abBtc]['bet'][$i] -= $r == $betCbIdx ? $betResult / 24 : 0; } } } $btcs[$selftBh['ltrBtcId']]['bh'][$betCbIdx] += floatval($selftBh['bet']); $btcs[$selftBh['ltrBtcId']]['bet'][$betCbIdx] -= floatval($selftBh['bet']); } $betReader = $betCmd->query(); while (($bet = $betReader->read()) !== false) { $betCbIdx = substr($bet['ltrTypeId'], strrpos($bet['ltrTypeId'], '_') + 1); /*if($bet['ltrBtcId']=='tm'||$bet['ltrBtcId']=='zm'){ // AB AB+ 都显示特码A赔率 if($pan==0||$pan==1){ if(substr($bet['ltrTypeId'],0,4)!=$bet['ltrBtcId'].'_'.$pan){ //echo substr($bet['ltrBtcId'],0,4); //echo $bet['ltrBtcId'].'_'.$pan; continue; } $btcs[$bet['ltrBtcId']]['bet'][$betCbIdx]+=floatval($bet['bet']); $btcs[$bet['ltrBtcId']]['win'][$betCbIdx]+=floatval($bet['win']); }else{ $btcs[$bet['ltrBtcId']]['bet'][$betCbIdx]+=floatval($bet['bet']); $btcs[$bet['ltrBtcId']]['win'][$betCbIdx]+=floatval($bet['win']); } }else{ $btcs[$bet['ltrBtcId']]['bet'][$betCbIdx]+=floatval($bet['bet']); $btcs[$bet['ltrBtcId']]['win'][$betCbIdx]+=floatval($bet['win']); if($_POST['btcs']=='lm'||$_POST['btcs']=='dzy'||$_POST['btcs']=='mx'||$_POST['btcs']=='wsl'||$_POST['btcs']=='sxl'||$_POST['btcs']=='bz'){ if(intval($_POST['cbIdx'])==-1 || $_POST['cbIdx']==$betCbIdx){ $betCodes=split(',',$bet['betCode']); //$betCodes is nameIdx $codeLen=count($betCodes); foreach($betCodes as $betCode){ $btcs[$bet['ltrBtcId']]['name'][$betCode]+=floatval($bet['bet']/$codeLen); } } } }*/ $betResult = $bet['bet']; //-$btcs[$bet['ltrBtcId']]['bh'][$betCbIdx]; $winSum = $bet['winSum']; //$betResult*$bet['rate0']-(1-$bet['rebate']/100)*$betResult; $noWinSum = $bet['noWinSum']; //(1-$bet['rebate']/100)*$betResult; //add for win if (($bet['ltrBtcId'] == 'tm' || $bet['ltrBtcId'] == 'zm') && ($pan == 0 || $pan == 1) && substr($bet['ltrTypeId'], 0, 4) != $bet['ltrBtcId'] . '_' . $pan) { continue; } if ($bet['ltrBtcId'] == 'tm' || $bet['ltrBtcId'] == 'zx' || substr($bet['ltrBtcId'], 0, 3) == 'qm_' || isset($btcResultMap[$bet['ltrBtcId']])) { if ($bet['ltrBtcId'] == 'tm') { for ($i = 0; $i < 49; $i++) { if ($i == $betCbIdx) { $btcs[$bet['ltrBtcId']]['win'][$betCbIdx] -= $winSum; } else { $btcs[$bet['ltrBtcId']]['win'][$i] += $noWinSum; } } } elseif ($bet['ltrBtcId'] == 'zx') { if ($betCbIdx == 4) { $btcs[$bet['ltrBtcId']]['win'][4] -= $winSum; $btcs[$bet['ltrBtcId']]['win'][5] += $noWinSum; } elseif ($betCbIdx == 5) { $btcs[$bet['ltrBtcId']]['win'][5] -= $winSum; $btcs[$bet['ltrBtcId']]['win'][4] += $noWinSum; } else { for ($i = 0; $i < 4; $i++) { if ($i == $betCbIdx) { $btcs[$bet['ltrBtcId']]['win'][$betCbIdx] -= $winSum; } else { $btcs[$bet['ltrBtcId']]['win'][$i] += $noWinSum; } } } } elseif (substr($bet['ltrBtcId'], 0, 3) == 'qm_') { $qm_i = substr($bet['ltrBtcId'], 3, 1); for ($i = 0; $i <= 7; $i++) { if ($i == $qm_i) { $btcs["qm_{$i}"]['win'][$betCbIdx] -= $winSum; } else { $btcs["qm_{$i}"]['win'][$betCbIdx] += $noWinSum; } } } else { //if(isset($btcResultMap[$bet['ltrBtcId']])){ for ($i = 0; $i < $btcResultMap[$bet['ltrBtcId']]; $i++) { if ($i == $betCbIdx) { $btcs[$bet['ltrBtcId']]['win'][$betCbIdx] -= $winSum; } else { $btcs[$bet['ltrBtcId']]['win'][$i] += $noWinSum; } } //} } $btcs[$bet['ltrBtcId']]['bet'][$betCbIdx] += floatval($bet['bet']); } elseif ($pan == 3) { //特单:原来特码的盈亏+ 特单下注额*(1-退水)- 特单下注额*特单赔率 //非特单号码:原来特码的盈亏+ 特单下注额*(1-退水) //tmds,tmdx,tmhsds,tmsb,tmwsdx,tmqs zt_0_ds $abBtc = substr($bet['ltrBtcId'], 0, 2); if ($abBtc == 'zt') { $abBtc = substr($bet['ltrBtcId'], 0, strrpos($bet['ltrBtcId'], '_')); //zt_0 } if ($bet['ltrBtcId'] == 'tmds' || substr($bet['ltrBtcId'], -3) == '_ds') { //$betCbIdx=0 单 for ($i = 0; $i < 24; $i++) { $btcs[$abBtc]['win'][2 * $i + $betCbIdx] -= $winSum; $btcs[$abBtc]['win'][2 * $i + 1 - $betCbIdx] += $noWinSum; $btcs[$abBtc]['bet'][2 * $i + $betCbIdx] += $betResult / 24; } } elseif ($bet['ltrBtcId'] == 'tmdx' || substr($bet['ltrBtcId'], -3) == '_dx') { for ($i = 0; $i < 24; $i++) { $btcs[$abBtc]['win'][$i + (1 - $betCbIdx) * 24] -= $winSum; $btcs[$abBtc]['win'][$i + $betCbIdx * 24] += $noWinSum; $btcs[$abBtc]['bet'][$i + (1 - $betCbIdx) * 24] += $betResult / 24; } } elseif ($bet['ltrBtcId'] == 'tmhsds' || substr($bet['ltrBtcId'], -3) == 'sds') { for ($i = 0; $i < 48; $i++) { $r = $i % 10 + floor($i / 10); $btcs[$abBtc]['win'][$i] -= $r % 2 == $betCbIdx ? $winSum : -$noWinSum; $btcs[$abBtc]['bet'][$i] += $r % 2 == $betCbIdx ? $betResult / 24 : 0; } } elseif ($bet['ltrBtcId'] == 'tmwsdx' || substr($bet['ltrBtcId'], -3) == 'sdx') { for ($i = 0; $i < 48; $i++) { $r = $i % 10; $btcs[$abBtc]['win'][$i] -= ($r > 3 ? 0 : 1) == $betCbIdx ? $winSum : -$noWinSum; $btcs[$abBtc]['bet'][$i] += ($r > 3 ? 0 : 1) == $betCbIdx ? $betResult / 24 : 0; } } elseif ($bet['ltrBtcId'] == 'tmsb' || substr($bet['ltrBtcId'], -3) == '_sb') { for ($i = 0; $i < 49; $i++) { $r = $sbs[$i]; $btcs[$abBtc]['win'][$i] -= $r == $betCbIdx ? $winSum : -$noWinSum; $btcs[$abBtc]['bet'][$i] += $r == $betCbIdx ? $betResult / 12 : 0; } } elseif ($bet['ltrBtcId'] == 'tmqs' || substr($bet['ltrBtcId'], -3) == '_qs') { for ($i = 0; $i < 48; $i++) { $r = CommonUtil::getSxCode($i + 1); $r = in_array($i, $jqs) ? 0 : 1; $btcs[$abBtc]['win'][$i] -= $r == $betCbIdx ? $winSum : -$noWinSum; $btcs[$abBtc]['bet'][$i] += $r == $betCbIdx ? $betResult / 24 : 0; } } $btcs[$bet['ltrBtcId']]['bet'][$betCbIdx] += floatval($bet['bet']); $btcs[$bet['ltrBtcId']]['win'][$betCbIdx] += floatval($bet['win']); } else { $btcs[$bet['ltrBtcId']]['bet'][$betCbIdx] += floatval($bet['bet']); $btcs[$bet['ltrBtcId']]['win'][$betCbIdx] += floatval($bet['win']); } } //[ "id","cbType","names", "sum","flag" ] "items":[[],[],[[48,0,"牛,虎,蛇,马,羊,狗",9.0,48]]] if ($_POST['btcs'] == 'lm' || $_POST['btcs'] == 'dzy' || $_POST['btcs'] == 'mx' || $_POST['btcs'] == 'wsl' || $_POST['btcs'] == 'sxl' || $_POST['btcs'] == 'bz') { $items = array(); $cbIdx = intval($_POST['cbIdx']); $items[] = array(); $items[] = array(); //$items[]=$conn->createCommand("select id,SUBSTRING(ltrTypeId,instr(ltrTypeId,'_')+1),betType,betSum,SUBSTRING(ltrTypeId,instr(ltrTypeId,'_')+1) from tbl_bet where `ltrBtcId` ='{$_POST['btcs']}' order by ltrTypeId")->queryAll(false); $itemWhere = ""; if ($cbIdx != -1) { $itemWhere = "and `ltrTypeId` ='" . $_POST['btcs'] . "_" . $cbIdx . "'"; /*}else{ $itemWhere="and `ltrBtcId` ='".$_POST['btcs']."'"; }*/ $btcLen = strlen($_POST['btcs']) + 1 + 1; $itemRec = $conn->createCommand("select id,substring(ltrTypeId,{$btcLen}),betCode,sum(betSum{$sumHuo}) as betSum,id from tbl_bet where termid='{$this->term}' {$itemWhere} {$whereStatUser} group by ltrTypeId,betCode order by betSum desc,REPLACE(REPLACE(REPLACE(REPLACE(CONCAT(',',betCode,','),',1,',',01,'),',2,',',02,'),',3,',',03,'),',4,',',04,') asc")->queryAll(false); /*for($itemI=0;$itemI<count($itemRec);$itemI++){ $itemCodes=split(',',$itemRec[$itemI][2]); for($itemJ=0;$itemJ<count($itemCodes);$itemJ++){ $itemCodes[$itemJ]=str_pad($itemCodes[$itemJ]+1, 2, "0", STR_PAD_LEFT); } $itemRec[$itemI][2]=implode(',',$itemCodes); }*/ CommonUtil::metaData($itemRec, array('int', 'int', '', 'float', 'int')); if (isset($_POST['itemIds']) && strlen($_POST['itemIds']) > 0) { if (count($itemRec) == count(split(',', $_POST['itemIds']))) { $items[] = array(); } else { $items[] = $itemRec; } } else { $items[] = $itemRec; } foreach ($itemRec as $itemI) { $betCodes = split(',', $itemI[2]); //$betCodes is nameIdx $codeLen = count($betCodes); foreach ($betCodes as $betCode) { $btcs[$_POST['btcs']]['name'][$betCode] += floatval($itemI[3] / $codeLen); //$btcs[$_POST['btcs']]['namev'][]="$betCode,$itemI[3],".floatval($itemI[3]/$codeLen); } } } else { $items[] = array(); } $btcs[$_POST['btcs']]['items'] = $items; $btcs[$_POST['btcs']]["minFlag"] = -1; $btcs[$_POST['btcs']]["maxFlag"] = 0; if ($cbIdx != -1) { $btcs[$_POST['btcs']]["cbIdx"] = $cbIdx; } //if(!isset($btcs[$_POST['btcs']]['namev'])){ // $btcs[$_POST['btcs']]['namev']=array(); //} } $refresh['btcs'] = $btcs; } if (Yii::app()->user->getState('countDown') === NULL) { Yii::app()->user->setState('countDown', true); } if (Yii::app()->user->getState('countDown') == true) { $refresh['remainTimes'] = array($notTeAutoRemainTime, $teAutoRemainTime); } $refresh['autoCloseTimes'] = array($ltrRec['notTeAutoCloseTime'], $ltrRec['teAutoCloseTime'], $ltrRec['teAutoCloseTime']); $refresh['term'] = $this->term; $code = $conn->createCommand("select zm1,zm2,zm3,zm4,zm5,zm6,tm from tbl_ltr_codes where term='{$this->term}'")->queryRow(false); $refresh['code'] = $code; $ztTypes = ''; for ($i = 0; $i < 6; $i++) { $ztTypes .= ",zt_{$i},zt_{$i}_ds,zt_{$i}_dx,zt_{$i}_hsds,zt_{$i}_wsdx,zt_{$i}_qs,zt_{$i}_sb"; } $ztTypes = substr($ztTypes, 1); $statTypes = array('tm,tmds,tmdx,tmhsds,tmwsdx,tmqs,tmsb', 'zm,zhds,zhdx', 'lm', 'tx', 'bbds,bbdx', 'mx', 'sx,ws', 'sxl,wsl', 'bz', $ztTypes, 'dzy', 'qsb', 'zx', 'qm_0,qm_1,qm_2,qm_3,qm_4,qm_5,qm_6,qm_7'); foreach ($statTypes as $statType) { $statRec = $conn->createCommand("select sum(if(betuserid='" . $userid . "'," . ($huo == 1 ? "0" : "-betSum") . ",betSum" . $sumHuo . ")) as bet from tbl_bet where termid='" . $this->term . "' and `ltrBtcId` in ('" . str_replace(",", "','", $statType) . "') and statUser_{$roleid}='" . $userid . "'")->queryRow(false); $refresh['stat'][] = $statRec[0]; } echo CJSON::encode($refresh); Yii::app()->end(); }
/** * user az999 * @return unknown_type */ public function actionRebatebhJson() { $this->layout = false; header('Content-type: application/json'); $rebates = Yii::app()->db->createCommand("select idx,rebate0 as rebate from tbl_default_rebate_bh where userid='{$_POST['user']}' order by idx")->queryAll(); CommonUtil::metaData($rebates, array("idx" => 'int', "rebate" => 'float')); echo CJSON::encode(array("data" => $rebates, "success" => true)); Yii::app()->end(); }
/** * bet=1 * btc tm idx 0 limit 20 pan 0 start 0 cbNames * "id", "betTime", "betType", "rate", "betSum", "prorate","prSum", "betUser", "bhUser" * @return unknown_type */ public function actionBetItemsJson() { //{"count":1,"items":[[89220,"21:24:39","特码A01","42.38",1000.0,0.6,600.0,"hy6",""]],"success":true} $this->layout = false; header('Content-type: application/json'); $conn = Yii::app()->db; $type = $_POST['btc'] . '_' . $_POST['idx']; $where = "ltrTypeid='{$type}'"; if (isset($_POST['pan']) && ($_POST['btc'] == 'tm' || $_POST['btc'] == 'zm')) { $pan = $_POST['pan']; if ($pan > 1) { $type0 = $_POST['btc'] . '_0_' . $_POST['idx']; $type1 = $_POST['btc'] . '_1_' . $_POST['idx']; $where = "(ltrTypeid='{$type0}' or ltrTypeid='{$type1}')"; } else { $type = $_POST['btc'] . '_' . $pan . '_' . $_POST['idx']; $where = "ltrTypeid='{$type}'"; } } if (isset($_POST['cbNames'])) { $cbNames = $_POST['cbNames']; /*$itemCodes=split(',',$_POST['cbNames']); for($itemJ=0;$itemJ<count($itemCodes);$itemJ++){ $itemCodes[$itemJ]=intval($itemCodes[$itemJ])-1; } $cbNames=implode(',',$itemCodes);*/ $where .= " and betCode='{$cbNames}'"; } $where .= " and termid='{$this->term}'"; $role = Yii::app()->user->role; if (isset($_POST['bet']) && $_POST['bet'] == 1) { $where .= " and betUserId='" . Yii::app()->user->id . "'"; } else { $where .= " and statUser_{$role}='" . Yii::app()->user->id . "' and betUserId<>'" . Yii::app()->user->id . "'"; } $limit = " limit {$_POST['start']},{$_POST['limit']}"; $sql = "select id,SUBSTRING(betTime,12),betType,rate,betSum,prorate_{$role},prorate_{$role}*betSum,betUserId,bhUserId from tbl_bet where {$where}"; //echo $sql; $items = $conn->createCommand($sql . $limit)->queryAll(false); $sql = "select count(*) from " . substr($sql, strpos($sql, " from") + 6); $count = $conn->createCommand($sql)->queryRow(false); CommonUtil::metaData($items, array('int', '', '', '', 'float', 'float', 'float', '', '')); echo CJSON::encode(array("count" => $count[0], "items" => $items, "success" => true)); Yii::app()->end(); }
/** * 结账 * @return unknown_type */ public function actionSettle() { $this->layout = false; header('Content-type: application/json'); //$site=Yii::app()->user->site; $conn = Yii::app()->db; $msg = ""; $ltrRec = $conn->createCommand("select term as id,settling,status from tbl_ltr where term=:term")->queryRow(true, array(":term" => $this->term)); if ($ltrRec == false) { $msg = "期数不对,请重新登录再试"; $ltrRec = array("id" => $this->term, "settling" => false, "status" => 0); } elseif ($ltrRec['status'] == 0) { $msg = "本期还未开盘"; } elseif ($ltrRec['settling'] == 1) { $msg = "结账中,请稍等"; } elseif ($ltrRec['status'] == 2) { $msg = "已结帐,无法重复结账"; } if (strlen($msg) > 0) { CommonUtil::metaData($ltrRec, array("id" => '', "settling" => 'bool', "status" => 'int'), false); echo CJSON::encode(array("ltr" => $ltrRec, "msg" => $msg, "success" => false)); Yii::app()->end(); } $codes = $conn->createCommand("select * from tbl_ltr_codes where term=:term")->queryRow(true, array(":term" => $this->term)); foreach ($codes as $code) { if ($code == null || strlen($code) < 2) { CommonUtil::metaData($ltrRec, array('', 'bool', 'int')); echo CJSON::encode(array("ltr" => $ltrRec, "msg" => "有号码为空", "success" => false)); Yii::app()->end(); break; } } //CommonUtil::runBackGround("/bet/runBackSettle.do"); $betService = new BetService(); echo $betService->settle($this->term); //{"ltr":{"id":2011013,"settling":false,"status":2,"codes":["01","02","03","04","05","06","49"]},"msg":"已结帐,无法重复结账","success":false} $ltr = array("id" => $this->term, "settling" => true, "status" => 1); echo CJSON::encode(array("ltr" => $ltr, "success" => true)); Yii::app()->end(); }