create table act_cancel ( id BIGINT(19) auto_increment comment '活动项id' primary key, mch_id BIGINT(19) not null comment '活动商户id', notice_id BIGINT(19) not null comment '公告id', active_org_price INT(10) null comment '活动原价', active_cancel_price INT(10) not null comment '活动核销价', start_time DATETIME null comment '开始时间', expire_time DATETIME not null comment '到期时间', act_status CHAR(32) not null comment '活动状态(1:正常 2:关闭)', act_title CHAR(32) not null comment '活动标题', act_content CHAR(32) null comment '活动内容', create_by VARCHAR(64) null comment '创建人', create_time DATETIME null comment '创建时间', update_by VARCHAR(64) null comment '修改人', update_time DATETIME null comment '修改时间', del_flag CHAR default '0' null comment '删除标记', tenant_id BIGINT(19) null comment '租户ID' ); -- ---------------------------- -- Table structure for act_cancel_item -- ---------------------------- DROP TABLE IF EXISTS act_cancel_item; CREATE TABLE act_cancel_item ( id bigint NOT NULL AUTO_INCREMENT COMMENT '活动项id', act_id bigint NOT NULL COMMENT '活动id', mch_id bigint NOT NULL COMMENT '活动商户id', receiver_user_id bigint NOT NULL COMMENT '领取人用户id', receiver_time datetime NOT NULL COMMENT '领取时间', act_status char(32) NOT NULL COMMENT '活动状态(1:未核销 2:已核销)', cancel_user_id bigint DEFAULT NULL COMMENT '核销人用户id', cancel_time datetime DEFAULT NULL COMMENT '核销时间', expire_time datetime DEFAULT NULL COMMENT '过期时间', create_by varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', create_time datetime DEFAULT NULL COMMENT '创建时间', update_by varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人', update_time datetime DEFAULT NULL COMMENT '修改时间', del_flag char(1) COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标记', tenant_id bigint DEFAULT NULL COMMENT '租户ID', PRIMARY KEY (id) ) ENGINE = InnoDB COMMENT ='核销活动项'; DROP TABLE IF EXISTS act_coupon; CREATE TABLE act_coupon ( id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '优惠券ID', parent_act_id BIGINT(20) DEFAULT NULL COMMENT '父活动id', name VARCHAR(128) NOT NULL COMMENT '优惠券名称', type VARCHAR(64) NOT NULL COMMENT '优惠券类型 (1:满减券 2:折扣券 3:立减券 4:兑换券)', face_value INT DEFAULT 0 COMMENT '面额/折扣 (满减/立减单位:分, 折扣单位:百分比)', min_point INT DEFAULT 0 COMMENT '使用门槛 (满多少分可用, 0表示无门槛)', total_count INT NOT NULL DEFAULT 0 COMMENT '发行总量 (-1表示不限量)', surplus_count INT NOT NULL DEFAULT 0 COMMENT '剩余数量', limit_count INT DEFAULT 1 COMMENT '每人限领数量', limit_type VARCHAR(32) DEFAULT NULL COMMENT '限领类型 (once:活动期间一次 day:每天 week:每周 month:每月 year:每年)', valid_type VARCHAR(32) NOT NULL COMMENT '有效期类型 (1:固定日期 2:领取后生效)', valid_start_time DATETIME DEFAULT NULL COMMENT '有效期开始时间', valid_end_time DATETIME DEFAULT NULL COMMENT '有效期结束时间', valid_days INT DEFAULT 0 COMMENT '领取后有效天数', use_scope_type VARCHAR(32) DEFAULT 0 COMMENT '适用范围 (0:全场通用 1:指定商户 2:指定分类 3:指定商品)', scope_id VARCHAR(2048) DEFAULT NULL COMMENT '适用范围ID集合 (商户ID/分类ID/商品ID, 逗号分隔)', status VARCHAR(32) DEFAULT 0 COMMENT '状态 (0:草稿 1:进行中 2:已结束 3:已作废)', description VARCHAR(512) DEFAULT NULL COMMENT '使用说明', create_by varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', create_time datetime DEFAULT NULL COMMENT '创建时间', update_by varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人', update_time datetime DEFAULT NULL COMMENT '修改时间', del_flag char(1) COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标记', tenant_id bigint DEFAULT NULL COMMENT '租户ID', PRIMARY KEY (id), KEY idx_status (status), KEY idx_valid_end_time (valid_end_time) ) ENGINE = InnoDB COMMENT ='优惠券活动'; DROP TABLE IF EXISTS act_coupon_record; CREATE TABLE act_coupon_record ( id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '领取记录ID', coupon_id BIGINT(20) NOT NULL COMMENT '优惠券ID', user_id BIGINT(20) NOT NULL COMMENT '用户ID', user_name VARCHAR(64) DEFAULT NULL COMMENT '用户名称', coupon_code VARCHAR(64) NOT NULL COMMENT '券码(唯一标识)', status VARCHAR(32) NOT NULL DEFAULT '0' COMMENT '使用状态 (0:未使用 1:已使用 2:已过期 3:已作废)', -- 冗余优惠券快照信息,防止优惠券修改后数据不一致 coupon_name VARCHAR(128) NOT NULL COMMENT '优惠券名称', coupon_type VARCHAR(64) NOT NULL COMMENT '优惠券类型', face_value INT DEFAULT 0 COMMENT '面额/折扣', min_point INT DEFAULT 0 COMMENT '使用门槛', -- 有效期 start_time DATETIME NOT NULL COMMENT '有效开始时间', end_time DATETIME NOT NULL COMMENT '有效结束时间', -- 使用信息 use_time DATETIME DEFAULT NULL COMMENT '使用时间', order_id VARCHAR(64) DEFAULT NULL COMMENT '关联订单号', use_amount INT DEFAULT 0 COMMENT '抵扣金额(分)', create_by varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', create_time datetime DEFAULT NULL COMMENT '领取时间', update_by varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人', update_time datetime DEFAULT NULL COMMENT '修改时间', del_flag char(1) COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标记', tenant_id bigint DEFAULT NULL COMMENT '租户ID', PRIMARY KEY (id), UNIQUE KEY uk_coupon_code (coupon_code), KEY idx_user_id (user_id), KEY idx_coupon_id (coupon_id), KEY idx_end_time (end_time), KEY idx_status (status) ) ENGINE = InnoDB COMMENT ='优惠券领取记录表';