accountInfo = $_SESSION['newdevice'];// $this->time = date('Y-m-d H:i:s',time()); } public function bet_order(){ dd($_SESSION);die; //会员ID $account_id = "1"; if(empty($account_id)){ Render('','4001',lang('Errors','Sports')->get('error-4001')); } $data = [ ['game_code'=>'zq','match_id'=>1,'lg_id'=>1,'odds_id'=>'1','bet_amount'=>100,'bet_odds'=>1], ['game_code'=>'zq','match_id'=>1,'lg_id'=>1,'odds_id'=>'1','bet_amount'=>100,'bet_odds'=>1] ]; //支付密码 $pwd = $_POST['pwd']; //总金额 $bet_amount = 0; //扣款信息 $extra=[]; foreach($data as $k => $v){ self::verify_gameType($v['game_code']); self::verify_match($v['game_code'],$v['match_id']); self::verify_league($v['game_code'],$v['lg_id']); self::verify_odds($data['game_code'],$v['odds_id']); if(empty($v['bet_amount'])){ Render('', '1002',lang('BetOrder','Sports')->get('error-1002')); } if(empty($v['bet_odds'])){ Render('', '1003',lang('BetOrder','Sports')->get('error-1003')); } $data[$k]['win_amount'] = $v['bet_amount'] * $v['bet_odds'] - $v['bet_amount']; $data[$k]['account_id'] = $account_id; $data[$k]['status'] = 1; $data[$k]['order_number'] = OrderID(); $data[$k]['ctime']= $this->time; $data[$k]['utime']= $this->time; $bet_amount += $v['bet_amount']; // $extra=[ // '' // ]; } $MC = new Moneycopy(); //交易密码验证 if(!$MC->verifyPayPwd('4ea268f8-fb0f-2b97-dcd8-b7ae68a5c82c',$pwd)){ Render('', '1004',lang('BetOrder','Sports')->get('error-1004')); } //获取用户金额信息 $getAccount = $MC->getAccount('4ea268f8-fb0f-2b97-dcd8-b7ae68a5c82c'); if(!$MC->verifyMoney($bet_amount,$getAccount['cash'])){ Render('', '1005',lang('BetOrder','Sports')->get('error-1005')); } try { _beginTransaction();//开启事务 $insert = lm('st_bet_order','Sports')->insert($data); if(!$insert){ Render('','-1005',lang('BetOrder','Sports')->get('error-1005')); } $updateMoney = $MC->updateMoney($account_id,$data['bet_amount'],1); if($updateMoney!=1){ Render('', $updateMoney,lang('BetOrder','Sports')->get($updateMoney)); } _commit();//提交 } catch (Exception $e) { _rollBack();//回滚 print $e->getMessage(); } } /* * 验证联赛是否存在 */ public static function verify_league($game_code,$lg_id){ if(empty($lg_id)){ Render([], '1001',lang('BetOrder','Sports')->get('error-1001')); } //根据球类代码 获取相关model $models = getModels($game_code); $model_league = $models['model_match']; $info = lm($model_league,'Sports')->where('id',$lg_id)->first(); if(empty($info)){ Render([], '1001',lang('BetOrder','Sports')->get('error-1001')); } return $info; } /* * 验证赛事是否存在 */ public static function verify_match($game_code,$match_id){ if(empty($match_id)){ Render([], '1001', lang('BetOrder','Sports')->get('error-1001')); } //根据球类代码 获取相关model $models = getModels($game_code); $model_match = $models['model_match']; $info = lm($model_match,'Sports')->where('match_id',$match_id)->first(); if(empty($info)){ Render([], '1001', lang('BetOrder','Sports')->get('error-1001')); } return $info; } /* * 验证球类是否存在 */ public static function verify_gameType($game_code){ if(empty($game_code)){ Render([], '1001', lang('BetOrder','Sports')->get('error-1001')); } $info = lm('GameType','Sports')->where('game_code',$game_code)->first(); if(empty($info)){ Render([], '1001', lang('BetOrder','Sports')->get('error-1001')); } return $info; } /* * 验证赔率是否存在 */ public static function verify_odds($game_code,$odds_id){ if(empty($odds_id)){ Render([], '1001', lang('BetOrder','Sports')->get('error-1001')); } //根据球类代码 获取相关model $models = getModels($game_code); $model_odds = $models['model_odds']; $info = lm($model_odds,'Sports')->where('id',$odds_id)->first(); if(empty($info)){ Render([], '1001', lang('BetOrder','Sports')->get('error-1001')); } return $info; } }