member_level.sql 6.2 KB
-- 会员表增加字段
alter table member_user add column experience int not null default 0 comment '经验';
alter table member_user add column level_id bigint comment '等级编号';

-- 增加3张表
create table member_level
(
    id             bigint auto_increment comment '编号' primary key,
    name           varchar(30)  default ''                not null comment '等级名称',
    experience     int          default 0                 not null comment '升级经验',
    level          int          default 0                 not null comment '等级',
    discount       int(4)       default 100               not null comment '享受折扣',
    icon           varchar(255) default ''                not null comment '等级图标',
    background_url varchar(255) default ''                not null comment '等级背景图',
    status         tinyint      default 0                 not null comment '状态',
    creator        varchar(64)  default ''                null comment '创建者',
    create_time    datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
    updater        varchar(64)  default ''                null comment '更新者',
    update_time    datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间',
    deleted        bit          default b'0'              not null comment '是否删除',
    tenant_id      bigint       default 0                 not null comment '租户编号'
)
    comment '会员等级';

create table member_level_log
(
    id              bigint auto_increment comment '编号' primary key,
    user_id         bigint       default 0                 not null comment '用户编号',
    level_id        bigint       default 0                 not null comment '等级编号',
    level           int          default 0                 not null comment '会员等级',
    discount        int(4)       default 100               not null comment '享受折扣',
    experience      int(4)       default 100               not null comment '升级经验',
    user_experience int(4)       default 100               not null comment '会员此时的经验',
    remark          varchar(255) default ''                not null comment '备注',
    description     varchar(255) default ''                not null comment '描述',
    creator         varchar(64)  default ''                null comment '创建者',
    create_time     datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
    updater         varchar(64)  default ''                null comment '更新者',
    update_time     datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间',
    deleted         bit          default b'0'              not null comment '是否删除',
    tenant_id       bigint       default 0                 not null comment '租户编号'
)
    comment '会员等级记录';

create index idx_user_id on member_level_log (user_id) comment '会员等级记录-用户编号';

create table member_experience_log
(
    id               bigint auto_increment comment '编号' primary key,
    user_id          bigint       default 0                 not null comment '用户编号',
    biz_id           varchar(64)  default ''                not null comment '业务编号',
    biz_type         tinyint      default 0                 not null comment '业务类型',
    title            varchar(30)  default ''                not null comment '标题',
    experience       int          default 0                 not null comment '经验',
    total_experience int          default 0                 not null comment '变更后的经验',
    description      varchar(512) default ''                not null comment '描述',
    creator          varchar(64)  default ''                null comment '创建者',
    create_time      datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
    updater          varchar(64)  default ''                null comment '更新者',
    update_time      datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间',
    deleted          bit          default b'0'              not null comment '是否删除',
    tenant_id        bigint       default 0                 not null comment '租户编号'
)
    comment '会员经验记录';

create index idx_user_id on member_experience_log (user_id) comment '会员经验记录-用户编号';
create index idx_user_biz_type on member_experience_log (user_id, biz_type) comment '会员经验记录-用户业务类型';

-- 增加字典
insert system_dict_type(name, type) values ('会员经验业务类型', 'member_experience_biz_type');
insert system_dict_data(dict_type, label, value, sort) values ('member_experience_biz_type', '系统', '0', 0);
insert system_dict_data(dict_type, label, value, sort) values ('member_experience_biz_type', '订单', '1', 1);
insert system_dict_data(dict_type, label, value, sort) values ('member_experience_biz_type', '签到', '2', 2);

-- 菜单 SQL
INSERT INTO system_menu(
    name, permission, type, sort, parent_id,
    path, icon, component, status, component_name
)
VALUES (
    '会员等级', '', 2, 3, 2262,
    'level', '', 'member/level/index', 0, 'MemberLevel'
);

-- 按钮父菜单ID
-- 暂时只支持 MySQL。如果你是 Oracle、PostgreSQL、SQLServer 的话,需要手动修改 @parentId 的部分的代码
SELECT @parentId := LAST_INSERT_ID();

-- 按钮 SQL
INSERT INTO system_menu(
    name, permission, type, sort, parent_id,
    path, icon, component, status
)
VALUES (
    '会员等级查询', 'member:level:query', 3, 1, @parentId,
    '', '', '', 0
);
INSERT INTO system_menu(
    name, permission, type, sort, parent_id,
    path, icon, component, status
)
VALUES (
    '会员等级创建', 'member:level:create', 3, 2, @parentId,
    '', '', '', 0
);
INSERT INTO system_menu(
    name, permission, type, sort, parent_id,
    path, icon, component, status
)
VALUES (
    '会员等级更新', 'member:level:update', 3, 3, @parentId,
    '', '', '', 0
);
INSERT INTO system_menu(
    name, permission, type, sort, parent_id,
    path, icon, component, status
)
VALUES (
    '会员等级删除', 'member:level:delete', 3, 4, @parentId,
    '', '', '', 0
);