还原系统、更新配置

This commit is contained in:
2026-05-17 10:09:36 +08:00
parent 81120e1794
commit 9398b26948
12 changed files with 1289 additions and 12 deletions

268
other/sql/add.sql Normal file
View File

@@ -0,0 +1,268 @@
-- ==========================================
-- 完整的数据库补充脚本(整合所有历史变更 + 数据类型修正)
-- ==========================================
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='健康证';