=', $startTime]; } if (!empty($filters['end_time'])) { $endTime = strtotime($filters['end_time']); $where[] = ['create_time', '<=', $endTime]; } if (!empty($filters['game_id'])) { $gameId = is_array($filters['game_id']) ? $filters['game_id'] : explode(',', $filters['game_id']); $where[] = ['game_id', 'in', $gameId]; } $query = self::where($where); // 统计总数 $total = $query->count(); // 获取列表数据 $list = $query->field([ "FROM_UNIXTIME(create_time, '%Y-%m-%d') as date", // 日期 'game_id', //游戏id 'AVG(rtp) AS rtp', // 平均RTP 'COUNT(DISTINCT uname) as bet_users', // 投注用户数 'COUNT(id) as bet_count', // 注单数 'SUM(bet) as bet_amount', // 注单金额(下注分数) 'SUM(total_win_amount) as game_profit', // 游戏输赢(金额变化) ]) ->order('date', 'desc') ->group('date, game_id') ->page($page, $limit) ->select() ->toArray(); // 获取登录用户、注册用户 $merchantsUserStatic = MerchantsUserModel::getPlayerStatistics($merchantId, $filters); foreach ($list as &$row) { $row['login_users'] = $merchantsUserStatic[$row['date']]['login_users'] ?? 0; $row['register_users'] = $merchantsUserStatic[$row['date']]['register_users'] ?? 0; } return [ 'list' => $list, 'total' => $total, 'page' => $page, 'limit' => $limit ]; } }