first commit
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
-- 自动分配日志:支持回退(撤回已自动分配的医助至上一任/一中心原医助)
|
||||
-- 表:zyt_tcm_diagnosis_auto_assign_log
|
||||
-- 接口权限:stats.autoAssignLog/rollback
|
||||
|
||||
ALTER TABLE `zyt_tcm_diagnosis_auto_assign_log`
|
||||
ADD COLUMN `rollback_time` int unsigned NOT NULL DEFAULT 0 COMMENT '回退时间戳,0=未回退' AFTER `create_time`,
|
||||
ADD COLUMN `rollback_admin_id` int unsigned NOT NULL DEFAULT 0 COMMENT '回退操作人管理员ID' AFTER `rollback_time`,
|
||||
ADD COLUMN `rollback_admin_name` varchar(64) NOT NULL DEFAULT '' COMMENT '回退操作人姓名' AFTER `rollback_admin_id`;
|
||||
|
||||
SET @menu_id = (SELECT id FROM zyt_system_menu WHERE perms = 'stats.autoAssignLog/lists' LIMIT 1);
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT
|
||||
@menu_id, 'A', '回退自动分配', '', 1,
|
||||
'stats.autoAssignLog/rollback', '', '',
|
||||
'', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE @menu_id IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM zyt_system_menu WHERE perms = 'stats.autoAssignLog/rollback');
|
||||
@@ -0,0 +1,82 @@
|
||||
-- 控糖消消乐:真实用户周榜、幂等局记录与轻量分享访问关系
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zyt_tcm_game_weekly_allocator` (
|
||||
`week_start` date NOT NULL COMMENT '周一日期',
|
||||
`sex` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '同行组性别:0未知 1男 2女',
|
||||
`create_time` int unsigned NOT NULL DEFAULT 0,
|
||||
`update_time` int unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`week_start`, `sex`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='控糖消消乐每周同行分组并发锁';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zyt_tcm_game_weekly_group` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
||||
`week_start` date NOT NULL COMMENT '周一日期',
|
||||
`sex` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '同行组性别:0未知 1男 2女',
|
||||
`group_no` int unsigned NOT NULL DEFAULT 1 COMMENT '同周同性别的分组序号',
|
||||
`member_count` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '组内人数,最多7人',
|
||||
`create_time` int unsigned NOT NULL DEFAULT 0,
|
||||
`update_time` int unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_week_sex_group` (`week_start`, `sex`, `group_no`),
|
||||
KEY `idx_week_sex_capacity` (`week_start`, `sex`, `member_count`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='控糖消消乐每周7人同行分组';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zyt_tcm_game_weekly_score` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
||||
`group_id` int unsigned NOT NULL COMMENT '周同行分组ID',
|
||||
`week_start` date NOT NULL COMMENT '周一日期',
|
||||
`user_id` int unsigned NOT NULL COMMENT '小程序用户ID',
|
||||
`learned_count` int unsigned NOT NULL DEFAULT 0 COMMENT '本周认糖数量',
|
||||
`best_score` int unsigned NOT NULL DEFAULT 0 COMMENT '本周单局最高分',
|
||||
`games_played` int unsigned NOT NULL DEFAULT 0 COMMENT '本周完成局数',
|
||||
`share_count` int unsigned NOT NULL DEFAULT 0 COMMENT '本周发起分享次数',
|
||||
`nickname` varchar(32) NOT NULL DEFAULT '' COMMENT '周榜昵称快照',
|
||||
`avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '周榜头像快照',
|
||||
`sex` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '性别快照:0未知 1男 2女',
|
||||
`create_time` int unsigned NOT NULL DEFAULT 0,
|
||||
`update_time` int unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_week_user` (`week_start`, `user_id`),
|
||||
KEY `idx_group_rank` (`group_id`, `learned_count`, `best_score`),
|
||||
KEY `idx_user` (`user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='控糖消消乐每周认糖成绩';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zyt_tcm_game_session` (
|
||||
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
|
||||
`session_key` varchar(64) NOT NULL COMMENT '客户端每局随机标识,用于重试去重',
|
||||
`user_id` int unsigned NOT NULL COMMENT '小程序用户ID',
|
||||
`week_start` date NOT NULL COMMENT '该局计入的周一日期',
|
||||
`learned_count` int unsigned NOT NULL DEFAULT 0 COMMENT '本局已确认认糖数量',
|
||||
`last_score` int unsigned NOT NULL DEFAULT 0 COMMENT '本局最新分数',
|
||||
`ended` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '是否已经结束并计入完成局数',
|
||||
`create_time` int unsigned NOT NULL DEFAULT 0,
|
||||
`update_time` int unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_session_key` (`session_key`),
|
||||
KEY `idx_user_week` (`user_id`, `week_start`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='控糖消消乐局进度去重';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zyt_tcm_game_share_invite` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
||||
`invite_code` varchar(16) NOT NULL COMMENT '不包含用户ID的分享码',
|
||||
`user_id` int unsigned NOT NULL COMMENT '分享人小程序用户ID',
|
||||
`week_start` date NOT NULL COMMENT '分享码所属周',
|
||||
`open_count` int unsigned NOT NULL DEFAULT 0 COMMENT '去重后的受邀打开人数',
|
||||
`create_time` int unsigned NOT NULL DEFAULT 0,
|
||||
`update_time` int unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_invite_code` (`invite_code`),
|
||||
UNIQUE KEY `uk_week_user` (`week_start`, `user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='控糖消消乐微信分享码';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zyt_tcm_game_share_visit` (
|
||||
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
|
||||
`invite_code` varchar(16) NOT NULL COMMENT '来源分享码',
|
||||
`inviter_user_id` int unsigned NOT NULL COMMENT '分享人用户ID',
|
||||
`visitor_user_id` int unsigned NOT NULL COMMENT '受邀打开用户ID',
|
||||
`create_time` int unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_invite_visitor` (`invite_code`, `visitor_user_id`),
|
||||
KEY `idx_inviter` (`inviter_user_id`),
|
||||
KEY `idx_visitor` (`visitor_user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='控糖消消乐分享打开记录(不做强绑定)';
|
||||
@@ -0,0 +1,55 @@
|
||||
-- 仅用于已经执行过旧版小游戏建表脚本的数据库。
|
||||
-- 新安装直接执行 add_tcm_endless_game_platform.sql 即可。
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zyt_tcm_game_weekly_allocator` (
|
||||
`week_start` date NOT NULL COMMENT '周一日期',
|
||||
`sex` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '同行组性别:0未知 1男 2女',
|
||||
`create_time` int unsigned NOT NULL DEFAULT 0,
|
||||
`update_time` int unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`week_start`, `sex`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='控糖消消乐每周同行分组并发锁';
|
||||
|
||||
SET @has_old_visit_index = (
|
||||
SELECT COUNT(*) FROM information_schema.statistics
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = 'zyt_tcm_game_share_visit'
|
||||
AND index_name = 'uk_inviter_visitor'
|
||||
);
|
||||
SET @drop_old_visit_index_sql = IF(
|
||||
@has_old_visit_index > 0,
|
||||
'ALTER TABLE `zyt_tcm_game_share_visit` DROP INDEX `uk_inviter_visitor`',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE drop_old_visit_index_stmt FROM @drop_old_visit_index_sql;
|
||||
EXECUTE drop_old_visit_index_stmt;
|
||||
DEALLOCATE PREPARE drop_old_visit_index_stmt;
|
||||
|
||||
SET @has_invite_visit_index = (
|
||||
SELECT COUNT(*) FROM information_schema.statistics
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = 'zyt_tcm_game_share_visit'
|
||||
AND index_name = 'uk_invite_visitor'
|
||||
);
|
||||
SET @add_invite_visit_index_sql = IF(
|
||||
@has_invite_visit_index = 0,
|
||||
'ALTER TABLE `zyt_tcm_game_share_visit` ADD UNIQUE INDEX `uk_invite_visitor` (`invite_code`, `visitor_user_id`)',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE add_invite_visit_index_stmt FROM @add_invite_visit_index_sql;
|
||||
EXECUTE add_invite_visit_index_stmt;
|
||||
DEALLOCATE PREPARE add_invite_visit_index_stmt;
|
||||
|
||||
SET @has_inviter_index = (
|
||||
SELECT COUNT(*) FROM information_schema.statistics
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = 'zyt_tcm_game_share_visit'
|
||||
AND index_name = 'idx_inviter'
|
||||
);
|
||||
SET @add_inviter_index_sql = IF(
|
||||
@has_inviter_index = 0,
|
||||
'ALTER TABLE `zyt_tcm_game_share_visit` ADD INDEX `idx_inviter` (`inviter_user_id`)',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE add_inviter_index_stmt FROM @add_inviter_index_sql;
|
||||
EXECUTE add_inviter_index_stmt;
|
||||
DEALLOCATE PREPARE add_inviter_index_stmt;
|
||||
Reference in New Issue
Block a user