56 lines
1.2 KiB
PHP
56 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Bonus;
|
|
|
|
use App\Models\User;
|
|
use App\Models\UserPerf;
|
|
use RuLong\Bonus\Contracts\Settlement;
|
|
use RuLong\Bonus\Models\Bonus;
|
|
use RuLong\Bonus\Traits\Settlementable;
|
|
|
|
/**
|
|
* 添加业绩
|
|
*/
|
|
class AddPerf implements Settlement
|
|
{
|
|
use Settlementable;
|
|
|
|
public $user;
|
|
public $perf;
|
|
public $source;
|
|
|
|
public function __construct(User $user, $perf, $source = [])
|
|
{
|
|
$this->user = $user->fresh();
|
|
$this->perf = $perf;
|
|
$this->source = $source;
|
|
}
|
|
|
|
/**
|
|
* 添加业绩
|
|
* @return [type] [description]
|
|
*/
|
|
public function fire()
|
|
{
|
|
$data = [
|
|
'user_id' => $this->user->id,
|
|
'perf' => $this->perf,
|
|
'from_id' => $this->user->id,
|
|
'source' => json_encode($this->source),
|
|
'created_at' => now()->format('Y-m-d H:i:s'),
|
|
'updated_at' => now()->format('Y-m-d H:i:s'),
|
|
];
|
|
$parent = $this->user;
|
|
$lists = [];
|
|
while ($parent) {
|
|
$data['user_id'] = $parent->id;
|
|
$lists[] = $data;
|
|
$parent = $parent->parent;
|
|
}
|
|
if (count($lists) > 0) {
|
|
UserPerf::insert($lists);
|
|
}
|
|
}
|
|
|
|
}
|