BillObserver.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. /*
  3. * This file is part of the Jiannei/lumen-api-starter.
  4. *
  5. * (c) Jiannei <longjian.huang@foxmail.com>
  6. *
  7. * This source file is subject to the MIT license that is bundled
  8. * with this source code in the file LICENSE.
  9. */
  10. namespace App\Observers;
  11. use App\Repositories\Enums\Car\BillDisburseEnum;
  12. use App\Repositories\Enums\Car\OrderPayTypeEnum;
  13. use App\Repositories\Enums\Check\StatusEnum;
  14. use App\Repositories\Models\Car\Bill;
  15. use App\Repositories\Models\Car\Order;
  16. use Carbon\Carbon;
  17. use Illuminate\Support\Facades\DB;
  18. class BillObserver
  19. {
  20. public function saved(Bill $bill)
  21. {
  22. //分成
  23. if ($bill->disburse == BillDisburseEnum::IN && $bill->isDirty('check_status') && $bill['check_status'] == StatusEnum::SUCCESS) {
  24. $pay_money = Bill::query()->where('order_id', $bill->order_id)->where('disburse', BillDisburseEnum::IN)->where('check_status', StatusEnum::SUCCESS)->sum('money');
  25. $order = Order::query()->where('id', $bill->order_id)->select(['id', 'total_money', 'pay_type', 'salesman_admin_id'])->first();
  26. if ($order['pay_type'] == OrderPayTypeEnum::PAY_AGING && $order['salesman_admin_id'] && $pay_money >= $order['total_money']) {
  27. //激活冻结提成
  28. Bill::query()->where('order_id', $order->id)->where('check_status', StatusEnum::STAGE)->where('is_lock', 1)->update([
  29. // 'check_status' => StatusEnum::SUCCESS,
  30. 'check_status' => StatusEnum::WAIT,
  31. 'check_admin_id' => 0,
  32. 'is_lock' => 0,
  33. // 'check_time' => Carbon::now()->toDateTimeString(),
  34. 'is_give' => 0,
  35. ]);
  36. Order::query()->where('id', $bill->order_id)->update(['pay_type' => OrderPayTypeEnum::PAY_AGING_ALL]);
  37. }
  38. if ($pay_money >= $order['total_money']) {
  39. $order->is_money_complete = 1;
  40. $order->save();
  41. }
  42. }
  43. }
  44. }