|
@@ -36,11 +36,13 @@ class SettlementOrder extends SettlementBase
|
|
|
|
|
|
|
|
|
|
|
|
|
public function reSettlement($order_ids,$bettype=2){
|
|
public function reSettlement($order_ids,$bettype=2){
|
|
|
|
|
+ if (empty($order_ids)){ return self::makeData(5,'订单号不能为空'); }
|
|
|
|
|
+
|
|
|
try{
|
|
try{
|
|
|
DB::beginTransaction ();
|
|
DB::beginTransaction ();
|
|
|
foreach ($order_ids as $order_id){
|
|
foreach ($order_ids as $order_id){
|
|
|
$this->BuyDatasMainModel = $this->orderTypeGet($order_id,$bettype);
|
|
$this->BuyDatasMainModel = $this->orderTypeGet($order_id,$bettype);
|
|
|
- if (empty($this->BuyDatasMainModel)){ return self::makeData(2,'查无此订单数据'); }
|
|
|
|
|
|
|
+ if ( $this->BuyDatasMainModel->settle_status==2 ){ throw new \Exception('此订单已经结算过了,不能重复结算! '.$order_id ); }
|
|
|
if ($this->orderType==1){
|
|
if ($this->orderType==1){
|
|
|
$this->SingOrder($order_id);
|
|
$this->SingOrder($order_id);
|
|
|
}else{
|
|
}else{
|
|
@@ -84,7 +86,7 @@ class SettlementOrder extends SettlementBase
|
|
|
-> where(['order_id' => $order_id])
|
|
-> where(['order_id' => $order_id])
|
|
|
-> first();
|
|
-> first();
|
|
|
// 查询单式注单下的所有玩法
|
|
// 查询单式注单下的所有玩法
|
|
|
- $matchData = DB :: table('money_buy_match') -> select('odds', 'result', 'batch_id') -> where(['bet_type' => 1, 'batch_id' => $simplexData -> batch_id]);
|
|
|
|
|
|
|
+ $matchData = DB :: table('money_buy_match') -> select('odds', 'result', 'batch_id', 'bet_money') -> where(['bet_type' => 1, 'batch_id' => $simplexData -> batch_id]);
|
|
|
$matchData = $matchData -> where(function($query) {
|
|
$matchData = $matchData -> where(function($query) {
|
|
|
$query = $query -> where(['result' => 1])
|
|
$query = $query -> where(['result' => 1])
|
|
|
-> orWhere(['result' => 2])
|
|
-> orWhere(['result' => 2])
|
|
@@ -95,20 +97,19 @@ class SettlementOrder extends SettlementBase
|
|
|
// 计算总回款
|
|
// 计算总回款
|
|
|
$settlementBase = new \App\Lib\Settlement\SettlementBase;
|
|
$settlementBase = new \App\Lib\Settlement\SettlementBase;
|
|
|
$returnMoney = 0;
|
|
$returnMoney = 0;
|
|
|
- $earnMoney = 0;
|
|
|
|
|
foreach ($matchData as $k => $v) {
|
|
foreach ($matchData as $k => $v) {
|
|
|
$oddsResult[0]['winOrLose'] = $v -> result;
|
|
$oddsResult[0]['winOrLose'] = $v -> result;
|
|
|
$oddsResult[0]['odds'] = $v -> odds;
|
|
$oddsResult[0]['odds'] = $v -> odds;
|
|
|
$getReturnMoney = $settlementBase -> winOddsCalculation($oddsResult);
|
|
$getReturnMoney = $settlementBase -> winOddsCalculation($oddsResult);
|
|
|
- $returnMoney += $getReturnMoney['returnMoney'];
|
|
|
|
|
- $earnMoney += $getReturnMoney['earnMoney'];
|
|
|
|
|
|
|
+ $returnMoney += ($getReturnMoney['returnMoney'] + 1) * $v -> bet_money;
|
|
|
}
|
|
}
|
|
|
|
|
+ $returnMoney = sprintf("%.2f",substr(sprintf("%.3f", $returnMoney), 0, -1));
|
|
|
// 判断盈亏 1 赢 2 输 3 平
|
|
// 判断盈亏 1 赢 2 输 3 平
|
|
|
$game_status = $returnMoney > $simplexData -> money ? 1 : ($returnMoney == $simplexData -> money ? 3 : 2);
|
|
$game_status = $returnMoney > $simplexData -> money ? 1 : ($returnMoney == $simplexData -> money ? 3 : 2);
|
|
|
// 修改投注表状态及盈亏
|
|
// 修改投注表状态及盈亏
|
|
|
DB :: table('money_buy_simplex')
|
|
DB :: table('money_buy_simplex')
|
|
|
-> where(['order_id' => $order_id])
|
|
-> where(['order_id' => $order_id])
|
|
|
- -> update(['settle_status' => 2, 'game_status' => $game_status, 'gain_money' => $earnMoney]);
|
|
|
|
|
|
|
+ -> update(['settle_status' => 2, 'game_status' => $game_status, 'gain_money' => $returnMoney]);
|
|
|
$this -> insertData(
|
|
$this -> insertData(
|
|
|
$order_id,
|
|
$order_id,
|
|
|
$returnMoney,
|
|
$returnMoney,
|
|
@@ -221,13 +222,16 @@ class SettlementOrder extends SettlementBase
|
|
|
$in_array[] = ['odds'=>$val->odds,'winOrLose'=>$val->result] ;
|
|
$in_array[] = ['odds'=>$val->odds,'winOrLose'=>$val->result] ;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- $chuanNum = intval(substr($this->BuyDatasMainModel->str_type,0,1));
|
|
|
|
|
- $lasPeilv = $this->stringComputing([$in_array,$chuanNum]);
|
|
|
|
|
- $money = sprintf('%.2f',$this->BuyDatasMainModel->money * ( $lasPeilv - 1) ) ;
|
|
|
|
|
|
|
+ $chuanNum = intval(substr($this->BuyDatasMainModel->str_type,0,1));
|
|
|
|
|
+ $lasPeilv = $this->stringComputing([$in_array,$chuanNum]);
|
|
|
|
|
+ $money = floatPointDigit($this->BuyDatasMainModel->money * $lasPeilv ) ;
|
|
|
|
|
+
|
|
|
|
|
+ $ret = DB::update('update money_buy_str set settle_status=2 , game_status=1 , gain_money=? where order_id = ?', [$money,$order_id]);
|
|
|
|
|
+ if(!($ret || $ret===0)){ throw new \Exception('更新数据出错3!'); }
|
|
|
|
|
|
|
|
- $this->insertData($order_id,$money,$this->BuyDatasMainModel->account_identity,2,$val->game_code,$this->BuyDatasMainModel->info_identity,$money);
|
|
|
|
|
|
|
+ $this->insertData($order_id,$money,$this->BuyDatasMainModel->account_identity,2,$val->game_code,$this->BuyDatasMainModel->info_identity,$money);
|
|
|
|
|
|
|
|
- return true ;
|
|
|
|
|
|
|
+ return true ;
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
|
$ret = DB::update('update money_buy_str set settle_status=2 , game_status=1 , gain_money=? where order_id = ?', [$money,$order_id]);
|
|
$ret = DB::update('update money_buy_str set settle_status=2 , game_status=1 , gain_money=? where order_id = ?', [$money,$order_id]);
|