66 lines
1.7 KiB
PHP
Executable File
66 lines
1.7 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Jobs;
|
|
|
|
|
|
use App\Enums\BoolEnum;
|
|
use App\Enums\LottState;
|
|
use App\Enums\LottType;
|
|
use App\Enums\OrderType;
|
|
use App\Events\LotteryResultEvent;
|
|
use App\Events\OrderTicketedEvent;
|
|
use App\Model\Config;
|
|
use App\Model\Customer\Customer;
|
|
use App\Model\Order;
|
|
use App\Model\OrderJczqResult;
|
|
use App\Model\OrderZuhe;
|
|
use App\Model\Zq\JczqResult;
|
|
use Illuminate\Bus\Queueable;
|
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
|
use Illuminate\Foundation\Bus\Dispatchable;
|
|
use Illuminate\Queue\InteractsWithQueue;
|
|
use Illuminate\Queue\SerializesModels;
|
|
use Illuminate\Support\Arr;
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
class ComputeCustomerBuyLevelScore implements ShouldQueue
|
|
{
|
|
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
|
protected $orderId;
|
|
|
|
public function __construct($orderId)
|
|
{
|
|
$this->orderId = $orderId;
|
|
$this->queue = config('queue.names.compute_customer_level');
|
|
}
|
|
public function handle()
|
|
{
|
|
Log::info('ComputeCustomerBuyLevelScore, orderId:'. $this->orderId);
|
|
$order = Order::find($this->orderId);
|
|
if (!$order) {
|
|
return;
|
|
}
|
|
|
|
if ($order->draft_user_id <= 0) {
|
|
Log::error('CustomerBuyAddLevelListener 订单没有出票', [
|
|
'order' => $order->toArray()
|
|
]);
|
|
return;
|
|
}
|
|
|
|
if ($order->type != OrderType::UNION) {
|
|
Customer::levelScoreIncr($order->customer_id,$order->money);
|
|
return;
|
|
}
|
|
|
|
if ($order->id != $order->pid) {
|
|
return;
|
|
}
|
|
|
|
$orders = Order::where('pid', $order->id)->get();
|
|
foreach ($orders as $od) {
|
|
Customer::levelScoreIncr($od->customer_id,$od->union_money);
|
|
}
|
|
}
|
|
}
|