jingcai-php/app/Jobs/ComputeCustomerBuyLevelScor...

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);
}
}
}