|
|
@@ -29,74 +29,21 @@ class Betorder extends BaseController{
|
|
|
if(empty($res)){
|
|
|
Render('', '7003',lang('Errors','Api')->get('error-7003'));
|
|
|
}
|
|
|
-// $res = [
|
|
|
-// [
|
|
|
-// "type" => 1,
|
|
|
-// 'index' => 0,
|
|
|
-// 'bet_amount'=> 2000
|
|
|
-// ],
|
|
|
-// [
|
|
|
-// "type" => 1,
|
|
|
-// 'index' => 1,
|
|
|
-// 'bet_amount'=> 2000
|
|
|
-// ],
|
|
|
-// [
|
|
|
-// "type" => 1,
|
|
|
-// 'index' => 2,
|
|
|
-// 'bet_amount'=> 2000
|
|
|
-// ],
|
|
|
-// [
|
|
|
-// [
|
|
|
-// 'id'=>656437,
|
|
|
-// 'home_team' => "阿尔艾利开罗",
|
|
|
-// 'guest_team' => '金字塔',
|
|
|
-// 'name' => '阿尔艾利开罗',
|
|
|
-// 'odds' => 0.31,
|
|
|
-// 'p_code' => 'concede_size',
|
|
|
-// 'ballId' => 'zq',
|
|
|
-// 'match_id' => 3132384,
|
|
|
-// 'condition' => '+0/0.5',
|
|
|
-// 'odds_code' => 'concede_size',
|
|
|
-// 'bettingTime' => '',
|
|
|
-// 'odds_only' => '1dee7e98db303852227cf1e0d8085dfb1555617310.3833947',
|
|
|
-// 'type' => 1
|
|
|
-// ],
|
|
|
-// [
|
|
|
-// 'id'=>656437,
|
|
|
-// 'home_team' => "阿尔艾利开罗",
|
|
|
-// 'guest_team' => '金字塔',
|
|
|
-// 'name' => '阿尔艾利开罗',
|
|
|
-// 'odds' => 0.31,
|
|
|
-// 'p_code' => 'concede_size',
|
|
|
-// 'ballId' => 'zq',
|
|
|
-// 'match_id' => 3132384,
|
|
|
-// 'condition' => '+0/0.5',
|
|
|
-// 'ganame' => 'concede_size',
|
|
|
-// 'bettingTime' => '',
|
|
|
-// 'odds_only' => '1dee7e98db303852227cf1e0d8085dfb1555617310.3833947',
|
|
|
-// 'type' => 1
|
|
|
-// ],
|
|
|
-// [
|
|
|
-// 'id'=>656437,
|
|
|
-// 'home_team' => "阿尔艾利开罗",
|
|
|
-// 'guest_team' => '金字塔',
|
|
|
-// 'name' => '阿尔艾利开罗',
|
|
|
-// 'odds' => 0.31,
|
|
|
-// 'p_code' => 'concede_size',
|
|
|
-// 'ballId' => 'zq',
|
|
|
-// 'match_id' => 3132384,
|
|
|
-// 'condition' => '+0/0.5',
|
|
|
-// 'odds_code' => 'concede_size',
|
|
|
-// 'bettingTime' => '',
|
|
|
-// 'odds_only' => '1dee7e98db303852227cf1e0d8085dfb1555617310.3833947',
|
|
|
-// 'type' => 1
|
|
|
-// ],
|
|
|
-// ]
|
|
|
-// ];
|
|
|
$data['single'] = [];//单式
|
|
|
$data['bunch'] = [];//串式
|
|
|
$last[] = $res[count($res)-1];
|
|
|
unset($res[count($res)-1]);
|
|
|
+ foreach ($last as $k =>$v){
|
|
|
+ foreach ($v as $kk =>$vv){
|
|
|
+ //验证赛事是否存在
|
|
|
+ $this->verify_match($vv['ballId'],$vv['match_id'],$kk+1);
|
|
|
+ //验证球类代码是否有效
|
|
|
+ $this->verify_gameType($vv['ballId'],$kk+1);
|
|
|
+ //验证赛事下赔率玩法是否有效
|
|
|
+// $this->verify_odds($vv['ballId'],$vv['id'],$vv['odds_only'],$vv['odds'],$vv['condition'],$kk+1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
foreach($res as $k => $v){
|
|
|
//根据类型分组
|
|
|
if($v['type'] == '1'){
|
|
|
@@ -108,7 +55,6 @@ class Betorder extends BaseController{
|
|
|
if(!empty($data['bunch'])){
|
|
|
$data['bunch'] = array_merge_recursive($data['bunch'],$last);
|
|
|
}
|
|
|
-
|
|
|
return $data;
|
|
|
}
|
|
|
|
|
|
@@ -144,6 +90,7 @@ class Betorder extends BaseController{
|
|
|
if(empty($data)||empty($userInfo)||empty($game_code)||empty($OrderID)||empty($UUID)){
|
|
|
Render('', '7003',lang('Errors','Api')->get('error-7003'));
|
|
|
}
|
|
|
+ $money = 0; //总投注额
|
|
|
foreach($data as $k => $v){
|
|
|
$bet_money = 0; //单个球类单条总投注金额
|
|
|
$prize_money = 0; //可赢额
|
|
|
@@ -151,6 +98,7 @@ class Betorder extends BaseController{
|
|
|
foreach($v as $kk => $vv){
|
|
|
$bet_money += $vv['bet_amount'];
|
|
|
$prize_money += ($vv['odds']-1)*$bet_money;
|
|
|
+ $money += $vv['bet_amount'];
|
|
|
}
|
|
|
$order =[
|
|
|
'info_identity' => $UUID,
|
|
|
@@ -169,12 +117,10 @@ class Betorder extends BaseController{
|
|
|
if(!$insert){
|
|
|
Render('','-1005',lang('errors','Api')->get('error-3205'));
|
|
|
}
|
|
|
- $insertMoney = $this->M->insertMoney($userInfo['account_identity'],$bet_money,$OrderID,1,"",$UUID,$userInfo);
|
|
|
- if($insertMoney!=1){
|
|
|
- Render('', $insertMoney,lang('Errors','Api')->get('error'.$insertMoney));
|
|
|
- }
|
|
|
- $bet_money = 0; //初始化
|
|
|
- $prize_money = 0;
|
|
|
+ }
|
|
|
+ $insertMoney = $this->M->insertMoney($userInfo['account_identity'],$money,$OrderID,1,"",$UUID,$userInfo);
|
|
|
+ if($insertMoney!=1){
|
|
|
+ Render('', $insertMoney,lang('Errors','Api')->get('error'.$insertMoney));
|
|
|
}
|
|
|
}
|
|
|
/**
|
|
|
@@ -190,13 +136,12 @@ class Betorder extends BaseController{
|
|
|
//验证与判断投注了几种
|
|
|
foreach($res as $k => $v){
|
|
|
$num = $k + 1;
|
|
|
- $this->verify_match($v['game_code'],$v['match_id'],$num);
|
|
|
- $this->verify_odds($v['game_code'],$v['odds_id'],$v['odds_only'],$v['odds'],$v['condition'],$num);
|
|
|
+// $this->verify_match($v['ballId'],$v['match_id'],$num);
|
|
|
+//// $this->verify_odds($v['ballId'],$v['odds_id'],$v['odds_only'],$v['odds'],$v['condition'],$num);
|
|
|
if(empty($v['bet_amount'])){
|
|
|
$msg = '第'.$num.'条'.lang('Errors','Api')->get('error-5105');
|
|
|
Render([], '5105',$msg);
|
|
|
}
|
|
|
- $this->simplex_money += $v['bet_amount'];
|
|
|
//根据类型分组
|
|
|
if(!isset($res[$v['ballId']])){
|
|
|
$res[$v['ballId']][] = $v;
|
|
|
@@ -225,14 +170,15 @@ class Betorder extends BaseController{
|
|
|
public function Bet(){
|
|
|
$userInfo = $this->getAgent();//获取用户信息
|
|
|
$data = $_REQUEST['data'];
|
|
|
- if(empty($data)){
|
|
|
+ $bet_money = $_REQUEST['bet_money'];
|
|
|
+ if(empty($data)||empty($bet_money)){
|
|
|
Render('', '51029',lang('Errors','Api')->get('error-51029'));
|
|
|
}
|
|
|
-// $order_money = $this->simplex_money; //+ $xxx;
|
|
|
-// //获取用户金额信息
|
|
|
-// if(!$this->M->verifyMoney($order_money,$userInfo['cash'])){
|
|
|
-// Render('', '4204',lang('Errors','Api')->get('error-4204'));
|
|
|
-// }
|
|
|
+ //获取用户金额信息
|
|
|
+ if(!$this->M->verifyMoney($bet_money,$userInfo['cash'])){
|
|
|
+ Render('', '4204',lang('Errors','Api')->get('error-4204'));
|
|
|
+ }
|
|
|
+//assAss
|
|
|
//执行数据插入
|
|
|
try {
|
|
|
_beginTransaction();//开启事务
|
|
|
@@ -242,7 +188,7 @@ class Betorder extends BaseController{
|
|
|
}
|
|
|
if(!empty($data['bunch'])){
|
|
|
$data_all = $data['bunch'][count($data['bunch'])-1];//获取最后一个数组
|
|
|
- $data['bunch'] = array_pop($data['bunch'][count($data['bunch'])-1]);//删除最后一个元素
|
|
|
+ unset($data['bunch'][count($data['bunch'])-1]);//删除最后一个元素
|
|
|
$this->stringBet($data['bunch'],$data_all,$userInfo);
|
|
|
}
|
|
|
_commit();//提交
|
|
|
@@ -268,49 +214,27 @@ class Betorder extends BaseController{
|
|
|
/**
|
|
|
* 赛事是否存在或结束
|
|
|
* @param [type] $game_code 球类代码
|
|
|
- * @param [type] $odds_id 赔率ID
|
|
|
+ * @param [type] $match_id 赔率ID
|
|
|
* @param [type] $num 循环键值
|
|
|
- * $type_str 串式类型
|
|
|
+ * $@param [type]type_str 串式
|
|
|
*/
|
|
|
- public function verify_match($game_code,$match_id='',$num,$type_str = ''){
|
|
|
- if(empty($odds_id)){
|
|
|
- if($type_str){
|
|
|
- $msg = '串式投注'.$type_str.':第'.$num.'条投注'.lang('Errors','Api')->get('error-5107');
|
|
|
- Render([], '5107',$msg);
|
|
|
- }else{
|
|
|
- $msg = '第'.$num.'条'.lang('Errors','Api')->get('error-5107');
|
|
|
- Render([], '5107',$msg);
|
|
|
- }
|
|
|
+ public function verify_match($game_code,$match_id,$num = 1){
|
|
|
+ if(empty($match_id)){
|
|
|
+ $msg = '第'.$num.'条'.lang('Errors','Api')->get('error-5109');
|
|
|
+ Render([], '5109',$msg);
|
|
|
}
|
|
|
-
|
|
|
//根据球类代码 获取相关model
|
|
|
$models = getModels($game_code);
|
|
|
- $model_odds = $models['model_odds'];
|
|
|
$model_match = $models['model_match'];
|
|
|
$info = lm($model_match,'Sports')
|
|
|
->select('status')
|
|
|
-// ->where('status', '<', '2')
|
|
|
-// ->where('us_time','>',qgmdate('Y-m-d H:i:s','', -4))
|
|
|
+ ->where('status', '<', '2')
|
|
|
+ ->where('us_time','>',qgmdate('Y-m-d H:i:s','', -4))
|
|
|
->where('match_id',$match_id)
|
|
|
->first();
|
|
|
if(empty($info)){
|
|
|
- if($type_str){
|
|
|
- $msg = '串式投注'.$type_str.':第'.$num.'条投注'.lang('Errors','Api')->get('error-5103');
|
|
|
- Render([], '5103',$msg);
|
|
|
- }else{
|
|
|
- $msg = '第'.$num.'条'.lang('Errors','Api')->get('error-5103');
|
|
|
- Render([], '5103',$msg);
|
|
|
- }
|
|
|
- }
|
|
|
- $info->toarray();
|
|
|
- if($info['status'] == 2){
|
|
|
- if($type_str){
|
|
|
- $msg = '串式投注'.$type_str.':第'.$num.'条投注'.lang('Errors','Api')->get('error-5108');
|
|
|
- Render([], '5108',$msg);
|
|
|
- }else{
|
|
|
- $msg = '第'.$num.'条'.lang('Errors','Api')->get('error-5108');
|
|
|
- Render([], '5108',$msg);
|
|
|
- }
|
|
|
+ $msg = '第'.$num.'条'.lang('Errors','Api')->get('error-5103');
|
|
|
+ Render([], '5103',$msg);
|
|
|
}
|
|
|
return $info;
|
|
|
}
|
|
|
@@ -319,28 +243,16 @@ class Betorder extends BaseController{
|
|
|
* 验证球类是否存在
|
|
|
* @param [type] $game_code 球类代码
|
|
|
* @param [type] $num 第几条
|
|
|
- * $type_str 串式类型
|
|
|
*/
|
|
|
- public function verify_gameType($game_code,$num,$type_str=''){
|
|
|
+ public function verify_gameType($game_code,$num){
|
|
|
if(empty($game_code)){
|
|
|
- if($type_str){
|
|
|
- $msg = '串式投注'.$type_str.':第'.$num.'条投注'.lang('Errors','Api')->get('error-5102');
|
|
|
- Render([], '5102',$msg);
|
|
|
- }else{
|
|
|
- $msg = '第'.$num.'条数据'.lang('Errors','Api')->get('error-5102');
|
|
|
- Render([], '5102', $msg);
|
|
|
- }
|
|
|
-
|
|
|
+ $msg = '第'.$num.'条数据'.lang('Errors','Api')->get('error-5102');
|
|
|
+ Render([], '5102', $msg);
|
|
|
}
|
|
|
$info = lm('GameType','Sports')->where('game_code',$game_code)->first();
|
|
|
if(empty($info)){
|
|
|
- if($type_str){
|
|
|
- $msg = '串式投注'.$type_str.':第'.$num.'条投注'.lang('Errors','Api')->get('error-5102');
|
|
|
- Render([], '5102',$msg);
|
|
|
- }else {
|
|
|
- $msg = '第' . $num . '条数据' . lang('Errors', 'Api')->get('error-5102');
|
|
|
- Render([], '5102', $msg);
|
|
|
- }
|
|
|
+ $msg = '第' . $num . '条数据' . lang('Errors', 'Api')->get('error-5102');
|
|
|
+ Render([], '5102', $msg);
|
|
|
}
|
|
|
return $info;
|
|
|
}
|
|
|
@@ -350,34 +262,39 @@ class Betorder extends BaseController{
|
|
|
* @param [type] $game_code 球类代码
|
|
|
* @param [type] $odds_id 赔率IDkk
|
|
|
*/
|
|
|
- public function verify_odds($game_code,$odds_id,$odds_only,$odds,$condition,$num){
|
|
|
+ public function verify_odds($game_code,$odds_id,$odds_only,$odds,$condition,$num = 1){
|
|
|
if(empty($odds_id)||empty($odds_only)||empty($condition)||empty($odds)){
|
|
|
$msg = '第'.$num.'条数据'.lang('Errors','Api')->get('error-7029');
|
|
|
Render([], '7029', $msg);
|
|
|
}
|
|
|
+
|
|
|
//根据球类代码 获取相关model
|
|
|
$models = getModels($game_code);
|
|
|
$model_odds = $models['model_odds'];
|
|
|
$model_odds_record = $models['model_odds_record'];
|
|
|
- $info = lm($model_odds,'Sports')
|
|
|
- ->leftjoin($model_odds_record,$model_odds_record.'.odds_only',$model_odds.'.odds_only')
|
|
|
- ->select($model_odds_record.'.odds',$model_odds_record.'.condition')
|
|
|
- ->where($model_odds.'.odds_only',$odds_only)
|
|
|
+ $odds_info = lm($model_odds,'Sports')
|
|
|
+ ->select('odds','condition')
|
|
|
+ ->where('id',$odds_id)
|
|
|
+ ->first();
|
|
|
+ $odds_record = lm($model_odds_record,'Sports')
|
|
|
+ ->select('odds','condition')
|
|
|
+ ->where('odds_only',$odds_only)
|
|
|
->first();
|
|
|
- if(!$info){
|
|
|
+ if(empty($odds_info)||empty($odds_record)){
|
|
|
$msg = '第'.$num.'条数据'.lang('Errors','Api')->get('error-7029');
|
|
|
Render([], '70291', $msg);
|
|
|
}
|
|
|
- $info->toarray();
|
|
|
- if($odds != $info['odds']){
|
|
|
+ $odds_info = $odds_info->toarray();
|
|
|
+ $odds_record = $odds_record->toarray();
|
|
|
+ if($odds != $odds_info['odds']||$odds != $odds_record['odds']){
|
|
|
$msg = '第'.$num.'条数据'.lang('Errors','Api')->get('error-7029');
|
|
|
Render([], '70292', $msg);
|
|
|
}
|
|
|
- if($condition = $info['condition']){
|
|
|
+ if($condition = $odds_info['condition']||$condition = $odds_record['condition']){
|
|
|
$msg = '第'.$num.'条数据'.lang('Errors','Api')->get('error-7029');
|
|
|
Render([], '70293', $msg);
|
|
|
}
|
|
|
- return $info;
|
|
|
+ return $odds_info;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -387,75 +304,92 @@ class Betorder extends BaseController{
|
|
|
* $userInfo 用户数据
|
|
|
*/
|
|
|
public function stringBet($data_str=[],$data_all=[],$userInfo=[]){
|
|
|
- //所有串式数据
|
|
|
- $data_str = [
|
|
|
- [
|
|
|
- 'type'=>'4串1',//串式名称
|
|
|
- 'odds'=>'',//当前串式赔率
|
|
|
- 'bet_amount'=> 1,
|
|
|
- ],
|
|
|
- ];
|
|
|
-
|
|
|
- $data_all = [
|
|
|
- [
|
|
|
- 'id' => 887529,
|
|
|
- 'home_team' => '阿尔艾利开罗',
|
|
|
- 'guest_team' => '金字塔',
|
|
|
- 'name' => '阿尔艾利开罗',
|
|
|
- 'odds' => '1.97',
|
|
|
- 'p_code' => 'concede_size',
|
|
|
- 'ballId' => 'zq',
|
|
|
- 'match_id' => 3129809,
|
|
|
- 'condition' => '+0/0.5',
|
|
|
- 'ganame' => 'concede_size',
|
|
|
- 'bettingTime' =>'',
|
|
|
- 'odds_only' => '1dee7e98db303852227cf1e0d8085dfb1555617310.3833947',
|
|
|
- 'type' => 1,
|
|
|
- ],
|
|
|
- [
|
|
|
- 'id' => 887472,
|
|
|
- 'home_team' => '阿尔艾利开罗',
|
|
|
- 'guest_team' => '金字塔',
|
|
|
- 'name' => '阿尔艾利开罗',
|
|
|
- 'odds' => '1.84',
|
|
|
- 'p_code' => 'concede_size',
|
|
|
- 'ballId' => 'zq',
|
|
|
- 'match_id' => 3124863,
|
|
|
- 'condition' => '+0/0.5',
|
|
|
- 'ganame' => 'concede_size',
|
|
|
- 'bettingTime' =>'',
|
|
|
- 'odds_only' => '1dee7e98db303852227cf1e0d8085dfb1555617310.3833947',
|
|
|
- 'type' => 1,
|
|
|
- ],[
|
|
|
- 'id' => 887451,
|
|
|
- 'home_team' => '阿尔艾利开罗',
|
|
|
- 'guest_team' => '金字塔',
|
|
|
- 'name' => '阿尔艾利开罗',
|
|
|
- 'odds' => '2.05',
|
|
|
- 'p_code' => 'concede_size',
|
|
|
- 'ballId' => 'zq',
|
|
|
- 'match_id' => 3133254,
|
|
|
- 'condition' => '+0/0.5',
|
|
|
- 'ganame' => 'concede_size',
|
|
|
- 'bettingTime' =>'',
|
|
|
- 'odds_only' => '1dee7e98db303852227cf1e0d8085dfb1555617310.3833947',
|
|
|
- 'type' => 1,
|
|
|
- ],[
|
|
|
- 'id' => 887450,
|
|
|
- 'home_team' => '阿尔艾利开罗',
|
|
|
- 'guest_team' => '金字塔',
|
|
|
- 'name' => '阿尔艾利开罗',
|
|
|
- 'odds' => '1.83',
|
|
|
- 'p_code' => 'concede_size',
|
|
|
- 'ballId' => 'zq',
|
|
|
- 'match_id' => 3127596,
|
|
|
- 'condition' => '+0/0.5',
|
|
|
- 'ganame' => 'concede_size',
|
|
|
- 'bettingTime' =>'',
|
|
|
- 'odds_only' => '1dee7e98db303852227cf1e0d8085dfb1555617310.3833947',
|
|
|
- 'type' => 1,
|
|
|
- ]
|
|
|
- ];
|
|
|
+// $userInfo = $this->getAgent();
|
|
|
+// dd($userInfo);
|
|
|
+// //所有串式数据
|
|
|
+// $data_str = [
|
|
|
+// [
|
|
|
+// 'type'=>'4串1',//串式名称
|
|
|
+// 'odds'=>'',//当前串式赔率
|
|
|
+// 'bet_amount'=> 1,
|
|
|
+// ],
|
|
|
+// [
|
|
|
+// 'type'=>'3串1',//串式名称
|
|
|
+// 'odds'=>'',//当前串式赔率
|
|
|
+// 'bet_amount'=> 1,
|
|
|
+// ],
|
|
|
+// [
|
|
|
+// 'type'=>'2串1',//串式名称
|
|
|
+// 'odds'=>'',//当前串式赔率
|
|
|
+// 'bet_amount'=> 1,
|
|
|
+// ],
|
|
|
+// [
|
|
|
+// 'type'=>'4串11',//串式名称
|
|
|
+// 'odds'=>'',//当前串式赔率
|
|
|
+// 'bet_amount'=> 1,
|
|
|
+// ],
|
|
|
+// ];
|
|
|
+//
|
|
|
+// $data_all = [
|
|
|
+// [
|
|
|
+// 'id' => 887529,
|
|
|
+// 'home_team' => '阿尔艾利开罗',
|
|
|
+// 'guest_team' => '金字塔',
|
|
|
+// 'name' => '阿尔艾利开罗',
|
|
|
+// 'odds' => '2.02',
|
|
|
+// 'p_code' => 'concede_size',
|
|
|
+// 'ballId' => 'zq',
|
|
|
+// 'match_id' => 3129809,
|
|
|
+// 'condition' => '+0/0.5',
|
|
|
+// 'ganame' => 'concede_size',
|
|
|
+// 'bettingTime' =>'',
|
|
|
+// 'odds_only' => '1dee7e98db303852227cf1e0d8085dfb1555617310.3833947',
|
|
|
+// 'type' => 1,
|
|
|
+// ],
|
|
|
+// [
|
|
|
+// 'id' => 887472,
|
|
|
+// 'home_team' => '阿尔艾利开罗',
|
|
|
+// 'guest_team' => '金字塔',
|
|
|
+// 'name' => '阿尔艾利开罗',
|
|
|
+// 'odds' => '1.84',
|
|
|
+// 'p_code' => 'concede_size',
|
|
|
+// 'ballId' => 'zq',
|
|
|
+// 'match_id' => 3124863,
|
|
|
+// 'condition' => '+0/0.5',
|
|
|
+// 'ganame' => 'concede_size',
|
|
|
+// 'bettingTime' =>'',
|
|
|
+// 'odds_only' => '1dee7e98db303852227cf1e0d8085dfb1555617310.3833947',
|
|
|
+// 'type' => 1,
|
|
|
+// ],[
|
|
|
+// 'id' => 887451,
|
|
|
+// 'home_team' => '阿尔艾利开罗',
|
|
|
+// 'guest_team' => '金字塔',
|
|
|
+// 'name' => '阿尔艾利开罗',
|
|
|
+// 'odds' => '2.01',
|
|
|
+// 'p_code' => 'concede_size',
|
|
|
+// 'ballId' => 'zq',
|
|
|
+// 'match_id' => 3133254,
|
|
|
+// 'condition' => '+0/0.5',
|
|
|
+// 'ganame' => 'concede_size',
|
|
|
+// 'bettingTime' =>'',
|
|
|
+// 'odds_only' => '1dee7e98db303852227cf1e0d8085dfb1555617310.3833947',
|
|
|
+// 'type' => 1,
|
|
|
+// ],[
|
|
|
+// 'id' => 887450,
|
|
|
+// 'home_team' => '阿尔艾利开罗',
|
|
|
+// 'guest_team' => '金字塔',
|
|
|
+// 'name' => '阿尔艾利开罗',
|
|
|
+// 'odds' => '1.94',
|
|
|
+// 'p_code' => 'concede_size',
|
|
|
+// 'ballId' => 'zq',
|
|
|
+// 'match_id' => 3127596,
|
|
|
+// 'condition' => '+0/0.5',
|
|
|
+// 'ganame' => 'concede_size',
|
|
|
+// 'bettingTime' =>'',
|
|
|
+// 'odds_only' => '1dee7e98db303852227cf1e0d8085dfb1555617310.3833947',
|
|
|
+// 'type' => 1,
|
|
|
+// ]
|
|
|
+// ];
|
|
|
|
|
|
if(empty($data_all)){
|
|
|
Render($data_all, '1', lang('Tips','Sports')->get('success'));
|
|
|
@@ -464,14 +398,6 @@ class Betorder extends BaseController{
|
|
|
//验证串式投注是否合法
|
|
|
$this->verify_stringType($data_all);
|
|
|
|
|
|
- foreach ($data_all as $k =>$v){
|
|
|
- //验证赛事是否存在
|
|
|
-// $this->verify_match($v['ballId'],$v['id'],$k+1,$v['match_id']);
|
|
|
-//
|
|
|
-// //验证球类代码是否有效
|
|
|
-// $this->verify_gameType($v['ballId'],$k+1);
|
|
|
- }
|
|
|
-
|
|
|
//写入串式投注 所有数据 json_encode($oddsData,true)
|
|
|
$bet_ttr_id = lm('BetStr','Api')->insertGetId(['bet_str_all'=>json_encode($data_all,true)]);
|
|
|
if($bet_ttr_id < 1) Render([], '50039',lang('Errors','Api')->get('error-50039'));
|
|
|
@@ -480,6 +406,7 @@ class Betorder extends BaseController{
|
|
|
|
|
|
$orderData = [];
|
|
|
$orderID = OrderID();
|
|
|
+ $all_money=[];//所有投注金额
|
|
|
foreach ($data_str as $k=>$v){
|
|
|
//字符串替换
|
|
|
$str = str_ireplace("串","_",$v['type']);
|
|
|
@@ -495,28 +422,42 @@ class Betorder extends BaseController{
|
|
|
}
|
|
|
|
|
|
//获取当前串式投注金额及可赢金额
|
|
|
- $money_all = $this->makeMoney((int)$sonNum,$v['bet_amount'],$multiple,$data_all,$after);
|
|
|
-
|
|
|
+ if($after == 1){
|
|
|
+ $money_all = $this->getmakeMoney((int)$sonNum,$v['bet_amount'],$multiple,$data_all,$after);
|
|
|
+ }else{
|
|
|
+ $money_all = $this->getStrAllMoney((int)$sonNum,$v['bet_amount'],$multiple,$data_all,$after);
|
|
|
+ }
|
|
|
//投注金额
|
|
|
$moneyData = $money_all['moneyData'];
|
|
|
+ //所有投注金额
|
|
|
+ $all_money[] = $moneyData;
|
|
|
//可赢金额
|
|
|
$prize_money = $money_all['prize_money'];
|
|
|
|
|
|
$uuid = UUID();
|
|
|
- $orderData[$k]['game_name'] = $v['type'];
|
|
|
- $orderData[$k]['info_identity'] = $uuid;
|
|
|
- $orderData[$k]['account_name'] = 'pengjun123';//$userInfo['account'];
|
|
|
- $orderData[$k]['account_identity'] = 'c0ad12b7-d13f-969a-ccd2-e71473bc971b';//$userInfo['account_identity'];
|
|
|
- $orderData[$k]['order_id'] = $orderID;
|
|
|
- $orderData[$k]['game_no'] = "";
|
|
|
- $orderData[$k]['money'] = $moneyData;
|
|
|
- $orderData[$k]['bet_str_id'] = $bet_ttr_id;//投注数据
|
|
|
- $orderData[$k]['money_time'] = $this->time;//下注时间
|
|
|
- $orderData[$k]['prize_money'] = $prize_money;//可赢金额
|
|
|
- }
|
|
|
-
|
|
|
- $ret = lm('MoneyBuyStr','Api')->insert($orderData);//true
|
|
|
- return $ret;
|
|
|
+ $orderData['game_name'] = $v['type'];
|
|
|
+ $orderData['info_identity'] = $uuid;
|
|
|
+ $orderData['account_name'] = $userInfo['account'];
|
|
|
+ $orderData['account_identity'] = $userInfo['account_identity'];
|
|
|
+ $orderData['order_id'] = $orderID;
|
|
|
+ $orderData['game_no'] = "";
|
|
|
+ $orderData['money'] = $moneyData;
|
|
|
+ $orderData['bet_str_id'] = $bet_ttr_id;//投注数据
|
|
|
+ $orderData['money_time'] = $this->time;//下注时间
|
|
|
+ $orderData['prize_money'] = $prize_money;//可赢金额
|
|
|
+
|
|
|
+ $ret = lm('MoneyBuyStr','Api')->insert($orderData);
|
|
|
+
|
|
|
+ if(!$ret){
|
|
|
+ Render('','-1005',lang('errors','Api')->get('error-3205'));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $insertMoney = $this->M->insertMoney($userInfo['account_identity'],array_sum($all_money),$orderID,1,"",$uuid,$userInfo);
|
|
|
+ if($insertMoney!=1){
|
|
|
+ Render('', $insertMoney,lang('Errors','Api')->get('error'.$insertMoney));
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -540,13 +481,6 @@ class Betorder extends BaseController{
|
|
|
return $group/$son;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 计算串式投注 赔率
|
|
|
- */
|
|
|
- public function getOddsStr(){
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* @param int $sonNum 当前串式数量
|
|
|
* @param int $bet_amount 当前串式投注额
|
|
|
@@ -555,7 +489,7 @@ class Betorder extends BaseController{
|
|
|
* @return mixed
|
|
|
* 计算当前串式投注总额、可赢总额
|
|
|
*/
|
|
|
- public function makeMoney($sonNum=0,$bet_amount=0,$multiple=0,$data_all=[],$after = 0){
|
|
|
+ public function getmakeMoney($sonNum=0,$bet_amount=0,$multiple=0,$data_all=[],$after = 0){
|
|
|
$allNum = count($data_all);//所有数量
|
|
|
$odds_all = [];//所有投注项数据
|
|
|
foreach ($data_all as $k=>$v){
|
|
|
@@ -579,9 +513,31 @@ class Betorder extends BaseController{
|
|
|
$odds = (array_sum($odds))-(count($odds));
|
|
|
|
|
|
//获取可赢金额
|
|
|
- $data['prize_money'] = floor($bet_amount*($odds)*100)/100;//保留两位小数
|
|
|
+ $data['prize_money'] = floor($bet_amount*($odds)*100)/100;
|
|
|
+ }
|
|
|
+
|
|
|
+ return $data;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取所有可用串式 N场赛事 2串1,3串1...N串1,N<11
|
|
|
+ * 并计算 其投注可赢金额
|
|
|
+ */
|
|
|
+ public function getStrAllMoney($sonNum=0,$bet_amount=0,$multiple=0,$data_all=[],$after = 0){
|
|
|
+ $d = [];
|
|
|
+ for ($i=2;$i<($sonNum+1);$i++){
|
|
|
+ $d[] = $i;
|
|
|
}
|
|
|
|
|
|
+ foreach ($d as $k=>$v){
|
|
|
+ $multiple = $this->getMultiple($sonNum,$v);
|
|
|
+ $money[] = $this->getmakeMoney($v,$bet_amount,$multiple,$data_all,1);
|
|
|
+ }
|
|
|
+ $data=array();
|
|
|
+ foreach($money as $k=>$v){
|
|
|
+ $data['moneyData']+=$v['moneyData'];
|
|
|
+ $data['prize_money']+=$v['prize_money'];
|
|
|
+ }
|
|
|
return $data;
|
|
|
}
|
|
|
|
|
|
@@ -606,5 +562,33 @@ class Betorder extends BaseController{
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新投注项相关数据
|
|
|
+ */
|
|
|
+ public function getBetData(){
|
|
|
+ $data = $_REQUEST;
|
|
|
+// $data = [['game_code'=>'zq','match_id'=>3095448,'odds_id'=>623078],['game_code'=>'zq','match_id'=>3095448,'odds_id'=>623078]];
|
|
|
+ foreach ($data as $k=>$v){
|
|
|
+ $getModels = getModels($v['game_code']);
|
|
|
+ $model_match = $getModels['model_match'];
|
|
|
+ $model_odds = $getModels['model_odds'];
|
|
|
+
|
|
|
+ $oddsData = lm($model_match,"Sports")
|
|
|
+ ->join($model_odds,$model_odds.'.match_id',$model_match.'.match_id')
|
|
|
+ ->select($model_match.'.match_id',$model_match.'.match_date',$model_match.'.home_team',$model_match.'.guest_team',$model_odds.'.id as odds_id',$model_odds.'.p_code',$model_odds.'.odds_code',$model_odds.'.condition',$model_odds.'.odds',$model_odds.'.odds_only',$model_odds.'.status',$model_odds.'.sort')
|
|
|
+ ->where($model_match.'.source',$this->source)
|
|
|
+ ->where($model_match.'.match_id',$v['match_id'])
|
|
|
+ ->where($model_odds.'.id',$v['odds_id'])
|
|
|
+ //->where($model_odds.'.expire_time','>',date("Y-m-d H:i:s"))
|
|
|
+ ->first();
|
|
|
+ $oddsData->game_code = $v['game_code'];
|
|
|
+
|
|
|
+ $betData[] = $oddsData;
|
|
|
+ }
|
|
|
+
|
|
|
+ Render($betData, '1', lang('Tips','Sports')->get('success'));
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|