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

77 lines
2.0 KiB
PHP

<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use App\Models\Live\AssetLog;
use App\Models\Live\Asset;
class MakeOldShareCash implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $tries = 1;
protected $viewer_id;
protected $sharer_id;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($param)
{
$this->viewer_id = $param['viewer_id'];
$this->sharer_id = $param['sharer_id'];
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$viewer_id = $this->viewer_id;
$sharer_id = $this->sharer_id;
if (empty($sharer_id) || empty($viewer_id)) {
return true;
}
try {
//开启事务
\DB::beginTransaction();
$share_values = 0.01;
//更新钱包
$asset = Asset::firstOrCreate(['viewer_id'=>$sharer_id]);
// $asset->increment('share_cash', $share_values);
$score = (($asset->share_cash * 100) + ($asset->cash * 100)) / 100;
//生成钱包变更记录
$this->storeAssetLog($sharer_id, $share_values, $score, $viewer_id);
//提交事务
\DB::commit();
return true;
} catch (\Exception $e) {
//回滚事务
\DB::rollback();
\Log::error($e->getMessage().';line-'.$e->getLine());
return false;
}
}
public function storeAssetLog($sharer_id, $share_values, $score, $viewer_id)
{
$log = new AssetLog;
$log->viewer_id = $sharer_id;
$log->num = $share_values;
$log->type = 2;
$log->log_id = $viewer_id;
$log->score = $score;
$log->is_hooked = 0;
$log->save();
return ;
}
}