Blame view
app/Models/MessagesRequests.php
1.54 KB
a67c9d7ef Массовая рассылка... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class MessagesRequests extends Model { use HasFactory; protected $fillable = [ 'user_id', 'job_titles', 'text', 'is_rejected', 'is_sent' ]; |
633ea705f Массовая рассылка... |
19 20 21 22 23 24 25 26 27 28 |
public function getJobsAttribute() { $job_titles_ids = json_decode($this->attributes['job_titles'], true); return Job_title::whereIn('id', $job_titles_ids)->get(); } public function user() { return $this->belongsTo(User::class, 'user_id'); } |
d2571da21 Правки по массово... |
29 30 31 32 |
public static function send_message($message_request_id) { $message_request = MessagesRequests::find($message_request_id); |
f98ccb92c Массова рассылка |
33 34 35 |
$job_ids = json_decode($message_request->job_titles); if (!empty($job_ids)){ |
df58eaf86 правки |
36 37 |
$title_workers = Title_worker::select('worker_id') ->with('worker') |
f98ccb92c Массова рассылка |
38 39 40 41 |
->whereIN('job_title_id', $job_ids) ->groupBy('worker_id') ->get() ; |
df58eaf86 правки |
42 43 44 |
if ($title_workers->count()){ |
f98ccb92c Массова рассылка |
45 46 47 |
$message_params = [ 'text' => $message_request->text ]; |
df58eaf86 правки |
48 49 |
foreach ($title_workers as $title_worker){ Message::add_message(null, $message_request->user_id, $title_worker->worker->user_id, $message_params, file_store_path : '/', is_admin_chat: true); |
f98ccb92c Массова рассылка |
50 51 52 |
} } } |
d2571da21 Правки по массово... |
53 54 55 56 |
$message_request->update(['is_sent' => now()]); return true; } |
a67c9d7ef Массовая рассылка... |
57 |
} |