v2board/app/Http/Controllers/User/InviteController.php

77 lines
2.4 KiB
PHP
Raw Normal View History

2019-10-29 15:33:36 +08:00
<?php
2020-01-29 16:08:50 +08:00
namespace App\Http\Controllers\User;
2019-10-29 15:33:36 +08:00
use App\Http\Controllers\Controller;
2020-01-29 16:08:50 +08:00
use Illuminate\Http\Request;
2019-10-29 15:33:36 +08:00
use App\Models\User;
use App\Models\Order;
use App\Models\InviteCode;
use App\Utils\Helper;
class InviteController extends Controller
{
2020-01-11 13:36:52 +08:00
public function save(Request $request)
{
2019-12-17 15:43:47 +08:00
if (InviteCode::where('user_id', $request->session()->get('id'))->where('status', 0)->count() >= config('v2board.invite_gen_limit', 5)) {
2019-10-29 15:33:36 +08:00
abort(500, '已达到创建数量上限');
}
$inviteCode = new InviteCode();
$inviteCode->user_id = $request->session()->get('id');
$inviteCode->code = Helper::randomChar(8);
return response([
'data' => $inviteCode->save()
]);
}
2020-01-11 13:36:52 +08:00
public function details(Request $request)
{
2019-11-29 00:40:41 +08:00
return response([
'data' => Order::where('invite_user_id', $request->session()->get('id'))
2019-11-29 00:49:55 +08:00
->where('status', 3)
2019-11-29 00:40:41 +08:00
->select([
'id',
'commission_status',
'commission_balance',
'created_at',
'updated_at'
])
->get()
]);
}
2020-01-11 13:36:52 +08:00
public function fetch(Request $request)
{
2019-10-29 15:33:36 +08:00
$codes = InviteCode::where('user_id', $request->session()->get('id'))
->where('status', 0)
->get();
2019-11-29 00:24:35 +08:00
$commission_rate = config('v2board.invite_commission');
$user = User::find($request->session()->get('id'));
if ($user->commission_rate) {
$commission_rate = $user->commission_rate;
}
2019-10-29 15:33:36 +08:00
$stat = [
//已注册用户数
(int)User::where('invite_user_id', $request->session()->get('id'))->count(),
//有效的佣金
(int)Order::where('status', 3)
->where('commission_status', 1)
->where('invite_user_id', $request->session()->get('id'))
->sum('commission_balance'),
//确认中的佣金
(int)Order::where('status', 3)
->where('commission_status', 0)
->where('invite_user_id', $request->session()->get('id'))
->sum('commission_balance'),
2019-11-29 00:24:35 +08:00
//佣金比例
(int)$commission_rate
2019-10-29 15:33:36 +08:00
];
return response([
'data' => [
'codes' => $codes,
'stat' => $stat
]
]);
}
}