/** * 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(); }
public function settleType($term) { $conn = Yii::app()->db; $codes = $conn->createCommand("select zm1,zm2,zm3,zm4,zm5,zm6,tm from tbl_ltr_codes where term=:term")->queryRow(true, array(":term" => $term)); $sql = "update tbl_ltr_type set bet=:bet,win=:win where btc=:btc"; //$typeCmd=$conn->createCommand("update tbl_ltr_type set bet=:bet,win=:win where btc=:btc"); $intCode = array(); $sxCode = array(); foreach ($codes as $k => $v) { $intCode[$k] = intval($v); $sxCode[$k] = CommonUtil::getSxCode(intval($v)); } $btcArrs = array(); //tm $r = $intCode['tm'] - 1; $conn->createCommand($sql . " and (id='tm_0_{$r}' or id='tm_1_{$r}')")->execute(array(":bet" => 0, ":win" => 1, "btc" => "tm")); $conn->createCommand($sql . " and (id<>'tm_0_{$r}' and id<>'tm_1_{$r}')")->execute(array(":bet" => 0, ":win" => 0, "btc" => "tm")); $btcArrs[] = "'tm'"; //tmds if ($codes['tm'] == '49') { $conn->createCommand($sql)->execute(array(":bet" => 0, ":win" => 2, "btc" => "tmds")); } else { $r = $intCode['tm'] % 2; //48: 0 双: _1 $conn->createCommand($sql . " and id='tmds_0'")->execute(array(":bet" => 0, ":win" => $r, "btc" => "tmds")); $conn->createCommand($sql . " and id='tmds_1'")->execute(array(":bet" => 0, ":win" => 1 - $r, "btc" => "tmds")); } $btcArrs[] = "'tmds'"; //tmdx if ($codes['tm'] == '49') { $conn->createCommand($sql)->execute(array(":bet" => 0, ":win" => 2, "btc" => "tmdx")); } else { $r = $intCode['tm'] > 24 ? 1 : 0; //24 $conn->createCommand($sql . " and id='tmdx_0'")->execute(array(":bet" => 0, ":win" => $r, "btc" => "tmdx")); $conn->createCommand($sql . " and id='tmdx_1'")->execute(array(":bet" => 0, ":win" => 1 - $r, "btc" => "tmdx")); } $btcArrs[] = "'tmdx'"; //tmhsds if ($codes['tm'] == '49') { $conn->createCommand($sql)->execute(array(":bet" => 0, ":win" => 2, "btc" => "tmhsds")); } else { $r = substr($codes['tm'], 0, 1) + substr($codes['tm'], 1, 1); $r = $r % 2; //24 $conn->createCommand($sql . " and id='tmhsds_0'")->execute(array(":bet" => 0, ":win" => $r, "btc" => "tmhsds")); $conn->createCommand($sql . " and id='tmhsds_1'")->execute(array(":bet" => 0, ":win" => 1 - $r, "btc" => "tmhsds")); } $btcArrs[] = "'tmhsds'"; //tmwsdx if ($codes['tm'] == '49') { $conn->createCommand($sql)->execute(array(":bet" => 0, ":win" => 2, "btc" => "tmwsdx")); } else { $r = $intCode['tm'] % 10 > 4 ? 1 : 0; $conn->createCommand($sql . " and id='tmwsdx_0'")->execute(array(":bet" => 0, ":win" => $r, "btc" => "tmwsdx")); $conn->createCommand($sql . " and id='tmwsdx_1'")->execute(array(":bet" => 0, ":win" => 1 - $r, "btc" => "tmwsdx")); } $btcArrs[] = "'tmwsdx'"; //tmqs // DECLARE t_sx_jq varchar(15) default '11,7,10,6,9,1'; //DECLARE t_sx_ys varchar(15) default '0,8,4,3,2,5'; $jqCodes = array(11, 7, 10, 6, 9, 1); if ($codes['tm'] == '49') { $conn->createCommand($sql)->execute(array(":bet" => 0, ":win" => 2, "btc" => "tmqs")); } else { $r = in_array($sxCode['tm'], $jqCodes) ? 1 : 0; $conn->createCommand($sql . " and id='tmqs_0'")->execute(array(":bet" => 0, ":win" => $r, "btc" => "tmqs")); $conn->createCommand($sql . " and id='tmqs_1'")->execute(array(":bet" => 0, ":win" => 1 - $r, "btc" => "tmqs")); } $btcArrs[] = "'tmqs'"; //tmsb $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); $r = $sbs[$intCode['tm'] - 1]; $conn->createCommand($sql . " and id='tmsb_{$r}'")->execute(array(":bet" => 0, ":win" => 1, "btc" => "tmsb")); $conn->createCommand($sql . " and id<>'tmsb_{$r}'")->execute(array(":bet" => 0, ":win" => 0, "btc" => "tmsb")); $btcArrs[] = "'tmsb'"; //zm $r = array(); for ($i = 1; $i <= 6; $i++) { $r[] = "'zm_0_" . ($intCode["zm{$i}"] - 1) . "'"; $r[] = "'zm_1_" . ($intCode["zm{$i}"] - 1) . "'"; } $r = join(',', $r); $conn->createCommand($sql . " and id in ( {$r} )")->execute(array(":bet" => 0, ":win" => 1, "btc" => "zm")); $conn->createCommand($sql . " and id not in ( {$r} )")->execute(array(":bet" => 0, ":win" => 0, "btc" => "zm")); $btcArrs[] = "'zm'"; $zhsum = 0; for ($i = 1; $i <= 6; $i++) { $zhsum += intval($intCode["zm{$i}"]); } $zhsum += intval($intCode["tm"]); //zhds $r = $zhsum % 2; //48: 0 双: _1 $conn->createCommand($sql . " and id='zhds_0'")->execute(array(":bet" => 0, ":win" => $r, "btc" => "zhds")); $conn->createCommand($sql . " and id='zhds_1'")->execute(array(":bet" => 0, ":win" => 1 - $r, "btc" => "zhds")); $btcArrs[] = "'zhds'"; //zhdx $r = $zhsum > 174 ? 1 : 0; $conn->createCommand($sql . " and id='zhdx_0'")->execute(array(":bet" => 0, ":win" => $r, "btc" => "zhdx")); $conn->createCommand($sql . " and id='zhdx_1'")->execute(array(":bet" => 0, ":win" => 1 - $r, "btc" => "zhdx")); $btcArrs[] = "'zhdx'"; //tx $r = $sxCode['tm']; $conn->createCommand($sql . " and id='tx_{$r}'")->execute(array(":bet" => 0, ":win" => 1, "btc" => "tx")); $conn->createCommand($sql . " and id<>'tx_{$r}'")->execute(array(":bet" => 0, ":win" => 0, "btc" => "tx")); $btcArrs[] = "'tx'"; //bb if ($codes['tm'] == '49') { $conn->createCommand($sql)->execute(array(":bet" => 0, ":win" => 2, "btc" => "bbds")); $conn->createCommand($sql)->execute(array(":bet" => 0, ":win" => 2, "btc" => "bbdx")); } else { $r = $sbs[$intCode['tm'] - 1] * 2 + 1 - $intCode['tm'] % 2; $conn->createCommand($sql . " and id='bbds_{$r}'")->execute(array(":bet" => 0, ":win" => 1, "btc" => "bbds")); $conn->createCommand($sql . " and id<>'bbds_{$r}'")->execute(array(":bet" => 0, ":win" => 0, "btc" => "bbds")); $r = $sbs[$intCode['tm'] - 1] * 2 + $intCode['tm'] > 24 ? 0 : 1; $conn->createCommand($sql . " and id='bbdx_{$r}'")->execute(array(":bet" => 0, ":win" => 1, "btc" => "bbdx")); $conn->createCommand($sql . " and id<>'bbdx_{$r}'")->execute(array(":bet" => 0, ":win" => 0, "btc" => "bbdx")); } $btcArrs[] = "'bbds'"; $btcArrs[] = "'bbdx'"; //sx $r = array(); foreach ($sxCode as $codeVal) { $r[] = "'sx_" . $codeVal . "'"; } $r = join(',', $r); $conn->createCommand($sql . " and id in ( {$r} )")->execute(array(":bet" => 0, ":win" => 1, "btc" => "sx")); $conn->createCommand($sql . " and id not in ( {$r} )")->execute(array(":bet" => 0, ":win" => 0, "btc" => "sx")); $btcArrs[] = "'sx'"; //ws $r = array(); foreach ($intCode as $codeVal) { $r[] = "'ws_" . $codeVal % 10 . "'"; } $r = join(',', $r); $conn->createCommand($sql . " and id in ( {$r} )")->execute(array(":bet" => 0, ":win" => 1, "btc" => "ws")); $conn->createCommand($sql . " and id not in ( {$r} )")->execute(array(":bet" => 0, ":win" => 0, "btc" => "ws")); $btcArrs[] = "'ws'"; //zt_0...5 for ($i = 0; $i <= 5; $i++) { $r = $intCode["zm" . ($i + 1)] - 1; $conn->createCommand($sql . " and id='zt_{$i}_{$r}'")->execute(array(":bet" => 0, ":win" => 1, "btc" => "zt_{$i}")); $conn->createCommand($sql . " and id<>'zt_{$i}_{$r}'")->execute(array(":bet" => 0, ":win" => 0, "btc" => "zt_{$i}")); $btcArrs[] = "'zt_{$i}'"; //tmds if ($codes["zm" . ($i + 1)] == '49') { $conn->createCommand($sql)->execute(array(":bet" => 0, ":win" => 2, "btc" => "zt_{$i}_ds")); } else { $r = $intCode["zm" . ($i + 1)] % 2; //48: 0 双: _1 $conn->createCommand($sql . " and id='zt_{$i}_ds_0'")->execute(array(":bet" => 0, ":win" => $r, "btc" => "zt_{$i}_ds")); $conn->createCommand($sql . " and id='zt_{$i}_ds_1'")->execute(array(":bet" => 0, ":win" => 1 - $r, "btc" => "zt_{$i}ds")); } $btcArrs[] = "'zt_{$i}_ds'"; //tmdx if ($codes["zm" . ($i + 1)] == '49') { $conn->createCommand($sql)->execute(array(":bet" => 0, ":win" => 2, "btc" => "zt_{$i}_dx")); } else { $r = $intCode["zm" . ($i + 1)] > 24 ? 1 : 0; //24 $conn->createCommand($sql . " and id='zt_{$i}_dx_0'")->execute(array(":bet" => 0, ":win" => $r, "btc" => "zt_{$i}_dx")); $conn->createCommand($sql . " and id='zt_{$i}_dx_1'")->execute(array(":bet" => 0, ":win" => 1 - $r, "btc" => "zt_{$i}_dx")); } $btcArrs[] = "'zt_{$i}_dx'"; //tmhsds if ($codes["zm" . ($i + 1)] == '49') { $conn->createCommand($sql)->execute(array(":bet" => 0, ":win" => 2, "btc" => "zt_{$i}_hsds")); } else { $r = substr($codes["zm" . ($i + 1)], 0, 1) + substr($codes["zm" . ($i + 1)], 1, 1); $r = $r % 2; //24 $conn->createCommand($sql . " and id='zt_{$i}_hsds_0'")->execute(array(":bet" => 0, ":win" => $r, "btc" => "zt_{$i}_hsds")); $conn->createCommand($sql . " and id='zt_{$i}_hsds_1'")->execute(array(":bet" => 0, ":win" => 1 - $r, "btc" => "zt_{$i}_hsds")); } $btcArrs[] = "'zt_{$i}_hsds'"; //tmwsdx if ($codes["zm" . ($i + 1)] == '49') { $conn->createCommand($sql)->execute(array(":bet" => 0, ":win" => 2, "btc" => "zt_{$i}_wsdx")); } else { $r = $intCode["zm" . ($i + 1)] % 10 > 4 ? 1 : 0; $conn->createCommand($sql . " and id='zt_{$i}_wsdx_0'")->execute(array(":bet" => 0, ":win" => $r, "btc" => "zt_{$i}_wsdx")); $conn->createCommand($sql . " and id='zt_{$i}_wsdx_1'")->execute(array(":bet" => 0, ":win" => 1 - $r, "btc" => "zt_{$i}_wsdx")); } $btcArrs[] = "'zt_{$i}_wsdx'"; //tmqs // DECLARE t_sx_jq varchar(15) default '11,7,10,6,9,1'; //DECLARE t_sx_ys varchar(15) default '0,8,4,3,2,5'; if ($codes["zm" . ($i + 1)] == '49') { $conn->createCommand($sql)->execute(array(":bet" => 0, ":win" => 2, "btc" => "zt_{$i}_qs")); } else { $r = in_array($sxCode["zm" . ($i + 1)], $jqCodes) ? 1 : 0; $conn->createCommand($sql . " and id='zt_{$i}_qs_0'")->execute(array(":bet" => 0, ":win" => $r, "btc" => "zt_{$i}_qs")); $conn->createCommand($sql . " and id='zt_{$i}_qs_1'")->execute(array(":bet" => 0, ":win" => 1 - $r, "btc" => "zt_{$i}_qs")); } $btcArrs[] = "'zt_{$i}_qs'"; //tmsb $r = $sbs[$intCode["zm" . ($i + 1)] - 1]; $conn->createCommand($sql . " and id='zt_{$i}_sb_{$r}'")->execute(array(":bet" => 0, ":win" => 1, "btc" => "zt_{$i}_sb")); $conn->createCommand($sql . " and id<>'zt_{$i}_sb_{$r}'")->execute(array(":bet" => 0, ":win" => 0, "btc" => "zt_{$i}_sb")); $btcArrs[] = "'zt_{$i}_sb'"; } //qsb $sb = array(0, 0, 0); for ($i = 1; $i <= 6; $i++) { $sb[$sbs[$intCode['zm' . $i] - 1]] += 1; } $isHeju = false; foreach ($sb as $s) { if ($s == 0) { $isHeju = true; break; } } if ($isHeju) { $conn->createCommand($sql . " and id='qsb_3'")->execute(array(":bet" => 0, ":win" => 1, "btc" => "qsb")); $conn->createCommand($sql . " and id<>'qsb_3'")->execute(array(":bet" => 0, ":win" => 0, "btc" => "qsb")); } else { $sb[$sbs[$intCode['tm'] - 1]] += 1.5; $r = max($sb); for ($i = 0; $i < count($sb); $i++) { if ($r == $sb[$i]) { $r = $i; break; } } $conn->createCommand($sql . " and id='qsb_{$r}'")->execute(array(":bet" => 0, ":win" => 1, "btc" => "qsb")); $conn->createCommand($sql . " and id<>'qsb_{$r}'")->execute(array(":bet" => 0, ":win" => 0, "btc" => "qsb")); } $btcArrs[] = "'qsb'"; //zx $zx = array(); foreach ($intCode as $codeV) { if ($codeV != 49) { $zx[$codeV % 12] = 1; } } $zxN = count($zx); $r = -1; switch ($zxN) { case 0: case 1: $r = -1; break; case 2: case 3: case 4: $r = 0; break; case 5: $r = 1; break; case 6: $r = 2; break; case 7: $r = 3; break; default: $r = -1; } if ($r == -1) { $conn->createCommand($sql)->execute(array(":bet" => 0, ":win" => 0, "btc" => "zx")); } else { //1-2%2+4 zx_5 shuang $conn->createCommand($sql . " and (id='zx_{$r}' or id='zx_" . (1 - $zxN % 2 + 4) . "')")->execute(array(":bet" => 0, ":win" => 1, "btc" => "zx")); $conn->createCommand($sql . " and (id<>'zx_{$r}' and id<>'zx_" . (1 - $zxN % 2 + 4) . "')")->execute(array(":bet" => 0, ":win" => 0, "btc" => "zx")); } $btcArrs[] = "'zx'"; //qm //有多少个单、双、大、小、合单、合双数 $qm = array(0, 0, 0, 0, 0, 0); //vals:01234567 foreach ($intCode as $codeV) { if ($codeV == 49) { continue; } $qm[1 - $codeV % 2] += 1; $qm[2 + ($codeV > 24 ? 0 : 1)] += 1; $r = $codeV % 10 + floor($codeV / 10); $qm[1 - $r % 2 + 4] += 1; } for ($i = 0; $i < 6; $i++) { $conn->createCommand($sql . " and id='qm_{$qm[$i]}_{$i}'")->execute(array(":bet" => 0, ":win" => 1, "btc" => "qm_{$qm[$i]}")); } for ($i = 0; $i < 8; $i++) { $btcArrs[] = "'qm_{$i}'"; } //sx //$sxWin=array(); foreach ($intCode as $codeV) { $r = CommonUtil::getSxCode($codeV); $conn->createCommand($sql . " and id='sx_{$r}'")->execute(array(":bet" => 0, ":win" => 1, "btc" => "sx")); } $btcArrs[] = "'sx'"; //ws foreach ($intCode as $codeV) { $r = $codeV % 10; $conn->createCommand($sql . " and id='ws_{$r}'")->execute(array(":bet" => 0, ":win" => 1, "btc" => "ws")); } $btcArrs[] = "'ws'"; $btcs = join(',', $btcArrs); $conn->createCommand("update tbl_bet b set b.victory=(select t.win from tbl_ltr_type t where t.id=b.ltrTypeId) where termid='{$term}' and ltrBtcId in ({$btcs})")->execute(); $conn->createCommand("update tbl_bet b set b.hyResult=if(victory=2,0,if(victory=1,betSum*rate0-(1-rebate/100)*betSum,-(1-rebate/100)*betSum)) where termid='{$term}' and ltrBtcId in ({$btcs})")->execute(); $conn->createCommand("call sp_settle('{$term}')")->execute(); return ''; }