| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258 |
- <?php
- namespace App\Http\Controllers\admin;
- use App\Constants\HttpStatus;
- use App\Http\Controllers\Controller;
- use App\Models\PaymentOrder;
- use App\Models\Recharge;
- use App\Models\User;
- use App\Models\BalanceLog;
- use Illuminate\Validation\ValidationException;
- use Exception;
- use Carbon\Carbon;
- use App\Models\Withdraw;
- class Home extends Controller
- {
- public function index()
- {
- try {
- request()->validate([
- 'start_date' => ['nullable', 'date_format:Y-m-d'],
- 'end_date' => ['nullable', 'date_format:Y-m-d', 'after_or_equal:start_date'],
- ]);
- $start = request()->input('start_date');
- $end = request()->input('end_date');
- if (empty($end)) $end = date('Y-m-d');
- if (empty($start)) $start = date('Y-m-d');
- $end = Carbon::createFromFormat('Y-m-d', $end)->addDay()->format('Y-m-d');
- $today = date('Y-m-d');
- //投注统计
- $query = BalanceLog::query();
- $query->where('type', 1)->where('change_type', 'like', '%投注');
- $query1 = clone $query;
- $bet['amount'] = (float)$query1->whereBetween('created_at', [$start, $end])->sum('amount');//投注金额
- $query1 = clone $query;
- $bet['today_amount'] = (float)$query1->whereBetween('created_at', [$today, $end])->sum('amount');//今日投注金额
- //投注退款统计
- $query = BalanceLog::query();
- $query->where('type', 1)->where('change_type', 'like', '%退款');
- $query1 = clone $query;
- $bet['refund_amount'] = (float)$query1->whereBetween('created_at', [$start, $end])->sum('amount');//投注退款金额
- $query1 = clone $query;
- $bet['today_refund_amount'] = (float)$query1->whereBetween('created_at', [$today, $end])->sum('amount');//今日投注退款金额
- //投注中奖统计
- $query = BalanceLog::query();
- $query->where('type', 1)->where('change_type', 'like', '%中奖');
- $query1 = clone $query;
- $bet['win_amount'] = (float)$query1->whereBetween('created_at', [$start, $end])->sum('amount');//投注中奖金额
- $query1 = clone $query;
- $bet['today_win_amount'] = (float)$query1->whereBetween('created_at', [$today, $end])->sum('amount');//今日投注中奖金额
- //余额宝统计
- $query = BalanceLog::query();
- $yuebao['in_amount'] = (float)$query->where('change_type', '余额宝转入')->whereBetween('created_at', [$start, $end])->sum('amount');//余额宝转入金额
- $yuebao['today_in_amount'] = (float)$query->where('change_type', '余额宝转入')->whereBetween('created_at', [$today, $end])->sum('amount');//今日余额宝转入金额
- $yuebao['out_amount'] = (float)$query->where('change_type', '余额宝转出')->whereBetween('created_at', [$start, $end])->sum('amount');//余额宝转出金额
- $yuebao['today_out_amount'] = (float)$query->where('change_type', '余额宝转出')->whereBetween('created_at', [$today, $end])->sum('amount');//今日余额宝转出金额
-
- $yuebao['interest_amount'] = (float)$query->where('change_type', '余额宝利息')->whereBetween('created_at', [$start, $end])->sum('amount');//余额宝利息
- $yuebao['today_interest_amount'] = (float)$query->where('change_type', '余额宝利息')->whereBetween('created_at', [$today, $end])->sum('amount');//今日余额宝利息
- //老用户回归返彩金额
- $activity['user_return'] = (float)$query->where('change_type', '老用户回归')->whereBetween('created_at', [$start, $end])->sum('amount');//老用户回归返彩金额
- $activity['today_user_return'] = (float)$query->where('change_type', '老用户回归')->whereBetween('created_at', [$today, $end])->sum('amount');//今日老用户回归返彩金额
- //即充即送返彩金额
- $activity['recharge_frozen'] = (float)$query->where('change_type', '即充即送')->whereBetween('created_at', [$start, $end])->sum('amount');//即充即送返彩金额
- $activity['today_recharge_frozen'] = (float)$query->where('change_type', '即充即送')->whereBetween('created_at', [$today, $end])->sum('amount');//今日即充即送返彩金额
- //充值返现金额
- $activity['recharge_amount'] = (float)$query->where('change_type', '充值返现')->whereBetween('created_at', [$start, $end])->sum('amount');//充值返现金额
- $activity['today_recharge_amount'] = (float)$query->where('change_type', '充值返现')->whereBetween('created_at', [$today, $end])->sum('amount');//今日充值返现金额
- //流水解冻金额
- $activity['unfreeze_amount'] = (float)$query->where('change_type', '流水解冻')->whereBetween('created_at', [$start, $end])->sum('amount');//流水解冻金额
- $activity['today_unfreeze_amount'] = (float)$query->where('change_type', '流水解冻')->whereBetween('created_at', [$today, $end])->sum('amount');//今日流水解冻金额
- //新增会员统计
- $query = User::where('from','<>',2);
- $totalUser = (float)$query->whereBetween('created_at', [$start, $end])->count('id');
- $todayUser = (float)$query->whereBetween('created_at', [$today, $end])->count('id');//今日新增会员
-
- //第三方提现统计(RMB)
- $query = PaymentOrder::query();
- $query->whereBetween('created_at', [$start, $end]);
- $query1 = clone $query;
- $totalAmount = (float)$query1->where('type', 2)->sum('amount');
- $query1 = clone $query;
- $totalPending = (float)$query1->where('type', 2)->where('status', 0)->sum('amount');//待处理
- $query1 = clone $query;
- $totalProcessing = (float)$query1->where('type', 2)->where('status', 1)->sum('amount');//处理中
- $query1 = clone $query;
- $totalSuccess = (float)$query1->where('type', 2)->where('status', 2)->sum('amount');//成功
- $query1 = clone $query;
- $totalFail = (float)$query1->where('type', 2)->where('status', 3)->sum('amount'); // 失败
-
- //第三方提现统计(RMB)今日
- $query = PaymentOrder::query();
- $query->whereBetween('created_at', [$today, $end]);
- $query1 = clone $query;
- $todayAmount = (float)$query1->where('type', 2)->sum('amount');
- $query1 = clone $query;
- $todayPending = (float)$query1->where('type', 2)->where('status', 0)->sum('amount');//待处理
- $query1 = clone $query;
- $todayProcessing = (float)$query1->where('type', 2)->where('status', 1)->sum('amount');//处理中
- $query1 = clone $query;
- $todaySuccess = (float)$query1->where('type', 2)->where('status', 2)->sum('amount');//成功
- $query1 = clone $query;
- $todayFail = (float)$query1->where('type', 2)->where('status', 3)->sum('amount'); // 失败
- //第三方充值统计(RMB)
- $query1 = clone $query;
- $rechargeRmbTotalAmount = (float)$query1->where('type', 1)->sum('amount');//总金额
- $query1 = clone $query;
- $rechargeRmbTotalPending = (float)$query1->where('type', 1)->where('status', 0)->sum('amount');//待处理
- $query1 = clone $query;
- $rechargeRmbTotalProcessing = (float)$query1->where('type', 1)->where('status', 1)->sum('amount');//处理中
- $query1 = clone $query;
- $rechargeRmbTotalSuccess = (float)$query1->where('type', 1)->where('status', 2)->sum('amount');//成功
- $query1 = clone $query;
- $rechargeRmbTotalFail = (float)$query1->where('type', 1)->where('status', 3)->sum('amount');//失败
-
- //第三方充值统计(RMB)今日
- $query1 = clone $query;
- $rechargeRmbTodayAmount = (float)$query1->where('type', 1)->sum('amount');//总金额
- $query1 = clone $query;
- $rechargeRmbTodayPending = (float)$query1->where('type', 1)->where('status', 0)->sum('amount');//待处理
- $query1 = clone $query;
- $rechargeRmbTodayProcessing = (float)$query1->where('type', 1)->where('status', 1)->sum('amount');//处理中
- $query1 = clone $query;
- $rechargeRmbTodaySuccess = (float)$query1->where('type', 1)->where('status', 2)->sum('amount');//成功
- $query1 = clone $query;
- $rechargeRmbTodayFail = (float)$query1->where('type', 1)->where('status', 3)->sum('amount');//失败
- //USDT提现统计
- $query = Withdraw::query();
- $query->whereBetween('created_at', [$start, $end]);
- $query1 = clone $query;
- $usdTotalAmount = (float)$query1->sum('amount');//总金额
- $query1 = clone $query;
- $usdTotalSuccess = (float)$query1->where('status', 1)->sum('amount');//成功
- $query1 = clone $query;
- $usdTotalFail = (float)$query1->where('status', 2)->sum('amount');//失败
-
- //USDT提现统计(今日)
- $query = Withdraw::query();
- $query->whereBetween('created_at', [$today, $end]);
- $query1 = clone $query;
- $usdTodayAmount = (float)$query1->sum('amount');//总金额
- $query1 = clone $query;
- $usdTodaySuccess = (float)$query1->where('status', 1)->sum('amount');//成功
- $query1 = clone $query;
- $usdTodayFail = (float)$query1->where('status', 2)->sum('amount');//失败
-
- //USDT提现统计(今日)
- $query = Withdraw::query();
- $query->whereBetween('created_at', [$today, $end]);
- $query1 = clone $query;
- $usdTodayAmount = (float)$query1->sum('amount');//总金额
- $query1 = clone $query;
- $usdTodaySuccess = (float)$query1->where('status', 1)->sum('amount');//成功
- $query1 = clone $query;
- $usdTodayFail = (float)$query1->where('status', 2)->sum('amount');//失败
- //USDT充值统计
- $query = Recharge::query();
- $query->whereBetween('created_at', [$start, $end]);
- $query1 = clone $query;
- $rechargeTotalAmount = (float)$query1->sum('amount');//总充值
- $query1 = clone $query;
- $rechargeTotalSuccess = (float)$query1->where('status', 1)->sum('amount');//成功
- $query1 = clone $query;
- $rechargeTotalFail = (float)$query1->where('status', 2)->sum('amount');//失败
- //USDT充值(今日)
- $query = Recharge::query();
- $query->whereBetween('created_at', [$today, $end]);
- $query1 = clone $query;
- $rechargeTodayAmount = (float)$query1->sum('amount');//总充值
- $query1 = clone $query;
- $rechargeTodaySuccess = (float)$query1->where('status', 1)->sum('amount');//成功
- $query1 = clone $query;
- $rechargeTodayFail = (float)$query1->where('status', 2)->sum('amount');//失败
- $result = [
- 'start' => $start,
- 'end' => $end,
- 'bet' => $bet,//投注相关的
- 'activity' => $activity,//活动相关的
- 'yuebao' => $yuebao,//余额宝相关的
- 'recharge_usd' => [
- 'total_amount' => $rechargeTotalAmount,
- 'total_success' => $rechargeTotalSuccess,
- 'total_fail' => $rechargeTotalFail,
- 'today_amount' => $rechargeTodayAmount,
- 'today_success' => $rechargeTodaySuccess,
- 'today_fail' => $rechargeTodayFail,
- ],
- 'recharge_rmb' => [
- 'total_amount' => $rechargeRmbTotalAmount,
- 'total_success' => $rechargeRmbTotalSuccess,
- 'total_fail' => $rechargeRmbTotalFail,
- 'total_processing' => $rechargeRmbTotalProcessing,
- 'total_pending' => $rechargeRmbTotalPending,
- 'today_amount' => $rechargeRmbTodayAmount,
- 'today_success' => $rechargeRmbTodaySuccess,
- 'today_fail' => $rechargeRmbTodayFail,
- 'today_processing' => $rechargeRmbTodayProcessing,
- 'today_pending' => $rechargeRmbTodayPending,
- ],
- 'withdraw_usdt' => [
- 'total_fail' => $usdTotalFail,
- 'total_success' => $usdTotalSuccess,
- 'total_amount' => $usdTotalAmount,
- 'today_amount' => $usdTodayAmount,
- 'today_success' => $usdTodaySuccess,
- 'today_fail' => $usdTodayFail,
- ],
- 'withdraw_rmb' => [
- 'total_fail' => $totalFail,
- 'total_success' => $totalSuccess,
- 'total_amount' => $totalAmount,
- 'total_processing' => $totalProcessing,
- 'total_pending' => $totalPending,
- 'today_amount' => $todayAmount,
- 'today_success' => $todaySuccess,
- 'today_fail' => $todayFail,
- 'today_processing' => $todayProcessing,
- 'today_pending' => $todayPending,
- ],
- 'total_user' => $totalUser,
- 'today_user' => $todayUser,
- ];
- } catch (ValidationException $e) {
- return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first());
- } catch (Exception $e) {
- return $this->error($e->getCode(), $e->getmessage());
- }
- return $this->success($result);
- }
- }
|