-- ============================================ -- SPA管理系统 - 营销优惠券系统SQL -- ============================================ -- 版本: v1.0 -- 创建时间: 2025-12-30 -- 数据库: MySQL 8.0+ -- 字符集: utf8mb4 -- ============================================ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ============================================ -- 营销优惠券相关表 -- ============================================ -- 1. 优惠券模板表 DROP TABLE IF EXISTS `spa_coupon_template`; CREATE TABLE `spa_coupon_template` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `created_at` datetime(3) DEFAULT NULL, `updated_at` datetime(3) DEFAULT NULL, `deleted_at` datetime(3) DEFAULT NULL, `template_no` varchar(50) NOT NULL COMMENT '模板编号', `name` varchar(100) NOT NULL COMMENT '优惠券名称', `description` varchar(500) DEFAULT NULL COMMENT '使用说明', `coupon_type` tinyint NOT NULL COMMENT '优惠券类型 1满减券 2折扣券 3代金券 4体验券', `discount_type` tinyint NOT NULL COMMENT '优惠方式 1固定金额 2折扣比例', `discount_value` decimal(10,2) NOT NULL COMMENT '优惠值(金额或折扣)', `min_amount` decimal(10,2) DEFAULT 0.00 COMMENT '最低消费金额', `max_discount` decimal(10,2) DEFAULT NULL COMMENT '最高优惠金额(折扣券)', `total_count` int DEFAULT 0 COMMENT '发行总量 0不限', `received_count` int DEFAULT 0 COMMENT '已领取数量', `used_count` int DEFAULT 0 COMMENT '已使用数量', `valid_days` int DEFAULT 0 COMMENT '有效天数 0表示固定时间', `valid_start_time` datetime DEFAULT NULL COMMENT '有效开始时间', `valid_end_time` datetime DEFAULT NULL COMMENT '有效结束时间', `receive_limit` int DEFAULT 1 COMMENT '每人限领数量', `use_limit` int DEFAULT 1 COMMENT '每单可用数量', `applicable_services` json DEFAULT NULL COMMENT '适用服务项目ID数组', `applicable_member_levels` json DEFAULT NULL COMMENT '适用会员等级数组', `status` tinyint DEFAULT 1 COMMENT '状态 1启用 2停用', PRIMARY KEY (`id`), UNIQUE KEY `idx_template_no` (`template_no`), KEY `idx_deleted_at` (`deleted_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='优惠券模板表'; -- 2. 用户优惠券表 DROP TABLE IF EXISTS `spa_customer_coupon`; CREATE TABLE `spa_customer_coupon` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `created_at` datetime(3) DEFAULT NULL, `updated_at` datetime(3) DEFAULT NULL, `deleted_at` datetime(3) DEFAULT NULL, `coupon_no` varchar(50) NOT NULL COMMENT '优惠券编号', `template_id` bigint unsigned NOT NULL COMMENT '模板ID', `customer_id` bigint unsigned NOT NULL COMMENT '客户ID', `coupon_name` varchar(100) NOT NULL COMMENT '优惠券名称', `coupon_type` tinyint NOT NULL COMMENT '优惠券类型', `discount_type` tinyint NOT NULL COMMENT '优惠方式', `discount_value` decimal(10,2) NOT NULL COMMENT '优惠值', `min_amount` decimal(10,2) DEFAULT 0.00 COMMENT '最低消费', `receive_time` datetime NOT NULL COMMENT '领取时间', `valid_start_time` datetime NOT NULL COMMENT '有效开始时间', `valid_end_time` datetime NOT NULL COMMENT '有效结束时间', `status` tinyint DEFAULT 1 COMMENT '状态 1未使用 2已使用 3已过期 4已作废', `use_time` datetime DEFAULT NULL COMMENT '使用时间', `order_id` bigint unsigned DEFAULT NULL COMMENT '使用订单ID', PRIMARY KEY (`id`), UNIQUE KEY `idx_coupon_no` (`coupon_no`), KEY `idx_customer_id` (`customer_id`), KEY `idx_template_id` (`template_id`), KEY `idx_deleted_at` (`deleted_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户优惠券表'; -- 3. 促销活动表 DROP TABLE IF EXISTS `spa_promotion`; CREATE TABLE `spa_promotion` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `created_at` datetime(3) DEFAULT NULL, `updated_at` datetime(3) DEFAULT NULL, `deleted_at` datetime(3) DEFAULT NULL, `promotion_no` varchar(50) NOT NULL COMMENT '活动编号', `name` varchar(100) NOT NULL COMMENT '活动名称', `description` text COMMENT '活动描述', `cover_image` varchar(500) DEFAULT NULL COMMENT '活动封面', `promotion_type` tinyint NOT NULL COMMENT '活动类型 1满减 2折扣 3赠送 4积分翻倍', `start_time` datetime NOT NULL COMMENT '开始时间', `end_time` datetime NOT NULL COMMENT '结束时间', `applicable_services` json DEFAULT NULL COMMENT '适用服务JSON', `promotion_rules` json DEFAULT NULL COMMENT '促销规则JSON', `status` tinyint DEFAULT 1 COMMENT '状态 1未开始 2进行中 3已结束 4已停用', `sort` int DEFAULT 0 COMMENT '排序', PRIMARY KEY (`id`), UNIQUE KEY `idx_promotion_no` (`promotion_no`), KEY `idx_deleted_at` (`deleted_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='促销活动表'; SET FOREIGN_KEY_CHECKS = 1;