计算配额
parent
22c59d1e4e
commit
2655a2eec0
|
|
@ -48,6 +48,18 @@ class PreIncomeSettleCommand extends Command
|
||||||
$preIncome
|
$preIncome
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// 计算配额
|
||||||
|
$quota = round(bcmul($preIncome->total_revenue, app_settings('distribution.quota_v2_rate', 0), 4), 3);
|
||||||
|
$preIncome->user->userInfo()->update([
|
||||||
|
'quota_v2' => DB::raw("quota_v2+{$quota}"),
|
||||||
|
]);
|
||||||
|
$preIncome->user->quotaLogs()->create([
|
||||||
|
'loggable_id' => $preIncome->id,
|
||||||
|
'loggable_type' => $preIncome->getMorphClass(),
|
||||||
|
'change_quota' => $quota,
|
||||||
|
]);
|
||||||
|
|
||||||
|
// 将预收益标记为已结算
|
||||||
$preIncome->update([
|
$preIncome->update([
|
||||||
'completed_at' => now(),
|
'completed_at' => now(),
|
||||||
'status' => DistributionPreIncome::STATUS_PROCESSED,
|
'status' => DistributionPreIncome::STATUS_PROCESSED,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class QuotaLog extends Model
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $fillable = [
|
||||||
|
'user_id',
|
||||||
|
'loggable_id',
|
||||||
|
'loggable_type',
|
||||||
|
'change_quota',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -228,6 +228,14 @@ class User extends Model implements AuthorizableContract, AuthenticatableContrac
|
||||||
return $this->hasMany(DistributionPreIncome::class, 'user_id');
|
return $this->hasMany(DistributionPreIncome::class, 'user_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户的配额日志
|
||||||
|
*/
|
||||||
|
public function quotaLogs()
|
||||||
|
{
|
||||||
|
return $this->hasMany(QuotaLog::class);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户的粉丝
|
* 用户的粉丝
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class CreateQuotaLogsTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('quota_logs', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->unsignedBigInteger('user_id')->comment('用户ID');
|
||||||
|
$table->nullableMorphs('loggable');
|
||||||
|
$table->decimal('change_quota', 18, 3)->default(0)->comment('变更的配额');
|
||||||
|
$table->timestamps();
|
||||||
|
|
||||||
|
$table->index('user_id');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('quota_logs');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -100,6 +100,8 @@ class AppSettingSeeder extends Seeder
|
||||||
'value' => [
|
'value' => [
|
||||||
// 分销结算时间
|
// 分销结算时间
|
||||||
'settle_days' => '7',
|
'settle_days' => '7',
|
||||||
|
// 新配额比例
|
||||||
|
'quota_v2_rate' => '0.01',
|
||||||
// 会员差价手续费
|
// 会员差价手续费
|
||||||
'price_diff_fee_rate' => '0.23',
|
'price_diff_fee_rate' => '0.23',
|
||||||
// 平级奖励手续费
|
// 平级奖励手续费
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue