sql数据流,amdin业务逻辑接入

This commit is contained in:
comlibmb
2026-02-15 16:37:37 +08:00
parent ec636dc703
commit e648ff0c22
43 changed files with 5412 additions and 1024 deletions

View File

@@ -0,0 +1,37 @@
-- =====================================================================================
-- Schema: 运费模板表
-- 位置docs/sql/10_schema/product/ak_shipping_templates_v1.sql
-- 说明:管理商家的运费计算规则,按商家隔离。
-- =====================================================================================
CREATE TABLE IF NOT EXISTS public.ak_shipping_templates (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
merchant_id UUID NOT NULL REFERENCES public.ak_users(id) ON DELETE CASCADE,
name TEXT NOT NULL, -- 模板名称
calc_method TEXT DEFAULT 'piece', -- 计费方式: piece(件数), weight(重量), volume(体积)
is_free_shipping BOOLEAN DEFAULT false, -- 是否包邮
sort_order INTEGER DEFAULT 0,
created_at TIMESTAMPTZ DEFAULT now(),
updated_at TIMESTAMPTZ DEFAULT now()
);
-- 启用 RLS
ALTER TABLE public.ak_shipping_templates ENABLE ROW LEVEL SECURITY;
-- 权限策略:商家管理自己的模板
CREATE POLICY "Merchants manage own shipping templates"
ON public.ak_shipping_templates FOR ALL
TO authenticated
USING (merchant_id = auth.uid())
WITH CHECK (merchant_id = auth.uid());
-- 允许查看
CREATE POLICY "Authenticated users view shipping templates"
ON public.ak_shipping_templates FOR SELECT
TO authenticated
USING (true);
-- 索引
CREATE INDEX IF NOT EXISTS idx_shipping_templates_merchant ON public.ak_shipping_templates(merchant_id);

View File

@@ -0,0 +1,39 @@
-- =====================================================================================
-- Schema Update: ml_products 扩展字段 (物流、营销、高级设置)
-- 位置docs/sql/10_schema/product/ml_products_ext_v1.sql
-- 说明:补齐商品编辑页 Step 3-6 所需的持久化字段。
-- =====================================================================================
DO $$
BEGIN
-- 1. 物流设置:关联运费模板
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'ml_products' AND column_name = 'shipping_template_id') THEN
ALTER TABLE public.ml_products ADD COLUMN shipping_template_id UUID REFERENCES public.ak_shipping_templates(id) ON DELETE SET NULL;
COMMENT ON COLUMN public.ml_products.shipping_template_id IS '关联运费模板ID';
END IF;
-- 2. 营销设置:赠送积分
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'ml_products' AND column_name = 'give_integral') THEN
ALTER TABLE public.ml_products ADD COLUMN give_integral INTEGER DEFAULT 0;
COMMENT ON COLUMN public.ml_products.give_integral IS '购买赠送积分';
END IF;
-- 3. 高级设置:警戒库存
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'ml_products' AND column_name = 'stock_warning') THEN
ALTER TABLE public.ml_products ADD COLUMN stock_warning INTEGER DEFAULT 10;
COMMENT ON COLUMN public.ml_products.stock_warning IS '库存报警数值';
END IF;
-- 4. 高级设置:虚拟销量
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'ml_products' AND column_name = 'virtual_sales') THEN
ALTER TABLE public.ml_products ADD COLUMN virtual_sales INTEGER DEFAULT 0;
COMMENT ON COLUMN public.ml_products.virtual_sales IS '虚拟销量(展示用)';
END IF;
-- 5. 高级设置:排序
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'ml_products' AND column_name = 'sort_order') THEN
ALTER TABLE public.ml_products ADD COLUMN sort_order INTEGER DEFAULT 0;
COMMENT ON COLUMN public.ml_products.sort_order IS '商品排序权重';
END IF;
END $$;