getPdo(); $stmt = $pdo->prepare( "SELECT COUNT(*) FROM social_accounts sa LEFT JOIN media_commercial_attributes mca ON mca.social_account_id = sa.id WHERE $whereSql" ); $stmt->execute($params); $total = (int)$stmt->fetchColumn(); $offset = ($page - 1) * $limit; $stmt = $pdo->prepare( "SELECT sa.id, sa.owner_type, sa.owner_id, sa.platform, sa.account_id, sa.profile_url, sa.remark, sa.is_primary, sa.is_active, sa.created_at, mca.account_level, mca.content_categories, mca.follower_count, mca.avg_read_count, mca.certification_type, mca.special_requirements, mca.media_remark, CASE sa.owner_type WHEN 'person' THEN (SELECT p.full_name FROM persons p WHERE p.id = sa.owner_id) WHEN 'company' THEN (SELECT c.display_name FROM companies c WHERE c.id = sa.owner_id) ELSE NULL END AS owner_name FROM social_accounts sa LEFT JOIN media_commercial_attributes mca ON mca.social_account_id = sa.id WHERE $whereSql ORDER BY sa.id DESC LIMIT $limit OFFSET $offset" ); $stmt->execute($params); $list = $stmt->fetchAll(); // 供前端筛选下拉使用:平台/认证类型/等级 字典 $dict = [ 'platforms' => $pdo->query("SELECT DISTINCT platform FROM social_accounts WHERE is_active = 1 ORDER BY platform")->fetchAll(PDO::FETCH_COLUMN), 'certification_types' => $pdo->query("SELECT DISTINCT certification_type FROM media_commercial_attributes WHERE certification_type IS NOT NULL AND certification_type <> '' ORDER BY certification_type")->fetchAll(PDO::FETCH_COLUMN), 'account_levels' => $pdo->query("SELECT DISTINCT account_level FROM media_commercial_attributes ORDER BY account_level")->fetchAll(PDO::FETCH_COLUMN), ]; Response::success(['list' => $list, 'total' => $total, 'page' => $page, 'limit' => $limit, 'dict' => $dict]);