数据库文档编写,开发规范文档,数据库接入

This commit is contained in:
comlibmb
2026-02-02 18:09:30 +08:00
parent 19970db288
commit 21149dd3fe
36 changed files with 3245 additions and 89 deletions

View File

@@ -177,6 +177,8 @@ $$;
-- -------------------------------------------------------------------------------------
-- 4. 函数: rpc_analytics_traffic_sources
-- 描述: 获取流量来源分布 (基于注册来源)
-- 兼容性说明:部分环境的 ak_users 可能不存在 registration_source 字段。
-- 为避免 RPC 报错导致页面加载失败,这里做“字段存在则分组统计,不存在则全部归为未知”的兼容。
-- -------------------------------------------------------------------------------------
CREATE OR REPLACE FUNCTION public.rpc_analytics_traffic_sources(
p_start_date DATE,
@@ -186,16 +188,40 @@ RETURNS TABLE (
name TEXT,
value BIGINT
)
LANGUAGE sql
AS $$
SELECT
COALESCE(registration_source, '未知') AS name,
COUNT(id)::BIGINT AS value
FROM public.ak_users
WHERE created_at::DATE BETWEEN p_start_date AND p_end_date
GROUP BY name
ORDER BY value DESC;
$$;
LANGUAGE plpgsql
AS $
DECLARE
has_registration_source BOOLEAN := FALSE;
BEGIN
SELECT EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = 'public'
AND table_name = 'ak_users'
AND column_name = 'registration_source'
) INTO has_registration_source;
IF has_registration_source THEN
RETURN QUERY
EXECUTE '
SELECT
COALESCE(registration_source, ''未知'') AS name,
COUNT(id)::BIGINT AS value
FROM public.ak_users
WHERE created_at::DATE BETWEEN $1 AND $2
GROUP BY name
ORDER BY value DESC
'
USING p_start_date, p_end_date;
ELSE
RETURN QUERY
SELECT '未知'::TEXT AS name,
COUNT(id)::BIGINT AS value
FROM public.ak_users
WHERE created_at::DATE BETWEEN p_start_date AND p_end_date;
END IF;
END;
$;
-- =====================================================================================
-- 5. 完成提示