love_php/app/Jobs/AuditViewerShare.php

70 lines
2.0 KiB
PHP
Raw Permalink Normal View History

2026-04-02 09:20:51 +08:00
<?php
namespace App\Jobs;
use App\Models\Live\Asset;
use Illuminate\Support\Facades\DB;
use App\Models\Live\AssetLog;
use App\Models\Live\ViewerShareAudit;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
class AuditViewerShare implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $data;
public $tries = 1;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($data)
{
$this->data = $data;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
try {
DB::beginTransaction();
$viewer_id = $this->data['viewer_id'];
$share_viewer_audit = ViewerShareAudit::with('task')->where('viewer_id', $viewer_id)->where('is_audit', 1)->get();
$insert_arr = [];
$new_arr = [];
$add_score = 0;
foreach ($share_viewer_audit as $val){
$num = empty($val->task) ? $val->task->new_score : 1.00;
$new_arr['viewer_id'] = $val->viewer_id;
$new_arr['num'] = $num;
$new_arr['type'] = 2;
$new_arr['is_hooked '] = 0;
$new_arr['log_id'] = $val->other_viewer_id;
$new_arr['created_at'] = date('Y-m-d H:i:s');
$new_arr['updated_at'] = date('Y-m-d H:i:s');
$insert_arr[] = $new_arr;
$add_score += $num;
}
if(!empty($insert_arr)){
AssetLog::insert($insert_arr);
// Asset::where('viewer_id', $viewer_id)->increment('cash', $add_score);
}
DB::commit();
return true;
} catch (\Exception $e) {
DB::rollBack();
return null;
}
}
}