65 lines
2.0 KiB
PHP
65 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace App\Listeners;
|
|
|
|
use App\Events\UpgradePaid as UpgradePaidEvent;
|
|
use App\Models\UserPerf;
|
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
|
|
|
class UpgradePaidListener implements ShouldQueue
|
|
{
|
|
|
|
public $queue = 'LISTENER';
|
|
|
|
/**
|
|
* Handle the event.
|
|
*
|
|
* @param VipPaidEvent $event
|
|
* @return void
|
|
*/
|
|
public function handle(UpgradePaidEvent $event)
|
|
{
|
|
$upgrade_payment = $event->upgrade_payment;
|
|
|
|
if ($upgrade_payment->type == 'vip') {
|
|
$whereType = 'UpgradeVip';
|
|
} else {
|
|
$whereType = 'UpgradeAgency';
|
|
}
|
|
|
|
$perf = UserPerf::where('source->type', $whereType)->where('source->payment_id', $upgrade_payment->id)->first();
|
|
if (!$perf) {
|
|
$user = $upgrade_payment->user;
|
|
|
|
if ($upgrade_payment->type == 'vip') {
|
|
//升级会员执行分润
|
|
$user->identityUpdate(1, 'AutoUp');
|
|
\App\Bonus\DirectVip::settlement($upgrade_payment);
|
|
|
|
$source = [
|
|
'user_id' => $upgrade_payment->user->id,
|
|
'type' => 'UpgradeVip',
|
|
'payment_id' => $upgrade_payment->id,
|
|
];
|
|
\App\Bonus\AddPerf::settlement($upgrade_payment->user, $upgrade_payment->amount, $source);
|
|
|
|
} else {
|
|
//升级代理执行分润
|
|
$upgrade_payment->user->identityUpdate(2, 'AutoUp');
|
|
\App\Bonus\DirectAgency::settlement($upgrade_payment);
|
|
|
|
$source = [
|
|
'user_id' => $upgrade_payment->user->id,
|
|
'type' => 'UpgradeAgency',
|
|
'payment_id' => $upgrade_payment->id,
|
|
];
|
|
\App\Bonus\AddPerf::settlement($upgrade_payment->user, $upgrade_payment->amount, $source);
|
|
|
|
//记录代理商激活时间
|
|
$user->activationd_at = time();
|
|
$user->save();
|
|
}
|
|
}
|
|
}
|
|
}
|