feat(admin): merge stash changes into comclib-analytics (order/finance/product + rpc sql)
This commit is contained in:
35
docs/sql/30_rpc/admin/rpc_admin_system_config_get_v1.sql
Normal file
35
docs/sql/30_rpc/admin/rpc_admin_system_config_get_v1.sql
Normal file
@@ -0,0 +1,35 @@
|
||||
-- =====================================================================================
|
||||
-- Admin 系统功能 - 获取配置项 RPC
|
||||
-- 位置:docs/sql/30_rpc/admin/
|
||||
-- 对象类型:RPC 函数(SECURITY DEFINER)
|
||||
-- 版本:v1
|
||||
-- 依赖:ml_system_configs, ak_users 表已存在
|
||||
-- =====================================================================================
|
||||
|
||||
CREATE OR REPLACE FUNCTION public.rpc_admin_system_config_get(
|
||||
p_key TEXT
|
||||
)
|
||||
RETURNS JSONB
|
||||
SECURITY DEFINER
|
||||
SET search_path = public
|
||||
LANGUAGE plpgsql
|
||||
AS $$
|
||||
DECLARE
|
||||
v_value JSONB;
|
||||
BEGIN
|
||||
-- 1. 权限检查
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM public.ak_users
|
||||
WHERE auth_id = auth.uid() AND role IN ('admin', 'analytics')
|
||||
) THEN
|
||||
RAISE EXCEPTION 'Permission denied';
|
||||
END IF;
|
||||
|
||||
-- 2. 获取配置值
|
||||
SELECT config_value INTO v_value
|
||||
FROM public.ml_system_configs
|
||||
WHERE config_key = p_key;
|
||||
|
||||
RETURN v_value;
|
||||
END;
|
||||
$$;
|
||||
37
docs/sql/30_rpc/admin/rpc_admin_system_config_save_v1.sql
Normal file
37
docs/sql/30_rpc/admin/rpc_admin_system_config_save_v1.sql
Normal file
@@ -0,0 +1,37 @@
|
||||
-- =====================================================================================
|
||||
-- Admin 系统功能 - 保存配置项 RPC
|
||||
-- 位置:docs/sql/30_rpc/admin/
|
||||
-- 对象类型:RPC 函数(SECURITY DEFINER)
|
||||
-- 版本:v1
|
||||
-- 依赖:ml_system_configs, ak_users 表已存在
|
||||
-- =====================================================================================
|
||||
|
||||
CREATE OR REPLACE FUNCTION public.rpc_admin_system_config_save(
|
||||
p_key TEXT,
|
||||
p_value JSONB
|
||||
)
|
||||
RETURNS BOOLEAN
|
||||
SECURITY DEFINER
|
||||
SET search_path = public
|
||||
LANGUAGE plpgsql
|
||||
AS $$
|
||||
BEGIN
|
||||
-- 1. 权限检查
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM public.ak_users
|
||||
WHERE auth_id = auth.uid() AND role IN ('admin', 'analytics')
|
||||
) THEN
|
||||
RAISE EXCEPTION 'Permission denied';
|
||||
END IF;
|
||||
|
||||
-- 2. 执行保存(存在则更新,不存在则插入)
|
||||
INSERT INTO public.ml_system_configs (config_key, config_value, updated_at)
|
||||
VALUES (p_key, p_value, NOW())
|
||||
ON CONFLICT (config_key)
|
||||
DO UPDATE SET
|
||||
config_value = EXCLUDED.config_value,
|
||||
updated_at = NOW();
|
||||
|
||||
RETURN TRUE;
|
||||
END;
|
||||
$$;
|
||||
Reference in New Issue
Block a user