love_php/app/Jobs/SendEarningMessage.php
2026-04-02 09:20:51 +08:00

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