| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- <?php
- namespace App\Sports\Controller;
- use BaseController\Controller;
- use Biz\Money\Moneycopy;
- /*
- * Class Register
- * @package App\Sports\Controller
- * User: junghwi
- * Date: 2019/3/21
- */
- class BetOrder extends Controller{
- function init() {
- $this->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;
- }
- }
|