71 lines
1.9 KiB
PHP
71 lines
1.9 KiB
PHP
|
|
<?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;
|
|||
|
|
}
|
|||
|
|
}
|