|
@@ -9,39 +9,70 @@ class MemberController
|
|
|
{
|
|
|
public function index()
|
|
|
{
|
|
|
- // 权益会员数量
|
|
|
+ // 会员数量
|
|
|
$memberCount = Member::where('member_is_owner', 'N')->count();
|
|
|
// 业主数量
|
|
|
- $ownerCount = Member::where('member_is_owner', 'N')->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)->count();
|
|
|
+ $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)->count();
|
|
|
+ $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){
|
|
|
+ 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
|
|
|
+ 'memberCount' => $memberCount,
|
|
|
+ 'ownerCount' => $ownerCount,
|
|
|
+ 'userCount' => $userCount,
|
|
|
+ 'todayCount' => $todayCount,
|
|
|
+ 'monthCount' => $monthCount,
|
|
|
+ 'newAdditionData' => $newAdditionData,
|
|
|
+ 'newAdditionBingData' => $newAdditionBingData
|
|
|
];
|
|
|
|
|
|
- return json_success('',$data);
|
|
|
+ return json_success('', $data);
|
|
|
}
|
|
|
}
|