count(); // 业主数量 $ownerCount = Member::where('member_is_owner', 'Y')->count(); // 用户总数 $userCount = $memberCount + $ownerCount; // 今日新增用户数 $todayTime = strtotime(date('Y-m-d 00:00:00')); $todayCount = Member::where('member_addtimes', '>', $todayTime)->where('member_is_owner', 'N')->count(); // 本月新增用户数 $monthTime = strtotime(date('Y-m-01 00:00:00')); $monthCount = Member::where('member_addtimes', '>', $monthTime)->where('member_is_owner', 'N')->count(); // 折线图 $newAddition = Db::select("SELECT DATE_FORMAT(FROM_UNIXTIME(member_addtimes), '%Y/%m') AS `month`,count(*) as `num` FROM app_member group by month"); $newAdditionData = []; foreach ($newAddition as $item) { $newAdditionData['category'][] = $item->month; $newAdditionData['data'][] = $item->num; } // 饼图 $newAdditionBing = Db::select(" SELECT CASE WHEN TIMESTAMPDIFF(YEAR, member_cert_birth, CURDATE()) BETWEEN 0 AND 1 THEN '0' WHEN TIMESTAMPDIFF(YEAR, member_cert_birth, CURDATE()) BETWEEN 1 AND 39 THEN '39' WHEN TIMESTAMPDIFF(YEAR, member_cert_birth, CURDATE()) BETWEEN 40 AND 50 THEN '40-50' WHEN TIMESTAMPDIFF(YEAR, member_cert_birth, CURDATE()) BETWEEN 51 AND 60 THEN '51-60' WHEN TIMESTAMPDIFF(YEAR, member_cert_birth, CURDATE()) BETWEEN 61 AND 70 THEN '60-70' WHEN TIMESTAMPDIFF(YEAR, member_cert_birth, CURDATE()) BETWEEN 71 AND 80 THEN '70-80' ELSE '81以上' END AS age_group, COUNT(*) AS number_of_people FROM app_member_cert GROUP BY age_group ORDER BY age_group; "); $newAdditionBingData = []; foreach ($newAdditionBing as $item) { if ($item->age_group == '0') { $item->age_group = '未知'; }elseif ($item->age_group == '39'){ $item->age_group = '40以下'; } $newAdditionBingData[] = [ 'name' => $item->age_group, 'value' => $item->number_of_people ]; } $data = [ 'memberCount' => $memberCount, 'ownerCount' => $ownerCount, 'userCount' => $userCount, 'todayCount' => $todayCount, 'monthCount' => $monthCount, 'newAdditionData' => $newAdditionData, 'newAdditionBingData' => $newAdditionBingData ]; return json_success('', $data); } }