BetOrder.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <?php
  2. namespace App\Sports\Controller;
  3. use BaseController\Controller;
  4. use Biz\Money\Moneycopy;
  5. /*
  6. * Class Register
  7. * @package App\Sports\Controller
  8. * User: junghwi
  9. * Date: 2019/3/21
  10. */
  11. class BetOrder extends Controller{
  12. function init() {
  13. $this->accountInfo = $_SESSION['newdevice'];//
  14. $this->time = date('Y-m-d H:i:s',time());
  15. }
  16. public function bet_order(){
  17. dd($_SESSION);die;
  18. //会员ID
  19. $account_id = "1";
  20. if(empty($account_id)){
  21. Render('','4001',lang('Errors','Sports')->get('error-4001'));
  22. }
  23. $data = [
  24. ['game_code'=>'zq','match_id'=>1,'lg_id'=>1,'odds_id'=>'1','bet_amount'=>100,'bet_odds'=>1],
  25. ['game_code'=>'zq','match_id'=>1,'lg_id'=>1,'odds_id'=>'1','bet_amount'=>100,'bet_odds'=>1]
  26. ];
  27. //支付密码
  28. $pwd = $_POST['pwd'];
  29. //总金额
  30. $bet_amount = 0;
  31. //扣款信息
  32. $extra=[];
  33. foreach($data as $k => $v){
  34. self::verify_gameType($v['game_code']);
  35. self::verify_match($v['game_code'],$v['match_id']);
  36. self::verify_league($v['game_code'],$v['lg_id']);
  37. self::verify_odds($data['game_code'],$v['odds_id']);
  38. if(empty($v['bet_amount'])){
  39. Render('', '1002',lang('BetOrder','Sports')->get('error-1002'));
  40. }
  41. if(empty($v['bet_odds'])){
  42. Render('', '1003',lang('BetOrder','Sports')->get('error-1003'));
  43. }
  44. $data[$k]['win_amount'] = $v['bet_amount'] * $v['bet_odds'] - $v['bet_amount'];
  45. $data[$k]['account_id'] = $account_id;
  46. $data[$k]['status'] = 1;
  47. $data[$k]['order_number'] = OrderID();
  48. $data[$k]['ctime']= $this->time;
  49. $data[$k]['utime']= $this->time;
  50. $bet_amount += $v['bet_amount'];
  51. // $extra=[
  52. // ''
  53. // ];
  54. }
  55. $MC = new Moneycopy();
  56. //交易密码验证
  57. if(!$MC->verifyPayPwd('4ea268f8-fb0f-2b97-dcd8-b7ae68a5c82c',$pwd)){
  58. Render('', '1004',lang('BetOrder','Sports')->get('error-1004'));
  59. }
  60. //获取用户金额信息
  61. $getAccount = $MC->getAccount('4ea268f8-fb0f-2b97-dcd8-b7ae68a5c82c');
  62. if(!$MC->verifyMoney($bet_amount,$getAccount['cash'])){
  63. Render('', '1005',lang('BetOrder','Sports')->get('error-1005'));
  64. }
  65. try {
  66. _beginTransaction();//开启事务
  67. $insert = lm('st_bet_order','Sports')->insert($data);
  68. if(!$insert){
  69. Render('','-1005',lang('BetOrder','Sports')->get('error-1005'));
  70. }
  71. $updateMoney = $MC->updateMoney($account_id,$data['bet_amount'],1);
  72. if($updateMoney!=1){
  73. Render('', $updateMoney,lang('BetOrder','Sports')->get($updateMoney));
  74. }
  75. _commit();//提交
  76. } catch (Exception $e) {
  77. _rollBack();//回滚
  78. print $e->getMessage();
  79. }
  80. }
  81. /*
  82. * 验证联赛是否存在
  83. */
  84. public static function verify_league($game_code,$lg_id){
  85. if(empty($lg_id)){
  86. Render([], '1001',lang('BetOrder','Sports')->get('error-1001'));
  87. }
  88. //根据球类代码 获取相关model
  89. $models = getModels($game_code);
  90. $model_league = $models['model_match'];
  91. $info = lm($model_league,'Sports')->where('id',$lg_id)->first();
  92. if(empty($info)){
  93. Render([], '1001',lang('BetOrder','Sports')->get('error-1001'));
  94. }
  95. return $info;
  96. }
  97. /*
  98. * 验证赛事是否存在
  99. */
  100. public static function verify_match($game_code,$match_id){
  101. if(empty($match_id)){
  102. Render([], '1001', lang('BetOrder','Sports')->get('error-1001'));
  103. }
  104. //根据球类代码 获取相关model
  105. $models = getModels($game_code);
  106. $model_match = $models['model_match'];
  107. $info = lm($model_match,'Sports')->where('match_id',$match_id)->first();
  108. if(empty($info)){
  109. Render([], '1001', lang('BetOrder','Sports')->get('error-1001'));
  110. }
  111. return $info;
  112. }
  113. /*
  114. * 验证球类是否存在
  115. */
  116. public static function verify_gameType($game_code){
  117. if(empty($game_code)){
  118. Render([], '1001', lang('BetOrder','Sports')->get('error-1001'));
  119. }
  120. $info = lm('GameType','Sports')->where('game_code',$game_code)->first();
  121. if(empty($info)){
  122. Render([], '1001', lang('BetOrder','Sports')->get('error-1001'));
  123. }
  124. return $info;
  125. }
  126. /*
  127. * 验证赔率是否存在
  128. */
  129. public static function verify_odds($game_code,$odds_id){
  130. if(empty($odds_id)){
  131. Render([], '1001', lang('BetOrder','Sports')->get('error-1001'));
  132. }
  133. //根据球类代码 获取相关model
  134. $models = getModels($game_code);
  135. $model_odds = $models['model_odds'];
  136. $info = lm($model_odds,'Sports')->where('id',$odds_id)->first();
  137. if(empty($info)){
  138. Render([], '1001', lang('BetOrder','Sports')->get('error-1001'));
  139. }
  140. return $info;
  141. }
  142. }