diff --git a/app/api/logic/order/OrderLogic.php b/app/api/logic/order/OrderLogic.php index f1d156db3..206f9b115 100644 --- a/app/api/logic/order/OrderLogic.php +++ b/app/api/logic/order/OrderLogic.php @@ -458,6 +458,61 @@ class OrderLogic extends BaseLogic $money=$financeFlow->where(['order_id'=>$order['id'],'financial_pm'=>1,'financial_type'=>2])->value('number'); $financeFlowLogic->updateStatusStore($order['id'],$order['store_id'],$money,$deposit); + $check = Db::name('user_sign_log')->where('order_id',$order['order_id']) + ->where(['status'=>0]) + ->find();//$check['number']扣的 + if($check){ +// User::where('id',$order['uid'])->inc('purchase_funds',$check['number'])->update(); +// $user_number = bcmul($order['pay_price'], '0.10', 2); + + $base = UserSign::where([ + 'uid'=>$order['uid'], + 'type'=>1, + 'status'=>0 + ])->find(); + $user_sing = new UserSign(); + if($base['number'] > 0 && $base['number'] >= $check['number']){ + $sing = [ + 'uid' => $order['uid'], + 'order_id' => $order['order_id'].'-b', + 'title' => '返还兑换券', + 'financial_pm' => 1, + 'store_id' => $order['store_id'], + 'status' => 1, + ]; + $sing['number'] = $check['number']; + $user_sing->save($sing); + //减少 + UserSign::where('id',$check['sid'])->dec('number',$check['number'])->update(); + if($base['number'] == $check['number']){ + UserSign::where([ + 'id'=>$order['sid'] + ])->update(['status'=>1]); + } + } + if($base['number'] < $check['number']){ + $sing = [ + 'uid' => $order['uid'], + 'order_id' => $order['order_id'].'-b', + 'title' => '返还兑换券', + 'financial_pm' => 1, + 'store_id' => $base['number'], + 'status' => 1, + ]; + $sing['number'] = $check['number']; + $user_sing->save($sing); + + UserSign::where('id',$check['sid'])->dec('number',$base['number'])->update(); + + + UserSign::where([ + 'id'=>$order['sid'] + ])->update(['status'=>1]); + } + + Db::name('user_sign_log')->where('order_id',$order['order_id'])->update(['status'=>1]); + } + Db::commit(); return true; } catch (\Exception $e) { diff --git a/app/common/logic/PayNotifyLogic.php b/app/common/logic/PayNotifyLogic.php index 98e90d31b..e746a956b 100644 --- a/app/common/logic/PayNotifyLogic.php +++ b/app/common/logic/PayNotifyLogic.php @@ -211,6 +211,7 @@ class PayNotifyLogic extends BaseLogic 'type'=>1, 'status'=>0 ])->count(); + if($count){ self::addFlowLog($order); } @@ -235,10 +236,12 @@ class PayNotifyLogic extends BaseLogic ]); $query1 = clone $query; $ids = $query->column('id'); - $check = $query->sum('back_num'); + $check = $query->sum('number'); $count = $query1->count(); if($check && $check >0){ - $backPurchase = bcsub($order['pay_price'],0.1,2); + $backPurchase = bcmul($order['pay_price'],0.1,2); + + if($count == 1){ //存在拆单子否 //少了就冻结减去这个对应的金额 @@ -248,6 +251,7 @@ class PayNotifyLogic extends BaseLogic 'status'=>0 ])->find(); $data = [ + 'sid'=>$one['id'], 'uid' => $order['uid'], 'order_id' => $order['order_id'], 'title' => '充值获得冻结兑换券', @@ -256,44 +260,43 @@ class PayNotifyLogic extends BaseLogic ]; if($one['back_num'] >= $backPurchase){ - +// $wait = bcsub($one['back_num'],$backPurchase,2)??0; $data['number'] =$backPurchase; + Db::name('user_sign_log')->insert($data); //总的减去采购款百分之十剩余的 - $wait = bcsub($one['back_num'],$backPurchase,2)??0; - - if(empty($wait)){ - UserSign::where('id',$one['id'])->update( - [ - 'back_num'=>0, - 'status'=>1 - ] - ); - }else{ - //add - UserSign::where('id',$one['id'])->update( - [ - 'back_num'=>$wait - ] - ); - } +// if(empty($wait)){ +// UserSign::where('id',$one['id'])->update( +// [ +// 'number'=>0, +// 'status'=>1 +// ] +// ); +// }else{ +// //add +// UserSign::where('id',$one['id'])->update( +// [ +// 'number'=>$wait +// ] +// ); +// } //并且加到对应的用户的采购款中 - User::where('id',$order['uid'])->inc('purchase_funds',$wait)->update(); +// User::where('id',$order['uid'])->inc('purchase_funds',$wait)->update(); } else{ //对比采购款支付的多少 多了就拿冻结金额即可 $data['number'] =$one['number']; //都存到对应的log日志 Db::name('user_sign_log')->insert($data); - UserSign::where('id',$one['id'])->update( - [ - 'back_num'=>0, - 'status'=>1 - ] - ); +// UserSign::where('id',$one['id'])->update( +// [ +// 'number'=>0, +// 'status'=>1 +// ] +// ); //并且加到对应的用户的采购款中 - User::where('id',$order['uid'])->inc('purchase_funds',$one['number'])->update(); +// User::where('id',$order['uid'])->inc('purchase_funds',$wait)->update(); } } @@ -321,9 +324,20 @@ class PayNotifyLogic extends BaseLogic 'type' => 1, ]; $data['number'] =$check; - Db::name('user_sign')->insert($data); + $sid = Db::name('user_sign')->insertGetId($data); + + $data = [ + 'uid' => $order['uid'], + 'sid' => $sid, + 'order_id' => $order['order_id'], + 'title' => '充值获得冻结兑换券', + 'financial_pm' => 1, + 'type' => 1, + ]; + $data['number'] =$backPurchase; + Db::name('user_sign_log')->insert($data); } - User::where('id',$order['uid'])->inc('purchase_funds',$backPurchase)->update();//add +// User::where('id',$order['uid'])->inc('purchase_funds',$backPurchase)->update();//add }else{ //log @@ -336,7 +350,7 @@ class PayNotifyLogic extends BaseLogic ]; $data['number'] =$check; Db::name('user_sign_log')->insert($data); - User::where('id',$order['uid'])->inc('purchase_funds',$check)->update();//add +// User::where('id',$order['uid'])->inc('purchase_funds',$check)->update();//add } }