增加 后台推介系统
This commit is contained in:
parent
782d826bbd
commit
e9f87865ff
39
app/Http/Controllers/Admin/AffiliateController.php
Normal file
39
app/Http/Controllers/Admin/AffiliateController.php
Normal file
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Affiliate\Affiliates;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class AffiliateController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index(User $user): View|RedirectResponse
|
||||
{
|
||||
$affiliate = $user->affiliate;
|
||||
|
||||
// 检测用户是否激活了推介计划
|
||||
if (! $affiliate) {
|
||||
return redirect()->back()->with('error', '用户未激活推介计划。');
|
||||
}
|
||||
|
||||
$affiliateUsers = $user->affiliateUsers()->paginate(10);
|
||||
|
||||
return view('admin.users.affiliates.index', compact('affiliateUsers', 'affiliate', 'user'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(User $user, Affiliates $affiliate): RedirectResponse
|
||||
{
|
||||
$affiliate->delete();
|
||||
|
||||
return redirect()->route('admin.users.edit', $user)->with('success', '成功离开推介计划。');
|
||||
}
|
||||
}
|
@ -4,8 +4,6 @@
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Affiliate\Affiliates;
|
||||
use App\Models\Affiliate\AffiliateUser;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
|
@ -33,7 +33,7 @@ public static function booted()
|
||||
});
|
||||
|
||||
static::deleting(function (self $affiliate) {
|
||||
$affiliate->users()->delete();
|
||||
AffiliateUser::where('affiliate_id', $affiliate->id)->delete();
|
||||
$affiliate->user->update(['affiliate_id' => null]);
|
||||
});
|
||||
}
|
||||
|
70
resources/views/admin/users/affiliates/index.blade.php
Normal file
70
resources/views/admin/users/affiliates/index.blade.php
Normal file
@ -0,0 +1,70 @@
|
||||
@extends('layouts.admin')
|
||||
|
||||
@section('title', '推介计划')
|
||||
|
||||
@section('content')
|
||||
@php($url = \Illuminate\Support\Facades\URL::route('affiliates.show', $affiliate->uuid))
|
||||
|
||||
<h3>用户推介计划</h3>
|
||||
|
||||
<p>
|
||||
访问量:{{ $affiliate->visits }}
|
||||
</p>
|
||||
<p>
|
||||
盈利:{{ $affiliate->revenue }} 元
|
||||
</p>
|
||||
|
||||
<p>推介 URL: {{ $url }}</p>
|
||||
|
||||
@php($count = $affiliateUsers->count())
|
||||
@if ($count)
|
||||
<h4>用户列表</h4>
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">ID</th>
|
||||
<th scope="col">用户名</th>
|
||||
<th scope="col">邮箱</th>
|
||||
<th scope="col">盈利</th>
|
||||
<th scope="col">实人状态</th>
|
||||
<th scope="col">注册时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($affiliateUsers as $affiliateUser)
|
||||
<tr>
|
||||
<td>{{ $affiliateUser->id }}</td>
|
||||
<td>{{ $affiliateUser->user->name }}</td>
|
||||
<td>{{ $affiliateUser->email }}</td>
|
||||
<td>{{ $affiliateUser->revenue }} 元</td>
|
||||
|
||||
<td>
|
||||
@if ($affiliateUser->real_name_verified_at)
|
||||
完成
|
||||
@else
|
||||
<span class="text-danger">未完成</span>
|
||||
@endif
|
||||
</td>
|
||||
|
||||
<td>{{ $affiliateUser->created_at }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
{{ $affiliateUsers->links() }}
|
||||
@endif
|
||||
|
||||
<h4>佣金计算方式</h4>
|
||||
<p>佣金 = 下属用户充值总额 / ({{config('settings.billing.commission_referral')}} * 100)</p>
|
||||
|
||||
<h4>清除此用户的推介</h4>
|
||||
<form method="post" action="{{ route('admin.users.affiliates.destroy', [$user, $affiliate->id]) }}"
|
||||
onclick="return confirm('关联的推介数据也会被删除,但是不会扣除收益。确定清除吗?')">
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
关联的推介数据也会被删除,但是不会扣除收益。
|
||||
<br/>
|
||||
<button type="submit" class="btn btn-sm btn-danger mt-1">清除</button>
|
||||
</form>
|
||||
|
||||
@endsection
|
@ -12,6 +12,7 @@
|
||||
|
||||
<a href="{{ route('admin.users.show', $user) }}">作为 {{ $user->name }} 登录</a>
|
||||
<a href="{{ route('admin.transactions') }}?user_id={{ $user->id }}">有关此用户的交易记录</a>
|
||||
<a href="{{ route('admin.users.affiliates.index', $user->id) }}">推介计划</a>
|
||||
|
||||
@if ($user->banned_at)
|
||||
<p class="text-danger">已被封禁,原因: {{ $user->banned_reason }}</p>
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\Admin\AdminController;
|
||||
use App\Http\Controllers\Admin\AffiliateController;
|
||||
use App\Http\Controllers\Admin\ApplicationController;
|
||||
use App\Http\Controllers\Admin\AuthController;
|
||||
use App\Http\Controllers\Admin\DeviceController;
|
||||
@ -21,6 +22,7 @@
|
||||
Route::resource('admins', AdminController::class)->except('show');
|
||||
|
||||
Route::resource('users', UserController::class);
|
||||
Route::resource('users.affiliates', AffiliateController::class)->only(['index', 'destroy']);
|
||||
|
||||
Route::resource('modules', ModuleController::class);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user