20260204
This commit is contained in:
131
doc_mall/consumer/sql/06_setup_coupons.sql
Normal file
131
doc_mall/consumer/sql/06_setup_coupons.sql
Normal file
@@ -0,0 +1,131 @@
|
||||
-- 1. 创建优惠券模板数据 (Templates)
|
||||
-- 修正版:适配实际表结构 ml_coupon_templates(coupon_type, discount_type, discount_value...)
|
||||
|
||||
DO $$
|
||||
DECLARE
|
||||
v_merchant_id UUID;
|
||||
v_shop_id UUID;
|
||||
v_product_id UUID;
|
||||
v_template_shop_id UUID;
|
||||
v_template_product_id UUID;
|
||||
v_template_platform_id UUID;
|
||||
v_user_id UUID := 'b653fded-7d5e-4950-aa0d-725595543e3c'; -- 默认测试用户ID
|
||||
BEGIN
|
||||
|
||||
-- 获取一个商户和店铺
|
||||
SELECT id, merchant_id INTO v_shop_id, v_merchant_id FROM public.ml_shops LIMIT 1;
|
||||
-- 获取一个商品
|
||||
SELECT id INTO v_product_id FROM public.ml_products WHERE merchant_id = v_merchant_id LIMIT 1;
|
||||
|
||||
-- A. 创建店铺满减券模板 (满100减10)
|
||||
-- coupon_type: 1(满减), discount_type: 1(固定金额), discount_value: 10
|
||||
INSERT INTO public.ml_coupon_templates (
|
||||
merchant_id,
|
||||
name,
|
||||
coupon_type,
|
||||
discount_type,
|
||||
discount_value,
|
||||
min_order_amount,
|
||||
total_quantity,
|
||||
start_time,
|
||||
end_time,
|
||||
status,
|
||||
applicable_products
|
||||
) VALUES (
|
||||
v_merchant_id,
|
||||
'店铺新人礼 - 满100减10',
|
||||
1, -- 满减
|
||||
1, -- 固定金额
|
||||
10.00, -- 减10元
|
||||
100.00, -- 满100
|
||||
9999,
|
||||
now(),
|
||||
now() + interval '1 year',
|
||||
1,
|
||||
'[]'::jsonb
|
||||
) RETURNING id INTO v_template_shop_id;
|
||||
|
||||
-- B. 创建商品专属折扣券模板 (无门槛,9折)
|
||||
-- coupon_type: 2(折扣), discount_type: 2(百分比), discount_value: 0.9 (代表9折,消费端需适配逻辑)
|
||||
INSERT INTO public.ml_coupon_templates (
|
||||
merchant_id,
|
||||
name,
|
||||
coupon_type,
|
||||
discount_type,
|
||||
discount_value,
|
||||
min_order_amount,
|
||||
total_quantity,
|
||||
start_time,
|
||||
end_time,
|
||||
status,
|
||||
applicable_products
|
||||
) VALUES (
|
||||
v_merchant_id,
|
||||
'爆品专属9折券',
|
||||
2, -- 折扣
|
||||
2, -- 百分比
|
||||
0.90, -- 9折
|
||||
0, -- 无门槛
|
||||
9999,
|
||||
now(),
|
||||
now() + interval '1 year',
|
||||
1,
|
||||
jsonb_build_array(v_product_id) -- 指定商品ID
|
||||
) RETURNING id INTO v_template_product_id;
|
||||
|
||||
-- C. 创建平台通用红包模板 (无门槛,5元)
|
||||
-- merchant_id: NULL, coupon_type: 1(满减/直减), discount_type: 1(固定), discount_value: 5
|
||||
INSERT INTO public.ml_coupon_templates (
|
||||
merchant_id,
|
||||
name,
|
||||
coupon_type,
|
||||
discount_type,
|
||||
discount_value,
|
||||
min_order_amount,
|
||||
total_quantity,
|
||||
start_time,
|
||||
end_time,
|
||||
status,
|
||||
applicable_products
|
||||
) VALUES (
|
||||
NULL,
|
||||
'新人注册红包',
|
||||
1,
|
||||
1,
|
||||
5.00,
|
||||
0,
|
||||
9999,
|
||||
now(),
|
||||
now() + interval '1 year',
|
||||
1,
|
||||
'[]'::jsonb
|
||||
) RETURNING id INTO v_template_platform_id;
|
||||
|
||||
RAISE NOTICE 'Created Templates: Shop=%, Product=%, Platform=%', v_template_shop_id, v_template_product_id, v_template_platform_id;
|
||||
|
||||
-- 2. 为测试直接“领取”几张优惠券 (Populate User Coupons)
|
||||
|
||||
-- 领取店铺券 (未使用)
|
||||
INSERT INTO public.ml_user_coupons (
|
||||
user_id, template_id, coupon_code, status, received_at, expire_at
|
||||
) VALUES (
|
||||
v_user_id, v_template_shop_id, 'SH' || substring(md5(clock_timestamp()::text) from 1 for 8), 1, now(), now() + interval '7 days'
|
||||
);
|
||||
|
||||
-- 领取红包 (未使用)
|
||||
INSERT INTO public.ml_user_coupons (
|
||||
user_id, template_id, coupon_code, status, received_at, expire_at
|
||||
) VALUES (
|
||||
v_user_id, v_template_platform_id, 'HB' || substring(md5(clock_timestamp()::text) from 1 for 8), 1, now(), now() + interval '30 days'
|
||||
);
|
||||
|
||||
-- 领取一张已过期的券 (用于测试展示)
|
||||
INSERT INTO public.ml_user_coupons (
|
||||
user_id, template_id, coupon_code, status, received_at, expire_at
|
||||
) VALUES (
|
||||
v_user_id, v_template_shop_id, 'EX' || substring(md5(clock_timestamp()::text) from 1 for 8), 3, now() - interval '10 days', now() - interval '3 days'
|
||||
);
|
||||
|
||||
RAISE NOTICE 'Successfully inserted test coupons for user %', v_user_id;
|
||||
|
||||
END $$;
|
||||
Reference in New Issue
Block a user