70 lines
2.0 KiB
PHP
70 lines
2.0 KiB
PHP
<?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;
|
|
}
|
|
|
|
}
|
|
}
|