62 lines
1.7 KiB
PHP
62 lines
1.7 KiB
PHP
|
|
<?php
|
|||
|
|
|
|||
|
|
namespace App\Jobs;
|
|||
|
|
|
|||
|
|
use App\Models\InviteUser;
|
|||
|
|
use App\Models\User;
|
|||
|
|
use GuzzleHttp\Client;
|
|||
|
|
use Illuminate\Bus\Queueable;
|
|||
|
|
use Illuminate\Contracts\Queue\ShouldBeUnique;
|
|||
|
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
|||
|
|
use Illuminate\Foundation\Bus\Dispatchable;
|
|||
|
|
use Illuminate\Queue\InteractsWithQueue;
|
|||
|
|
use Illuminate\Queue\SerializesModels;
|
|||
|
|
use Illuminate\Support\Facades\Log;
|
|||
|
|
|
|||
|
|
class SyncSaasUser implements ShouldQueue
|
|||
|
|
{
|
|||
|
|
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
|||
|
|
|
|||
|
|
protected $user;
|
|||
|
|
/**
|
|||
|
|
* Create a new job instance.
|
|||
|
|
*
|
|||
|
|
* @return void
|
|||
|
|
*/
|
|||
|
|
public function __construct($user)
|
|||
|
|
{
|
|||
|
|
$this->user = $user;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Execute the job.
|
|||
|
|
*
|
|||
|
|
* @return void
|
|||
|
|
*/
|
|||
|
|
public function handle()
|
|||
|
|
{
|
|||
|
|
Log::info("同步saas用户:".$this->user->id);
|
|||
|
|
$client = new Client();
|
|||
|
|
|
|||
|
|
$url = config('app.shop_url')."merchant/users";
|
|||
|
|
$headers = [
|
|||
|
|
'Key' => config('app.shop_key'), // 自定义头部参数(示例)
|
|||
|
|
];
|
|||
|
|
$from_user_id = $this->user->recommendUserLog?$this->user->recommendUserLog->recommend_user_id:null;
|
|||
|
|
$data = [
|
|||
|
|
'accid'=>User::SAAS_PREFIX.$this->user->id,
|
|||
|
|
'nickname'=>$this->user->name,
|
|||
|
|
'pic'=>$this->user->avatar,
|
|||
|
|
'mobile'=>$this->user->mobile,
|
|||
|
|
'from_accid'=>$from_user_id?User::SAAS_PREFIX.$from_user_id:null,
|
|||
|
|
];
|
|||
|
|
$response = $client->post($url, [
|
|||
|
|
'headers'=>$headers,
|
|||
|
|
'json'=>$data,
|
|||
|
|
]);
|
|||
|
|
$body = $response->getBody()->getContents(); // 获取响应内容
|
|||
|
|
$res = json_decode($body, true);
|
|||
|
|
if($res['code'] == 1) throw new \Exception($res['message']);
|
|||
|
|
}
|
|||
|
|
}
|