0
0
Files
Babyclass/app/Admin/Controllers/AccountController.php
2020-08-04 10:09:42 +08:00

162 lines
6.8 KiB
PHP

<?php
namespace App\Admin\Controllers;
use App\Models\Withdraw;
use Illuminate\Http\Request;
use RuLong\UserAccount\Models\UserAccount;
use RuLong\UserAccount\Models\UserAccountLog;
use RuLong\UserAccount\Models\UserAccountRule;
class AccountController extends Controller
{
public function index(Request $request)
{
$mobile = $request->mobile;
$nickname = $request->nickname;
$start = $request->start;
$end = $request->end;
$orderField = $request->orderField;
$orderDirection = $request->orderDirection;
$numPerPage = $request->numPerPage ?: 30;
$accounts = UserAccount::when($mobile, function ($query) use ($mobile) {
$query->whereHas('user', function ($query) use ($mobile) {
$query->where('mobile', 'like', "%{$mobile}%");
});
})->when($nickname, function ($query) use ($nickname) {
$query->whereHas('user.info', function ($query) use ($nickname) {
$query->where('nickname', 'like', "%{$nickname}%");
});
})->when($start && $end, function ($query) use ($start, $end) {
return $query->whereBetween('created_at', [$start, date('Y-m-d', strtotime("+1 days", strtotime($end)))]);
})->when($start && !$end, function ($query) use ($start) {
return $query->where('created_at', '>=', $start);
})->when(!$start && $end, function ($query) use ($end) {
return $query->where('created_at', '<=', date('Y-m-d', strtotime("+1 days", strtotime($end))));
})->when($orderField, function ($query) use ($orderField, $orderDirection) {
$query->orderBy($orderField, $orderDirection);
})->with(['user'])->latest()->paginate($numPerPage);
return view('Admin::accounts.index', compact('accounts'));
}
public function rules(Request $request)
{
$title = $request->title;
$orderField = $request->orderField;
$orderDirection = $request->orderDirection;
$numPerPage = $request->numPerPage ?: 30;
$rules = UserAccountRule::when($title, function ($query) use ($title) {
$query->where('title', 'like', "%{$title}%");
})->when($orderField, function ($query) use ($orderField, $orderDirection) {
$query->orderBy($orderField, $orderDirection);
})->latest()->paginate($numPerPage);
return view('Admin::accounts.rules', compact('rules'));
}
public function logs(Request $request)
{
$mobile = $request->mobile;
$rule_id = $request->rule_id;
$nickname = $request->nickname;
$start = $request->start;
$end = $request->end;
$orderField = $request->orderField;
$orderDirection = $request->orderDirection;
$numPerPage = $request->numPerPage ?: 30;
$logs = UserAccountLog::when($mobile, function ($query) use ($mobile) {
$query->whereHas('user', function ($query) use ($mobile) {
$query->where('mobile', 'like', "%{$mobile}%");
});
})->when($nickname, function ($query) use ($nickname) {
$query->whereHas('user.info', function ($query) use ($nickname) {
$query->where('nickname', 'like', "%{$nickname}%");
});
})->when($rule_id, function ($query) use ($rule_id) {
return $query->where('rule_id', $rule_id);
})->when($start && $end, function ($query) use ($start, $end) {
return $query->whereBetween('created_at', [$start, date('Y-m-d', strtotime("+1 days", strtotime($end)))]);
})->when($start && !$end, function ($query) use ($start) {
return $query->where('created_at', '>=', $start);
})->when(!$start && $end, function ($query) use ($end) {
return $query->where('created_at', '<=', date('Y-m-d', strtotime("+1 days", strtotime($end))));
})->when($orderField, function ($query) use ($orderField, $orderDirection) {
$query->orderBy($orderField, $orderDirection);
})->with(['user.info', 'rule'])->latest()->orderBy('id', 'desc')->paginate($numPerPage);
$rules = UserAccountRule::get();
return view('Admin::accounts.logs', compact('logs', 'rules'));
}
/**
* 提现申请
* @Author:<C.Jason>
* @Date:2018-11-08T16:48:31+0800
* @param Request $request [description]
* @return [type] [description]
*/
public function withdraws(Request $request)
{
$mobile = $request->mobile;
$nickname = $request->nickname;
$start = $request->start;
$end = $request->end;
$orderField = $request->orderField;
$orderDirection = $request->orderDirection;
$numPerPage = $request->numPerPage ?: 30;
$withdraws = Withdraw::when($mobile, function ($query) use ($mobile) {
$query->whereHas('user', function ($query) use ($mobile) {
$query->where('mobile', 'like', "%{$mobile}%");
});
})->when($nickname, function ($query) use ($nickname) {
$query->whereHas('user.info', function ($query) use ($nickname) {
$query->where('nickname', 'like', "%{$nickname}%");
});
})->when($start && $end, function ($query) use ($start, $end) {
return $query->whereBetween('created_at', [$start, date('Y-m-d', strtotime("+1 days", strtotime($end)))]);
})->when($start && !$end, function ($query) use ($start) {
return $query->where('created_at', '>=', $start);
})->when(!$start && $end, function ($query) use ($end) {
return $query->where('created_at', '<=', date('Y-m-d', strtotime("+1 days", strtotime($end))));
})->when($orderField, function ($query) use ($orderField, $orderDirection) {
$query->orderBy($orderField, $orderDirection);
})->with(['user.info'])->latest()->paginate($numPerPage);
return view('Admin::accounts.withdraws', compact('withdraws'));
}
/**
* 通过提现申请
* @Author:<C.Jason>
* @Date:2018-11-08T16:48:10+0800
* @param Request $request [description]
* @param Withdraw $withdraw [description]
* @return [type] [description]
*/
public function approve(Request $request, Withdraw $withdraw)
{
}
/**
* 驳回提现申请
* @Author:<C.Jason>
* @Date:2018-11-08T16:48:19+0800
* @param Request $request [description]
* @param Withdraw $withdraw [description]
* @return [type] [description]
*/
public function reject(Request $request, Withdraw $withdraw)
{
if ($request->isMethod('POST')) {
# code...
} else {
return view('Admin::accounts.reject', compact('withdraw'));
}
}
}