268 lines
18 KiB
SQL
268 lines
18 KiB
SQL
-- ==========================================
|
||
-- 完整的数据库补充脚本(整合所有历史变更 + 数据类型修正)
|
||
-- ==========================================
|
||
|
||
SET NAMES utf8mb4;
|
||
SET FOREIGN_KEY_CHECKS = 0;
|
||
|
||
-- ==========================================
|
||
-- 第一部分:为已有表添加缺失字段
|
||
-- ==========================================
|
||
|
||
-- 1. 为 sv_member 表添加缺失字段(对应 202604.sql)
|
||
ALTER TABLE `sv_member`
|
||
ADD COLUMN `avatar_modify_count` int(11) DEFAULT '0' COMMENT '头像修改次数(本年)' AFTER `deleted`,
|
||
ADD COLUMN `avatar_modify_year` int(11) DEFAULT NULL COMMENT '头像修改统计年份' AFTER `avatar_modify_count`;
|
||
|
||
-- 2. 为 sv_venue 表添加缺失字段(包含 202312.sql 的字段)
|
||
ALTER TABLE `sv_venue`
|
||
ADD COLUMN `limit_day` int(11) DEFAULT NULL COMMENT '每天预约限制' AFTER `deleted`,
|
||
ADD COLUMN `limit_week` int(11) DEFAULT NULL COMMENT '每周预约限制' AFTER `limit_day`,
|
||
ADD COLUMN `limit_no_day` int(11) DEFAULT NULL COMMENT '每天预约限制' AFTER `limit_week`,
|
||
ADD COLUMN `limit_no_week` int(11) DEFAULT NULL COMMENT '每周预约限制' AFTER `limit_no_day`,
|
||
ADD COLUMN `copy_week` int(11) DEFAULT NULL COMMENT '复制周几' AFTER `limit_no_week`,
|
||
ADD COLUMN `copy_time` time DEFAULT NULL COMMENT '复制时间' AFTER `copy_week`,
|
||
ADD COLUMN `copy_target` int(11) DEFAULT NULL COMMENT '向后复制多少' AFTER `copy_time`,
|
||
ADD COLUMN `copy_control` tinyint(4) DEFAULT '0' COMMENT '复制开关 1-关闭,不复制 0-开启,复制' AFTER `copy_target`,
|
||
ADD COLUMN `pay_style` tinyint(4) DEFAULT '0' COMMENT '计费方式 0-按次收费、1-按时收费' AFTER `copy_control`,
|
||
ADD COLUMN `time_pay_hour` int(11) DEFAULT NULL COMMENT '按次收费几小时内免费' AFTER `pay_style`;
|
||
|
||
-- 3. 为 sv_venue_lesson 表添加缺失字段
|
||
ALTER TABLE `sv_venue_lesson`
|
||
ADD COLUMN `order_limit` int(11) DEFAULT NULL COMMENT '可取消预约时间(小时)' AFTER `deleted`;
|
||
|
||
|
||
-- ==========================================
|
||
-- 第二部分:创建缺失的新表(数据类型已修正)
|
||
-- ==========================================
|
||
|
||
-- 4. 创建 sv_disclaimers (免责声明表) - 对应 202404.sql
|
||
DROP TABLE IF EXISTS `sv_disclaimers`;
|
||
CREATE TABLE `sv_disclaimers` (
|
||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||
`platform_id` int(11) NOT NULL COMMENT '平台来源ID',
|
||
`description` longtext CHARACTER SET utf8mb4 NOT NULL COMMENT '免责声明内容',
|
||
`created_id` int(10) unsigned DEFAULT '0' COMMENT '创建者编号',
|
||
`modified_id` int(10) unsigned DEFAULT '0' COMMENT '修改者编号',
|
||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`modified_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` int(3) unsigned DEFAULT '0' COMMENT '删除标识位: 0正常 1删除',
|
||
PRIMARY KEY (`id`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='免责声明';
|
||
|
||
-- 5. 创建 sv_health_doc (健康文档表)
|
||
DROP TABLE IF EXISTS `sv_health_doc`;
|
||
CREATE TABLE `sv_health_doc` (
|
||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||
`member_id` int(11) NOT NULL COMMENT '用户ID',
|
||
`doc_name` varchar(100) NOT NULL COMMENT '文档名称',
|
||
`doc_type` varchar(50) NOT NULL COMMENT '文档类型',
|
||
`file_type` varchar(20) NOT NULL COMMENT '文件类型',
|
||
`doc_path` varchar(200) NOT NULL COMMENT '文档路径',
|
||
`doc_date` date NOT NULL COMMENT '文档日期',
|
||
`platform_id` int(11) NOT NULL COMMENT '平台来源ID',
|
||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`modified_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` tinyint(3) unsigned DEFAULT '0' COMMENT '删除标识位: 0正常 1删除',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_member_id` (`member_id`,`deleted`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='健康文档';
|
||
|
||
-- 6. 创建 sv_member_lesson_ticket_invite (门票邀请表) - 使用历史脚本的表名
|
||
DROP TABLE IF EXISTS `sv_member_lesson_ticket_invite`;
|
||
CREATE TABLE `sv_member_lesson_ticket_invite` (
|
||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||
`owner_id` int(11) NOT NULL DEFAULT '1' COMMENT '场馆类型',
|
||
`member_id` int(11) NOT NULL,
|
||
`member_name` varchar(50) DEFAULT NULL COMMENT '被邀请用户姓名',
|
||
`mobile` varchar(11) DEFAULT NULL COMMENT '手机号',
|
||
`status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态:0-未选中 1-已选中',
|
||
`platform_id` int(11) NOT NULL COMMENT '平台来源ID',
|
||
`created_id` int(10) unsigned DEFAULT '0' COMMENT '创建者编号',
|
||
`modified_id` int(10) unsigned DEFAULT '0' COMMENT '修改者编号',
|
||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`modified_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` tinyint(3) unsigned DEFAULT '0' COMMENT '删除标识位: 0正常 1删除',
|
||
PRIMARY KEY (`id`),
|
||
KEY `lesson_id` (`deleted`,`status`),
|
||
KEY `idx_owner_id` (`owner_id`,`deleted`),
|
||
KEY `idx_member_id` (`member_id`,`deleted`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='场馆课程预订信息';
|
||
|
||
-- 7. 创建 sv_member_enter_status (用户入场状态表) - 对应 202312.sql
|
||
DROP TABLE IF EXISTS `sv_member_enter_status`;
|
||
CREATE TABLE `sv_member_enter_status` (
|
||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||
`member_id` int(11) NOT NULL COMMENT '客户ID',
|
||
`venue_id` int(11) NOT NULL COMMENT '场馆ID',
|
||
`status` int(11) NOT NULL COMMENT '状态 0-场外 1-场内',
|
||
`created_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`modified_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_member_venue` (`member_id`, `venue_id`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1231 DEFAULT CHARSET=utf8mb4 COMMENT='用户在场馆的状态';
|
||
|
||
-- 8. 创建 sv_barcode (二维码表) - 整合 202312.sql 的 order_sn 字段
|
||
DROP TABLE IF EXISTS `sv_barcode`;
|
||
CREATE TABLE `sv_barcode` (
|
||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||
`barcode` varchar(50) NOT NULL COMMENT '二维码',
|
||
`order_sn` varchar(200) DEFAULT NULL COMMENT '订单号',
|
||
`status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0-未使用 1-已使用',
|
||
`member_id` int(11) NOT NULL COMMENT '用户ID',
|
||
`venue_id` int(11) NOT NULL COMMENT '场馆ID',
|
||
`enter` tinyint(4) DEFAULT NULL COMMENT '入场标识',
|
||
`created_id` int(10) DEFAULT '0' COMMENT '创建者编号',
|
||
`modified_id` int(10) DEFAULT '0' COMMENT '修改者编号',
|
||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`modified_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_barcode` (`barcode`),
|
||
KEY `idx_order_sn` (`order_sn`),
|
||
KEY `idx_member_id` (`member_id`),
|
||
KEY `idx_venue_id` (`venue_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='二维码';
|
||
|
||
-- 9. 创建 sv_barcode_enter_log (二维码进出记录表)
|
||
DROP TABLE IF EXISTS `sv_barcode_enter_log`;
|
||
CREATE TABLE `sv_barcode_enter_log` (
|
||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||
`barcode` varchar(50) NOT NULL COMMENT '二维码',
|
||
`venue_id` int(11) NOT NULL COMMENT '场馆ID',
|
||
`type` tinyint(4) NOT NULL COMMENT '类型: 0-入场 1-出场',
|
||
`platform_id` int(11) NOT NULL COMMENT '平台来源ID',
|
||
`created_id` int(10) DEFAULT '0' COMMENT '创建者编号',
|
||
`modified_id` int(10) DEFAULT '0' COMMENT '修改者编号',
|
||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`modified_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_barcode` (`barcode`),
|
||
KEY `idx_venue_id` (`venue_id`),
|
||
KEY `idx_created_time` (`created_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='二维码进出记录';
|
||
|
||
-- 10. 创建 sv_barcode_offline (二维码离线表)
|
||
DROP TABLE IF EXISTS `sv_barcode_offline`;
|
||
CREATE TABLE `sv_barcode_offline` (
|
||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||
`barcode` varchar(50) NOT NULL COMMENT '二维码',
|
||
`start_time` datetime NOT NULL COMMENT '开始时间',
|
||
`end_time` datetime NOT NULL COMMENT '结束时间',
|
||
`venue_id` int(11) NOT NULL COMMENT '场馆ID',
|
||
`device_name` varchar(100) DEFAULT NULL COMMENT '设备名称',
|
||
`created_id` int(10) DEFAULT '0' COMMENT '创建者编号',
|
||
`modified_id` int(10) DEFAULT '0' COMMENT '修改者编号',
|
||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`modified_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_barcode` (`barcode`),
|
||
KEY `idx_venue_id` (`venue_id`),
|
||
KEY `idx_time` (`start_time`,`end_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='二维码离线记录';
|
||
|
||
-- 11. 创建 sv_barcode_order_time (二维码订单时间表) - ⭐ 数据类型已修正为 DECIMAL
|
||
DROP TABLE IF EXISTS `sv_barcode_order_time`;
|
||
CREATE TABLE `sv_barcode_order_time` (
|
||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||
`member_id` int(11) NOT NULL COMMENT '用户ID',
|
||
`venue_id` int(11) NOT NULL COMMENT '场馆ID',
|
||
`order_sn` varchar(200) DEFAULT NULL COMMENT '退款订单号',
|
||
`order_add_sn` varchar(30) DEFAULT NULL COMMENT '追加付款订单号',
|
||
`order_start` datetime NOT NULL COMMENT '订单开始时间',
|
||
`order_end` datetime NOT NULL COMMENT '订单结束时间',
|
||
`status` int(11) DEFAULT NULL COMMENT '0-有效 1-失效',
|
||
`paying` int(11) DEFAULT NULL COMMENT '支付状态: 0-不需要退款 1-待结算/需要退款 2-已补交费用',
|
||
`pay_money` decimal(10,2) DEFAULT NULL COMMENT '当前退款金额',
|
||
`sum_pay_money` decimal(10,2) DEFAULT NULL COMMENT '总退款金额',
|
||
`last_enter` datetime DEFAULT NULL COMMENT '最后入场时间',
|
||
`last_out` datetime DEFAULT NULL COMMENT '最后出场时间',
|
||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`modified_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_order_sn` (`order_sn`),
|
||
KEY `idx_member_id` (`member_id`),
|
||
KEY `idx_venue_id` (`venue_id`),
|
||
KEY `idx_order_time` (`order_start`,`order_end`),
|
||
KEY `idx_status` (`status`,`paying`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='二维码订单时间';
|
||
|
||
-- 12. 创建 sv_wx_config (微信配置表)
|
||
DROP TABLE IF EXISTS `sv_wx_config`;
|
||
CREATE TABLE `sv_wx_config` (
|
||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||
`wx_open_id` varchar(100) NOT NULL COMMENT '微信OpenID',
|
||
`venue_id` int(11) NOT NULL COMMENT '场馆ID',
|
||
`created_id` int(10) DEFAULT '0' COMMENT '创建者编号',
|
||
`modified_id` int(10) DEFAULT '0' COMMENT '修改者编号',
|
||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`modified_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_wx_open_id` (`wx_open_id`),
|
||
KEY `idx_venue_id` (`venue_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='微信配置';
|
||
|
||
|
||
SET FOREIGN_KEY_CHECKS = 1;
|
||
|
||
-- ==========================================
|
||
-- 第三部分:验证脚本执行结果
|
||
-- ==========================================
|
||
|
||
-- 验证字段是否添加成功
|
||
SELECT
|
||
TABLE_NAME,
|
||
COLUMN_NAME,
|
||
COLUMN_TYPE,
|
||
COLUMN_COMMENT
|
||
FROM information_schema.COLUMNS
|
||
WHERE TABLE_SCHEMA = DATABASE()
|
||
AND TABLE_NAME IN ('sv_member', 'sv_venue', 'sv_venue_lesson')
|
||
AND COLUMN_NAME IN (
|
||
'avatar_modify_count', 'avatar_modify_year',
|
||
'limit_day', 'limit_week', 'limit_no_day', 'limit_no_week',
|
||
'copy_week', 'copy_time', 'copy_target', 'copy_control',
|
||
'pay_style', 'time_pay_hour', 'order_limit'
|
||
)
|
||
ORDER BY TABLE_NAME, ORDINAL_POSITION;
|
||
|
||
-- 验证新表是否创建成功
|
||
SELECT
|
||
TABLE_NAME,
|
||
TABLE_COMMENT,
|
||
CREATE_TIME
|
||
FROM information_schema.TABLES
|
||
WHERE TABLE_SCHEMA = DATABASE()
|
||
AND TABLE_NAME IN (
|
||
'sv_disclaimers', 'sv_health_doc', 'sv_member_lesson_ticket_invite',
|
||
'sv_member_enter_status', 'sv_barcode', 'sv_barcode_enter_log',
|
||
'sv_barcode_offline', 'sv_barcode_order_time', 'sv_wx_config'
|
||
)
|
||
ORDER BY TABLE_NAME;
|
||
|
||
-- 特别验证 sv_barcode_order_time 的字段类型是否正确
|
||
SELECT
|
||
COLUMN_NAME,
|
||
COLUMN_TYPE,
|
||
COLUMN_COMMENT
|
||
FROM information_schema.COLUMNS
|
||
WHERE TABLE_SCHEMA = DATABASE()
|
||
AND TABLE_NAME = 'sv_barcode_order_time'
|
||
AND COLUMN_NAME IN ('pay_money', 'sum_pay_money')
|
||
ORDER BY ORDINAL_POSITION;
|
||
|
||
CREATE TABLE IF NOT EXISTS `sv_health_docs` (
|
||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '编号',
|
||
`member_id` int(11) NOT NULL COMMENT '会员编号',
|
||
`doc_name` varchar(100) DEFAULT NULL COMMENT '文档名称',
|
||
`doc_type` char(10) DEFAULT NULL COMMENT '文档类型',
|
||
`file_type` varchar(20) DEFAULT NULL COMMENT '文件类型',
|
||
`doc_path` varchar(255) DEFAULT NULL COMMENT '文档路径',
|
||
`doc_date` date DEFAULT NULL COMMENT '文档日期',
|
||
`platform_id` int(11) NOT NULL COMMENT '平台编号',
|
||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`modified_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除状态 0-未删除 1-已删除',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_member_id` (`member_id`),
|
||
KEY `idx_platform_id` (`platform_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='健康证'; |