* * This source file is subject to the MIT license that is bundled * with this source code in the file LICENSE. */ namespace App\Observers; use App\Repositories\Enums\Car\BillDisburseEnum; use App\Repositories\Enums\Car\OrderPayTypeEnum; use App\Repositories\Enums\Check\StatusEnum; use App\Repositories\Models\Car\Bill; use App\Repositories\Models\Car\Order; use Carbon\Carbon; use Illuminate\Support\Facades\DB; class BillObserver { public function saved(Bill $bill) { //分成 if ($bill->disburse == BillDisburseEnum::IN && $bill->isDirty('check_status') && $bill['check_status'] == StatusEnum::SUCCESS) { $pay_money = Bill::query()->where('order_id', $bill->order_id)->where('disburse', BillDisburseEnum::IN)->where('check_status', StatusEnum::SUCCESS)->sum('money'); $order = Order::query()->where('id', $bill->order_id)->select(['id', 'total_money', 'pay_type', 'salesman_admin_id'])->first(); if ($order['pay_type'] == OrderPayTypeEnum::PAY_AGING && $order['salesman_admin_id'] && $pay_money >= $order['total_money']) { //激活冻结提成 Bill::query()->where('order_id', $order->id)->where('check_status', StatusEnum::STAGE)->where('is_lock', 1)->update([ // 'check_status' => StatusEnum::SUCCESS, 'check_status' => StatusEnum::WAIT, 'check_admin_id' => 0, 'is_lock' => 0, // 'check_time' => Carbon::now()->toDateTimeString(), 'is_give' => 0, ]); Order::query()->where('id', $bill->order_id)->update(['pay_type' => OrderPayTypeEnum::PAY_AGING_ALL]); } if ($pay_money >= $order['total_money']) { $order->is_money_complete = 1; $order->save(); } } } }