love_php/app/Jobs/SyncSaasUserByOrder.php

67 lines
1.8 KiB
PHP
Raw Permalink Normal View History

2026-04-02 09:20:51 +08:00
<?php
namespace App\Jobs;
use App\Models\Server\MerchantUser;
use App\Models\Server\TouristOrder;
use App\Models\Wechat;
use App\Models\User;
use App\Services\UserService;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
class SyncSaasUserByOrder implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $order;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($order)
{
$this->order = $order;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$order = $this->order;
//订单用户
if ($order->channel != '福恋小程序' || $order->channel != 3) return;
$user_service = new UserService();
$wechat = Wechat::where('openid', $order->open_id)->first();
$user = $wechat->user;
$first_user = null;
//首邀用户
if ($user->from_user_id) {
$first_user = User::where('id', $user->from_user_id)->first();
if (empty($first_user) && $user->from_openid) {
$wechat = Wechat::where('openid', $user->from_openid)->first();
$first_user = $wechat?$wechat->user:null;
}
}
if ($first_user) {
$user_service->syncSaasUser($first_user);
}
//促单用户
if ($order->from_openid) {
$wechat = Wechat::where('openid', $order->from_openid)->first();
$last_user = $wechat?$wechat->user:null;
if ($last_user) {
$user_service->syncSaasUser($last_user);
}
}
}
}