love_php/app/Jobs/AddSystemCoin.php

71 lines
1.9 KiB
PHP
Raw Normal View History

2026-04-02 09:20:51 +08:00
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use App\Models\User;
use App\Models\CoinLog;
use App\Repositories\Eloquent\SmsRepository as Sms;
use App\Utils\Messenger;
use App\Models\Message;
class AddSystemCoin implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $tries = 3;
protected $user_ids;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($user_ids)
{
$this->user_ids = $user_ids;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$user_ids = $this->user_ids;
if (empty(count($user_ids))) {
return true;
}
$message = "感谢您在2020年9月20号13点30分至19点之间观看福恋app直播相亲特赠送20福币以表感谢!【福恋】";
foreach ($user_ids as $user_id) {
$user = User::find($user_id);
if (empty($user)) continue;
//判断记录是否存在
$log = CoinLog::where('user_id', $user->id)->where('type', 'RECSYSTEM')->where('coin', 20)->first();
if ($log) continue;
$user->updateCoinInfo('add', 20, 'other');
$user->addCoinLog('RECSYSTEM', 0, 20);
//短信通知
$this->sentMessage($user->mobile, $message);
}
}
//发送普通消息
function sentMessage($mobile, $message){
if (empty($mobile)) {
return true;
}
Message::create([
'phone'=>$mobile,
'message'=>$message,
'confirmed' => 1,
'ip' => request()?request()->ip():'127.0.0.1',
]);
Messenger::sendSMS($mobile, $message);
return true;
}
}