peixue-dev/Archive/peidu-temp-files/sql/plan_a_payment_simple_2026-01-23.sql

162 lines
7.4 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ========================================
-- 方案A其他支付方式数据库脚本简化版
-- 创建日期2026-01-23
-- 数据库peixue
-- 功能:次卡、套餐、优惠券、地址关联
-- ========================================
USE peixue;
-- ========================================
-- 1. 创建优惠券表
-- ========================================
DROP TABLE IF EXISTS `coupon`;
CREATE TABLE `coupon` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` VARCHAR(100) NOT NULL COMMENT '优惠券名称',
`type` TINYINT NOT NULL COMMENT '类型1-满减券2-折扣券3-代金券',
`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) COMMENT '最大折扣金额',
`total_quantity` INT NOT NULL COMMENT '发行总量',
`received_quantity` INT DEFAULT 0 COMMENT '已领取数量',
`used_quantity` INT DEFAULT 0 COMMENT '已使用数量',
`start_time` DATETIME NOT NULL COMMENT '开始时间',
`end_time` DATETIME NOT NULL COMMENT '结束时间',
`status` TINYINT DEFAULT 1 COMMENT '状态0-停用1-启用',
`tenant_id` BIGINT COMMENT '租户ID',
`created_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标记',
PRIMARY KEY (`id`),
KEY `idx_status` (`status`),
KEY `idx_start_end_time` (`start_time`, `end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='优惠券表';
SELECT '✅ 优惠券表创建完成' AS message;
-- ========================================
-- 2. 创建用户优惠券表
-- ========================================
DROP TABLE IF EXISTS `user_coupon`;
CREATE TABLE `user_coupon` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` BIGINT NOT NULL COMMENT '用户ID',
`coupon_id` BIGINT NOT NULL COMMENT '优惠券ID',
`order_id` BIGINT COMMENT '使用的订单ID',
`status` TINYINT DEFAULT 0 COMMENT '状态0-未使用1-已使用2-已过期',
`receive_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '领取时间',
`use_time` DATETIME COMMENT '使用时间',
`expire_time` DATETIME NOT NULL COMMENT '过期时间',
`tenant_id` BIGINT COMMENT '租户ID',
`created_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标记',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_coupon_id` (`coupon_id`),
KEY `idx_order_id` (`order_id`),
KEY `idx_status` (`status`),
KEY `idx_expire_time` (`expire_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户优惠券表';
SELECT '✅ 用户优惠券表创建完成' AS message;
-- ========================================
-- 3. 创建用户地址表
-- ========================================
DROP TABLE IF EXISTS `user_address`;
CREATE TABLE `user_address` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` BIGINT NOT NULL COMMENT '用户ID',
`contact_name` VARCHAR(50) NOT NULL COMMENT '联系人姓名',
`contact_phone` VARCHAR(20) NOT NULL COMMENT '联系电话',
`province` VARCHAR(50) COMMENT '省份',
`city` VARCHAR(50) COMMENT '城市',
`district` VARCHAR(50) COMMENT '区县',
`address` VARCHAR(200) NOT NULL COMMENT '详细地址',
`address_tag` VARCHAR(20) COMMENT '地址标签:家,公司,学校',
`longitude` DECIMAL(10,6) COMMENT '经度',
`latitude` DECIMAL(10,6) COMMENT '纬度',
`is_default` TINYINT DEFAULT 0 COMMENT '是否默认地址0-否1-是',
`tenant_id` BIGINT COMMENT '租户ID',
`created_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标记',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_is_default` (`is_default`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户地址表';
SELECT '✅ 用户地址表创建完成' AS message;
-- ========================================
-- 4. 创建用户套餐表
-- ========================================
DROP TABLE IF EXISTS `user_package`;
CREATE TABLE `user_package` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` BIGINT NOT NULL COMMENT '用户ID',
`package_id` BIGINT NOT NULL COMMENT '套餐ID',
`package_name` VARCHAR(100) NOT NULL COMMENT '套餐名称',
`package_type` VARCHAR(50) COMMENT '套餐类型',
`total_hours` DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '总课时',
`used_hours` DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '已使用课时',
`remaining_hours` DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '剩余课时',
`service_count` INT DEFAULT 0 COMMENT '服务次数',
`used_count` INT DEFAULT 0 COMMENT '已使用次数',
`remaining_count` INT DEFAULT 0 COMMENT '剩余次数',
`price` DECIMAL(10,2) COMMENT '购买价格',
`purchase_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '购买时间',
`start_date` DATE COMMENT '开始日期',
`expire_date` DATE COMMENT '过期日期',
`status` TINYINT DEFAULT 1 COMMENT '状态0-已过期1-使用中2-已用完',
`version` INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
`tenant_id` BIGINT COMMENT '租户ID',
`created_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标记',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_package_id` (`package_id`),
KEY `idx_status` (`status`),
KEY `idx_expire_date` (`expire_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户套餐表';
SELECT '✅ 用户套餐表创建完成' AS message;
-- ========================================
-- 5. 插入测试数据
-- ========================================
-- 插入测试优惠券
INSERT INTO `coupon` (`name`, `type`, `discount_type`, `discount_value`, `min_amount`, `max_discount`, `total_quantity`, `start_time`, `end_time`, `status`, `tenant_id`)
VALUES
('新用户专享券', 1, 1, 20.00, 100.00, 20.00, 1000, '2026-01-01 00:00:00', '2026-12-31 23:59:59', 1, 1),
('满200减50', 1, 1, 50.00, 200.00, 50.00, 500, '2026-01-01 00:00:00', '2026-12-31 23:59:59', 1, 1),
('8折优惠券', 2, 2, 0.80, 0.00, 100.00, 300, '2026-01-01 00:00:00', '2026-12-31 23:59:59', 1, 1);
SELECT '✅ 测试数据插入完成' AS message;
-- ========================================
-- 完成
-- ========================================
SELECT '========================================' AS '';
SELECT '✅ 方案A数据库脚本执行完成简化版' AS message;
SELECT '========================================' AS '';
SELECT '创建的表:' AS '';
SELECT ' 1. coupon - 优惠券表' AS '';
SELECT ' 2. user_coupon - 用户优惠券表' AS '';
SELECT ' 3. user_address - 用户地址表' AS '';
SELECT ' 4. user_package - 用户套餐表' AS '';
SELECT '' AS '';
SELECT '⚠️ 注意:订单表字段需要手动添加' AS '';
SELECT '请执行以下SQL添加订单表字段' AS '';
SELECT '========================================' AS '';