UserSingerLimitJob.php
2.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
namespace App\Jobs;
use App\Enums\UserOfficialStatusEnum;
use App\Models\SystemConfig;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Arr;
class UserSingerLimitJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public array $jPushMessage;
public array $wechatMessage;
public int $defaultLimit;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct(array $jPushMessage, array $wechatMessage)
{
$this->jPushMessage = $jPushMessage;
$this->wechatMessage = $wechatMessage;
$this->defaultLimit = SystemConfig::query()->where('identifier', 'svMC9TNFz2Acx8ccPdAIH')->value('content') ?? 3;
}
/**
* Execute the job.
*
* @return void
*/
public function handle(): void
{
User::query()->where('status', 1)
->whereIn('id', explode(',', SystemConfig::query()->where('identifier', 'DBYsQqJrvuPf_d_zMR4va')->value('content') ?? ''))
->select(['id', 'nick_name', 'real_name', 'official_id', 'official_status', 'area_code', 'phone'])
->eachById(function (User $user) {
JPushMessageJob::dispatch(
$user->getKey(),
Arr::get($this->jPushMessage, 'title', ''),
Arr::get($this->jPushMessage, 'content', ''),
Arr::get($this->jPushMessage, 'data', [])
);
if ($user->getAttribute('official_status') === UserOfficialStatusEnum::SUBSCRIBE) {
WechatTemplateMessageJob::dispatch($user->getAttribute('official_id'), 'GFJxUXdJs37HX2hYB_jdOeR2FQHj2RpkJo57q24Lkkc', [
'keyword1' => '歌手额度上限提醒',
'keyword2' => Arr::get($this->wechatMessage, 'title', ''),
'keyword3' => Arr::get($this->wechatMessage, 'content', ''),
'keyword4' => Arr::get($this->wechatMessage, 'limit', $this->defaultLimit),
'keyword5' => Arr::get($this->wechatMessage, 'limit', $this->defaultLimit),
]);
}
});
}
}