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

79 lines
2.5 KiB
PHP

<?php
namespace App\Jobs;
use App\Models\Answers;
use App\Models\ClientComment;
use App\Models\Questionnaire;
use App\Models\Server\TouristOrder;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
class BlindboxMatchComment implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $tries = 1;
protected $merchant_user_id;
protected $questionnaire_id;
protected $user_id;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($array)
{
$this->merchant_user_id = $array['m_user_id'];
$this->questionnaire_id = $array['questionnaire_id'];
$this->user_id = $array['user_id'];
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$m_user_id = $this->merchant_user_id;
$user_id = $this->user_id;
$questionnaire_id = $this->questionnaire_id;
//选了谁
$a = Answers::where('user_id',$m_user_id)->where('questionnaire_id',$questionnaire_id)->first();
$content = json_decode($a->content,true);
$choose_user = [];
foreach ($content as $key => $value) {
if($value['choice'] != 3) continue;
$answers = $value['answer'];
foreach ($answers as $key => $answer) {
$choose_user[] = explode('-',$answer)[0];
}
}
// dd($choose_user);
//获取这个活动的嘉宾id
$q = Questionnaire::find($questionnaire_id);
$choose_user_name = [];
foreach ($choose_user as $key => $remark) {
$choose_user_name [] = TouristOrder::where('type','community')->where('type_id',$q->type_id)->whereIn('pay_status',[1,3,4])->where('remark',$remark)->value('name');
}
$client_comment = [];
foreach ($choose_user_name as $key => $value) {
$client_comment_sub = [
'user_id'=>$user_id,
'maker_user_id'=>0,
'type'=>'active',
'pics'=>null,
'comment'=>'ta在'.$q->title.' 盲盒活动中选择了'.$value,
'created_at'=>date('Y-m-d H:i:s'),
'updated_at'=>date('Y-m-d H:i:s'),
];
$client_comment[] = $client_comment_sub;
}
ClientComment::insert($client_comment);
}
}