|
|
@@ -892,6 +892,7 @@ class SportsNoteList extends BaseModel
|
|
|
//反水
|
|
|
$water_return_money = \App\Models\Money_details::wherein('trade_id',$order_ids)->where('trade_type', '7')->get();
|
|
|
for($i=0;$i<count($orders);$i++){
|
|
|
+ //用户余额 默认
|
|
|
$available_cash = '';
|
|
|
for($a=0;$a<count($account_money);$a++){
|
|
|
if($orders[$i]['account_identity'] == $account_money[$a]['account_identity']){
|
|
|
@@ -906,6 +907,7 @@ class SportsNoteList extends BaseModel
|
|
|
$water_return = 0;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
$new_available_cash = $available_cash + $orders[$i]->money - $orders[$i]->gain_money - $water_return;
|
|
|
|
|
|
$models = new \App\Models\Money_details();
|
|
|
@@ -994,7 +996,7 @@ class SportsNoteList extends BaseModel
|
|
|
|
|
|
if(!empty($order_ids_n)){
|
|
|
//在审核时间内订单 审核不通过
|
|
|
- self::HandleMoney($account_identitys,$order_ids_n,$order_data_n);
|
|
|
+ self::HandleMoney_v2($account_identitys,$order_ids_n,$order_data_n);
|
|
|
}
|
|
|
if(!empty($order_ids_y)){
|
|
|
//在审核时间外订单 审核通过
|
|
|
@@ -1011,8 +1013,10 @@ class SportsNoteList extends BaseModel
|
|
|
|
|
|
/**
|
|
|
* 滚球自动审核 账户资金处理
|
|
|
+ * v1
|
|
|
+ * 当用户下同时只有一个订单退款时 可用
|
|
|
+ *
|
|
|
*/
|
|
|
-
|
|
|
public static function HandleMoney($account_identitys=[],$order_ids=[],$orders=[]){
|
|
|
//用戶账户金额
|
|
|
$account_money = \App\Models\Account_detailed::whereIn('account_identity',$account_identitys)->SELECT('account_identity','available_cash')->get()->toArray();
|
|
|
@@ -1071,5 +1075,96 @@ class SportsNoteList extends BaseModel
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 滚球自动审核 账户资金处理
|
|
|
+ * v2
|
|
|
+ * 处理一个用户下 多个注单退款时的 余额计算
|
|
|
+ */
|
|
|
+ public static function HandleMoney_v2($account_identitys=[],$order_ids=[],$orders=[]){
|
|
|
+
|
|
|
+ //获取 用户 初始余额
|
|
|
+ $account_money = \App\Models\Account_detailed::whereIn('account_identity',$account_identitys)->SELECT('account_identity','available_cash')->get()->toArray();
|
|
|
+ //获取 指定注单 反水金额
|
|
|
+ $water_return_money = \App\Models\Money_details::whereIn('trade_id',$order_ids)->where('trade_type', '7')->SELECT('trade_id','money')->get()->toArray();
|
|
|
+
|
|
|
+ if(!empty($account_money) and !empty($orders) and !empty($water_return_money)){
|
|
|
+ //拼接每个注单 反水
|
|
|
+ foreach($orders as $k=>$v){
|
|
|
+ $v['fanshui'] = self::getFanshui($v['order_id'],$water_return_money);
|
|
|
+ $orders[$k] = $v;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach($account_money as $k=>$v){
|
|
|
+ //默认 余额 0
|
|
|
+ $account_identity = 0;
|
|
|
+ foreach($orders as $kk=>$vv){
|
|
|
+ //计算当前余额
|
|
|
+ if($v['account_identity'] == $vv['account_identity']){
|
|
|
+ //第一个注单 获取用户初始余额
|
|
|
+ if($account_identity == 0){
|
|
|
+ //当前注单余额
|
|
|
+ $vv['available_cash'] = $v['available_cash'];
|
|
|
+ //当前注单退款后的余额
|
|
|
+ $account_identity = $v['available_cash']+$vv['money']-$vv['fanshui'];
|
|
|
+ }else{//其他 获取 上个注单处理后的余额
|
|
|
+ $vv['available_cash'] = $account_identity;
|
|
|
+ $account_identity = $account_identity+$vv['money']-$vv['fanshui'];
|
|
|
+ }
|
|
|
+ $orders[$kk] = $vv;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach($orders as $k=>$v){
|
|
|
+ //需退回金额 = 投注金额-反水金额
|
|
|
+ $money = abs($v['money'] - $v['fanshui']);
|
|
|
+ //用户剩余金额
|
|
|
+ $new_available_cash = $v['available_cash'] + $money;
|
|
|
+ $models = new \App\Models\Money_details();
|
|
|
+ $models->info_identity = UUID();
|
|
|
+ $models->trade_id = $v['order_id'];
|
|
|
+ $models->account_name = $v['account_name'];
|
|
|
+ $models->account_identity = $v['account_identity'];
|
|
|
+ $models->money = $money;
|
|
|
+ $models->money_time = date("Y-m-d H:i:s", time());
|
|
|
+ $models->money_type = '1';
|
|
|
+
|
|
|
+ $models->money_cash = $new_available_cash;
|
|
|
+ $models->trade_type = '25';
|
|
|
+ $models->trade_desc = '滚球投注自动审核(危险球)不通过,退回投注资金:¥'.$money.';订单号:'.$v['order_id'].'';
|
|
|
+ $models->status = '1';
|
|
|
+
|
|
|
+ //更新订单数据
|
|
|
+ $ret_order = self::where('id', $v['id'])->update(['roll_ratify' => '-1','status' => '2','use_mark'=>'滚球投注自动审核(危险球)不通过']);
|
|
|
+ if($ret_order < 1) throw new \Exception( Response::generate('',Response::UP_ORDER_ERR));
|
|
|
+
|
|
|
+ //更新用户数据
|
|
|
+ $ret_user = \App\Models\Account_detailed::where('account_identity', $v['account_identity'])->update(['available_cash' => $new_available_cash, 'cash' => $new_available_cash]);
|
|
|
+ if($ret_user < 1) throw new \Exception( Response::generate('',Response::UP_USER_ERR));
|
|
|
+
|
|
|
+ //更新用户资金数据
|
|
|
+ if(!$models->save()) throw new \Exception( Response::generate('',Response::UP_MONEY_ERR));
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取注单 反水金额
|
|
|
+ * $order_id 订单id str
|
|
|
+ * $fanshuiData 反水数据 arr
|
|
|
+ */
|
|
|
+ public static function getFanshui($order_id='',$fanshuiData=[]){
|
|
|
+ foreach($fanshuiData as $k=>$v){
|
|
|
+ if($v['trade_id'] == $order_id){
|
|
|
+ $fanshui = $v['money'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return $fanshui;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|