提交roll日创建

This commit is contained in:
2026-07-14 18:32:14 +08:00
parent 09883eacdb
commit 6971daf9a7
16 changed files with 1119 additions and 52 deletions
+67
View File
@@ -0,0 +1,67 @@
-- ============================================================
-- 官方日Roll定时任务 + 机器人管理页面 一次性数据库脚本
-- 目标库:ruoyi 业务库(与 tt_roll / tt_user / sys_menu / sys_job 同库)
-- 说明:执行一次即可;执行后请【重启后端】,随后在"系统监控-定时任务"可见"官方日Roll生成"。
-- ============================================================
-- ------------------------------------------------------------
-- 1) 官方周期Roll房配置表
-- ------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `tt_official_roll_config` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '配置ID',
`config_name` varchar(64) NOT NULL DEFAULT '' COMMENT '配置标识',
`jackpot_id` int DEFAULT NULL COMMENT '奖池ID(tt_roll_jackpot.jackpot_id)',
`period_type` varchar(16) NOT NULL DEFAULT 'DAILY' COMMENT '周期类型 DAILY每日/WEEKLY每周',
`room_name` varchar(64) NOT NULL DEFAULT '' COMMENT '生成的房间名称',
`description` varchar(255) DEFAULT '' COMMENT '房间描述',
`roll_password` varchar(32) DEFAULT '' COMMENT '房间密码,为空则无密码',
`min_recharge` decimal(10,2) DEFAULT '0.00' COMMENT '充值门槛,0为无门槛',
`people_num` int DEFAULT '50' COMMENT '人数上限',
`robot_num` int DEFAULT '0' COMMENT '每次自动加入的机器人数量,0则不加',
`cdk_count` int DEFAULT '0' COMMENT '每次自动创建房间生成的CDK数量,0则不启用CDK',
`sort_by` int DEFAULT '0' COMMENT '排序',
`status` char(1) DEFAULT '0' COMMENT '状态 0启用 1停用',
`last_generate_time` datetime DEFAULT NULL COMMENT '上次生成时间',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志 0存在 2删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='官方周期Roll房配置' ROW_FORMAT=DYNAMIC;
-- 若 tt_official_roll_config 表此前已创建(无 cdk_count 列),执行下句补列;全新执行本脚本已含该列,可跳过:
-- ALTER TABLE `tt_official_roll_config` ADD COLUMN `cdk_count` int DEFAULT '0' COMMENT '每次自动创建房间生成的CDK数量,0则不启用CDK';
-- ------------------------------------------------------------
-- 2) tt_roll 增加 official_config_id 列(标记房间由哪条配置生成,用于每日幂等)
-- 注意:MySQL 不支持 ADD COLUMN IF NOT EXISTS,若该列已存在请跳过本句。
-- ------------------------------------------------------------
ALTER TABLE `tt_roll`
ADD COLUMN `official_config_id` int DEFAULT NULL COMMENT '官方周期Roll配置ID(tt_official_roll_config.id),手动创建为NULL';
-- ------------------------------------------------------------
-- 3) 注册定时任务到"系统监控-定时任务":每天10点创建官方日Roll房并自动加入机器人
-- ------------------------------------------------------------
SET @jobId = (SELECT IFNULL(MAX(job_id), 100) + 1 FROM sys_job);
INSERT INTO `sys_job`(`job_id`,`job_name`,`job_group`,`invoke_target`,`cron_expression`,`misfire_policy`,`concurrent`,`status`,`create_by`,`create_time`,`remark`)
VALUES (@jobId, '官方日Roll生成', 'DEFAULT', 'officialRollTask.generateDailyRolls()', '0 0 10 * * ?', '3', '1', '0', 'admin', NOW(), '每天10点为启用的日Roll配置自动创建官方Roll房并加入机器人');
-- ------------------------------------------------------------
-- 4) 菜单:机器人管理(挂"用户管理"下)、日Roll配置(挂"Roll房设置"下)
-- 父菜单按名称查找;若你的父菜单名称不同,请调整下面 menu_name 的匹配值。
-- 若父菜单未找到(@xxxId 为 NULL),菜单将挂到顶级(parent_id=0),可在"菜单管理"里再拖动调整。
-- ------------------------------------------------------------
SET @userMgrId = (SELECT menu_id FROM (SELECT menu_id FROM sys_menu WHERE menu_name = '用户管理' AND menu_type = 'M' ORDER BY menu_id LIMIT 1) t);
SET @rollMgrId = (SELECT menu_id FROM (SELECT menu_id FROM sys_menu WHERE menu_name = 'Roll房设置' AND menu_type = 'M' ORDER BY menu_id LIMIT 1) t);
SET @menuBase = (SELECT IFNULL(MAX(menu_id), 2000) FROM sys_menu);
INSERT INTO `sys_menu`(`menu_id`,`menu_name`,`parent_id`,`order_num`,`path`,`component`,`query`,`is_frame`,`is_cache`,`menu_type`,`visible`,`status`,`perms`,`icon`,`create_by`,`create_time`)
VALUES (@menuBase + 1, '机器人管理', IFNULL(@userMgrId, 0), 5, 'robotUser', 'skins/robotUser/index', '', 1, 0, 'C', '0', '0', 'admin:robot:list', 'user', 'admin', NOW());
INSERT INTO `sys_menu`(`menu_id`,`menu_name`,`parent_id`,`order_num`,`path`,`component`,`query`,`is_frame`,`is_cache`,`menu_type`,`visible`,`status`,`perms`,`icon`,`create_by`,`create_time`)
VALUES (@menuBase + 2, '日Roll配置', IFNULL(@rollMgrId, 0), 9, 'officialRollConfig', 'skins/ttRoll/officialRollConfig', '', 1, 0, 'C', '0', '0', 'admin:officialRollConfig:list', 'time', 'admin', NOW());
-- ============================================================
-- 完成。若为非 admin 角色,请在"角色管理"里为角色勾选以上两个菜单权限。
-- ============================================================