经过这几天的努力,终于把这个功能做出来了,里面涉及几个算法的,还是比较复杂的,大家可以参考学习一下,还是可以的。
这个是快打的算法
class FastBeatController extends HomebaseController {
protected $user_model;
public function __construct() {
parent::__construct();
$this->check_login();
$this->user_model = M('user');//打款凭证
}
public function Index(){
$this->display();
}
public function rizhi(){
$this->display();
}
public function ModifyBetClearPrint(){
header('Content-type: application/json');
echo '{"status":true,"IsPrint":false,"info":"操作成功!"}';
}
public function GetTopEightPeriodsNumber(){
$list=M('data')->order('id desc')->limit(8)->select();
$datalist=array();
foreach($list as $key=>$one){
$data['c_t']=$one['number'];
$data['c_d']=date('Y-m-d H:i:s',$one['time']);
$data['c_r']=$one['data'];
$datalist[]=$data;
}
echo json_encode($datalist);
}
public function GetStopBetNumber(){
header('Content-type: application/json');
@set_time_limit(0);
@ini_set('memory_limit', '512M');
$PeriodsNumber=$_GET['PeriodsNumber'];
$map['PeriodsNumber']=$_GET['PeriodsNumber'];
$map['uid']=$this->uid;
$data=array();
if(!empty($_GET['PeriodsNumber'])&&$_GET['PeriodsNumber']!="请选择"){
$list=M('bet2')->where($map)->select();
foreach ($list as $key => $value) {
$bet=array();
$bet['ID']=$value['id'];
$bet['MemberID']=$value['uid'];
$bet['PeriodsNumber']=$value['periodsnumber'];
$bet['BetTypeID']=$value['bettypeid'];
$bet['BetNumber']=$value['betnumber'];
$bet['BetAmount']=(float)$value['betamount'];
$bet['IsDelete']=(boolean)$value['isdelete'];
$bet['CreateDt']=$value['createdt'];
$bet['UpdateDt']=$value['updatedt'];
$data[]=$bet;
}
}
echo json_encode($data);
}
public function DeleteStopBetNumber(){
$ids=json_decode($_POST['lsIds'],true);
$map['id']=array('in',implode(',',$ids));
$save['IsDelete']=1;
$save['UpdateDt']=$this->time;
$tt=M('bet2')->where($map)->select();
M('bet2')->where($map)->save($save);
$data['info']='操作成功!';
$data['status']=true;
echo json_encode($data);
}
public function GetBetInfoTopTen(){
header('Content-type: application/json');
$now=getnow('1',1);
$PeriodsNumber=$now['hm'];
$map['zt']=0;
$map['PeriodsNumber']=$PeriodsNumber;
$betlist=M('userbet'.$this->user['id'])->where($map)->limit(10)->order('id desc')->select();
$list=array();
$betlist=array_reverse($betlist);
for($i=$this->user["parent"];$i>0;$i){
$agent=M('agent')->find($i);
$i=$agent["parent"];
if($agent['agentlevel']==2){
$com=M('companysetting')->where(array('uid'=>$agent['id']))->find();
break;
}
}
foreach ($betlist as $key => $value) {
$list[$key]['BetIP']=$value['betip'];
$list[$key]['LsBetIds']=$value['periodsnumber'].$value['id'];
$list[$key]['LotteryID']=$value['typeid'];
$list[$key]['MemberID']=$value['uid'];
$list[$key]['BetDetailID']=$value['id'];
$list[$key]['BetInfoID']=$value['betinfoid'];
$list[$key]['PeriodsNumber']=$value['periodsnumber'];
$list[$key]['BetDt']=$value['betdt'];
$list[$key]['BetNumber']=$value['betnumber'];
$list[$key]['BetAmount']=$value['betamount'];
$list[$key]['BetTypeID']=$value['playedid'];
$list[$key]['Odds']=sprintf("%.1f",$value['odds']);
$list[$key]['WinLoss']=$value['winloss'];
$list[$key]['ProfitAndLoss']=$value['profitandloss'];
$list[$key]['BackComm']=$value['backcomm'];
$list[$key]['BetStatus']=(int)$value['sftm'];
$list[$key]['UpdateDt']=$value['updatedt'];
$list[$key]['BetWayID']=$value['betwayid'];
$list[$key]['BackBetIP']=$value['backbetip'];
$list[$key]['IsHotNum']=(boolean)$value['ishotnum'];
$list[$key]['cancelbet']=$com['cancelbet'];
if(time()-strtotime($value['betdt'])>$com['cancelbet']*60){
$list[$key]['tingzhi']=1;
}else{
$list[$key]['tingzhi']=0;
}
}
$data=$list;
echo json_encode($data);
}
public function GetBetInfoTopTen1(){
header('Content-type: application/json');
$now=getnow('1',1);
$PeriodsNumber=$now['hm'];
$map['zt']=0;
$map['PeriodsNumber']=$PeriodsNumber;
$betlist=M('userbet'.$this->user['id'])->where($map)->limit(2)->order('id desc')->select();
$list=array();
$betlist=array_reverse($betlist);
for($i=$this->user["parent"];$i>0;$i){
$agent=M('agent')->find($i);
$i=$agent["parent"];
if($agent['agentlevel']==2){
$com=M('companysetting')->where(array('uid'=>$agent['id']))->find();
break;
}
}
foreach ($betlist as $key => $value) {
$list[$key]['BetIP']=$value['betip'];
$list[$key]['LsBetIds']=$value['periodsnumber'].$value['id'];
$list[$key]['LotteryID']=$value['typeid'];
$list[$key]['MemberID']=$value['uid'];
$list[$key]['BetDetailID']=$value['id'];
$list[$key]['BetInfoID']=$value['betinfoid'];
$list[$key]['PeriodsNumber']=$value['periodsnumber'];
$list[$key]['BetDt']=$value['betdt'];
$list[$key]['BetNumber']=$value['betnumber'];
$list[$key]['BetAmount']=$value['betamount'];
$list[$key]['BetTypeID']=$value['playedid'];
$list[$key]['Odds']=sprintf("%.1f",$value['odds']);
$list[$key]['WinLoss']=$value['winloss'];
$list[$key]['ProfitAndLoss']=$value['profitandloss'];
$list[$key]['BackComm']=$value['backcomm'];
$list[$key]['BetStatus']=(int)$value['sftm'];
$list[$key]['UpdateDt']=$value['updatedt'];
$list[$key]['BetWayID']=$value['betwayid'];
$list[$key]['BackBetIP']=$value['backbetip'];
$list[$key]['IsHotNum']=(boolean)$value['ishotnum'];
$list[$key]['cancelbet']=$com['cancelbet'];
if(time()-strtotime($value['betdt'])>$com['cancelbet']*60){
$list[$key]['tingzhi']=1;
}else{
$list[$key]['tingzhi']=0;
}
}
$data=$list;
echo json_encode($data);
}
public function GetBetInfoForLeft(){
header('Content-type: application/json');
$now=getnow('1',1);
$PeriodsNumber=$now['hm'];
$pagNum=$_GET['pagNum'];
$size=100;
$map['zt']=0;
$map['sftm']=0;
$map['PeriodsNumber']=$PeriodsNumber;
$map['leftzt']=0;
$count=M('userbet'.$this->user['id'])->where($map)->count();
$map2['PeriodsNumber']=$PeriodsNumber;
$map2['uid']=$this->user['id'];
$count2=M('bets')->where($map)->sum('count');
if($count2>$count){
$count=$count2;
}
$betlist=M('userbet'.$this->user['id'])->where($map)->limit(($pagNum-1)*$size.','.$size)->order('id desc')->select();
$list=array();
foreach ($betlist as $key => $value) {
$list[$key]['LotteryID']=$value['typeid'];
$list[$key]['BetDetailID']=$value['id'];
$list[$key]['BetInfoID']=$value['betinfoid'];
$list[$key]['PeriodsID']=$value['periodsid'];
$list[$key]['PeriodsNumber']=$value['periodsnumber'];
$list[$key]['BetDt']=$value['betdt'];
$list[$key]['BetNumber']=$value['betnumber'];
$list[$key]['BetAmount']=round($value['betamount'],1);
$list[$key]['BetTypeID']=$value['playedid'];
$list[$key]['Odds']=round($value['odds'],1);
}
$PageCount['0']['Column1']=ceil($count/$size);
$Numbering['0']['BetDt']=$value['betdt'];
$Numbering['0']['Number']=$list[$key]['PeriodsNumber'].$value['betinfoid'];
$data['PageCount']=$PageCount;
$data['Numbering']=$Numbering;
$data['list']=$list;
echo json_encode($data);
}
public function GetBetInfoForLeft1(){
header('Content-type: application/json');
$now=getnow('1',1);
$PeriodsNumber=$now['hm'];
$map['zt']=0;
$map['sftm']=0;
$map['PeriodsNumber']=$PeriodsNumber;
$map['leftzt']=0;
$count=M('userbet'.$this->user['id'])->where($map)->count();
$map2['PeriodsNumber']=$PeriodsNumber;
$map2['uid']=$this->user['id'];
$count2=M('bets')->where($map)->sum('count');
if($count2>$count){
$count=$count2;
}
$betlist=M('userbet'.$this->user['id'])->where($map)->order('id desc')->select();
$list=array();
foreach ($betlist as $key => $value) {
$list[$key]['LotteryID']=$value['typeid'];
$list[$key]['BetDetailID']=$value['id'];
$list[$key]['BetInfoID']=$value['betinfoid'];
$list[$key]['PeriodsID']=$value['periodsid'];
$list[$key]['PeriodsNumber']=$value['periodsnumber'];
$list[$key]['BetDt']=$value['betdt'];
$list[$key]['BetNumber']=$value['betnumber'];
$list[$key]['BetAmount']=round($value['betamount'],1);
$list[$key]['BetTypeID']=$value['playedid'];
$list[$key]['Odds']=round($value['odds'],1);
}
$PageCount['0']['Column1']=ceil($count/$size);
$Numbering['0']['BetDt']=$value['betdt'];
$Numbering['0']['Number']=$list[$key]['PeriodsNumber'].$value['betinfoid'];
$data['PageCount']=$PageCount;
$data['Numbering']=$Numbering;
$data['list']=$list;
echo json_encode($data);
}
public function MemberBet(){
header('Content-type: application/json');
$type=M('type')->where(array('id'=>'1'))->find();
$now=getnow('1',1);
$data['DrawDt']=$now['DrawDt'];
$data['OpenDt']=$now['OpenDt'];
if($this->user['user_status']==2){
$this->ejson('禁止下注');
}
if(time()<=strtotime($data['OpenDt'])){
$this->ejson("下注失败");
}
$PeriodsNumber=$now['hm'];
$commission=json_decode($this->user['commission'],true);
$sjcommission=json_decode($this->user['sjcommission'],true);
$BetNumber=json_decode($_POST['BetNumber'],true);
$ky_money=$this->user['money']-$this->user['yymoney'];
if($ky_money<$_POST['BetAmt']){
$this->ejson("信用额度不足");
}
$money=0;
$data=array();
//处理速度优化
$bet8['PeriodsNumber']=$bet4['PeriodsNumber']=array('neq',$PeriodsNumber);
$bet4s=M('bet3')->where($bet4)->find();
$bet8s=M('bet4')->where($bet8)->find();
if($bet4s){
M('bet3')->where('1')->delete();
}
if($bet8s){
M('bet4')->where('1')->delete();
}
$bet99['PeriodsNumber']=$bet4['PeriodsNumber']=$bet3['PeriodsNumber']=$PeriodsNumber;
$bet99['agentid']=array('in',implode(',',$ff));
$bet4ss=M('bet4')->where($bet99)->select();
$bet5ss=M('bet5')->where($bet99)->select();
foreach ($bet4ss as $key => $value) {
$bet9s[$value['agentid']][$value['betnumber']]=$value;
}
foreach ($bet5ss as $key => $value) {
$bet99s[$value['agentid']][$value['betnumber']]=$value;
}
if($this->user['periodsnumber']==$PeriodsNumber){
$xxx=file_get_contents('storexx/'.md5($this->user['id']).'text');
$storexx=json_decode($xxx,true);
}
else{
$storexx=array();
}
for($i=2;$i<17;$i++){
if(count($BetNumber['B'.$i])){
foreach ($BetNumber['B'.$i] as $key => $value) {
$bet=array();
$map['betTypeId']=$i;
$played=M('played')->where($map)->find();
// $store=storexx($this->uid,$value,$PeriodsNumber);
//$store2=storexx2($this->uid,$played['id'],$PeriodsNumber);
$money=$money+$_POST['BetAmt'];
$typemoney[$value]=$typemoney[$value]+$_POST['BetAmt'];
if($commission[$played['bettypeid']]['MaxLimitItemBet']){
$maxcount=$commission[$played['bettypeid']]['MaxLimitItemBet'];
}
else{
$maxcount=$played['maxcount'];
}
if($commission[$played['bettypeid']]['MaxLimitSigleBet']){
$maxbet=$commission[$played['bettypeid']]['MaxLimitSigleBet'];
}
else{
$maxbet=$played['maxbet'];
}
if($commission[$played['bettypeid']]['MinLimitBetAmount']){
$minamount=$commission[$played['bettypeid']]['MinLimitBetAmount'];
}
else{
$minamount=$played['minamount'];
}
//$store=$maxcount-$store+0;
//$store2=$maxcount-$store2+0;//能够下注
if($minamount>$_POST['BetAmt']){
$this->ejson("下注单额超过下限".$minamount."元");
}
//查询数据库本期该类型已经下了多少钱的
$bet666['PeriodsNumber'] = $PeriodsNumber;
$bet666['BetNumber']=$value;
$bet666['sftm']=0;
$sum666=M('userbet'.$this->user['id'])->where($bet666)->sum('BetAmount');
if($maxcount<($typemoney[$value]+$sum666+0) || $maxbet<$_POST['BetAmt']+$storexx[$result['number']]+0){
$money=$money-$_POST['BetAmt'];
$typemoney[$played['id']]=$typemoney[$played['id']]-$_POST['BetAmt'];
$add=array();
$add['uid']=$this->user['id'];
$add['PeriodsNumber']=$PeriodsNumber;
$add['BetTypeID']=$i;
$add['BetNumber']=$value;
$add['BetAmount']=$_POST['BetAmt'];
$add['IsDelete']=0;
$add['CreateDt']=$this->time;
$add['UpdateDt']=$this->time;
M('bet2')->add($add);
$isStopNum=55;
}
else{
$storexx[$value]=$_POST['BetAmt']+$storexx[$value];
$bet['BetAmount']=$_POST['BetAmt'];
$bet['Odds']=getodds($played,$this->user,$value);
$bet['playedId']=$played['id'];
$bet['BetTypeID']=$i;
$bet['ProfitAndLoss']=0-$_POST['BetAmt'];
$bet['BetNumber']=$value;
$data[]=$bet;
}
}
}
}
打印功能实现
public function __construct() {
parent::__construct();
$this->check_login();
$this->user_model = M('user');//打款凭证
}
public function Index(){
$this->display();
}
public function GetLotteryResult(){
header('Content-type: application/json');
$start=$_GET['StartDate'];
$end=$_GET['EndDate'];
$where['time']=array('between',strtotime($start."00:00:00").','.strtotime($end."23:59:59"));
$count=M('data')->where($where)->count();
$list=M('data')->where($where)->limit((($_GET['pageIndex']-1)*20).',20')->order('time desc')->select();
$PageCount=ceil($count/20);
$list2=array();
foreach ($list as $key => $value) {
$list2[$key][CreateDt]=date('Y-m-d H:i:s',$value['time']);
$list2[$key][DrawDt]=date('Y-m-d H:i:s',$value['time']);
$list2[$key][OpenDt]=date('Y-m-d H:i:s',$value['time']);
$list2[$key][ID]=$value['number'];
$list2[$key][PeriodsNumber]=$value['number'];
$list2[$key][ResultNumber]=$value['data'];
}
$data['list']=$list2;
$data['PageCount']=$PageCount;
echo json_encode($data);
}
}
还在继续中.........