86 lines
3.3 KiB
PHP
86 lines
3.3 KiB
PHP
<?php
|
|
|
|
namespace App\Jobs;
|
|
|
|
use App\Models\Earning;
|
|
use App\Models\Order;
|
|
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;
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
class SendEarningMessage implements ShouldQueue
|
|
{
|
|
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
|
|
|
protected $order_id;
|
|
/**
|
|
* Create a new job instance.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct($order_id)
|
|
{
|
|
$this->order_id = $order_id;
|
|
}
|
|
|
|
/**
|
|
* Execute the job.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function handle()
|
|
{
|
|
Log::info("收益通知");
|
|
$order = Order::with('user')->where('id', $this->order_id)->first();
|
|
if (empty($order)) return ;
|
|
$user_ids = Earning::where('order_id', $this->order_id)->where('user_id', '<>', 0)->distinct('user_id')->pluck('user_id');
|
|
$users = User::whereHas('earningUser')->with('wechat', 'viewer')->whereIn("id", $user_ids)->get();
|
|
foreach ($users as $user) {
|
|
// if ($user->mobile != '15872844805') continue;
|
|
//收益金额
|
|
$value = Earning::where('order_id', $this->order_id)->where('user_id', $user->id)->sum('value');
|
|
if (empty($value)) continue;
|
|
//是否关注
|
|
if ($user->viewer) {
|
|
$openid = $user->viewer->openid;
|
|
}else{
|
|
$openid = $user->wechat->official_openid;
|
|
}
|
|
$is_subscribe = false;
|
|
if ($openid) {
|
|
$is_subscribe = User::hasSubscribeOfficialWithOpenid($openid);
|
|
}
|
|
//短信内容
|
|
$message = '你成功推荐'.$order->user->nickname.'购买了'.$order->goods.',收益到账'.$value.'元。想要第一时间获得更多通知,赶快关注「福恋智能」公众号吧!';
|
|
if ($is_subscribe) {
|
|
//发送公众号模板消息
|
|
$data['touser'] = $openid;
|
|
// $data['template_id'] = 'JvSI40fo_pIoBBTH7RLDHitsWf1WM-Hcyk-7-5YwRao';
|
|
$data['template_id'] = config('wechat.tpls.customer_place_order');
|
|
$data['url'] = env('APP_URL').'/h5/#/loveMpWithdraw';
|
|
$data['data'] = [
|
|
'first' => '您推荐的用户已成功下单',
|
|
'keyword1' => $order->user->nickname,//下单账号
|
|
'keyword2' => date('Y-m-d H:i:s'),//下单时间
|
|
'keyword3' => $order->goods,//下单产品
|
|
'keyword4' => $order->price,//下单金额
|
|
'keyword5' => substr_replace($order->user->mobile,'****',3,4),//联系电话
|
|
'remark' => '点击登录查看',
|
|
];
|
|
SendTemplateMsg::dispatch($data)->onQueue('template_message');
|
|
}else {
|
|
//发送短信消息
|
|
SendEasySms::dispatch(['message'=>$message, 'mobile'=>$user->mobile])->onQueue('love');
|
|
}
|
|
$user_service = new UserService();
|
|
$user_service->sendNotice($user->id, 1, 'system', $message, $message, 0, env('APP_URL').'/h5/#/loveMpWithdraw', 2);
|
|
return ;
|
|
}
|
|
}
|
|
}
|