72 lines
2.4 KiB
PHP
Executable File
72 lines
2.4 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Jobs;
|
|
|
|
use App\Console\Commands\Report\GenerateDaySeller;
|
|
use App\Console\Commands\Report\GenerateDayShop;
|
|
use App\Console\Commands\Report\GenerateDayWin;
|
|
use App\Enums\LottState;
|
|
use App\Model\Order;
|
|
use App\Model\Seller\Seller;
|
|
use App\Model\Seller\Shop;
|
|
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\Facades\Log;
|
|
|
|
class ReportOrderDataJob implements ShouldQueue
|
|
{
|
|
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
|
protected $orderId;
|
|
|
|
public function __construct($orderId)
|
|
{
|
|
$this->orderId = $orderId;
|
|
$this->queue = config('queue.names.order_attr_change');
|
|
}
|
|
public function handle()
|
|
{
|
|
$order = Order::find($this->orderId);
|
|
if (!$order) {
|
|
return;
|
|
}
|
|
Log::info('ReportOrderDataJob start ~~~', [
|
|
'order_id' => $order->id,
|
|
'lottery_state' => $order->lottery_state,
|
|
]);
|
|
$allowStates = [LottState::DRAFT, LottState::WIN, LottState::WAIT, LottState::SEND, LottState::REVOKE];
|
|
if (!in_array($order->lottery_state,$allowStates)) {
|
|
return;
|
|
}
|
|
|
|
$daySeller = new GenerateDaySeller();
|
|
if ($order->lottery_state == LottState::DRAFT) {
|
|
$seller = Seller::find($order->receive_user_id);
|
|
$date = $order->receive_date;
|
|
} else if ($order->lottery_state == LottState::WAIT || $order->lottery_state == LottState::WIN) {
|
|
$seller = Seller::find($order->draft_user_id);
|
|
$date = $order->draft_date;
|
|
} else if ($order->lottery_state == LottState::SEND) {
|
|
$seller = Seller::find($order->send_user_id);
|
|
$date = $order->send_date;
|
|
} else {
|
|
$seller = Seller::find($order->revoke_user_id);
|
|
$date = date('Ymd', strtotime($order->revoke_at));
|
|
}
|
|
$daySeller->report($seller, $date);
|
|
|
|
$dayShop = new GenerateDayShop();
|
|
$seller = Seller::find($order->receive_user_id);
|
|
$shop = Shop::find($seller ? $seller->shop_id : 0);
|
|
if ($shop) {
|
|
$dayShop->report($shop, $date);
|
|
}
|
|
|
|
$dayWin = new GenerateDayWin();
|
|
$dayWin->report($order);
|
|
Log::info('ReportOrderDataJob end ~~~, orderId:'. $this->orderId);
|
|
}
|
|
}
|