value('value'); $config = json_decode($config, true); $title = $config['logo']['title'] ?? 'webman admin'; $logo = $config['logo']['image'] ?? '/app/admin/admin/images/logo.png'; return raw_view('account/login', ['logo' => $logo, 'title' => $title]); } return raw_view('index/index'); } /** * 仪表板 * @param Request $request * @return Response * @throws Throwable */ public function dashboard(Request $request): Response { $teamId = admin('team_id'); $data = Payorder::query() ->where('is_pay', 2) ->whereExists(function ($query) use ($teamId) { $query->from('wa_users')->whereRaw('wa_users.id=wa_payorder.user_id'); if (!empty($teamId)) { $query->where('team_id', $teamId); } }) ->select(['user_id', 'created_at', 'goods_type']) ->get() ->toArray(); /** @var $user_id 获取今日购买订单信息 */ $user_id = collect($data)->where('created_at', '>=', date('Y-m-d') . ' 00:00:00')->pluck('user_id')->toArray(); $cja = collect($data)->where('created_at', '<', date('Y-m-d') . ' 00:00:00')->whereIn('user_id', $user_id)->pluck('user_id')->toArray(); $numDya = count(array_unique($user_id)) - count(array_unique($cja)); /** @var $num 购买总人数 */ $num = collect($data)->groupBy('user_id')->count(); $myGoodModel = Payorder::query() ->where('is_pay', 2) ->where('created_at','>=', '2025-10-07 23:59:59') ->whereExists(function ($query) use ($teamId) { $query->from('wa_users')->whereRaw('wa_users.id=wa_payorder.user_id'); if (!empty($teamId)) { $query->where('team_id', $teamId); } }); $withdrawModel = Withdraw::query()->where('status', 3)->whereExists(function ($query) use ($teamId) { $query->from('wa_users')->whereRaw('wa_users.id=wa_withdraw.user_id'); if (!empty($teamId)) { $query->where('team_id', $teamId); } }); if ($request->isAjax()) { $time = strtotime(date('Y-m-d') . ' 23:59:59'); $arr = [ date('Y-m-d', $time - 6 * 24 * 60 * 60), date('Y-m-d', $time - 5 * 24 * 60 * 60), date('Y-m-d', $time - 4 * 24 * 60 * 60), date('Y-m-d', $time - 3 * 24 * 60 * 60), date('Y-m-d', $time - 2 * 24 * 60 * 60), date('Y-m-d', $time - 1 * 24 * 60 * 60), date('Y-m-d', $time), ]; $array = []; foreach ($arr as $v) { $array[] = [ 'name' => date('m月d日', strtotime($v)), 'value1' => (clone $myGoodModel)->whereBetween('created_at', [$v . ' 00:00:00', $v . ' 23:59:59'])->sum('money'), 'value2' => (clone $withdrawModel)->whereBetween('updated_at', [$v . ' 00:00:00', $v . ' 23:59:59'])->sum('money'), ]; } return adminsuccess($array); } // 总用户数 $user_count = User::query()->where(function ($query) use ($teamId) { if (!empty($teamId)) { $query->where('team_id', $teamId); } })->count(); // 今日签到 $day7_user_count = Stream::query() ->whereExists(function ($query) use ($teamId) { $query->from('wa_users')->whereRaw('wa_users.id=wa_stream.user_id'); if (!empty($teamId)) { $query->where('team_id', $teamId); } })->where('type', streamType2) ->whereBetween('created_at', [date('Y-m-d') . ' 00:00:00', date('Y-m-d') . ' 23:59:59']) ->count(); // 在线用户 $today_user_count = User::where('last_login', '>', time())->where(function ($query) use ($teamId) { if (!empty($teamId)) { $query->where('team_id', $teamId); } })->count(); //今日注册人数 $register_num = User::whereBetween('created_at',[date('Y-m-d').' 00:00:00',date('Y-m-d').' 23:59:59'])->where(function ($query) use ($teamId) { if (!empty($teamId)) { $query->where('team_id', $teamId); } })->count(); // 订单金额 $day30_user_count = Payorder::where('is_pay', 2) ->where('created_at','>=', '2025-10-07 23:59:59') ->whereExists(function ($query) use ($teamId) { $query->from('wa_users')->whereRaw('wa_users.id=wa_payorder.user_id'); if (!empty($teamId)) { $query->where('team_id', $teamId); } }) ->sum('money'); $day7_detail = []; $now = time(); for ($i = 0; $i < 7; $i ++) { $date = date('Y-m-d', $now - 24 * 60 * 60 * $i); $day7_detail[substr($date, 5)] = User::query()->where(function ($query) use ($teamId) { if (!empty($teamId)) { $query->where('team_id', $teamId); } })->whereBetween('created_at', ["$date 00:00:00", "$date 23:59:59"])->count(); } /** 新增购买 */ /** 总购买数 */ return raw_view('index/dashboard', [ 'today_user_count' => $today_user_count, 'day7_user_count' => $day7_user_count, 'day30_user_count' => $day30_user_count, 'user_count' => $user_count, 'day7_detail' => array_reverse($day7_detail), 'tal_num' => $num, 'numDya' => $numDya, 'register_num'=>$register_num, /* 'two_withdraw'=>(clone $withdrawModel)->sum('money'),*/ 'app' => User::where('is_app', 1)->where(function ($query) use ($teamId) { if (!empty($teamId)) { $query->where('team_id', $teamId); } })->count() ]); } }