update: add commission distribution

This commit is contained in:
tokumeikoi 2021-09-18 21:04:35 +09:00
parent edfc4043e8
commit 25b3b11efd
4 changed files with 54 additions and 2 deletions

View File

@ -2,6 +2,7 @@
namespace App\Console\Commands; namespace App\Console\Commands;
use App\Models\CommissionLog;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use App\Models\Order; use App\Models\Order;
use App\Models\User; use App\Models\User;
@ -96,7 +97,7 @@ class CheckCommission extends Command
$inviter = User::find($inviteUserId); $inviter = User::find($inviteUserId);
if (!$inviter) continue; if (!$inviter) continue;
if (!$commissionShareLevels[$l]) continue; if (!$commissionShareLevels[$l]) continue;
$commissionBalance = $order->commission_balance * $commissionShareLevels[$l]; $commissionBalance = $order->commission_balance * ($commissionShareLevels[$l] / 100);
if ((int)config('v2board.withdraw_close_enable', 0)) { if ((int)config('v2board.withdraw_close_enable', 0)) {
$inviter->balance = $inviter->balance + $commissionBalance; $inviter->balance = $inviter->balance + $commissionBalance;
} else { } else {
@ -106,6 +107,16 @@ class CheckCommission extends Command
DB::rollBack(); DB::rollBack();
return false; return false;
} }
if (!CommissionLog::create([
'invite_user_id' => $inviteUserId,
'user_id' => $order->user_id,
'trade_no' => $order->trade_no,
'order_amount' => $order->total_amount,
'get_amount' => $commissionBalance
])) {
DB::rollBack();
return false;
}
$inviteUserId = $inviter->invite_user_id; $inviteUserId = $inviter->invite_user_id;
} }
return true; return true;

View File

@ -0,0 +1,16 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class CommissionLog extends Model
{
protected $table = 'v2_commission_log';
protected $dateFormat = 'U';
protected $guarded = ['id'];
protected $casts = [
'created_at' => 'timestamp',
'updated_at' => 'timestamp'
];
}

View File

@ -19,6 +19,20 @@ CREATE TABLE `failed_jobs` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
DROP TABLE IF EXISTS `v2_commission_log`;
CREATE TABLE `v2_commission_log` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`invite_user_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`trade_no` char(36) NOT NULL,
`order_amount` int(11) NOT NULL,
`get_amount` int(11) NOT NULL,
`created_at` int(11) NOT NULL,
`updated_at` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DROP TABLE IF EXISTS `v2_coupon`; DROP TABLE IF EXISTS `v2_coupon`;
CREATE TABLE `v2_coupon` ( CREATE TABLE `v2_coupon` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
@ -353,4 +367,4 @@ CREATE TABLE `v2_user` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8; ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 2021-09-14 04:09:49 -- 2021-09-18 12:00:43

View File

@ -441,3 +441,14 @@ ALTER TABLE `v2_coupon`
ALTER TABLE `v2_user` ALTER TABLE `v2_user`
ADD `password_salt` char(10) COLLATE 'utf8_general_ci' NULL AFTER `password_algo`; ADD `password_salt` char(10) COLLATE 'utf8_general_ci' NULL AFTER `password_algo`;
CREATE TABLE `v2_commission_log` (
`id` int NOT NULL AUTO_INCREMENT PRIMARY KEY,
`invite_user_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`trade_no` char(36) NOT NULL,
`order_amount` int(11) NOT NULL,
`get_amount` int(11) NOT NULL,
`created_at` int(11) NOT NULL,
`updated_at` int(11) NOT NULL
) COLLATE 'utf8mb4_general_ci';