admin模块接入数据库
This commit is contained in:
45
docs/sql/10_schema/distribution/ak_distribution_level_v1.sql
Normal file
45
docs/sql/10_schema/distribution/ak_distribution_level_v1.sql
Normal file
@@ -0,0 +1,45 @@
|
||||
-- 1. 创建分销等级表
|
||||
CREATE TABLE IF NOT EXISTS public.ak_distribution_level (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
name TEXT NOT NULL, -- 等级名称
|
||||
level INTEGER NOT NULL UNIQUE, -- 等级权重/数字(如1, 2, 3)
|
||||
percent1 DECIMAL(10,2) DEFAULT 0, -- 一级分佣比例 (%)
|
||||
percent2 DECIMAL(10,2) DEFAULT 0, -- 二级分佣比例 (%)
|
||||
task_total INTEGER DEFAULT 0, -- 任务总数
|
||||
task_finish INTEGER DEFAULT 0, -- 需完成数量(升级门槛)
|
||||
is_visible BOOLEAN DEFAULT true, -- 是否显示
|
||||
created_at TIMESTAMPTZ DEFAULT now(),
|
||||
updated_at TIMESTAMPTZ DEFAULT now()
|
||||
);
|
||||
|
||||
-- 2. 启用 RLS
|
||||
ALTER TABLE public.ak_distribution_level ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
-- 3. 创建权限策略
|
||||
-- 允许所有认证用户查看等级(用于前端展示)
|
||||
CREATE POLICY "Anyone can view levels"
|
||||
ON public.ak_distribution_level FOR SELECT
|
||||
TO authenticated
|
||||
USING (true);
|
||||
|
||||
-- 仅允许 Admin 进行管理 (INSERT/UPDATE/DELETE)
|
||||
CREATE POLICY "Admins can manage levels"
|
||||
ON public.ak_distribution_level FOR ALL
|
||||
TO authenticated
|
||||
USING (
|
||||
EXISTS (
|
||||
SELECT 1 FROM public.ak_users
|
||||
WHERE auth_id = auth.uid() AND role = 'admin'
|
||||
)
|
||||
)
|
||||
WITH CHECK (
|
||||
EXISTS (
|
||||
SELECT 1 FROM public.ak_users
|
||||
WHERE auth_id = auth.uid() AND role = 'admin'
|
||||
)
|
||||
);
|
||||
|
||||
-- 4. 插入初始化示例数据
|
||||
INSERT INTO public.ak_distribution_level (name, level, percent1, percent2, is_visible)
|
||||
VALUES ('普通分销员', 1, 10.00, 5.00, true)
|
||||
ON CONFLICT (level) DO NOTHING;
|
||||
Reference in New Issue
Block a user