fix: 对接openRouter、对接后台基于权限的登录逻辑、后台基础功能

This commit is contained in:
乾乾
2025-11-21 15:43:30 +08:00
parent d074f17127
commit 7f3979e38f
1016 changed files with 2934 additions and 1574 deletions

View File

@@ -11,7 +11,7 @@
Target Server Version : 80030 (8.0.30)
File Encoding : 65001
Date: 13/11/2025 19:05:32
Date: 21/11/2025 14:56:07
*/
SET NAMES utf8mb4;
@@ -105,7 +105,7 @@ CREATE TABLE `ai_chat_conversation` (
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 94234665781761 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'AI 聊天对话表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 98061603300353 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'AI 聊天对话表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of ai_chat_conversation
@@ -137,7 +137,7 @@ CREATE TABLE `ai_chat_message` (
`tenant_id` bigint NOT NULL DEFAULT 1 COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_msg_type`(`msg_type` ASC) USING BTREE COMMENT '消息内容类型索引'
) ENGINE = InnoDB AUTO_INCREMENT = 94900830313986 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'AI 聊天消息表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 97988513358850 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'AI 聊天消息表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of ai_chat_message
@@ -204,7 +204,7 @@ CREATE TABLE `ai_image` (
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 93211956044289 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'AI 绘画表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 97776948470785 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'AI 绘画表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of ai_image
@@ -365,13 +365,12 @@ CREATE TABLE `ai_model_usage_record` (
`remaining_count` int NOT NULL DEFAULT 10 COMMENT '剩余次数',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`creator` bigint NOT NULL DEFAULT 0 COMMENT '创建人',
`updater` bigint NOT NULL DEFAULT 0 COMMENT '更新人',
`tenant_id` bigint NOT NULL DEFAULT 1 COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_user_model`(`user_id` ASC, `model_id` ASC, `deleted` ASC) USING BTREE COMMENT '用户-模型唯一索引',
INDEX `idx_user_id`(`user_id` ASC) USING BTREE COMMENT '用户ID索引',
INDEX `idx_model_id`(`model_id` ASC) USING BTREE COMMENT '模型ID索引'
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'AI 公开模型使用记录表' ROW_FORMAT = Dynamic;
UNIQUE INDEX `uk_user_model`(`user_id` ASC, `model_id` ASC) USING BTREE COMMENT '用户-模型唯一索引'
) ENGINE = InnoDB AUTO_INCREMENT = 98017718297601 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'AI 公开模型使用记录表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of ai_model_usage_record
@@ -450,7 +449,7 @@ INSERT INTO `ai_platform` VALUES (5, 'HunYuan', '混元', 'Tencent (混元)', 'h
INSERT INTO `ai_platform` VALUES (6, 'ZhiPu', '智谱', 'Zhipu (智谱)', 'glm-4, glm-3-turbo, glm-4v', 'https://open.bigmodel.cn/dev/api', '请前往智谱 AI 官网查看可用模型列表', 6, 0, '', '2025-11-11 01:19:48', '', '2025-11-11 02:33:25', b'0', 1);
INSERT INTO `ai_platform` VALUES (7, 'XingHuo', '星火', 'XingHuo (星火)', 'generalv3.5, generalv3, generalv2.1', 'https://www.xfyun.cn/doc/spark/Web.html', '请前往讯飞星火官网查看可用模型列表', 7, 0, '', '2025-11-11 01:19:48', '', '2025-11-11 02:33:25', b'0', 1);
INSERT INTO `ai_platform` VALUES (8, 'DouBao', '豆包', 'DouBao (豆包)', 'doubao-lite-4k, doubao-lite-32k, doubao-pro-4k', 'https://www.volcengine.com/docs/82379', '请前往字节豆包官网查看可用模型列表', 8, 0, '', '2025-11-11 01:19:48', '', '2025-11-11 02:33:25', b'0', 1);
INSERT INTO `ai_platform` VALUES (9, 'SiliconFlow', '硅基流动', 'SiliconFlow (硅基流动)', 'Qwen/Qwen2-7B-Instruct, meta-llama/Llama-2-7b-chat-hf, Wan-AI/Wan2.2-T2V-A14B, THUDM/GLM-Z1-9B-0414, Kwai-Kolors/Kolors', 'https://docs.siliconflow.cn/cn/userguide/capabilities/text-generation', '请前往硅基流动官网查看可用模型列表', 2, 0, '', '2025-11-11 01:19:48', '', '2025-11-12 11:15:26', b'0', 1);
INSERT INTO `ai_platform` VALUES (9, 'SiliconFlow', '硅基流动', 'SiliconFlow (硅基流动)', 'Qwen/Qwen2-7B-Instruct, meta-llama/Llama-2-7b-chat-hf, Wan-AI/Wan2.2-T2V-A14B, THUDM/GLM-Z1-9B-0414, Kwai-Kolors/Kolors, deepseek-ai/DeepSeek-R1-0528-Qwen3-8B, DeepSeek-R1-0528-Qwen3-8B, tencent/Hunyuan-MT-7B', 'https://docs.siliconflow.cn/cn/userguide/capabilities/text-generation', '请前往硅基流动官网查看可用模型列表', 2, 0, '', '2025-11-11 01:19:48', '', '2025-11-12 11:15:26', b'0', 1);
INSERT INTO `ai_platform` VALUES (10, 'MiniMax', 'MiniMax', 'MiniMax', 'abab6.5-chat, abab5.5-chat, abab5-chat', 'https://www.minimaxi.com/document/guides/chat', '请前往 MiniMax 官网查看可用模型列表', 10, 0, '', '2025-11-11 01:19:48', '', '2025-11-11 02:33:25', b'0', 1);
INSERT INTO `ai_platform` VALUES (11, 'BaiChuan', '百川智能', 'BaiChuan (百川)', 'Baichuan2-Turbo, Baichuan2-Turbo-192k, Baichuan2-53B', 'https://platform.baichuan-ai.com/docs/api', '请前往百川智能官网查看可用模型列表', 11, 0, '', '2025-11-11 01:19:48', '', '2025-11-11 02:33:25', b'0', 1);
INSERT INTO `ai_platform` VALUES (12, 'GiteeAI', 'Gitee AI', 'Gitee AI (魔力方舟)', 'tts-1, tts-1-hd, gpt-4o, gpt-4o-mini', 'https://ai.gitee.com/docs', '请前往 Gitee AI 魔力方舟官网查看可用模型列表', 2, 0, '', '2025-11-11 01:19:48', '', '2025-11-12 11:15:29', b'0', 1);
@@ -519,7 +518,7 @@ CREATE TABLE `ai_video` (
INDEX `idx_status`(`status` ASC) USING BTREE,
INDEX `idx_task_id`(`task_id` ASC) USING BTREE,
INDEX `idx_create_time`(`create_time` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 92965381321729 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'AI 视频生成表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 98017718297602 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'AI 视频生成表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of ai_video
@@ -565,8 +564,8 @@ CREATE TABLE `base_com_appendix` (
`id` bigint NOT NULL COMMENT '文件ID',
`biz_id` bigint NOT NULL COMMENT '业务id',
`biz_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '业务类型;同一个业务,不同的字段,需要分别设置不同的业务类型',
`created_time` datetime NOT NULL COMMENT '创建时间',
`created_by` bigint NULL DEFAULT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
`create_by` bigint NULL DEFAULT NULL COMMENT '创建人',
`is_del` tinyint(1) NOT NULL DEFAULT 0,
`tenant_id` bigint NOT NULL,
PRIMARY KEY (`id`) USING BTREE
@@ -730,7 +729,7 @@ CREATE TABLE `base_employee_role_rel` (
-- ----------------------------
-- Records of base_employee_role_rel
-- ----------------------------
INSERT INTO `base_employee_role_rel` VALUES (1, 1452496398934081536, 1452186486492364800, 1, '2024-06-14 15:18:02', 1, '2024-06-14 15:18:04', 1, 0, 1);
INSERT INTO `base_employee_role_rel` VALUES (1, 1452496398934081536, 1, 1, '2024-06-14 15:18:02', 1, '2024-06-14 15:18:04', 1, 0, 1);
-- ----------------------------
-- Table structure for base_operation_log
@@ -1662,7 +1661,6 @@ CREATE TABLE `def_login_log` (
-- ----------------------------
-- Records of def_login_log
-- ----------------------------
INSERT INTO `def_login_log` VALUES (95232381660672, NULL, NULL, NULL, '192.168.1.37', '', '15659754644', '04', '用户不存在!', '2025-11-13', 'ReactorNetty/1.2.2', 'Unknown', '', 'Unknown', '0|0|0|内网IP|内网IP', '2025-11-13 18:59:30', NULL, '2025-11-13 18:59:30', NULL, 0);
-- ----------------------------
-- Table structure for def_msg_template
@@ -1779,27 +1777,17 @@ CREATE TABLE `def_resource` (
-- ----------------------------
-- Records of def_resource
-- ----------------------------
INSERT INTO `def_resource` VALUES (137848577387921409, 2, 'tenant:application', '应用管理', '20', 0, '01', '', '/application', 'LAYOUT', '/application/application', 'ant-design:appstore-add-outlined', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 2, '2021-12-12 12:12:12', 2, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (137848577387921412, 2, 'tenant:tenant:user', '用户管理', '20', 137848577387921409, '01', '', '/tenant/user', '/devOperation/tenant/defUser/index', NULL, 'ant-design:user-add-outlined', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/137848577387921409/', 1, '{}', 2, '2021-12-12 12:12:12', 2, '2024-01-16 09:54:25', 0);
INSERT INTO `def_resource` VALUES (137848577387921413, 2, 'tenant:application:application', '应用维护', '20', 137848577387921409, '01', '', '/application/application', '/devOperation/application/defApplication/index', NULL, 'ant-design:appstore-twotone', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/137848577387921409/', 1, '{\"hideChildrenInMenu\":true}', 2, '2021-12-12 12:12:12', 2, '2024-03-12 16:31:26', 0);
INSERT INTO `def_resource` VALUES (137848577387921414, 2, 'tenant:application:resource', '资源维护', '20', 137848577387921409, '01', '', '/application/resource', '/devOperation/application/defResource/index', NULL, 'ant-design:menu-unfold-outlined', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/137848577387921409/', 1, '{\"content\":\"菜单\"}', 2, '2021-12-12 12:12:12', 2, '2024-03-12 16:31:45', 0);
INSERT INTO `def_resource` VALUES (137848577387921417, 2, 'tenant:application:application:add', '新增', '40', 137848577387921413, '01', '', '', '', NULL, '', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/137848577387921409/137848577387921413/', 2, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (137848577387921418, 2, 'tenant:application:application:edit', '编辑', '40', 137848577387921413, '01', '', '', '', NULL, '', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/137848577387921409/137848577387921413/', 2, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (137848577387921419, 2, 'tenant:application:application:copy', '复制', '40', 137848577387921413, '01', '', '', '', NULL, '', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/137848577387921409/137848577387921413/', 2, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (137848577387921420, 2, 'tenant:application:application:delete', '删除', '40', 137848577387921413, '01', '', '', '', NULL, '', b'0', b'0', b'1', 40, '', b'0', b'1', NULL, NULL, NULL, '/137848577387921409/137848577387921413/', 2, '{}', 2, '2021-12-12 12:12:12', 2, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (137848577387921421, 2, 'tenant:application:application:resource', '应用资源维护', '20', 137848577387921413, '01', '', '/application/application/resource/:id', '/devOperation/application/defResource/index', NULL, '', b'1', b'0', b'1', 50, '', b'0', b'1', NULL, NULL, NULL, '/137848577387921409/137848577387921413/', 2, '{\"currentActiveMenu\":\"/application/application\"}', 2, '2021-12-12 12:12:12', 2, '2024-05-15 23:06:33', 0);
INSERT INTO `def_resource` VALUES (137848577387921422, 2, 'tenant:application:application:resource:add', '新增', '40', 137848577387921421, '01', '', '', '', NULL, '', b'0', b'0', b'1', 1, '', b'0', b'1', NULL, NULL, NULL, '/137848577387921409/137848577387921413/137848577387921421/', 3, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (138191972908138496, 3, 'demo:menu3', '1级菜单', '20', 0, '01', '', '/menu3', 'demo/test/index', NULL, '', b'0', b'0', b'1', 40, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 2, '2021-12-12 12:12:12', 2, '2024-03-05 22:51:41', 0);
INSERT INTO `def_resource` VALUES (138191972908138497, 3, 'demo:multiple', '多级菜单', '20', 0, '01', '', '/multiple', 'LAYOUT', NULL, '', b'0', b'1', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 2, '2021-12-12 12:12:12', 2, '2024-03-05 22:38:03', 0);
INSERT INTO `def_resource` VALUES (138191972908138498, 3, 'demo:multiple:memu1', '多级-菜单1', '20', 138191972908138497, '01', '', '/multiple/memu1', 'LAYOUT', NULL, '', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/138191972908138497/', 1, '{}', 2, '2021-12-12 12:12:12', 2, '2024-03-05 22:39:01', 0);
INSERT INTO `def_resource` VALUES (138191972908138499, 3, 'demo:multiple:memu2', '多级-菜单2', '20', 138191972908138497, '01', '', '/multiple/memu2', 'demo/test/index', NULL, '', b'0', b'1', b'0', 20, '', b'0', b'1', NULL, NULL, NULL, '/138191972908138497/', 1, '{}', 2, '2021-12-12 12:12:12', 2, '2024-03-05 22:44:48', 0);
INSERT INTO `def_resource` VALUES (1, 1, 'im:root', 'IM 管理', '20', 0, '01', '', '/im', 'LAYOUT', '/im/user', 'Messages', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 1, '2021-12-12 12:12:12', 1, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (3, 1, 'im:black', '黑名单列表', '20', 1, '01', '查看并维护 im_black 黑名单记录', '/im/black', 'page/ImBlack', '', 'ShieldX', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/1/', 1, '{}', 1, '2021-12-12 12:12:12', 1, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (4, 1, 'im:group', '群聊管理', '20', 1, '01', '管理群聊、成员、群公告等', '/im/group', 'page/ImGroup', '', 'Users', b'0', b'0', b'1', 40, '', b'0', b'1', NULL, NULL, NULL, '/1/', 1, '{}', 1, '2021-12-12 12:12:12', 1, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (5, 1, 'im:moment', '朋友圈管理', '20', 1, '01', '审核动态内容,处理违规内容与举报', '/im/moment', 'page/ImMoment', '', 'Photo', b'0', b'0', b'1', 50, '', b'0', b'1', NULL, NULL, NULL, '/1/', 1, '{}', 1, '2021-12-12 12:12:12', 1, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (6, 1, 'im:contact', '联系人 / 好友管理', '20', 1, '01', '联系人、好友关系、申请记录等', '/im/contact', 'page/ImContact', '', 'AddressBook', b'0', b'0', b'1', 60, '', b'0', b'1', NULL, NULL, NULL, '/1/', 1, '{}', 1, '2021-12-12 12:12:12', 1, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (7, 1, 'im:config', 'IM 配置', '20', 1, '01', 'im_config 配置、系统参数与高级设置', '/im/config', 'page/ImConfig', '', 'Settings', b'0', b'0', b'1', 70, '', b'0', b'1', NULL, NULL, NULL, '/1/', 1, '{}', 1, '2021-12-12 12:12:12', 1, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (8, 1, 'ai:model', 'AI 能力中心', '20', 1, '01', '配置 AI 平台与模型,查看调用情况', '/ai/model', 'page/AiModel', '', 'Robot', b'0', b'0', b'1', 80, '', b'0', b'1', NULL, NULL, NULL, '/1/', 1, '{}', 1, '2021-12-12 12:12:12', 1, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (138191972908138500, 3, 'demo:multiple:view3', '多级-隐藏菜单3', '20', 138191972908138497, '01', '', '/multiple/view3', 'demo/test/index', NULL, '', b'1', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/138191972908138497/', 1, '{}', 2, '2021-12-12 12:12:12', 2, '2024-03-05 22:45:51', 0);
INSERT INTO `def_resource` VALUES (138191972908138501, 3, 'demo:multiple:menu4', '下级是隐藏菜单', '20', 138191972908138497, '01', '', '/multiple/menu4', 'demo/test/index', NULL, '', b'0', b'0', b'1', 40, '', b'0', b'1', NULL, NULL, NULL, '/138191972908138497/', 1, '{}', 2, '2021-12-12 12:12:12', 2, '2024-03-05 22:47:07', 0);
INSERT INTO `def_resource` VALUES (138191972908138502, 3, 'demo:multiple:menu4:view1', '多级-隐藏菜单-视图1', '20', 138191972908138501, '01', '', '/multiple/menu4/view1', 'demo/test/index', NULL, '', b'1', b'0', b'1', 1, '', b'0', b'1', NULL, NULL, NULL, '/138191972908138497/138191972908138501/', 2, '{\"currentActiveMenu\":\"/multiple/menu4\"}', 2, '2021-12-12 12:12:12', 2, '2024-05-15 23:08:31', 0);
INSERT INTO `def_resource` VALUES (138191972908138503, 3, 'demo:multiple:menu4:view2', '多级-隐藏菜单-视图2', '20', 138191972908138501, '01', '', '/multiple/menu4/view2', 'demo/test/index', NULL, '', b'1', b'0', b'1', 1000, '', b'0', b'1', NULL, NULL, NULL, '/138191972908138497/138191972908138501/', 2, '{\"currentActiveMenu\":\"/multiple/menu4\"}', 2, '2021-12-12 12:12:12', 2, '2024-05-15 23:08:39', 0);
INSERT INTO `def_resource` VALUES (138375999371870208, 3, 'demo:view2', '1级下有视图', '20', 0, '01', '', '/view2', 'demo/test/index', '', '', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{\"hideChildrenInMenu\":true}', 2, '2021-12-12 12:12:12', 2, '2024-03-05 22:50:29', 0);
INSERT INTO `def_resource` VALUES (138375999371870209, 3, 'demo:view2:view1', '1级下面视图1', '20', 138375999371870208, '01', '', '/view2/view1', 'demo/test/index', '', '', b'1', b'0', b'1', 1, '', b'0', b'1', NULL, NULL, NULL, '/138375999371870208/', 1, '{\"currentActiveMenu\":\"/view2\"}', 2, '2021-12-12 12:12:12', 2, '2024-05-15 23:08:55', 0);
INSERT INTO `def_resource` VALUES (138375999371870210, 3, 'demo:view2:view2', '1级下面视图2', '20', 138375999371870208, '01', '', '/view2/view2', 'demo/test/index', '', '', b'1', b'0', b'1', 1000, '', b'0', b'1', NULL, NULL, NULL, '/138375999371870208/', 1, '{\"currentActiveMenu\":\"/view2\"}', 2, '2021-12-12 12:12:12', 2, '2024-05-15 23:09:02', 0);
INSERT INTO `def_resource` VALUES (138555971386474496, 3, 'demo:outerchain', '1级外链', '20', 0, '03', '', 'https://vvbin.cn/doc-next', 'IFRAME', '', '', b'0', b'0', b'1', 50, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 2, '2021-12-12 12:12:12', 2, '2024-03-05 22:52:14', 0);
INSERT INTO `def_resource` VALUES (138555971386474497, 3, 'demo:innerchain', '1级内嵌', '20', 0, '02', '', '/innerchain', 'https://tangyh.top/', '', '', b'0', b'0', b'1', 60, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 2, '2021-12-12 12:12:12', 2, '2024-03-06 10:41:13', 0);
INSERT INTO `def_resource` VALUES (138555971386474498, 3, 'demo:multiple:menu5', '2级外链', '20', 138191972908138497, '03', '', 'https://cn.bing.com/', 'IFRAME', '', '', b'0', b'0', b'1', 50, '', b'0', b'1', NULL, NULL, NULL, '/138191972908138497/', 1, '{}', 2, '2021-12-12 12:12:12', 2, '2024-03-05 22:49:28', 0);
@@ -1812,37 +1800,32 @@ INSERT INTO `def_resource` VALUES (138555971386474506, 3, '功能下创建字段
INSERT INTO `def_resource` VALUES (139496646533709824, 2, 'tenant:application:resource:add', '新增', '40', 137848577387921414, '01', '', '', '', '', '', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/137848577387921409/137848577387921414/', 2, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (139702946697838592, 2, 'tenant:application:resource:edit', '编辑', '40', 137848577387921414, '01', '', '', '', '', '', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/137848577387921414/137848577387921409/', 2, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (139702946697838593, 2, 'tenant:application:resource:delete', '删除', '40', 137848577387921414, '01', '', '', '', '', '', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/137848577387921409/137848577387921414/', 2, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (143911967403278336, 2, 'tenant:system', '系统管理', '20', 0, '01', '', '/system', 'LAYOUT', '/system/dict', 'ant-design:setting-outlined', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 2, '2021-12-12 12:12:12', 2, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (143911967403278337, 2, 'tenant:system:dict2', '数据字典', '20', 143911967403278336, '01', '', '/system/dict2', '/devOperation/system/defDict/index', '', 'ant-design:book-outlined', b'0', b'0', b'1', 15, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/', 1, '{\"content\":\"路由\"}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (143911967403278336, 2, 'tenant:system', '系统管理', '20', 0, '01', '', '/system', 'LAYOUT', '/system/dict', 'Settings', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 2, '2021-12-12 12:12:12', 2, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (143911967403278337, 2, 'tenant:system:dict2', '数据字典', '20', 143911967403278336, '01', '', '/system/dict2', '/devOperation/system/defDict/index', '', 'Book', b'0', b'0', b'1', 15, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/', 1, '{\"content\":\"路由\"}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (143911967403278338, 2, 'tenant:system:dict2:add', '新增', '40', 143911967403278337, '01', '', '', '', '', '', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/143911967403278337/', 2, '{}', 2, '2021-12-12 12:12:12', 2, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (143911967403278339, 2, 'tenant:system:dict2:edit', '编辑', '40', 143911967403278337, '01', '', '', '', '', '', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/143911967403278337/', 2, '{}', 2, '2021-12-12 12:12:12', 2, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (143911967403278340, 2, 'tenant:system:dict2:delete', '删除', '40', 143911967403278337, '01', '', '', '', '', '', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/143911967403278337/', 2, '{}', 2, '2021-12-12 12:12:12', 2, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (143911967403278341, 2, 'tenant:system:dict2:copy', '复制', '40', 143911967403278337, '01', '', '', '', '', '', b'0', b'0', b'1', 40, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/143911967403278337/', 2, '{}', 2, '2021-12-12 12:12:12', 2, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (143911967403278342, 2, 'tenant:system:dict2:dictItem', '字典项维护', '20', 143911967403278337, '01', '', '/system/dict/:dictId', '/devOperation/system/defDictItem/index', '', 'ant-design:book-twotone', b'1', b'0', b'1', 50, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/143911967403278337/', 2, '{\"currentActiveMenu\":\"/system/dict2\"}', 2, '2021-12-12 12:12:12', 2, '2024-05-15 23:01:13', 0);
INSERT INTO `def_resource` VALUES (143911967403278342, 2, 'tenant:system:dict2:dictItem', '字典项维护', '20', 143911967403278337, '01', '', '/system/dict/:dictId', '/devOperation/system/defDictItem/index', '', 'Book', b'1', b'0', b'1', 50, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/143911967403278337/', 2, '{\"currentActiveMenu\":\"/system/dict2\"}', 2, '2021-12-12 12:12:12', 2, '2024-05-15 23:01:13', 0);
INSERT INTO `def_resource` VALUES (143911967403278343, 2, 'tenant:system:dict2:dictItem:add', '新增', '40', 143911967403278342, '01', '', '', '', '', '', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/143911967403278337/143911967403278342/', 3, '{}', 2, '2021-12-12 12:12:12', 2, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (143911967403278344, 2, 'tenant:system:dict2:dictItem:edit', '编辑', '40', 143911967403278342, '01', '', '', '', '', '', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/143911967403278337/143911967403278342/', 3, '{}', 2, '2021-12-12 12:12:12', 2, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (143911967403278345, 2, 'tenant:system:dict2:dictItem:delete', '删除', '40', 143911967403278342, '01', '', '', '', '', '', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/143911967403278337/143911967403278342/', 3, '{}', 2, '2021-12-12 12:12:12', 2, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (143911967403278346, 2, 'tenant:system:dict2:dictItem:copy', '复制', '40', 143911967403278342, '01', '', '', '', '', '', b'0', b'0', b'1', 40, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/143911967403278337/143911967403278342/', 3, '{}', 2, '2021-12-12 12:12:12', 2, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (144313439471271947, 1, 'basic:system', '系统功能', '20', 0, '01', '', '/sysFunction', 'LAYOUT', '/system/role', 'ant-design:setting-outlined', b'0', b'0', b'1', 60, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 2, '2021-12-12 12:12:12', 2, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (144313439471271947, 1, 'basic:system', '系统功能', '20', 0, '01', '', '/sysFunction', 'LAYOUT', '/system/role', 'Settings', b'0', b'0', b'1', 60, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 2, '2021-12-12 12:12:12', 2, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (160561957882036227, 2, 'tenant:tenant:user:reset:password', '重置密码', '40', 137848577387921412, '01', '', '', '', '', '', b'0', b'0', b'1', 5, '', b'0', b'1', NULL, NULL, NULL, '/137848577387921409/137848577387921412/', 2, '{}', 1, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (160833820721938432, 3, 'aaa:1', 'test公共', '20', 0, '01', '', '/111', 'LAYOUT', '', '', b'0', b'1', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 1, '2021-11-22 10:05:44', 1452186486253289472, '2024-01-10 11:36:03', 0);
INSERT INTO `def_resource` VALUES (160833820721938433, 3, 'aaa:111:11', 'test公共1', '20', 160833820721938432, '02', '', '/111/111', 'LAYOUT', '', '', b'0', b'1', b'1', 1000, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938432/', 1, '{}', 1, '2021-11-22 10:06:13', 1, '2021-11-22 17:20:28', 0);
INSERT INTO `def_resource` VALUES (160833820721938434, 3, 'aa:11:111:111', '公共1-1', '20', 160833820721938433, '01', '', '1-1-1-1', 'lamp/test/index5', '', '', b'0', b'1', b'1', 1000, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938432/160833820721938433/', 2, '{}', 1, '2021-11-22 10:06:36', 1, '2021-11-22 17:20:54', 0);
INSERT INTO `def_resource` VALUES (160833820721938435, 3, '11231', '外链', '20', 160833820721938433, '03', '', 'https://www.baidu.com/', 'IFRAME', '', '', b'0', b'0', b'1', 1000, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938432/160833820721938433/', 2, '{}', 1, '2021-11-22 10:16:01', 1, '2021-11-22 10:17:06', 0);
INSERT INTO `def_resource` VALUES (160833820721938436, 3, '33331123', '内链', '20', 160833820721938433, '02', '', 'inner3', 'https://vvbin.cn/doc-next/', '', '', b'0', b'0', b'1', 1000, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938432/160833820721938433/', 2, '{}', 1, '2021-11-22 11:02:12', 1, '2021-11-22 17:21:35', 0);
INSERT INTO `def_resource` VALUES (160833820721938437, 2, 'tenant:developer', '开发者管理', '20', 0, '01', '', '/developer', 'LAYOUT', '/developer/tools/generator', 'ant-design:bug-outlined', b'0', b'0', b'1', 50, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 1, '2021-12-12 12:12:12', 1, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (160833820721938438, 2, 'tenant:developer:doc', 'Swagger文档', '20', 160833820721938437, '02', '', '/developer/doc', 'https://datasource.tangyh.top/api/base/doc.html', '', 'ant-design:file-word-outlined', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '{}', 1, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (160833820721938439, 2, 'tenant:developer:nacos', 'nacos', '20', 160833820721938437, '03', '', 'https://tangyh.top/nacos/', 'IFRAME', '', 'ant-design:aliyun-outlined', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '{}', 1, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (160833820721938440, 2, 'tenant:developer:skyWalking', 'SkyWalking', '20', 160833820721938437, '03', '', 'http://sky.tangyh.top/', 'IFRAME', '', 'ant-design:fund-projection-screen-outlined', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '{}', 1, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (160833820721938441, 2, 'tenant:developer:db', '数据库监控', '20', 160833820721938437, '02', '', '/developer/druid', 'https://datasource.tangyh.top/druid/index.html', '', 'ant-design:console-sql-outlined', b'0', b'0', b'1', 40, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '{}', 1, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (160833820721938442, 2, 'tenant:about', '了解lamp', '20', 0, '01', '', '/lamp', 'LAYOUT', '', 'ant-design:github-filled', b'0', b'0', b'1', 1110, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 1, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (160833820721938443, 2, 'tenant:about:doc', '企业版文档', '20', 160833820721938442, '03', '', 'https://tangyh.top/doc/%E7%AE%80%E4%BB%8B.html', 'IFRAME', '', 'ant-design:file-pdf-outlined', b'0', b'0', b'1', 1, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938442/', 1, '{}', 1, '2021-12-12 12:12:12', 2, '2024-01-16 09:51:16', 0);
INSERT INTO `def_resource` VALUES (160833820721938444, 2, 'tenant:about:vip', '企业版', '20', 160833820721938442, '03', '', 'https://tangyh.top/vip/%E6%8E%88%E6%9D%83%E8%B4%B9%E7%94%A8.html', 'IFRAME', '', 'ant-design:eye-invisible-outlined', b'0', b'0', b'1', 2, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938442/', 1, '{}', 1, '2021-12-12 12:12:12', 2, '2024-01-16 09:50:17', 0);
INSERT INTO `def_resource` VALUES (160833820721938445, 2, 'tenant:about:opensource', '开源版', '20', 160833820721938442, '03', '', 'https://github.com/zuihou', 'IFRAME', '', 'ant-design:gitlab-outlined', b'0', b'0', b'1', 6, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938442/', 1, '{}', 1, '2021-12-12 12:12:12', 1, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (160833820721938446, 2, 'tenant:about:landscape', '蓝图', '20', 160833820721938442, '03', '', 'https://tangyh.top/upgrade/4.x%E5%8A%9F%E8%83%BD%E8%93%9D%E5%9B%BE.html', 'IFRAME', '', 'ant-design:rise-outlined', b'0', b'0', b'1', 5, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938442/', 1, '{}', 1, '2021-12-12 12:12:12', 2, '2024-01-16 09:50:41', 0);
INSERT INTO `def_resource` VALUES (160833820721938447, 2, 'tenant:about:boot', 'boot版', '20', 160833820721938442, '03', '', 'http://boot.tangyh.top/', 'IFRAME', '', 'ant-design:ie-outlined', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938442/', 1, '{}', 1, '2021-11-22 11:50:40', 1, '2021-11-22 11:50:40', 0);
INSERT INTO `def_resource` VALUES (160833820721938437, 2, 'tenant:developer', '开发者管理', '20', 0, '01', '', '/developer', 'LAYOUT', '/developer/tools/generator', 'Bug', b'0', b'0', b'1', 50, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 1, '2021-12-12 12:12:12', 1, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (160833820721938438, 2, 'tenant:developer:doc', 'Swagger文档', '20', 160833820721938437, '02', '', '/developer/doc', 'https://datasource.tangyh.top/api/base/doc.html', '', 'FileText', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '{}', 1, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (160833820721938439, 2, 'tenant:developer:nacos', 'nacos', '20', 160833820721938437, '03', '', 'https://tangyh.top/nacos/', 'IFRAME', '', 'Cloud', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '{}', 1, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (160833820721938440, 2, 'tenant:developer:skyWalking', 'SkyWalking', '20', 160833820721938437, '03', '', 'http://sky.tangyh.top/', 'IFRAME', '', 'ChartBar', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '{}', 1, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (160833820721938441, 2, 'tenant:developer:db', '数据库监控', '20', 160833820721938437, '02', '', '/developer/druid', 'https://datasource.tangyh.top/druid/index.html', '', 'Database', b'0', b'0', b'1', 40, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '{}', 1, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (160833820721938442, 2, 'tenant:about', '了解lamp', '20', 0, '01', '', '/lamp', 'LAYOUT', '', 'BrandGithub', b'0', b'0', b'1', 1110, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 1, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (160833820721938443, 2, 'tenant:about:doc', '企业版文档', '20', 160833820721938442, '03', '', 'https://tangyh.top/doc/%E7%AE%80%E4%BB%8B.html', 'IFRAME', '', 'FileText', b'0', b'0', b'1', 1, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938442/', 1, '{}', 1, '2021-12-12 12:12:12', 2, '2024-01-16 09:51:16', 0);
INSERT INTO `def_resource` VALUES (160833820721938444, 2, 'tenant:about:vip', '企业版', '20', 160833820721938442, '03', '', 'https://tangyh.top/vip/%E6%8E%88%E6%9D%83%E8%B4%B9%E7%94%A8.html', 'IFRAME', '', 'EyeOff', b'0', b'0', b'1', 2, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938442/', 1, '{}', 1, '2021-12-12 12:12:12', 2, '2024-01-16 09:50:17', 0);
INSERT INTO `def_resource` VALUES (160833820721938445, 2, 'tenant:about:opensource', '开源版', '20', 160833820721938442, '03', '', 'https://github.com/zuihou', 'IFRAME', '', 'BrandGitlab', b'0', b'0', b'1', 6, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938442/', 1, '{}', 1, '2021-12-12 12:12:12', 1, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (160833820721938446, 2, 'tenant:about:landscape', '蓝图', '20', 160833820721938442, '03', '', 'https://tangyh.top/upgrade/4.x%E5%8A%9F%E8%83%BD%E8%93%9D%E5%9B%BE.html', 'IFRAME', '', 'TrendingUp', b'0', b'0', b'1', 5, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938442/', 1, '{}', 1, '2021-12-12 12:12:12', 2, '2024-01-16 09:50:41', 0);
INSERT INTO `def_resource` VALUES (160833820721938447, 2, 'tenant:about:boot', 'boot版', '20', 160833820721938442, '03', '', 'http://boot.tangyh.top/', 'IFRAME', '', 'Browser', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938442/', 1, '{}', 1, '2021-11-22 11:50:40', 1, '2021-11-22 11:50:40', 0);
INSERT INTO `def_resource` VALUES (160874872019353785, 3, 'demo:multiple:memu1:view', '菜单下面有视图', '20', 138191972908138498, '01', '', '/multiple/memu1/view', 'demo/test/index', '', '', b'1', b'0', b'1', 3, '', b'0', b'1', NULL, NULL, NULL, '/138191972908138497/138191972908138498/', 2, '{}', 1, '2021-12-12 12:12:12', 2, '2024-03-05 22:43:33', 0);
INSERT INTO `def_resource` VALUES (172353511420329984, 2, 'tenant:system:file', '全局附件管理', '20', 143911967403278336, '01', '', '/system/file', '/devOperation/system/defFile/index', '', 'ant-design:file-zip-outlined', b'0', b'0', b'1', 70, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/', 1, '{}', 1452186486253289472, '2021-12-12 12:12:12', 2, '2024-06-12 12:46:36', 0);
INSERT INTO `def_resource` VALUES (172353511420329984, 2, 'tenant:system:file', '全局附件管理', '20', 143911967403278336, '01', '', '/system/file', '/devOperation/system/defFile/index', '', 'FileZip', b'0', b'0', b'1', 70, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/', 1, '{}', 1452186486253289472, '2021-12-12 12:12:12', 2, '2024-06-12 12:46:36', 0);
INSERT INTO `def_resource` VALUES (172353511420329986, 2, 'tenant:system:file:upload', '上传', '40', 172353511420329984, '01', '', '', '', '', '', b'0', b'0', b'1', 1, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/172353511420329984/', 2, '{}', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (172353511420329987, 2, 'tenant:system:file:debug:upload', '调试上传', '40', 172353511420329984, '01', '', '', '', '', '', b'0', b'0', b'1', 2, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/172353511420329984/', 2, '{}', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (172353511420329988, 2, 'tenant:system:file:download', '下载', '40', 172353511420329984, '01', '', '', '', '', '', b'0', b'0', b'1', 5, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/172353511420329984/', 2, '{}', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
@@ -1854,12 +1837,12 @@ INSERT INTO `def_resource` VALUES (179582070228516867, 1, 'basic:msg:msg:company
INSERT INTO `def_resource` VALUES (179582070228516868, 1, 'basic:msg:msg:dept', '查看本部门数据', '60', 1449734007292952576, '01', '', '', '', '', '', b'0', b'0', b'1', 1005, '', b'0', b'1', '05', NULL, b'0', '/1449734007292952576/1449733521265393664/', 2, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (179582070228516869, 1, 'basic:msg:msg:dept:children', '查看本部及其子部门数据', '60', 1449734007292952576, '01', '', '', '', '', '', b'0', b'0', b'1', 1006, '', b'0', b'1', '04', NULL, b'0', '/1449734007292952576/1449733521265393664/', 2, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (179582070228516870, 1, 'basic:msg:msg:custom', '查看自定义的数据', '60', 1449734007292952576, '01', '', '', '', '', '', b'0', b'0', b'1', 1020, '', b'0', b'1', '07', 'DATA_SCOPE_TEST', b'0', '/1449734007292952576/1449733521265393664/', 2, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (198310764748996608, 2, 'tenant:developer:tools', '开发工具', '20', 160833820721938437, '01', '', '/developer/tools', 'LAYOUT', '', 'ant-design:code-twotone', b'0', b'0', b'1', 0, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (198310764748996608, 2, 'tenant:developer:tools', '开发工具', '20', 160833820721938437, '01', '', '/developer/tools', 'LAYOUT', '', 'Code', b'0', b'0', b'1', 0, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (198310764748996609, 2, 'tenant:developer:tools:generator', '代码生成', '20', 198310764748996608, '01', '', '/developer/tools/generator', '/devOperation/developer/defGenTable/index', '', '', b'0', b'0', b'1', 1, '', b'0', b'1', NULL, NULL, NULL, '/198310764748996608/160833820721938437/', 2, '{\"content\":\"new\"}', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (199848844077301779, 1, 'basic:user:employee:invitation', '邀请', '40', 1449738581135327232, '01', '', '', '', '', '', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/1449738581135327232/1449732267470487552/', 2, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (201343651610099712, 2, 'tenant:developer:tools:generator:edit', '修改代码配置', '20', 198310764748996609, '01', '', 'edit/:id', '/devOperation/developer/defGenTable/Edit', '', '', b'1', b'0', b'1', 5, '', b'0', b'1', NULL, NULL, NULL, '/198310764748996609/198310764748996608/160833820721938437/', 3, '{\"currentActiveMenu\":\"/developer/tools/generator\"}', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (206499429136465920, 2, 'tenant:developer:tools:generator:project', '项目生成', '20', 198310764748996608, '01', '', 'project', 'devOperation/developer/genProject/index', '', '', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/198310764748996608/160833820721938437/', 2, '{\"content\":\"new\"}', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (207209017863307264, 2, 'tenant:developer:demo', '开发示例', '20', 160833820721938437, '01', '', 'demo', 'LAYOUT', '', 'ant-design:code-outlined', b'0', b'0', b'1', 2, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (207209017863307264, 2, 'tenant:developer:demo', '开发示例', '20', 160833820721938437, '01', '', 'demo', 'LAYOUT', '', 'Code', b'0', b'0', b'1', 2, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (207209017863307265, 2, 'tenant:developer:demo:simple', '单表CRUD', '20', 207209017863307264, '01', '', 'simple', '/devOperation/developer/defGenTestSimple/index', '', '', b'0', b'0', b'1', 1, '', b'0', b'1', NULL, NULL, NULL, '/207209017863307264/160833820721938437/', 2, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (207209017863307266, 2, 'tenant:developer:demo:tree', '树CRUD', '20', 207209017863307264, '01', '', 'tree', '/devOperation/developer/defGenTestTree/index', '', '', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/207209017863307264/160833820721938437/', 2, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (207209017863307267, 2, 'tenant:developer:demo:m_s', '主从CRUD', '20', 207209017863307264, '01', '', 'mainSub', '/devOperation/developer/defGenTestMainSub/index', '/system/defDict', '', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/207209017863307264/160833820721938437/', 2, '{}', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
@@ -1870,26 +1853,26 @@ INSERT INTO `def_resource` VALUES (207644798130061314, 2, 'tenant:developer:tool
INSERT INTO `def_resource` VALUES (207644798130061318, 2, 'tenant:developer:tools:generator:edit:delete', '删除', '40', 201343651610099712, '01', '', '', '', '', '', b'0', b'0', b'1', 1, '', b'0', b'1', NULL, NULL, NULL, '/201343651610099712/198310764748996609/198310764748996608/160833820721938437/', 4, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (207644798130061323, 2, 'tenant:developer:tools:generator:edit:edit', '修改', '40', 201343651610099712, '01', '', '', '', '', '', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/201343651610099712/198310764748996609/198310764748996608/160833820721938437/', 4, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (207644798130061325, 2, 'tenant:developer:tools:generator:edit:sync', '同步', '40', 201343651610099712, '01', '', '', '', '', '', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/201343651610099712/198310764748996609/198310764748996608/160833820721938437/', 4, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (215458769570627596, 2, 'tenant:system:defDict', '字典管理', '20', 143911967403278336, '01', '', '/system/defDict', '/devOperation/system/defDictManager/index', '', 'ant-design:book-filled', b'0', b'0', b'1', 17, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/', 1, '{\"content\":\"一对多\"}', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (215458769570627596, 2, 'tenant:system:defDict', '字典管理', '20', 143911967403278336, '01', '', '/system/defDict', '/devOperation/system/defDictManager/index', '', 'Book', b'0', b'0', b'1', 17, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/', 1, '{\"content\":\"一对多\"}', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (215458769570627601, 2, 'tenant:system:defDict:add', '新增', '40', 215458769570627596, '01', '', '', '', '', '', b'0', b'0', b'1', 1, '', b'0', b'1', NULL, NULL, NULL, '/215458769570627596/143911967403278336/', 2, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (215458769570627602, 2, 'tenant:system:defDict:edit', '编辑', '40', 215458769570627596, '01', '', '', '', '', '', b'0', b'0', b'1', 2, '', b'0', b'1', NULL, NULL, NULL, '/215458769570627596/143911967403278336/', 2, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (215458769570627603, 2, 'tenant:system:defDict:delete', '删除', '40', 215458769570627596, '01', '', '', '', '', '', b'0', b'0', b'1', 3, '', b'0', b'1', NULL, NULL, NULL, '/215458769570627596/143911967403278336/', 2, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (215458769570627604, 2, 'tenant:system:defDict:copy', '复制', '40', 215458769570627596, '01', '', '', '', '', '', b'0', b'0', b'1', 4, '', b'0', b'1', NULL, NULL, NULL, '/215458769570627596/143911967403278336/', 2, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (219171794567823360, 1, 'basic:user:org:bind', '绑定', '40', 1449738119237599232, '01', '', '', '', '', '', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/1449738119237599232/1449732267470487552/', 2, '', 1452186486253289472, '2022-04-28 17:59:31', 1452186486253289472, '2022-04-28 17:59:31', 0);
INSERT INTO `def_resource` VALUES (221743822848131072, 2, 'tenant:developer:tools:datasourceConfig', '数据源维护', '20', 198310764748996608, '01', '', '/developer/tools/datasource', '/devOperation/tenant/defDatasourceConfig/index', '', 'ant-design:database-filled', b'0', b'0', b'1', 0, '', b'0', b'1', NULL, NULL, NULL, '/198310764748996608/160833820721938437/', 2, '', 1452186486253289472, '2022-05-05 16:04:46', 1452186486253289472, '2022-05-05 16:08:17', 0);
INSERT INTO `def_resource` VALUES (221743822848131072, 2, 'tenant:developer:tools:datasourceConfig', '数据源维护', '20', 198310764748996608, '01', '', '/developer/tools/datasource', '/devOperation/tenant/defDatasourceConfig/index', '', 'Database', b'0', b'0', b'1', 0, '', b'0', b'1', NULL, NULL, NULL, '/198310764748996608/160833820721938437/', 2, '', 1452186486253289472, '2022-05-05 16:04:46', 1452186486253289472, '2022-05-05 16:08:17', 0);
INSERT INTO `def_resource` VALUES (221743822848131074, 2, 'tenant:tenant:datasourceConfig:add', '新增', '40', 221743822848131072, '01', '', '', '', '', '', b'0', b'0', b'1', 1, '', b'0', b'1', NULL, NULL, NULL, '/221743822848131072/198310764748996608/160833820721938437/', 3, '', 1452186486253289472, '2022-05-05 16:05:50', 1452186486253289472, '2022-05-05 16:05:50', 0);
INSERT INTO `def_resource` VALUES (221743822848131076, 2, 'tenant:tenant:datasourceConfig:edit', '编辑', '40', 221743822848131072, '01', '', '', '', '', '', b'0', b'0', b'1', 2, '', b'0', b'1', NULL, NULL, NULL, '/221743822848131072/198310764748996608/160833820721938437/', 3, '', 1452186486253289472, '2022-05-05 16:07:00', 1452186486253289472, '2022-05-05 16:07:00', 0);
INSERT INTO `def_resource` VALUES (221743822848131078, 2, 'tenant:tenant:datasourceConfig:delete', '删除', '40', 221743822848131072, '01', '', '', '', '', '', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/221743822848131072/198310764748996608/160833820721938437/', 3, '', 1452186486253289472, '2022-05-05 16:07:32', 1452186486253289472, '2022-05-05 16:07:32', 0);
INSERT INTO `def_resource` VALUES (221743822848131080, 2, 'tenant:tenant:datasourceConfig:test', '测试', '40', 221743822848131072, '01', '', '', '', '', '', b'0', b'0', b'1', 15, '', b'0', b'1', NULL, NULL, NULL, '/221743822848131072/198310764748996608/160833820721938437/', 3, '', 1452186486253289472, '2022-05-05 16:07:58', 1452186486253289472, '2022-05-05 16:07:58', 0);
INSERT INTO `def_resource` VALUES (242152648445263888, 2, 'tenant:developer:minio', 'MinIO', '20', 160833820721938437, '02', '', '/developer/minio', 'https://static.tangyh.top/minio/', '', 'ant-design:folder-open-filled', b'0', b'0', b'1', 50, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (242152648445263893, 2, 'tenant:developer:job', '分布式定时任务', '20', 160833820721938437, '03', '', 'https://datasource.tangyh.top/xxl-job-admin/', 'IFRAME', '', 'ant-design:project-outlined', b'0', b'0', b'1', 60, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (242152648445263898, 2, 'tenant:developer:file', '文件预览', '20', 160833820721938437, '02', '', '/developer/filepreview', 'https://file.kkview.cn/', '', 'ant-design:file-exclamation-outlined', b'0', b'0', b'1', 70, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '{}', 1452186486253289472, '2021-12-12 12:12:12', 2, '2024-06-10 15:06:26', 0);
INSERT INTO `def_resource` VALUES (242181583639937024, 2, 'tenant:developer:server', '服务器监控', '20', 160833820721938437, '01', '', '/developer/srever', '/devOperation/developer/srever/index', '', 'ant-design:aim-outlined', b'0', b'0', b'1', 3, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (242300348075606021, 2, 'tenant:developer:jenkins', 'Jenkins', '20', 160833820721938437, '03', '', 'http://jenkins.tangyh.top/', 'IFRAME', '', 'ant-design:dropbox-outlined', b'0', b'0', b'1', 80, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (249954310509559808, 2, 'tenant:ops', '运维平台', '20', 0, '01', '', '/ops', 'LAYOUT', '/ops/template', 'ant-design:tool-outlined', b'0', b'0', b'1', 60, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (249954310509559809, 2, 'tenant:ops:interfaces', '接口管理', '20', 249954310509559808, '01', '', '/ops/interface', '/devOperation/ops/defInterface/index', '', 'ant-design:node-expand-outlined', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/249954310509559808/', 1, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (249954310509559810, 2, 'tenant:ops:interface:log', '接口日志', '20', 249954310509559808, '01', '', '/ops/log', '/devOperation/ops/defInterfaceLog/index', '', 'ant-design:customer-service-outlined', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/249954310509559808/', 1, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (249954310509559811, 2, 'tenant:ops:template', '消息模板', '20', 249954310509559808, '01', '', '/ops/template', '/devOperation/ops/defMsgTemplate/index', '', 'ant-design:medium-outlined', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/249954310509559808/', 1, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (242152648445263888, 2, 'tenant:developer:minio', 'MinIO', '20', 160833820721938437, '02', '', '/developer/minio', 'https://static.tangyh.top/minio/', '', 'Folder', b'0', b'0', b'1', 50, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (242152648445263893, 2, 'tenant:developer:job', '分布式定时任务', '20', 160833820721938437, '03', '', 'https://datasource.tangyh.top/xxl-job-admin/', 'IFRAME', '', 'ClipboardList', b'0', b'0', b'1', 60, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (242152648445263898, 2, 'tenant:developer:file', '文件预览', '20', 160833820721938437, '02', '', '/developer/filepreview', 'https://file.kkview.cn/', '', 'FileAlert', b'0', b'0', b'1', 70, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '{}', 1452186486253289472, '2021-12-12 12:12:12', 2, '2024-06-10 15:06:26', 0);
INSERT INTO `def_resource` VALUES (242181583639937024, 2, 'tenant:developer:server', '服务器监控', '20', 160833820721938437, '01', '', '/developer/srever', '/devOperation/developer/srever/index', '', 'Target', b'0', b'0', b'1', 3, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (242300348075606021, 2, 'tenant:developer:jenkins', 'Jenkins', '20', 160833820721938437, '03', '', 'http://jenkins.tangyh.top/', 'IFRAME', '', 'Cloud', b'0', b'0', b'1', 80, '', b'0', b'1', NULL, NULL, NULL, '/160833820721938437/', 1, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (249954310509559808, 2, 'tenant:ops', '运维平台', '20', 0, '01', '', '/ops', 'LAYOUT', '/ops/template', 'Tool', b'0', b'0', b'1', 60, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (249954310509559809, 2, 'tenant:ops:interfaces', '接口管理', '20', 249954310509559808, '01', '', '/ops/interface', '/devOperation/ops/defInterface/index', '', 'Hierarchy', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/249954310509559808/', 1, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (249954310509559810, 2, 'tenant:ops:interface:log', '接口日志', '20', 249954310509559808, '01', '', '/ops/log', '/devOperation/ops/defInterfaceLog/index', '', 'Headset', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/249954310509559808/', 1, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (249954310509559811, 2, 'tenant:ops:template', '消息模板', '20', 249954310509559808, '01', '', '/ops/template', '/devOperation/ops/defMsgTemplate/index', '', 'BrandMedium', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/249954310509559808/', 1, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (249954310509559812, 2, 'tenant:ops:interfaces:property', '接口设置', '20', 249954310509559809, '01', '', '/ops/interface/property/:id', '/devOperation/ops/defInterface/property/index', '', '', b'1', b'0', b'1', 1, '', b'0', b'1', NULL, NULL, NULL, '/249954310509559809/249954310509559808/', 2, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (249954310509559813, 2, 'tenant:ops:interfaces:log:logging', '日志执行记录', '20', 249954310509559810, '01', '', '/ops/log/:id', '/devOperation/ops/defInterfaceLogging/index', '', '', b'1', b'0', b'1', 1, '', b'0', b'1', NULL, NULL, NULL, '/249954310509559808/249954310509559810/', 2, '{\"currentActiveMenu\":\"/ops/log\"}', 1452186486253289472, '2021-12-12 12:12:12', 2, '2024-05-15 23:07:37', 0);
INSERT INTO `def_resource` VALUES (250025856074776576, 2, 'tenant:ops:interfaces:add', '新增', '40', 249954310509559809, '01', '', '', '', '', '', b'0', b'0', b'1', 2, '', b'0', b'1', NULL, NULL, NULL, '/249954310509559809/249954310509559808/', 2, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
@@ -1902,45 +1885,35 @@ INSERT INTO `def_resource` VALUES (250025856074776582, 2, 'tenant:ops:template:a
INSERT INTO `def_resource` VALUES (250025856074776583, 2, 'tenant:ops:template:edit', '编辑', '40', 249954310509559811, '01', '', '', '', '', '', b'0', b'0', b'1', 2, '', b'0', b'1', NULL, NULL, NULL, '/249954310509559811/249954310509559808/', 2, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (250025856074776584, 2, 'tenant:ops:template:delete', '删除', '40', 249954310509559811, '01', '', '', '', '', '', b'0', b'0', b'1', 3, '', b'0', b'1', NULL, NULL, NULL, '/249954310509559811/249954310509559808/', 2, '', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (281548296097366035, 3, '111:111', '11', '20', 0, '01', '', '/111:111', '/123', '', '', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 1452186486253289472, '2022-10-13 17:16:26', 1452186486253289472, '2024-01-10 11:36:08', 0);
INSERT INTO `def_resource` VALUES (281548296097366040, 3, '111:1', '11-1', '40', 281548296097366035, '01', '', '', '', '', '', b'0', b'0', b'1', 1000, '', b'0', b'1', NULL, NULL, NULL, '/281548296097366035/', 1, '{}', 1452186486253289472, '2022-10-13 17:16:49', 1452186486253289472, '2022-10-13 17:16:49', 0);
INSERT INTO `def_resource` VALUES (281548296097366045, 3, '111:2', '11-2', '40', 281548296097366035, '01', '', '', '', '', '', b'0', b'0', b'1', 1001, '', b'0', b'1', NULL, NULL, NULL, '/281548296097366035/', 1, '{}', 1452186486253289472, '2022-10-13 17:17:06', 1452186486253289472, '2022-10-13 17:17:06', 0);
INSERT INTO `def_resource` VALUES (281548296097366050, 3, '111:3', '11-3', '40', 281548296097366035, '01', '', '', '', '', '', b'0', b'0', b'1', 1002, '', b'0', b'1', NULL, NULL, NULL, '/281548296097366035/', 1, '{}', 1452186486253289472, '2022-10-13 17:17:20', 1452186486253289472, '2022-10-13 17:17:20', 0);
INSERT INTO `def_resource` VALUES (281548296097366055, 3, '111:1:1', '11-1-1', '40', 281548296097366040, '01', '', '', '', '', '', b'0', b'0', b'1', 1000, '', b'0', b'1', NULL, NULL, NULL, '/281548296097366035/281548296097366040/', 2, '{}', 1452186486253289472, '2022-10-13 17:17:34', 1452186486253289472, '2022-10-13 17:17:34', 0);
INSERT INTO `def_resource` VALUES (281548296097366060, 3, '111:1:2', '11-1-2', '40', 281548296097366040, '01', '', '', '', '', '', b'0', b'0', b'1', 1000, '', b'0', b'1', NULL, NULL, NULL, '/281548296097366035/281548296097366040/', 2, '{}', 1452186486253289472, '2022-10-13 17:17:43', 1452186486253289472, '2022-10-13 17:17:43', 0);
INSERT INTO `def_resource` VALUES (281548296097366065, 3, '111:2:1', '11-2-1', '40', 281548296097366045, '01', '', '', '', '', '', b'0', b'0', b'1', 1000, '', b'0', b'1', NULL, NULL, NULL, '/281548296097366035/281548296097366045/', 2, '{}', 1452186486253289472, '2022-10-13 17:17:55', 1452186486253289472, '2022-10-13 17:17:55', 0);
INSERT INTO `def_resource` VALUES (281548296097366070, 3, '111:2:2', '11-2-2', '40', 281548296097366045, '01', '', '', '', '', '', b'0', b'0', b'1', 1002, '', b'0', b'1', NULL, NULL, NULL, '/281548296097366035/281548296097366045/', 2, '', 1452186486253289472, '2022-10-13 17:18:31', 1452186486253289472, '2022-10-13 17:18:31', 0);
INSERT INTO `def_resource` VALUES (281548296097366075, 3, '111:1:1:1', '11-1-1-1', '40', 281548296097366055, '01', '', '', '', '', '', b'0', b'0', b'1', 1000, '', b'0', b'1', NULL, NULL, NULL, '/281548296097366035/281548296097366040/281548296097366055/', 3, '', 1452186486253289472, '2022-10-13 17:18:51', 1452186486253289472, '2022-10-13 17:18:51', 0);
INSERT INTO `def_resource` VALUES (281548296097366080, 3, '111:1:1:2', '11-1-1-2', '40', 281548296097366055, '01', '', '', '', '', '', b'0', b'0', b'1', 1000, '', b'0', b'1', NULL, NULL, NULL, '/281548296097366035/281548296097366040/281548296097366055/', 3, '', 1452186486253289472, '2022-10-13 17:19:04', 1452186486253289472, '2022-10-13 17:19:04', 0);
INSERT INTO `def_resource` VALUES (281886056620490965, 2, 'tenant:application:resource:move', '移动', '40', 137848577387921414, '01', '', '', '', '', '', b'0', b'0', b'1', 40, '', b'0', b'1', NULL, NULL, NULL, '/137848577387921409/137848577387921414/', 2, '', 1452186486253289472, '2022-10-14 16:22:44', 1452186486253289472, '2022-10-14 16:22:44', 0);
INSERT INTO `def_resource` VALUES (281886056620490972, 2, 'tenant:application:application:resource:move', '移动', '40', 137848577387921421, '01', '', '', '', '', '', b'0', b'0', b'1', 40, '', b'0', b'1', NULL, NULL, NULL, '/137848577387921409/137848577387921413/137848577387921421/', 3, '', 1452186486253289472, '2022-10-14 16:23:29', 1452186486253289472, '2022-10-14 16:23:29', 0);
INSERT INTO `def_resource` VALUES (440245452193945600, 2, 'tenant:ops:template:test', '测试消息', '40', 249954310509559811, '01', '', '', '', '', '', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/249954310509559808/249954310509559811/', 2, '', 1452186486253289472, '2023-12-15 09:17:08', 1452186486253289472, '2023-12-15 09:17:08', 0);
INSERT INTO `def_resource` VALUES (519674983933380615, 3, 'atgtest', 'atgtest', '20', 0, '01', '', '/patgtest', 'atgtest/dindex', '', '', b'0', b'0', b'1', 1000, '', b'0', b'1', NULL, NULL, b'0', '/', 0, '', 2, '2024-07-16 10:05:50', 2, '2024-07-16 10:05:50', 0);
INSERT INTO `def_resource` VALUES (519674983933380627, 3, 'aaa2', 'atg2-uuuu', '20', 0, '01', '', '/dddde', 'dd/de/index', '', '', b'0', b'0', b'1', 1002, '', b'0', b'1', NULL, NULL, b'0', '/', 0, '', 2, '2024-07-16 10:13:01', 2, '2024-07-16 10:21:23', 0);
INSERT INTO `def_resource` VALUES (519674983933380627, 3, 'aaa2', 'c', '20', 0, '01', '', '/dddde', 'dd/de/index', '', '', b'0', b'0', b'1', 1002, '', b'0', b'1', NULL, NULL, b'0', '/', 0, '', 2, '2024-07-16 10:13:01', 2, '2024-07-16 10:21:23', 0);
INSERT INTO `def_resource` VALUES (519678729144863756, 3, 'eeee', 'ddddddd', '20', 0, '01', '', '/demo/curld', 'dd', '', '', b'0', b'0', b'1', 1005, '', b'0', b'1', NULL, NULL, b'0', '/', 0, '', 2, '2024-07-16 10:21:52', 2, '2024-07-16 10:21:52', 0);
INSERT INTO `def_resource` VALUES (529783477227333632, 2, 'tenant:system:online', '在线用户', '20', 143911967403278336, '01', '', '/system/online', 'devOperation/system/online/index', '', 'ant-design:user-outlined', b'0', b'0', b'1', 80, '', b'0', b'1', NULL, NULL, b'0', '/143911967403278336/', 1, '', 2, '2024-08-12 16:19:57', 2, '2024-08-12 16:21:25', 0);
INSERT INTO `def_resource` VALUES (529783477227333635, 2, 'tenant:system:online:kickout', '踢人下线', '40', 529783477227333632, '01', '', '', '', '', '', b'0', b'0', b'1', 1, '', b'0', b'1', NULL, NULL, b'0', '/143911967403278336/529783477227333632/', 2, '', 2, '2024-08-12 16:20:22', 2, '2024-08-12 16:20:22', 0);
INSERT INTO `def_resource` VALUES (529783477227333637, 2, 'tenant:system:online:logout', '强制注销', '40', 529783477227333632, '01', '', '', '', '', '', b'0', b'0', b'1', 2, '', b'0', b'1', NULL, NULL, b'0', '/143911967403278336/529783477227333632/', 2, '', 2, '2024-08-12 16:20:53', 2, '2024-08-12 16:20:53', 0);
INSERT INTO `def_resource` VALUES (1448315264151060480, 2, 'tenant:system:param', '参数维护', '20', 143911967403278336, '01', '', '/system/parameter', '/devOperation/system/defParameter/index', '', 'ant-design:profile-outlined', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1448315406962917376, 2, 'tenant:system:area', '地区维护', '20', 143911967403278336, '01', '', '/system/area', '/devOperation/system/defArea/index', '', 'ant-design:area-chart-outlined', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1448315861369618432, 2, 'tenant:system:client', '客户端维护', '20', 143911967403278336, '01', '', '/system/client', '/devOperation/system/defClient/index', '', 'ant-design:android-outlined', b'0', b'0', b'1', 40, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449391740313141248, 2, 'tenant:system:dict', '字典维护', '20', 143911967403278336, '01', '', '/system/dict', '/devOperation/system/dict/index', '', 'ant-design:book-twotone', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1448315264151060480, 2, 'tenant:system:param', '参数维护', '20', 143911967403278336, '01', '', '/system/parameter', '/devOperation/system/defParameter/index', '', 'Id', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1448315406962917376, 2, 'tenant:system:area', '地区维护', '20', 143911967403278336, '01', '', '/system/area', '/devOperation/system/defArea/index', '', 'ChartAreaLine', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1448315861369618432, 2, 'tenant:system:client', '客户端维护', '20', 143911967403278336, '01', '', '/system/client', '/devOperation/system/defClient/index', '', 'BrandAndroid', b'0', b'0', b'1', 40, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449391740313141248, 2, 'tenant:system:dict', '字典维护', '20', 143911967403278336, '01', '', '/system/dict', '/devOperation/system/dict/index', '', 'Book', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449723704727568384, 2, 'tenant:system:dict:add', '新增字典', '40', 1449391740313141248, '01', '', '', '', '', '', b'0', b'0', b'1', 1, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/1449391740313141248/', 2, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449723831227777024, 2, 'tenant:system:dict:edit', '编辑字典', '40', 1449391740313141248, '01', '', '', '', '', '', b'0', b'0', b'1', 2, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/1449391740313141248/', 2, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449723907798990848, 2, 'tenant:system:dict:delete', '删除字典', '40', 1449391740313141248, '01', '', '', '', '', '', b'0', b'0', b'1', 3, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/1449391740313141248/', 2, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449724021556903936, 2, 'tenant:system:dict:addItem', '新增字典项', '40', 1449391740313141248, '01', '', '', '', '', '', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/1449391740313141248/', 2, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449724119569399808, 2, 'tenant:system:dict:editItem', '编辑字典项', '40', 1449391740313141248, '01', '', '', '', '', '', b'0', b'0', b'1', 11, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/1449391740313141248/', 2, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449724196207722496, 2, 'tenant:system:dict:deleteItem', '删除字典项', '40', 1449391740313141248, '01', '', '', '', '', '', b'0', b'0', b'1', 13, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/1449391740313141248/', 2, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449732267470487552, 1, 'basic:user', '用户中心', '20', 0, '01', '', '/user', 'LAYOUT', '/user/employee', 'ant-design:usergroup-add-outlined', b'0', b'0', b'1', 40, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 2, '2021-12-12 12:12:12', 2, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449733521265393664, 1, 'basic:msg', '消息中心', '20', 0, '01', '', '/msg', 'LAYOUT', '/msg/myMsg', 'ant-design:message-outlined', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 2, '2021-12-12 12:12:12', 2, '2024-10-08 15:35:37', 0);
INSERT INTO `def_resource` VALUES (1449733787893104640, 1, 'basic:msg:myMsg', '我的消息', '20', 1449733521265393664, '01', '', '/msg/myMsg', '/basic/msg/extendNotice/index', '', 'wpf-my-topic', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/1449733521265393664/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449734007292952576, 1, 'basic:msg:msg', '消息管理', '20', 1449733521265393664, '01', '', '/msg/msg', '/basic/msg/extendMsg/index', '', 'codicon-repo-push', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/1449733521265393664/', 1, '{\"content\":\"数据权限\"}', 2, '2021-12-12 12:12:12', 2, '2024-04-10 15:12:13', 0);
INSERT INTO `def_resource` VALUES (1449734450995789824, 1, 'basic:system:role', '角色权限维护', '20', 144313439471271947, '01', '', '/system/role', '/basic/system/baseRole/index', '', 'ant-design:lock-outlined', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/144313439471271947/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449734707225821184, 1, 'basic:system:appendix', '附件管理', '20', 144313439471271947, '01', '', '/system/file', '/basic/system/baseFile/index', '', 'ant-design:file-sync-outlined', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/144313439471271947/', 1, '{}', 2, '2021-10-17 21:51:04', 1452186486253289472, '2021-12-12 00:50:10', 0);
INSERT INTO `def_resource` VALUES (1449734944434683904, 1, 'basic:system:webLog', '操作日志', '20', 144313439471271947, '01', '', '/system/operationLog', '/basic/system/baseOperationLog/index', '', 'ant-design:reconciliation-outlined', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/144313439471271947/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449735103088427008, 1, 'basic:system:loginLog', '登录日志', '20', 144313439471271947, '01', '', '/sysFunction/loginLog', '/basic/system/baseLoginLog/index', '', 'ant-design:login-outlined', b'0', b'0', b'1', 40, '', b'0', b'1', NULL, NULL, NULL, '/144313439471271947/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449738119237599232, 1, 'basic:user:org', '组织机构', '20', 1449732267470487552, '01', '', '/user/org', '/basic/user/baseOrg/index', '', 'ant-design:cluster-outlined', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/1449732267470487552/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449738581135327232, 1, 'basic:user:employee', '员工维护', '20', 1449732267470487552, '01', '', '/user/employee', '/basic/user/baseEmployee/index', '', 'ant-design:user-add-outlined', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/1449732267470487552/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449739134456299520, 1, 'basic:user:position', '岗位维护', '20', 1449732267470487552, '01', '', '/user/position', '/basic/user/basePosition/index', '', 'eos-icons:job', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/1449732267470487552/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449732267470487552, 1, 'basic:user', '用户中心', '20', 0, '01', '', '/user', 'LAYOUT', '/user/employee', 'Users', b'0', b'0', b'1', 40, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 2, '2021-12-12 12:12:12', 2, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449733521265393664, 1, 'basic:msg', '消息中心', '20', 0, '01', '', '/msg', 'LAYOUT', '/msg/myMsg', 'MessageCircle', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/', 0, '{}', 2, '2021-12-12 12:12:12', 2, '2024-10-08 15:35:37', 0);
INSERT INTO `def_resource` VALUES (1449733787893104640, 1, 'basic:msg:myMsg', '我的消息', '20', 1449733521265393664, '01', '', '/msg/myMsg', '/basic/msg/extendNotice/index', '', 'Notebook', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/1449733521265393664/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449734007292952576, 1, 'basic:msg:msg', '消息管理', '20', 1449733521265393664, '01', '', '/msg/msg', '/basic/msg/extendMsg/index', '', 'GitCommit', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/1449733521265393664/', 1, '{\"content\":\"数据权限\"}', 2, '2021-12-12 12:12:12', 2, '2024-04-10 15:12:13', 0);
INSERT INTO `def_resource` VALUES (1449734450995789824, 1, 'basic:system:role', '角色权限维护', '20', 144313439471271947, '01', '', '/system/role', '/basic/system/baseRole/index', '', 'Lock', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/144313439471271947/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449734707225821184, 1, 'basic:system:appendix', '附件管理', '20', 144313439471271947, '01', '', '/system/file', '/basic/system/baseFile/index', '', 'Refresh', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/144313439471271947/', 1, '{}', 2, '2021-10-17 21:51:04', 1452186486253289472, '2021-12-12 00:50:10', 0);
INSERT INTO `def_resource` VALUES (1449734944434683904, 1, 'basic:system:webLog', '操作日志', '20', 144313439471271947, '01', '', '/system/operationLog', '/basic/system/baseOperationLog/index', '', 'Receipt', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/144313439471271947/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449735103088427008, 1, 'basic:system:loginLog', '登录日志', '20', 144313439471271947, '01', '', '/sysFunction/loginLog', '/basic/system/baseLoginLog/index', '', 'Login', b'0', b'0', b'1', 40, '', b'0', b'1', NULL, NULL, NULL, '/144313439471271947/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449738119237599232, 1, 'basic:user:org', '组织机构', '20', 1449732267470487552, '01', '', '/user/org', '/basic/user/baseOrg/index', '', 'Server', b'0', b'0', b'1', 20, '', b'0', b'1', NULL, NULL, NULL, '/1449732267470487552/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449738581135327232, 1, 'basic:user:employee', '员工维护', '20', 1449732267470487552, '01', '', '/user/employee', '/basic/user/baseEmployee/index', '', 'UserPlus', b'0', b'0', b'1', 10, '', b'0', b'1', NULL, NULL, NULL, '/1449732267470487552/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1449739134456299520, 1, 'basic:user:position', '岗位维护', '20', 1449732267470487552, '01', '', '/user/position', '/basic/user/basePosition/index', '', 'Briefcase', b'0', b'0', b'1', 30, '', b'0', b'1', NULL, NULL, NULL, '/1449732267470487552/', 1, '{}', 2, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1457620408604819456, 1, 'basic:user:employee:add', '新增', '40', 1449738581135327232, '01', '', '', '', '', '', b'0', b'0', b'1', 1, '', b'0', b'1', NULL, NULL, NULL, '/1449732267470487552/1449738581135327232/', 2, '{}', 1451549146992345088, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1457620470995091456, 1, 'basic:user:employee:edit', '编辑', '40', 1449738581135327232, '01', '', '', '', '', '', b'0', b'0', b'1', 2, '', b'0', b'1', NULL, NULL, NULL, '/1449732267470487552/1449738581135327232/', 2, '{}', 1451549146992345088, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1457620528469639168, 1, 'basic:user:employee:delete', '删除', '40', 1449738581135327232, '01', '', '', '', '', '', b'0', b'0', b'1', 3, '', b'0', b'1', NULL, NULL, NULL, '/1449732267470487552/1449738581135327232/', 2, '{}', 1451549146992345088, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
@@ -1958,7 +1931,7 @@ INSERT INTO `def_resource` VALUES (1457668602952941568, 1, 'basic:system:role:ed
INSERT INTO `def_resource` VALUES (1457668655000059904, 1, 'basic:system:role:delete', '删除', '40', 1449734450995789824, '01', '', '', '', '', '', b'0', b'0', b'1', 3, '', b'0', b'1', NULL, NULL, NULL, '/144313439471271947/1449734450995789824/', 2, '{}', 1451549146992345088, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1457668749124435968, 1, 'basic:system:role:bindUser', '绑定用户', '40', 1449734450995789824, '01', '', '', '', '', '', b'0', b'0', b'1', 3, '', b'0', b'1', NULL, NULL, NULL, '/144313439471271947/1449734450995789824/', 2, '{}', 1451549146992345088, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1457668844297388032, 1, 'basic:system:role:bindResource', '配置资源', '40', 1449734450995789824, '01', '', '', '', '', '', b'0', b'0', b'1', 6, '', b'0', b'1', NULL, NULL, NULL, '/144313439471271947/1449734450995789824/', 2, '{}', 1451549146992345088, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1459061181095346176, 2, 'tenant:system:loginLog', '全局登录日志', '20', 143911967403278336, '01', '', '/system/loginLog', '/devOperation/system/defLoginLog/index', '', 'ant-design:login-outlined', b'0', b'0', b'1', 60, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/', 1, '{}', 1452186486253289472, '2021-12-12 12:12:12', 2, '2024-01-16 09:48:00', 0);
INSERT INTO `def_resource` VALUES (1459061181095346176, 2, 'tenant:system:loginLog', '全局登录日志', '20', 143911967403278336, '01', '', '/system/loginLog', '/devOperation/system/defLoginLog/index', '', 'Login', b'0', b'0', b'1', 60, '', b'0', b'1', NULL, NULL, NULL, '/143911967403278336/', 1, '{}', 1452186486253289472, '2021-12-12 12:12:12', 2, '2024-01-16 09:48:00', 0);
INSERT INTO `def_resource` VALUES (1460436763976663040, 1, 'basic:msg:msg:add', '发布消息', '20', 1449734007292952576, '01', '', '/msg/msg/:type/:id', '/basic/msg/extendMsg/Edit', '', '', b'1', b'0', b'1', 1, '', b'0', b'1', NULL, NULL, NULL, '/1449733521265393664/1449734007292952576/', 2, '{\"currentActiveMenu\":\"/msg/msg\"}', 1452186486253289472, '2021-12-12 12:12:12', 2, '2024-05-15 23:04:39', 0);
INSERT INTO `def_resource` VALUES (1460436856054218752, 1, 'basic:msg:msg:edit', '编辑', '40', 1449734007292952576, '01', '', '', '', '', '', b'0', b'0', b'1', 2, '', b'0', b'1', NULL, NULL, NULL, '/1449734007292952576/1449733521265393664/', 2, '{}', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
INSERT INTO `def_resource` VALUES (1460436934051495936, 1, 'basic:msg:msg:delete', '删除', '40', 1449734007292952576, '01', '', '', '', '', '', b'0', b'0', b'1', 5, '', b'0', b'1', NULL, NULL, NULL, '/1449734007292952576/1449733521265393664/', 2, '{}', 1452186486253289472, '2021-12-12 12:12:12', 1452186486253289472, '2021-12-12 12:12:12', 0);
@@ -2056,31 +2029,16 @@ INSERT INTO `def_resource_api` VALUES (167990267029225521, 1457668749124435968,
INSERT INTO `def_resource_api` VALUES (167990267029225522, 1457668749124435968, 'BaseEmployeeController', 'lamp-base-server', 'POST', '员工-分页列表查询', '/base/baseEmployee/page', b'0', 1452186486253289472, '2021-12-12 01:04:05', 1452186486253289472, '2021-12-12 01:04:05', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225523, 1457668749124435968, 'BaseRoleController', 'lamp-base-server', 'POST', '角色-给角色分配员工', '/base/baseRole/roleEmployee', b'0', 1452186486253289472, '2021-12-12 01:04:05', 1452186486253289472, '2021-12-12 01:04:05', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225524, 1457668844297388032, 'BaseRoleController', 'lamp-base-server', 'POST', '角色-给角色配置资源', '/base/baseRole/roleResource', b'0', 1452186486253289472, '2021-12-12 01:04:38', 1452186486253289472, '2021-12-12 01:04:38', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225551, 137848577387921412, 'DefUserController', 'lamp-system-server', 'POST', '用户-分页列表查询', '/system/defUser/page', b'0', 1452186486253289472, '2021-12-12 13:14:03', 1452186486253289472, '2021-12-12 13:14:03', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225552, 1460542581971615744, 'DefUserController', 'lamp-system-server', 'POST', '用户-新增', '/system/defUser', b'0', 1452186486253289472, '2021-12-12 13:15:38', 1452186486253289472, '2021-12-12 13:15:38', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225553, 1460542629845401600, 'DefUserController', 'lamp-system-server', 'PUT', '用户-修改', '/system/defUser', b'0', 1452186486253289472, '2021-12-12 13:21:18', 1452186486253289472, '2021-12-12 13:21:18', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225554, 1460542675554926592, 'DefUserController', 'lamp-system-server', 'DELETE', '用户-删除', '/system/defUser', b'0', 1452186486253289472, '2021-12-12 13:21:32', 1452186486253289472, '2021-12-12 13:21:32', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225555, 160561957882036227, 'DefUserController', 'lamp-system-server', 'PUT', '用户-重置密码', '/system/defUser/resetPassword', b'0', 1452186486253289472, '2021-12-12 13:22:52', 1452186486253289472, '2021-12-12 13:22:52', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225556, 137848577387921413, 'DefApplicationController', 'lamp-system-server', 'POST', '应用-分页列表查询', '/system/defApplication/page', b'0', 1452186486253289472, '2021-12-12 13:24:38', 1452186486253289472, '2021-12-12 13:24:38', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225557, 137848577387921417, 'DefApplicationController', 'lamp-system-server', 'POST', '应用-新增', '/system/defApplication', b'0', 1452186486253289472, '2021-12-12 13:26:16', 1452186486253289472, '2021-12-12 13:26:16', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225558, 137848577387921419, 'DefApplicationController', 'lamp-system-server', 'POST', '应用-新增', '/system/defApplication', b'0', 1452186486253289472, '2021-12-12 15:48:50', 1452186486253289472, '2021-12-12 15:48:50', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225559, 137848577387921418, 'DefApplicationController', 'lamp-system-server', 'PUT', '应用-修改', '/system/defApplication', b'0', 1452186486253289472, '2021-12-12 15:49:05', 1452186486253289472, '2021-12-12 15:49:05', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225562, 137848577387921421, 'DefApplicationController', 'lamp-system-server', 'POST', '应用-批量查询', '/system/defApplication/query', b'0', 1452186486253289472, '2021-12-12 15:53:35', 1452186486253289472, '2021-12-12 15:53:35', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225563, 137848577387921421, 'DefResourceController', 'lamp-system-server', 'POST', '资源-查询系统所有的资源', '/system/defResource/tree', b'0', 1452186486253289472, '2021-12-12 15:53:35', 1452186486253289472, '2021-12-12 15:53:35', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225564, 137848577387921421, 'DefResourceController', 'lamp-system-server', 'GET', '资源-单体查询', '/system/defResource/{id}', b'0', 1452186486253289472, '2021-12-12 15:53:35', 1452186486253289472, '2021-12-12 15:53:35', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225568, 1460547377491345408, 'DefResourceController', 'lamp-system-server', 'DELETE', '资源-删除', '/system/defResource', b'0', 1452186486253289472, '2021-12-12 15:57:35', 1452186486253289472, '2021-12-12 15:57:35', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225569, 137848577387921422, 'DefResourceController', 'lamp-system-server', 'POST', '资源-新增', '/system/defResource', b'0', 1452186486253289472, '2021-12-12 15:58:48', 1452186486253289472, '2021-12-12 15:58:48', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225570, 137848577387921422, 'DefResourceController', 'lamp-system-server', 'GET', '资源-检测资源编码是否可用', '/system/defResource/check', b'0', 1452186486253289472, '2021-12-12 15:58:48', 1452186486253289472, '2021-12-12 15:58:48', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225571, 137848577387921422, 'DefResourceController', 'lamp-system-server', 'GET', '资源-检测资源路径是否可用', '/system/defResource/checkPath', b'0', 1452186486253289472, '2021-12-12 15:58:48', 1452186486253289472, '2021-12-12 15:58:48', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225572, 137848577387921422, 'DefResourceController', 'lamp-system-server', 'GET', '资源-检测资源名称是否可用', '/system/defResource/checkName', b'0', 1452186486253289472, '2021-12-12 15:58:48', 1452186486253289472, '2021-12-12 15:58:48', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225573, 1460547251804831744, 'DefResourceController', 'lamp-system-server', 'PUT', '资源-修改', '/system/defResource', b'0', 1452186486253289472, '2021-12-12 15:59:08', 1452186486253289472, '2021-12-12 15:59:08', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225574, 1460547251804831744, 'DefResourceController', 'lamp-system-server', 'GET', '资源-单体查询', '/system/defResource/{id}', b'0', 1452186486253289472, '2021-12-12 15:59:08', 1452186486253289472, '2021-12-12 15:59:08', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225575, 1460547251804831744, 'DefResourceController', 'lamp-system-server', 'GET', '资源-检测资源路径是否可用', '/system/defResource/checkPath', b'0', 1452186486253289472, '2021-12-12 15:59:08', 1452186486253289472, '2021-12-12 15:59:08', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225576, 1460547251804831744, 'DefResourceController', 'lamp-system-server', 'GET', '资源-检测资源编码是否可用', '/system/defResource/check', b'0', 1452186486253289472, '2021-12-12 15:59:08', 1452186486253289472, '2021-12-12 15:59:08', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225577, 1460547251804831744, 'DefResourceController', 'lamp-system-server', 'GET', '资源-检测资源名称是否可用', '/system/defResource/checkName', b'0', 1452186486253289472, '2021-12-12 15:59:08', 1452186486253289472, '2021-12-12 15:59:08', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225578, 137848577387921414, 'DefApplicationController', 'lamp-system-server', 'POST', '应用-批量查询', '/system/defApplication/query', b'0', 1452186486253289472, '2021-12-12 17:29:18', 1452186486253289472, '2021-12-12 17:29:18', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225579, 137848577387921414, 'DefResourceController', 'lamp-system-server', 'POST', '资源-查询系统所有的资源', '/system/defResource/tree', b'0', 1452186486253289472, '2021-12-12 17:29:18', 1452186486253289472, '2021-12-12 17:29:18', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225580, 137848577387921414, 'DefResourceController', 'lamp-system-server', 'GET', '资源-单体查询', '/system/defResource/{id}', b'0', 1452186486253289472, '2021-12-12 17:29:18', 1452186486253289472, '2021-12-12 17:29:18', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225581, 139496646533709824, 'DefResourceController', 'lamp-system-server', 'POST', '资源-新增', '/system/defResource', b'0', 1452186486253289472, '2021-12-12 17:29:49', 1452186486253289472, '2021-12-12 17:29:49', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225582, 139496646533709824, 'DefResourceController', 'lamp-system-server', 'GET', '资源-检测资源路径是否可用', '/system/defResource/checkPath', b'0', 1452186486253289472, '2021-12-12 17:29:49', 1452186486253289472, '2021-12-12 17:29:49', 0);
INSERT INTO `def_resource_api` VALUES (167990267029225583, 139496646533709824, 'DefResourceController', 'lamp-system-server', 'GET', '资源-检测资源编码是否可用', '/system/defResource/check', b'0', 1452186486253289472, '2021-12-12 17:29:49', 1452186486253289472, '2021-12-12 17:29:49', 0);
@@ -2127,7 +2085,6 @@ INSERT INTO `def_resource_api` VALUES (169380096971374665, 1460542629845401600,
INSERT INTO `def_resource_api` VALUES (169380096971374666, 1460542629845401600, 'DefUserController', 'lamp-system-server', 'GET', '用户-检测用户名是否存在', '/system/defUser/checkUsername', b'0', 1452186486253289472, '2021-12-15 16:47:16', 1452186486253289472, '2021-12-15 16:47:16', 0);
INSERT INTO `def_resource_api` VALUES (169380096971374667, 1460542629845401600, 'DefUserController', 'lamp-system-server', 'GET', '用户-检测邮箱是否存在', '/system/defUser/checkEmail', b'0', 1452186486253289472, '2021-12-15 16:47:16', 1452186486253289472, '2021-12-15 16:47:16', 0);
INSERT INTO `def_resource_api` VALUES (169380096971374668, 1460542629845401600, 'DefUserController', 'lamp-system-server', 'GET', '用户-检测身份证是否存在', '/system/defUser/checkIdCard', b'0', 1452186486253289472, '2021-12-15 16:47:16', 1452186486253289472, '2021-12-15 16:47:16', 0);
INSERT INTO `def_resource_api` VALUES (169380096971374673, 137848577387921420, 'DefApplicationController', 'lamp-system-server', 'DELETE', '应用-删除', '/system/defApplication', b'0', 1452186486253289472, '2021-12-15 17:01:38', 1452186486253289472, '2021-12-15 17:01:38', 0);
INSERT INTO `def_resource_api` VALUES (169380096971374676, 1449724021556903936, 'DefDictItemController', 'lamp-system-server', 'GET', '字典项-检测字典项标识是否可用', '/system/defDictItem/check', b'0', 1452186486253289472, '2021-12-15 17:13:15', 1452186486253289472, '2021-12-15 17:13:15', 0);
INSERT INTO `def_resource_api` VALUES (169380096971374678, 1449724119569399808, 'DefDictItemController', 'lamp-system-server', 'GET', '字典项-检测字典项标识是否可用', '/system/defDictItem/check', b'0', 1452186486253289472, '2021-12-15 17:13:36', 1452186486253289472, '2021-12-15 17:13:36', 0);
INSERT INTO `def_resource_api` VALUES (169380096971374682, 1460547739937931264, 'DefParameterController', 'lamp-system-server', 'GET', '参数配置-检测参数键是否可用', '/system/defParameter/check', b'0', 1452186486253289472, '2021-12-15 17:16:37', 1452186486253289472, '2021-12-15 17:16:37', 0);
@@ -2224,14 +2181,6 @@ INSERT INTO `def_resource_api` VALUES (254523790640283655, 1460436856054218752,
INSERT INTO `def_resource_api` VALUES (254523790640283656, 1460436934051495936, 'ExtendMsgController', 'lamp-base-server', 'DELETE', '消息-删除', '/base/extendMsg', b'0', 1452186486253289472, '2022-08-01 21:52:35', 1452186486253289472, '2022-08-01 21:52:35', 0);
INSERT INTO `def_resource_api` VALUES (281886056620490966, 281886056620490965, 'DefResourceController', 'lamp-system-server', 'PUT', '资源-移动资源', '/system/defResource/moveResource', b'0', 1452186486253289472, '2022-10-14 16:22:44', 1452186486253289472, '2022-10-14 16:22:44', 0);
INSERT INTO `def_resource_api` VALUES (281886056620490967, 281886056620490965, 'DefResourceController', 'lamp-system-server', 'POST', '资源-查询系统所有的资源', '/system/defResource/tree', b'0', 1452186486253289472, '2022-10-14 16:22:44', 1452186486253289472, '2022-10-14 16:22:44', 0);
INSERT INTO `def_resource_api` VALUES (281886056620490973, 281886056620490972, 'DefResourceController', 'lamp-system-server', 'PUT', '资源-移动资源', '/system/defResource/moveResource', b'0', 1452186486253289472, '2022-10-14 16:23:29', 1452186486253289472, '2022-10-14 16:23:29', 0);
INSERT INTO `def_resource_api` VALUES (281886056620490974, 281886056620490972, 'DefResourceController', 'lamp-system-server', 'POST', '资源-查询系统所有的资源', '/system/defResource/tree', b'0', 1452186486253289472, '2022-10-14 16:23:29', 1452186486253289472, '2022-10-14 16:23:29', 0);
INSERT INTO `def_resource_api` VALUES (440245452193945601, 440245452193945600, 'DefMsgTemplateController', 'lamp-system-server', 'GET', '消息模板查询单体详情', '/system/defMsgTemplate/detail', b'0', 1452186486253289472, '2023-12-15 09:17:08', 1452186486253289472, '2023-12-15 09:17:08', 0);
INSERT INTO `def_resource_api` VALUES (440245452193945602, 440245452193945600, 'ExtendMsgController', 'lamp-base-server', 'POST', '消息根据模板发送消息', '/base/extendMsg/sendByTemplate', b'0', 1452186486253289472, '2023-12-15 09:17:08', 1452186486253289472, '2023-12-15 09:17:08', 0);
INSERT INTO `def_resource_api` VALUES (529783477227333636, 529783477227333635, 'DefUserController', 'lamp-system-server', 'POST', '用户踢人下线', '/system/defUser/onlineUsers/kickout', b'0', 2, '2024-08-12 16:20:22', 2, '2024-08-12 16:20:22', 0);
INSERT INTO `def_resource_api` VALUES (529783477227333638, 529783477227333637, 'DefUserController', 'lamp-system-server', 'POST', '用户强制注销', '/system/defUser/onlineUsers/logout', b'0', 2, '2024-08-12 16:20:53', 2, '2024-08-12 16:20:53', 0);
INSERT INTO `def_resource_api` VALUES (529783477227333639, 529783477227333632, 'DefUserController', 'lamp-system-server', 'POST', '用户获取此 Session 绑定的 Token 签名列表 ', '/system/defUser/onlineUsers/getTokenSignList', b'0', 2, '2024-08-12 16:21:25', 2, '2024-08-12 16:21:25', 0);
INSERT INTO `def_resource_api` VALUES (529783477227333640, 529783477227333632, 'DefUserController', 'lamp-system-server', 'POST', '用户获取在线人员', '/system/defUser/onlineUsers/page', b'0', 2, '2024-08-12 16:21:25', 2, '2024-08-12 16:21:25', 0);
-- ----------------------------
-- Table structure for def_tenant
@@ -2244,8 +2193,9 @@ CREATE TABLE `def_tenant` (
`contact_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '联系人',
`contact_mobile` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '联系手机',
`status` tinyint NOT NULL DEFAULT 0 COMMENT '租户状态0正常 1停用',
`state` tinyint NOT NULL DEFAULT 0 COMMENT 'state (正式租户、非正式租户的停用启用状态)',
`state` tinyint NOT NULL DEFAULT 1 COMMENT 'state (正式租户、非正式租户的停用启用状态)',
`website` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '绑定域名',
`register_type` tinyint NOT NULL DEFAULT 0 COMMENT '类型;#{CREATE:创建;REGISTER:注册}',
`package_id` bigint NOT NULL COMMENT '租户套餐编号',
`expire_time` datetime NOT NULL COMMENT '过期时间',
`account_count` int NOT NULL COMMENT '账号数量',
@@ -2260,7 +2210,7 @@ CREATE TABLE `def_tenant` (
-- ----------------------------
-- Records of def_tenant
-- ----------------------------
INSERT INTO `def_tenant` VALUES (1, '系统默认租户', 1, '络火科技', '18173516309', 1, 0, '', 12, '2028-06-20 14:21:35', 5, NULL, NULL, NULL, NULL, 0);
INSERT INTO `def_tenant` VALUES (1, '系统默认租户', 1, '络火科技', '18173516309', 0, 1, '', 0, 12, '2028-06-20 14:21:35', 5, NULL, NULL, NULL, NULL, 0);
-- ----------------------------
-- Table structure for def_tenant_application_rel
@@ -2331,8 +2281,8 @@ CREATE TABLE `def_user` (
-- ----------------------------
-- Records of def_user
-- ----------------------------
INSERT INTO `def_user` VALUES (61170828519936, 2, '15147891644', 'HuLa小管家', '', '022', NULL, NULL, '', NULL, b'0', '', '', '1', b'1', '', '2025-08-11 11:11:03.139', '{\"createIp\": \"206.237.119.215\", \"updateIp\": \"120.231.232.41\", \"createIpDetail\": null, \"updateIpDetail\": null}', '2025-10-28 17:08:01', 2, NULL, 'a4d5c225e6709ba025272a31c7e90e0121d5e5ba16695afe0b61370bedb677d0', 'Dawn', '2025-07-07 15:27:02', 1, '2025-03-27 04:23:08', NULL, '2025-07-16 12:26:15', 0, 1);
INSERT INTO `def_user` VALUES (61170828519937, 2, '13275346112', 'Dawn', '2439646234@qq.com', 'https://cdn.hulaspark.com/avatar/2439646234/6ec99d37b8ba1296c325d2d36b46a14d.webp', NULL, NULL, '', NULL, b'0', '', '', '1', b'1', '', '2025-08-11 11:11:03.189', '{\"createIp\": \"206.237.119.215\", \"updateIp\": \"61.141.64.252\", \"createIpDetail\": null, \"updateIpDetail\": {\"ip\": \"61.141.64.252\", \"isp\": \"电信\", \"area\": \"\", \"city\": \"深圳\", \"isp_id\": \"100017\", \"region\": \"广东\", \"city_id\": \"440300\", \"country\": \"中国\", \"region_id\": \"440000\", \"country_id\": \"CN\"}}', NULL, 0, NULL, 'a4d5c225e6709ba025272a31c7e90e0121d5e5ba16695afe0b61370bedb677d0', 'Dawn', '2025-11-13 18:13:04', 1, '2025-03-27 04:23:08', NULL, '2025-11-13 18:42:30', 0, 1);
INSERT INTO `def_user` VALUES (61170828519936, 2, '15147891644', 'HuLa小管家', '', '022', NULL, NULL, '', NULL, b'0', '', '', '1', b'1', '', '2025-08-11 11:11:03.139', '{\"createIp\": \"206.237.119.215\", \"updateIp\": \"120.231.232.41\", \"createIpDetail\": null, \"updateIpDetail\": null}', '2025-11-17 09:42:12', 4, NULL, 'a4d5c225e6709ba025272a31c7e90e0121d5e5ba16695afe0b61370bedb677d0', 'Dawn', '2025-07-07 15:27:02', 1, '2025-03-27 04:23:08', NULL, '2025-07-16 12:26:15', 0, 1);
INSERT INTO `def_user` VALUES (61170828519937, 2, '13275346112', 'Dawn', '2439646234@qq.com', 'https://cdn.hulaspark.com/avatar/2439646234/6ec99d37b8ba1296c325d2d36b46a14d.webp', NULL, NULL, '', NULL, b'0', '', '', '1', b'1', '', '2025-08-11 11:11:03.189', '{\"createIp\": \"206.237.119.215\", \"updateIp\": \"121.35.47.142\", \"createIpDetail\": null, \"updateIpDetail\": {\"ip\": \"121.35.47.142\", \"isp\": \"电信\", \"area\": \"\", \"city\": \"深圳\", \"isp_id\": \"100017\", \"region\": \"广东\", \"city_id\": \"440300\", \"country\": \"中国\", \"region_id\": \"440000\", \"country_id\": \"CN\"}}', NULL, 0, NULL, 'a4d5c225e6709ba025272a31c7e90e0121d5e5ba16695afe0b61370bedb677d0', 'Dawn', '2025-11-20 19:26:45', 1, '2025-03-27 04:23:08', NULL, '2025-11-20 23:47:36', 0, 1);
-- ----------------------------
-- Table structure for def_user_application
@@ -2408,7 +2358,7 @@ CREATE TABLE `extend_interface_log` (
-- Records of extend_interface_log
-- ----------------------------
INSERT INTO `extend_interface_log` VALUES (66567882983426, 244439130119864323, '阿里短信', 0, 1, '2025-08-26 16:37:01', '2025-08-26 16:37:00', NULL, '2025-08-26 16:37:00', NULL, 0, 0);
INSERT INTO `extend_interface_log` VALUES (655249535051914248, 244881451621810192, '腾讯邮件', 977, 58, '2025-11-13 18:50:10', '2025-07-16 18:41:01', NULL, '2025-07-16 18:41:01', NULL, 0, 0);
INSERT INTO `extend_interface_log` VALUES (655249535051914248, 244881451621810192, '腾讯邮件', 1163, 62, '2025-11-21 14:50:31', '2025-07-16 18:41:01', NULL, '2025-07-16 18:41:01', NULL, 0, 0);
-- ----------------------------
-- Table structure for extend_interface_logging
@@ -2622,33 +2572,10 @@ CREATE TABLE `worker_node` (
`created` timestamp NULL DEFAULT NULL COMMENT '创建时间',
`is_del` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 976 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'DB;WorkerID Assigner for UID Generator' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 1011 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'DB;WorkerID Assigner for UID Generator' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of worker_node
-- ----------------------------
-- ----------------------------
-- Function structure for generate_account_by_id
-- ----------------------------
DROP FUNCTION IF EXISTS `generate_account_by_id`;
delimiter ;;
CREATE FUNCTION `generate_account_by_id`(user_id BIGINT)
RETURNS varchar(11) CHARSET utf8mb4 COLLATE utf8mb4_bin
DETERMINISTIC
BEGIN
DECLARE hash_value BIGINT UNSIGNED;
DECLARE account_number BIGINT;
-- 使用 MD5 哈希算法(避免溢出)
SET hash_value = CONV(SUBSTRING(MD5(user_id), 1, 10), 16, 10);
-- 生成11位账号10000000000 ~ 19999999999
SET account_number = 10000000000 + (hash_value % 10000000000);
RETURN CAST(account_number AS CHAR);
END
;;
delimiter ;
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -11,7 +11,7 @@
Target Server Version : 80030 (8.0.30)
File Encoding : 65001
Date: 13/11/2025 19:05:25
Date: 21/11/2025 14:56:13
*/
SET NAMES utf8mb4;
@@ -151,7 +151,7 @@ CREATE TABLE `im_contact` (
INDEX `idx_create_time`(`create_time` ASC) USING BTREE,
INDEX `idx_update_time`(`update_time` ASC) USING BTREE,
INDEX `idx_contact_room_uid_hide`(`room_id` ASC, `uid` ASC, `hide` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 69082079599864 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '会话列表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 69082079603081 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '会话列表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of im_contact
@@ -324,7 +324,7 @@ CREATE TABLE `im_group_member` (
INDEX `idx_create_time`(`create_time` ASC) USING BTREE,
INDEX `idx_update_time`(`update_time` ASC) USING BTREE,
INDEX `idx_group_member_uid_isdel_groupid`(`uid` ASC, `is_del` ASC, `group_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 95230070212610 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '群成员表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 98068775162882 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '群成员表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of im_group_member
@@ -387,7 +387,7 @@ CREATE TABLE `im_message` (
INDEX `idx_from_uid`(`from_uid` ASC) USING BTREE,
INDEX `idx_create_time`(`create_time` ASC) USING BTREE,
INDEX `idx_update_time`(`update_time` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 95230070212616 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '消息表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 98069286867969 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '消息表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of im_message
@@ -417,7 +417,7 @@ CREATE TABLE `im_message_mark` (
INDEX `idx_uid`(`uid` ASC) USING BTREE,
INDEX `idx_create_time`(`create_time` ASC) USING BTREE,
INDEX `idx_update_time`(`update_time` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 95124751238657 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '消息标记表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 96691856460801 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '消息标记表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of im_message_mark
@@ -449,7 +449,7 @@ CREATE TABLE `im_notice` (
INDEX `idx_receiver_type`(`receiver_id` ASC, `event_type` ASC) USING BTREE,
INDEX `idx_sender`(`sender_id` ASC) USING BTREE,
INDEX `idx_related`(`apply_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 95186432673283 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '统一通知表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 98015092265987 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '统一通知表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of im_notice
@@ -499,12 +499,12 @@ CREATE TABLE `im_room` (
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_create_time`(`create_time` ASC) USING BTREE,
INDEX `idx_update_time`(`update_time` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 95230070212611 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '房间表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 98068775162883 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '房间表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of im_room
-- ----------------------------
INSERT INTO `im_room` VALUES (1, 1, 1, '2025-11-13 18:50:18.862', 95230070212615, NULL, '2024-07-10 11:17:15.521', '2025-11-13 10:50:18.818', 1, 1, NULL, 0);
INSERT INTO `im_room` VALUES (1, 1, 1, '2025-11-21 14:52:20.024', 98069286867968, NULL, '2024-07-10 11:17:15.521', '2025-11-21 06:52:20.138', 1, 1, NULL, 0);
-- ----------------------------
-- Table structure for im_room_friend
@@ -529,7 +529,7 @@ CREATE TABLE `im_room_friend` (
INDEX `idx_room_id`(`room_id` ASC) USING BTREE,
INDEX `idx_create_time`(`create_time` ASC) USING BTREE,
INDEX `idx_update_time`(`update_time` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 95230070212612 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '单聊房间表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 98068775162884 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '单聊房间表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of im_room_friend
@@ -558,7 +558,7 @@ CREATE TABLE `im_room_group` (
INDEX `idx_room_id`(`room_id` ASC) USING BTREE,
INDEX `idx_create_time`(`create_time` ASC) USING BTREE,
INDEX `idx_update_time`(`update_time` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 94065177771011 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '群聊房间表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 97720639541763 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '群聊房间表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of im_room_group
@@ -641,13 +641,13 @@ CREATE TABLE `im_user` (
INDEX `idx_update_time`(`update_time` ASC) USING BTREE,
INDEX `idx_active_status_last_opt_time`(`last_opt_time` ASC) USING BTREE,
INDEX `account_UNIQUE`(`account` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 95230070212609 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 98068775162881 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of im_user
-- ----------------------------
INSERT INTO `im_user` VALUES (1, 61170828519936, 2, 'HuLa小管家', '022', '', '15147891644', NULL, '', 0, '2025-07-07 15:27:01.711', '{\"createIp\": \"206.237.119.215\", \"updateIp\": \"120.231.232.41\", \"createIpDetail\": {\"ip\": \"206.237.119.215\", \"isp\": \"\", \"area\": \"\", \"city\": \"\", \"isp_id\": \"\", \"region\": \"\", \"city_id\": \"\", \"country\": \"美国\", \"region_id\": \"\", \"country_id\": \"US\"}, \"updateIpDetail\": {\"ip\": \"120.231.232.41\", \"isp\": \"移动\", \"area\": \"\", \"city\": \"\", \"isp_id\": \"100025\", \"region\": \"广东\", \"city_id\": \"\", \"country\": \"中国\", \"region_id\": \"440000\", \"country_id\": \"CN\"}}', 6, 0, '', '2025-03-27 04:23:08.393', '2025-11-13 10:45:46.525', 'k.23772439646234', 0, NULL, 0, '2025-05-09 18:24:37.089', 0, 1, 10);
INSERT INTO `im_user` VALUES (10937855681024, 61170828519937, 3, 'Dawn', 'https://cdn.hulaspark.com/avatar/2439646234/97320189485dca88dcc7a70054445a56.webp', '2439646234@qq.com', '13275346112', NULL, '', 20, '2025-07-30 15:31:57.651', '{\"createIp\": \"206.237.119.215\", \"updateIp\": \"61.141.64.252\", \"createIpDetail\": null, \"updateIpDetail\": {\"ip\": \"61.141.64.252\", \"isp\": \"电信\", \"area\": \"\", \"city\": \"深圳\", \"isp_id\": \"100017\", \"region\": \"广东\", \"city_id\": \"440300\", \"country\": \"中国\", \"region_id\": \"440000\", \"country_id\": \"CN\"}}', 6, 0, '', '2025-03-27 04:23:08.393', '2025-11-13 10:45:46.525', 'k.2439646234', 0, NULL, 0, '2025-09-20 21:35:31.415', 0, 1, 10);
INSERT INTO `im_user` VALUES (1, 61170828519936, 2, 'HuLa小管家', '022', '', 'bot', NULL, '', 0, '2025-07-07 15:27:01.711', '{\"createIp\": \"206.237.119.215\", \"updateIp\": \"120.231.232.41\", \"createIpDetail\": {\"ip\": \"206.237.119.215\", \"isp\": \"\", \"area\": \"\", \"city\": \"\", \"isp_id\": \"\", \"region\": \"\", \"city_id\": \"\", \"country\": \"美国\", \"region_id\": \"\", \"country_id\": \"US\"}, \"updateIpDetail\": {\"ip\": \"120.231.232.41\", \"isp\": \"移动\", \"area\": \"\", \"city\": \"\", \"isp_id\": \"100025\", \"region\": \"广东\", \"city_id\": \"\", \"country\": \"中国\", \"region_id\": \"440000\", \"country_id\": \"CN\"}}', 6, 0, '', '2025-03-27 04:23:08.393', '2025-11-14 08:39:22.859', 'k.23772439646234', 0, NULL, 0, '2025-05-09 18:24:37.089', 0, 1, 10);
INSERT INTO `im_user` VALUES (10937855681024, 61170828519937, 3, 'Dawn', 'https://cdn.hulaspark.com/avatar/2439646234/97320189485dca88dcc7a70054445a56.webp', '2439646234@qq.com', '13275346112', NULL, '', 23, '2025-07-30 15:31:57.651', '{\"createIp\": \"206.237.119.215\", \"updateIp\": \"121.35.47.142\", \"createIpDetail\": null, \"updateIpDetail\": {\"ip\": \"121.35.47.142\", \"isp\": \"电信\", \"area\": \"\", \"city\": \"深圳\", \"isp_id\": \"100017\", \"region\": \"广东\", \"city_id\": \"440300\", \"country\": \"中国\", \"region_id\": \"440000\", \"country_id\": \"CN\"}}', 6, 0, '', '2025-03-27 04:23:08.393', '2025-11-20 11:10:32.943', 'k.2439646234', 0, NULL, 0, '2025-09-20 21:35:31.415', 0, 1, 10);
-- ----------------------------
-- Table structure for im_user_apply
@@ -676,7 +676,7 @@ CREATE TABLE `im_user_apply` (
INDEX `idx_target_id`(`target_id` ASC) USING BTREE,
INDEX `idx_create_time`(`create_time` ASC) USING BTREE,
INDEX `idx_update_time`(`update_time` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 95186432673281 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户申请表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 98015092265985 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户申请表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of im_user_apply
@@ -703,7 +703,7 @@ CREATE TABLE `im_user_backpack` (
INDEX `idx_uid`(`uid` ASC) USING BTREE,
INDEX `idx_create_time`(`create_time` ASC) USING BTREE,
INDEX `idx_update_time`(`update_time` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 95230070212619 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户背包表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 98068775162891 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户背包表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of im_user_backpack
@@ -746,7 +746,7 @@ CREATE TABLE `im_user_emoji` (
`update_by` bigint NULL DEFAULT NULL COMMENT '更新者',
PRIMARY KEY (`id`) USING BTREE,
INDEX `IDX_USER_EMOJIS_UID`(`uid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 94830701167617 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户表情包' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 97749185974785 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户表情包' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of im_user_emoji
@@ -779,7 +779,7 @@ CREATE TABLE `im_user_friend` (
INDEX `idx_uid_friend_uid`(`uid` ASC, `friend_uid` ASC) USING BTREE,
INDEX `idx_create_time`(`create_time` ASC) USING BTREE,
INDEX `idx_update_time`(`update_time` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 95230070212614 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户联系人表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 98068775162886 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户联系人表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of im_user_friend
@@ -957,7 +957,7 @@ CREATE TABLE `secure_invoke_record` (
`is_del` tinyint NOT NULL DEFAULT 0 COMMENT '是否删除',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_next_retry_time`(`next_retry_time` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 95230070212618 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '本地消息表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 98069286867970 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '本地消息表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of secure_invoke_record
@@ -976,7 +976,7 @@ CREATE TABLE `worker_node` (
`modified` timestamp NULL DEFAULT NULL COMMENT '修改时间',
`created` timestamp NULL DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 229 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'DB;WorkerID Assigner for UID Generator' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 235 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'DB;WorkerID Assigner for UID Generator' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of worker_node

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.luohuo.flex</groupId>
<artifactId>luohuo-ai</artifactId>
<version>3.0.0</version>
<version>3.0.5</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* Key Value 的键值对
*
* @author 芋道源码
* @author 乾乾
*/
@Data
@NoArgsConstructor

View File

@@ -11,7 +11,7 @@ import com.luohuo.flex.ai.common.pojo.ErrorCode;
* 虽然说HTTP 响应状态码作为业务使用表达能力偏弱,但是使用在系统层面还是非常不错的
* 比较特殊的是,因为之前一直使用 0 作为成功,就不使用 200 啦。
*
* @author 芋道源码
* @author 乾乾
*/
public interface GlobalErrorCodeConstants {

View File

@@ -6,7 +6,7 @@ import lombok.Data;
/**
* 字典数据 Response DTO
*
* @author 芋道源码
* @author 乾乾
*/
@Data
public class DictDataRespDTO {

View File

@@ -45,6 +45,8 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.text.SimpleDateFormat;
import java.time.ZoneId;
@@ -150,6 +152,26 @@ public class AiAutoConfiguration {
return new SiliconFlowChatModel(openAiChatModel, tokenCountEstimator);
}
@Bean("videoTaskExecutor")
public ThreadPoolTaskExecutor videoTaskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(4);
executor.setMaxPoolSize(8);
executor.setQueueCapacity(100);
executor.setThreadNamePrefix("video-exec-");
executor.initialize();
return executor;
}
@Bean("videoTaskScheduler")
public ThreadPoolTaskScheduler videoTaskScheduler() {
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
scheduler.setPoolSize(4);
scheduler.setThreadNamePrefix("video-sched-");
scheduler.initialize();
return scheduler;
}
@Bean
@ConditionalOnProperty(value = "luohuo.ai.hunyuan.enable", havingValue = "true")
public HunYuanChatModel hunYuanChatClient(HulaAiProperties hulaAiProperties) {

View File

@@ -5,7 +5,7 @@ import com.luohuo.flex.ai.controller.model.vo.apikey.AiApiKeyBalanceRespVO;
import com.luohuo.flex.ai.controller.model.vo.apikey.AiApiKeyPageReqVO;
import com.luohuo.flex.ai.controller.model.vo.apikey.AiApiKeyRespVO;
import com.luohuo.flex.ai.controller.model.vo.apikey.AiApiKeySaveReqVO;
import com.luohuo.flex.ai.controller.model.vo.model.AiModelRespVO;
import com.luohuo.flex.ai.controller.model.vo.apikey.AiApiKeySimpleRespVO;
import com.luohuo.flex.ai.dal.model.AiApiKeyDO;
import com.luohuo.flex.ai.service.model.AiApiKeyService;
import com.luohuo.flex.ai.utils.BeanUtils;
@@ -72,9 +72,50 @@ public class AiApiKeyController {
@GetMapping("/simple-list")
@Operation(summary = "获得 API 密钥简单列表(包含系统公开密钥和用户私有密钥)")
public R<List<AiModelRespVO>> getApiKeySimpleList() {
public R<List<AiApiKeySimpleRespVO>> getApiKeySimpleList() {
List<AiApiKeyDO> list = apiKeyService.getApiKeyList(ContextUtil.getUid());
return success(convertList(list, key -> new AiModelRespVO().setId(key.getId()).setName(key.getName()).setPlatform(key.getPlatform())));
return success(convertList(list, key -> {
AiApiKeySimpleRespVO vo = new AiApiKeySimpleRespVO();
vo.setId(key.getId());
vo.setName(key.getName());
vo.setPlatform(key.getPlatform());
return vo;
}));
}
@GetMapping("/admin/all-list")
@Operation(summary = "获得所有 API 密钥列表(后台管理专用)")
public R<List<AiApiKeySimpleRespVO>> getAllApiKeyList() {
List<AiApiKeyDO> list = apiKeyService.getAllApiKeyList();
return success(convertList(list, key -> {
AiApiKeySimpleRespVO vo = new AiApiKeySimpleRespVO();
vo.setId(key.getId());
vo.setName(key.getName());
vo.setPlatform(key.getPlatform());
return vo;
}));
}
@GetMapping("/admin/page")
@Operation(summary = "获得所有 API 密钥分页(后台管理专用)")
public R<PageResult<AiApiKeyRespVO>> getAdminApiKeyPage(@Valid AiApiKeyPageReqVO pageReqVO) {
PageResult<AiApiKeyDO> pageResult = apiKeyService.getAdminApiKeyPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, AiApiKeyRespVO.class));
}
@PutMapping("/admin/update")
@Operation(summary = "管理员更新 API 密钥")
public R<Boolean> updateApiKeyAdmin(@Valid @RequestBody AiApiKeySaveReqVO updateReqVO) {
apiKeyService.updateApiKeyAdmin(updateReqVO);
return success(true);
}
@DeleteMapping("/admin/delete")
@Operation(summary = "管理员删除 API 密钥")
@Parameter(name = "id", description = "编号", required = true)
public R<Boolean> deleteApiKeyAdmin(@RequestParam("id") String id) {
apiKeyService.deleteApiKeyAdmin(Long.parseLong(id));
return success(true);
}
@GetMapping("/balance")

View File

@@ -6,6 +6,7 @@ import com.luohuo.flex.ai.controller.model.vo.model.AiModelPageReqVO;
import com.luohuo.flex.ai.controller.model.vo.model.AiModelRespVO;
import com.luohuo.flex.ai.controller.model.vo.model.AiModelSaveMyReqVO;
import com.luohuo.flex.ai.controller.model.vo.model.AiModelSaveReqVO;
import com.luohuo.flex.ai.controller.model.vo.model.AiModelSimpleRespVO;
import com.luohuo.flex.ai.dal.model.AiModelDO;
import com.luohuo.flex.ai.enums.CommonStatusEnum;
import com.luohuo.flex.ai.service.model.AiModelService;
@@ -65,8 +66,9 @@ public class AiModelController {
@DeleteMapping("/delete")
@Operation(summary = "删除模型")
@Parameter(name = "id", description = "编号", required = true)
public R<Boolean> deleteModel(@RequestParam("id") Long id) {
AiModelDO model = modelService.getModel(id);
public R<Boolean> deleteModel(@RequestParam("id") String id) {
Long modelId = Long.parseLong(id);
AiModelDO model = modelService.getModel(modelId);
if (model == null) {
return success(false);
}
@@ -76,7 +78,7 @@ public class AiModelController {
return success(false);
}
modelService.deleteModelMy(id, uid);
modelService.deleteModelMy(modelId, uid);
return success(true);
}
@@ -105,4 +107,40 @@ public class AiModelController {
.setName(model.getName()).setModel(model.getModel()).setUserId(model.getUserId()).setPlatform(model.getPlatform())));
}
@GetMapping("/admin/all-list")
@Operation(summary = "获得所有模型列表(后台管理专用)")
public R<List<AiModelSimpleRespVO>> getAllModelList() {
List<AiModelDO> list = modelService.getAllModelList();
return success(convertList(list, model -> {
AiModelSimpleRespVO vo = new AiModelSimpleRespVO();
vo.setId(model.getId());
vo.setName(model.getName());
vo.setModel(model.getModel());
vo.setPlatform(model.getPlatform());
return vo;
}));
}
@GetMapping("/admin/page")
@Operation(summary = "获得所有模型分页(后台管理专用)")
public R<PageResult<AiModelRespVO>> getAdminModelPage(@Valid AiModelPageReqVO pageReqVO) {
PageResult<AiModelDO> pageResult = modelService.getModelPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, AiModelRespVO.class));
}
@PutMapping("/admin/update")
@Operation(summary = "管理员更新模型")
public R<Boolean> updateModelAdmin(@Valid @RequestBody AiModelSaveReqVO updateReqVO) {
modelService.updateModelAdmin(updateReqVO);
return success(true);
}
@DeleteMapping("/admin/delete")
@Operation(summary = "管理员删除模型")
@Parameter(name = "id", description = "编号", required = true)
public R<Boolean> deleteModelAdmin(@RequestParam("id") Long id) {
modelService.deleteModelAdmin(id);
return success(true);
}
}

View File

@@ -0,0 +1,18 @@
package com.luohuo.flex.ai.controller.model.vo.apikey;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description = "管理后台 - AI API 密钥简单信息 Response VO")
@Data
public class AiApiKeySimpleRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23538")
private Long id;
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "文心一言")
private String name;
@Schema(description = "平台", requiredMode = Schema.RequiredMode.REQUIRED, example = "OpenAI")
private String platform;
}

View File

@@ -0,0 +1,21 @@
package com.luohuo.flex.ai.controller.model.vo.model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description = "管理后台 - AI 模型简单信息 Response VO")
@Data
public class AiModelSimpleRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23538")
private Long id;
@Schema(description = "模型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "GPT-4")
private String name;
@Schema(description = "模型标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "gpt-4")
private String model;
@Schema(description = "平台", requiredMode = Schema.RequiredMode.REQUIRED, example = "OpenAI")
private String platform;
}

View File

@@ -127,7 +127,7 @@ import static org.springframework.ai.retry.RetryUtils.DEFAULT_RETRY_TEMPLATE;
/**
* AI Model 模型工厂的实现类
*
* @author 芋道源码
* @author 乾乾
*/
public class AiModelFactoryImpl implements AiModelFactory {
@Override

View File

@@ -1,14 +1,19 @@
package com.luohuo.flex.ai.dal.model;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.luohuo.flex.ai.dal.BaseDO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.apache.ibatis.type.JdbcType;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* AI 公开模型使用记录 DO
@@ -24,7 +29,7 @@ import lombok.experimental.Accessors;
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class AiModelUsageRecordDO extends BaseDO {
public class AiModelUsageRecordDO implements Serializable {
/**
* 编号
@@ -56,4 +61,16 @@ public class AiModelUsageRecordDO extends BaseDO {
*/
private Integer remainingCount;
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
@TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.VARCHAR)
private String creator;
@TableField(fill = FieldFill.INSERT_UPDATE, jdbcType = JdbcType.VARCHAR)
private String updater;
}

View File

@@ -16,7 +16,7 @@ import java.util.List;
/**
* List<Long> 的类型转换器实现类,对应数据库的 varchar 类型
*
* @author 芋道源码
* @author 乾乾
*/
@MappedJdbcTypes(JdbcType.VARCHAR)
@MappedTypes(List.class)

View File

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Repository;
/**
* AI API 密钥 Mapper
*
* @author 芋道源码
* @author 乾乾
*/
@Repository
public interface AiApiKeyMapper extends BaseMapperX<AiApiKeyDO> {

View File

@@ -9,7 +9,7 @@ import javax.validation.constraints.NotNull;
/**
* AI 知识库段落搜索 Request BO
*
* @author 芋道源码
* @author 乾乾
*/
@Data
@Accessors(chain = true)

View File

@@ -6,7 +6,7 @@ import lombok.experimental.Accessors;
/**
* AI 知识库段落搜索 Response BO
*
* @author 芋道源码
* @author 乾乾
*/
@Data
@Accessors(chain = true)

View File

@@ -73,6 +73,21 @@ public interface AiApiKeyService {
*/
List<AiApiKeyDO> getApiKeyList(Long userId);
/**
* 获得所有 API 密钥列表(后台管理专用)
*
* @return API 密钥列表
*/
List<AiApiKeyDO> getAllApiKeyList();
/**
* 获得所有 API 密钥分页(后台管理专用,无权限限制)
*
* @param pageReqVO 分页查询
* @return API 密钥分页
*/
PageResult<AiApiKeyDO> getAdminApiKeyPage(AiApiKeyPageReqVO pageReqVO);
/**
* 获得默认的 API 密钥
*
@@ -91,4 +106,18 @@ public interface AiApiKeyService {
*/
AiApiKeyBalanceRespVO getApiKeyBalance(Long id, Long userId);
/**
* 管理员更新 API 密钥
*
* @param updateReqVO 更新信息
*/
void updateApiKeyAdmin(@Valid AiApiKeySaveReqVO updateReqVO);
/**
* 管理员删除 API 密钥
*
* @param id 编号
*/
void deleteApiKeyAdmin(Long id);
}

View File

@@ -32,7 +32,7 @@ import static com.luohuo.flex.ai.utils.ServiceExceptionUtil.exception;
/**
* AI API 密钥 Service 实现类
*
* @author 芋道源码
* @author 乾乾
*/
@Slf4j
@Service
@@ -106,6 +106,24 @@ public class AiApiKeyServiceImpl implements AiApiKeyService {
apiKeyMapper.deleteById(id);
}
@Override
public void updateApiKeyAdmin(AiApiKeySaveReqVO updateReqVO) {
validateApiKeyExists(updateReqVO.getId());
// 管理员更新,无权限校验
AiApiKeyDO updateObj = BeanUtils.toBean(updateReqVO, AiApiKeyDO.class);
apiKeyMapper.updateById(updateObj);
}
@Override
public void deleteApiKeyAdmin(Long id) {
// 校验存在
validateApiKeyExists(id);
// 管理员删除,无权限校验
apiKeyMapper.deleteById(id);
}
private AiApiKeyDO validateApiKeyExists(Long id) {
AiApiKeyDO apiKey = apiKeyMapper.selectById(id);
if (apiKey == null) {
@@ -145,6 +163,18 @@ public class AiApiKeyServiceImpl implements AiApiKeyService {
.orderByDesc(AiApiKeyDO::getId));
}
@Override
public List<AiApiKeyDO> getAllApiKeyList() {
// 返回所有 API 密钥(后台管理专用)
return apiKeyMapper.selectList(new LambdaQueryWrapperX<AiApiKeyDO>()
.orderByDesc(AiApiKeyDO::getId));
}
@Override
public PageResult<AiApiKeyDO> getAdminApiKeyPage(AiApiKeyPageReqVO pageReqVO) {
return apiKeyMapper.selectPage(pageReqVO);
}
@Override
public AiApiKeyDO getRequiredDefaultApiKey(String platform, Integer status) {
AiApiKeyDO apiKey = apiKeyMapper.selectFirstByPlatformAndStatus(platform, status);
@@ -196,6 +226,8 @@ public class AiApiKeyServiceImpl implements AiApiKeyService {
return queryDeepSeekBalance(apiKey);
case SILICON_FLOW:
return querySiliconFlowBalance(apiKey);
case OPENROUTER:
return queryOpenRouterBalance(apiKey);
default:
return AiApiKeyBalanceRespVO.builder()
.id(apiKey.getId())
@@ -223,7 +255,7 @@ public class AiApiKeyServiceImpl implements AiApiKeyService {
*/
private AiApiKeyBalanceRespVO queryMoonshotBalance(AiApiKeyDO apiKey) {
String baseUrl = StrUtil.isNotBlank(apiKey.getUrl()) ? apiKey.getUrl() : "https://api.moonshot.cn";
String url = baseUrl + "/v1/user/balance";
String url = baseUrl + "/v1/users/me/balance";
HttpResponse response = HttpRequest.get(url)
.header("Authorization", "Bearer " + apiKey.getApiKey())
@@ -374,4 +406,76 @@ public class AiApiKeyServiceImpl implements AiApiKeyService {
.build();
}
private AiApiKeyBalanceRespVO queryOpenRouterBalance(AiApiKeyDO apiKey) {
String baseUrl = StrUtil.isNotBlank(apiKey.getUrl()) ? apiKey.getUrl() : "https://openrouter.ai/api";
String url = baseUrl + "/v1/key";
HttpResponse response = HttpRequest.get(url)
.header("Authorization", "Bearer " + apiKey.getApiKey())
.header("Accept", "application/json")
.timeout(10000)
.execute();
if (!response.isOk()) {
throw new RuntimeException("HTTP请求失败: " + response.getStatus());
}
JSONObject jsonResponse = JSONUtil.parseObj(response.body());
JSONObject data = jsonResponse.getJSONObject("data");
List<AiApiKeyBalanceRespVO.BalanceInfo> balanceInfos = new ArrayList<>();
BigDecimal totalBalance = BigDecimal.ZERO;
Boolean freeTier = data == null ? null : data.getBool("is_free_tier");
BigDecimal limitRemaining = null;
if (data != null && data.get("limit_remaining") != null && !(data.get("limit_remaining") instanceof cn.hutool.json.JSONNull)) {
limitRemaining = new BigDecimal(String.valueOf(data.get("limit_remaining")));
}
if (limitRemaining != null) {
balanceInfos.add(AiApiKeyBalanceRespVO.BalanceInfo.builder()
.currency("USD")
.totalBalance(limitRemaining)
.available(true)
.build());
totalBalance = limitRemaining;
} else {
BigDecimal limit = null;
BigDecimal usage = null;
if (data != null && data.get("limit") != null && !(data.get("limit") instanceof cn.hutool.json.JSONNull)) {
limit = new BigDecimal(String.valueOf(data.get("limit")));
}
if (data != null && data.get("usage") != null && !(data.get("usage") instanceof cn.hutool.json.JSONNull)) {
usage = new BigDecimal(String.valueOf(data.get("usage")));
}
BigDecimal remaining = null;
if (limit != null) {
remaining = usage != null ? limit.subtract(usage) : limit;
}
if (remaining != null) {
balanceInfos.add(AiApiKeyBalanceRespVO.BalanceInfo.builder()
.currency("USD")
.totalBalance(remaining)
.available(true)
.build());
totalBalance = remaining;
} else {
balanceInfos.add(AiApiKeyBalanceRespVO.BalanceInfo.builder()
.currency("USD")
.totalBalance(BigDecimal.ZERO)
.grantedBalance(BigDecimal.ZERO)
.toppedUpBalance(BigDecimal.ZERO)
.available(Boolean.TRUE.equals(freeTier))
.build());
totalBalance = BigDecimal.ZERO;
}
}
return AiApiKeyBalanceRespVO.builder()
.id(apiKey.getId())
.platform(apiKey.getPlatform())
.supported(true)
.success(true)
.balanceInfos(balanceInfos)
.totalBalance(totalBalance)
.build();
}
}

View File

@@ -134,6 +134,27 @@ public interface AiModelService {
List<AiModelDO> getModelListByStatusAndTypeAndUserId(Integer status, Integer type,
@Nullable String platform, Long userId);
/**
* 获得所有模型列表(后台管理专用)
*
* @return 模型列表
*/
List<AiModelDO> getAllModelList();
/**
* 管理员更新模型
*
* @param updateReqVO 更新信息
*/
void updateModelAdmin(@Valid AiModelSaveReqVO updateReqVO);
/**
* 管理员删除模型
*
* @param id 编号
*/
void deleteModelAdmin(Long id);
// ========== 与 Spring AI 集成 ==========
/**

View File

@@ -17,6 +17,7 @@ import com.luohuo.flex.ai.dal.model.AiApiKeyDO;
import com.luohuo.flex.ai.dal.model.AiModelDO;
import com.luohuo.flex.ai.enums.AiPlatformEnum;
import com.luohuo.flex.ai.enums.CommonStatusEnum;
import com.luohuo.flex.ai.mapper.LambdaQueryWrapperX;
import com.luohuo.flex.ai.mapper.model.AiChatMapper;
import com.luohuo.flex.ai.utils.BeanUtils;
import dev.tinyflow.core.Tinyflow;
@@ -121,6 +122,29 @@ public class AiModelServiceImpl implements AiModelService {
modelMapper.deleteById(id);
}
@Override
public void updateModelAdmin(AiModelSaveReqVO updateReqVO) {
// 校验存在
validateModelExists(updateReqVO.getId());
// 校验平台和密钥
AiPlatformEnum.validatePlatform(updateReqVO.getPlatform());
apiKeyService.validateApiKey(updateReqVO.getKeyId());
// 管理员更新,无权限校验
AiModelDO updateObj = BeanUtils.toBean(updateReqVO, AiModelDO.class);
modelMapper.updateById(updateObj);
}
@Override
public void deleteModelAdmin(Long id) {
// 校验存在
validateModelExists(id);
// 管理员删除,无权限校验
modelMapper.deleteById(id);
}
private AiModelDO validateModelExists(Long id) {
AiModelDO model = modelMapper.selectById(id);
if (model == null) {
@@ -172,6 +196,12 @@ public class AiModelServiceImpl implements AiModelService {
return modelMapper.selectListByStatusAndTypeAndUserId(status, type, platform, userId);
}
@Override
public List<AiModelDO> getAllModelList() {
return modelMapper.selectList(new LambdaQueryWrapperX<AiModelDO>()
.orderByDesc(AiModelDO::getId));
}
// ========== 与 Spring AI 集成 ==========
@Override

View File

@@ -48,6 +48,8 @@ public class AiModelUsageServiceImpl implements AiModelUsageService {
.usageCount(1)
.remainingCount(PUBLIC_MODEL_USAGE_LIMIT - 1)
.build();
record.setCreator(userId+"");
record.setUpdater(userId+"");
usageRecordMapper.insert(record);
log.info("[checkAndDeductUsage] 首次使用公开模型modelId={}, userId={}, remainingCount={}", model.getId(), userId, record.getRemainingCount());
} else {

View File

@@ -23,7 +23,7 @@ import static com.luohuo.flex.ai.utils.ServiceExceptionUtil.exception;
/**
* AI 工具 Service 实现类
*
* @author 芋道源码
* @author 乾乾
*/
@Service
@Validated

View File

@@ -25,7 +25,7 @@ import static com.luohuo.basic.utils.collection.CollectionUtils.convertList;
/**
* 工具:列出指定目录的文件列表
*
* @author 芋道源码
* @author 乾乾
*/
@Component("directory_list")
public class DirectoryListToolFunction implements Function<DirectoryListToolFunction.Request, DirectoryListToolFunction.Response> {

View File

@@ -19,7 +19,7 @@ import static cn.hutool.core.date.DatePattern.NORM_DATETIME_PATTERN;
/**
* 工具:查询指定城市的天气信息
*
* @author 芋道源码
* @author 乾乾
*/
@Component("weather_query")
public class WeatherQueryToolFunction

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import com.luohuo.basic.context.ContextUtil;
import com.luohuo.basic.utils.SpringUtils;
import com.luohuo.flex.ai.common.pojo.PageResult;
import com.luohuo.flex.ai.controller.video.vo.AiVideoGenerateReqVO;
import com.luohuo.flex.ai.controller.video.vo.AiVideoPageReqVO;
@@ -26,12 +27,16 @@ import com.luohuo.flex.ai.utils.BeanUtils;
import com.luohuo.flex.common.constant.DefValConstants;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.TaskScheduler;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.atomic.AtomicInteger;
import static com.luohuo.flex.ai.enums.ErrorCodeConstants.VIDEO_NOT_EXISTS;
import static com.luohuo.flex.ai.utils.ServiceExceptionUtil.exception;
@@ -52,6 +57,13 @@ public class AiVideoServiceImpl implements AiVideoService {
@Resource
private AiChatMessageService chatMessageService;
@Resource(name = "videoTaskScheduler")
private TaskScheduler videoTaskScheduler;
private final ConcurrentHashMap<Long, ScheduledFuture<?>> videoPollers = new ConcurrentHashMap<>();
private final ConcurrentHashMap<Long, AtomicInteger> videoAttempts = new ConcurrentHashMap<>();
@Override
public PageResult<AiVideoDO> getVideoPageMy(Long userId, AiVideoPageReqVO pageReqVO) {
return videoMapper.selectPageMy(userId, pageReqVO);
@@ -84,12 +96,11 @@ public class AiVideoServiceImpl implements AiVideoService {
.setPublicStatus(false).setStatus(AiVideoStatusEnum.IN_PROGRESS.getStatus());
videoMapper.insert(video);
// 4. 异步生成视频
executeGenerateVideo(video, generateReqVO, model);
return video.getId();
}
@Async
@Async("videoTaskExecutor")
public void executeGenerateVideo(AiVideoDO video, AiVideoGenerateReqVO reqVO, AiModelDO model) {
try {
VideoOptions options = buildVideoOptions(reqVO, model);
@@ -97,34 +108,9 @@ public class AiVideoServiceImpl implements AiVideoService {
VideoModel videoModel = modelService.getVideoModel(model.getId());
String requestId = videoModel.submitVideo(reqVO.getPrompt(), options);
log.info("[executeGenerateVideo][video({}) 提交成功BB5THJNZWU6IJCOZO7IFWLHCYFS2WI19 requestId: {}]", video.getId(), requestId);
videoMapper.updateById(new AiVideoDO().setId(video.getId()).setTaskId(requestId));
// 5. 轮询获取视频生成结果
// - Gitee AI 支持轮询方式(通过 urls.get 链接查询),也支持回调方式(需要配置回调 URL
// - 硅基流动平台(可能其他平台也有类似问题)
// 问题1: 生成过程中 - status=InProgress获取succeed
// 问题2: 刚生成完成 - status=Succeed但videos=null需要等待一段时间才能获取videos数据
String videoUrl = videoModel.pollVideoResult(requestId, 120, 10000);
log.info("[executeGenerateVideo][video({}) 生成成功videoUrl: {}]", video.getId(), videoUrl);
// 6. 更新视频记录
videoMapper.updateById(new AiVideoDO().setId(video.getId())
.setStatus(AiVideoStatusEnum.SUCCESS.getStatus())
.setVideoUrl(videoUrl)
// TODO: 生成视频
// .setCoverUrl(generateCoverFromVideo(videoUrl))
.setFinishTime(LocalDateTime.now()));
// 7. 如果有会话,创建对话消息
try {
createChatMessage(video, videoUrl);
} catch (Exception e) {
log.error("[executeGenerateVideo] 如果有会话创建对话消息失败videoId={}", video.getId(), e);
}
log.info("[executeGenerateVideo][video({}) 生成完成]", video.getId());
video.setTaskId(requestId);
startPolling(video);
} catch (Exception ex) {
log.error("[executeGenerateVideo][video({}) 生成失败]", video, ex);
videoMapper.updateById(new AiVideoDO().setId(video.getId())
@@ -226,15 +212,15 @@ public class AiVideoServiceImpl implements AiVideoService {
}
@Override
@Async
public Long recoverIncompleteVideos() {
ContextUtil.setTenantId(DefValConstants.DEF_TENANT_ID);
List<AiVideoDO> incompleteVideos = videoMapper.selectListByStatusWithTaskId(
AiVideoStatusEnum.IN_PROGRESS.getStatus());
List<AiVideoDO> incompleteVideos = videoMapper.selectListByStatusWithTaskId(AiVideoStatusEnum.IN_PROGRESS.getStatus());
// 遍历所有未完成的视频,尝试恢复
for (AiVideoDO video : incompleteVideos) {
try {
recoverVideo(video.getId());
SpringUtils.getBean(AiVideoService.class).recoverVideo(video.getId());
} catch (Exception ex) {
}
}
@@ -243,7 +229,7 @@ public class AiVideoServiceImpl implements AiVideoService {
}
@Override
@Async
@Async("videoTaskExecutor")
public void recoverVideo(Long videoId) {
try {
AiVideoDO video = videoMapper.selectById(videoId);
@@ -251,28 +237,7 @@ public class AiVideoServiceImpl implements AiVideoService {
log.warn("[recoverVideo] 视频 {} 不存在或没有 taskId", videoId);
return;
}
log.info("[recoverVideo][video({}) 开始恢复taskId: {}]", videoId, video.getTaskId());
VideoModel videoModel = modelService.getVideoModel(video.getModelId());
// 轮询获取结果(最多轮询120次每次间隔10秒总共120*10=1200秒=20分钟)
String videoUrl = videoModel.pollVideoResult(video.getTaskId(), 120, 10000);
// 更新视频记录
videoMapper.updateById(new AiVideoDO().setId(videoId)
.setStatus(AiVideoStatusEnum.SUCCESS.getStatus())
.setVideoUrl(videoUrl)
.setFinishTime(LocalDateTime.now()));
// 如果有会话,创建对话消息
try {
createChatMessage(video, videoUrl);
} catch (Exception e) {
log.error("[recoverVideo] 创建对话消息失败videoId={}", videoId, e);
}
log.info("[recoverVideo][video({}) 恢复成功videoUrl: {}]", videoId, videoUrl);
startPolling(video);
} catch (Exception ex) {
log.error("[recoverVideo][video({}) 恢复失败]", videoId, ex);
videoMapper.updateById(new AiVideoDO().setId(videoId)
@@ -282,6 +247,59 @@ public class AiVideoServiceImpl implements AiVideoService {
}
}
private void startPolling(AiVideoDO video) {
ScheduledFuture<?> future = videoTaskScheduler.scheduleAtFixedRate(() -> {
try {
AtomicInteger counter = videoAttempts.computeIfAbsent(video.getId(), k -> new AtomicInteger(0));
int c = counter.incrementAndGet();
VideoModel videoModel = modelService.getVideoModel(video.getModelId());
VideoModel.VideoStatusResponse status = videoModel.getVideoStatus(video.getTaskId());
List<String> urls = status.getVideoUrls();
if (urls != null && !urls.isEmpty()) {
String url = urls.get(0);
videoMapper.updateById(new AiVideoDO().setId(video.getId())
.setStatus(AiVideoStatusEnum.SUCCESS.getStatus())
.setVideoUrl(url)
.setFinishTime(LocalDateTime.now()));
try {
createChatMessage(video, url);
} catch (Exception ignored) {}
ScheduledFuture<?> f = videoPollers.get(video.getId());
if (f != null) f.cancel(false);
videoPollers.remove(video.getId());
videoAttempts.remove(video.getId());
} else {
String s = status.getStatus();
if (s != null) {
String sl = s.toLowerCase();
if (sl.contains("fail") || sl.contains("error") || sl.contains("cancel")) {
videoMapper.updateById(new AiVideoDO().setId(video.getId())
.setStatus(AiVideoStatusEnum.FAIL.getStatus())
.setErrorMessage(status.getMessage())
.setFinishTime(LocalDateTime.now()));
ScheduledFuture<?> f = videoPollers.get(video.getId());
if (f != null) f.cancel(false);
videoPollers.remove(video.getId());
videoAttempts.remove(video.getId());
return;
}
}
if (c >= 120) {
videoMapper.updateById(new AiVideoDO().setId(video.getId())
.setStatus(AiVideoStatusEnum.FAIL.getStatus())
.setErrorMessage("timeout")
.setFinishTime(LocalDateTime.now()));
ScheduledFuture<?> f = videoPollers.get(video.getId());
if (f != null) f.cancel(false);
videoPollers.remove(video.getId());
videoAttempts.remove(video.getId());
}
}
} catch (Exception ignored) {}
}, 10000);
videoPollers.put(video.getId(), future);
}
/**
* 如果有会话,创建对话消息
* 将生成的视频添加到对话记录中

View File

@@ -23,7 +23,7 @@ import java.util.Set;
/**
* Spring AI 工具类
*
* @author 芋道源码
* @author 乾乾
*/
public class AiUtils {

View File

@@ -13,7 +13,7 @@ import java.util.function.Consumer;
* 1. 默认使用 {@link BeanUtil} 作为实现类,虽然不同 bean 工具的性能有差别,但是对绝大多数同学的项目,不用在意这点性能
* 2. 针对复杂的对象转换,可以搜参考 AuthConvert 实现,通过 mapstruct + default 配合实现
*
* @author 芋道源码
* @author 乾乾
*/
public class BeanUtils {

View File

@@ -10,7 +10,7 @@ import java.util.concurrent.Executors;
/**
* Cache 工具类
*
* @author 芋道源码
* @author 乾乾
*/
public class CacheUtils {

View File

@@ -18,7 +18,7 @@ import static com.luohuo.basic.utils.collection.CollectionUtils.convertList;
/**
* 字典工具类
*
* @author 芋道源码
* @author 乾乾
*/
@Slf4j
public class DictFrameworkUtils {

View File

@@ -16,7 +16,7 @@ import java.util.function.Consumer;
/**
* Map 工具类
*
* @author 芋道源码
* @author 乾乾
*/
public class MapUtils {

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.luohuo.flex</groupId>
<artifactId>luohuo-ai</artifactId>
<version>3.0.0</version>
<version>3.0.5</version>
</parent>
<artifactId>luohuo-ai-entity</artifactId>

View File

@@ -5,7 +5,7 @@
<parent>
<groupId>com.luohuo.flex</groupId>
<artifactId>luohuo-ai-facade</artifactId>
<version>3.0.0</version>
<version>3.0.5</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@@ -5,7 +5,7 @@
<parent>
<groupId>com.luohuo.flex</groupId>
<artifactId>luohuo-ai-facade</artifactId>
<version>3.0.0</version>
<version>3.0.5</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@@ -5,7 +5,7 @@
<parent>
<groupId>com.luohuo.flex</groupId>
<artifactId>luohuo-ai-facade</artifactId>
<version>3.0.0</version>
<version>3.0.5</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.luohuo.flex</groupId>
<artifactId>luohuo-ai</artifactId>
<version>3.0.0</version>
<version>3.0.5</version>
</parent>
<artifactId>luohuo-ai-facade</artifactId>

View File

@@ -5,7 +5,7 @@
<parent>
<artifactId>luohuo-ai</artifactId>
<groupId>com.luohuo.flex</groupId>
<version>3.0.0</version>
<version>3.0.5</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.luohuo.flex</groupId>
<artifactId>luohuo-dependencies-parent</artifactId>
<version>3.0.0</version>
<version>3.0.5</version>
<relativePath>../luohuo-dependencies-parent/pom.xml</relativePath>
</parent>

View File

@@ -5,7 +5,7 @@
<parent>
<artifactId>luohuo-base</artifactId>
<groupId>com.luohuo.flex</groupId>
<version>3.0.0</version>
<version>3.0.5</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@@ -9,7 +9,7 @@ import com.luohuo.flex.base.service.application.DefResourceService;
import java.util.List;
/**
* @author zuihou
* @author 乾乾
* @date 2021/11/17 15:23
*/
@Service

View File

@@ -13,7 +13,7 @@ import java.util.Collections;
import java.util.Map;
/**
* @author zuihou
* @author 乾乾
* @date 2021/11/20 23:49
*/

View File

@@ -30,7 +30,6 @@ import com.luohuo.flex.base.vo.query.user.BaseEmployeePageQuery;
import com.luohuo.flex.base.vo.result.user.BaseEmployeeResultVO;
import com.luohuo.flex.base.vo.save.tenant.DefUserSaveVO;
import com.luohuo.flex.base.vo.save.user.BaseEmployeeSaveVO;
import com.luohuo.flex.model.entity.system.SysUser;
import com.luohuo.flex.model.enumeration.base.ActiveStatusEnum;
import java.util.List;
@@ -38,7 +37,7 @@ import java.util.List;
/**
* 员工大业务层
*
* @author zuihou
* @author 乾乾
* @date 2021/10/22 10:37
*/
@Service
@@ -100,11 +99,6 @@ public class BaseEmployeeBiz {
// 机构信息
resultVO.setOrgIdList(baseEmployeeOrgRelService.findOrgIdListByEmployeeId(employeeId));
// 用户信息
DefUser defUser = defUserService.getById(employee.getUserId());
resultVO.setDefUser(BeanUtil.toBean(defUser, SysUser.class));
return resultVO;
}
@@ -128,18 +122,7 @@ public class BaseEmployeeBiz {
params.getModel().setUserIdList(userIdList);
}
IPage<BaseEmployeeResultVO> pageResultVO = baseEmployeeService.findPageResultVO(params);
if (CollUtil.isNotEmpty(pageResultVO.getRecords())) {
List<Long> userIds = pageResultVO.getRecords().stream().map(BaseEmployeeResultVO::getUserId).toList();
List<DefUser> defUsers = defUserService.listByIds(userIds);
List<SysUser> userResultVos = BeanUtil.copyToList(defUsers, SysUser.class);
ImmutableMap<Long, SysUser> map = CollHelper.uniqueIndex(userResultVos, SysUser::getId, user -> user);
pageResultVO.getRecords().forEach(item -> item.setDefUser(map.get(item.getUserId())));
}
return pageResultVO;
return baseEmployeeService.findPageResultVO(params);
}
private List<BaseEmployee> findEmployeeList(DefTenantAdminVO param) {

View File

@@ -9,7 +9,7 @@ import com.luohuo.flex.base.entity.application.DefUserApplication;
* 用户的默认应用
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2022-03-06
*/
public interface DefUserApplicationManager extends SuperManager<DefUserApplication> {

View File

@@ -14,7 +14,7 @@ import com.luohuo.flex.base.mapper.application.DefUserApplicationMapper;
* 用户的默认应用
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2022-03-06
* @create [2022-03-06] [zuihou] [代码生成器生成]
*/

View File

@@ -11,7 +11,7 @@ import java.time.LocalDateTime;
* 操作日志
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-11-08
*/
public interface BaseOperationLogManager extends SuperManager<BaseOperationLog> {

View File

@@ -11,7 +11,7 @@ import java.util.List;
* 角色
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
*/
public interface BaseRoleManager extends SuperCacheManager<BaseRole> {

View File

@@ -12,7 +12,7 @@ import java.util.List;
* 角色的资源
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
*/
public interface BaseRoleResourceRelManager extends SuperManager<BaseRoleResourceRel> {

View File

@@ -9,7 +9,7 @@ import com.luohuo.flex.base.entity.system.DefArea;
* 地区表
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-13
*/
public interface DefAreaManager extends SuperManager<DefArea> {

View File

@@ -9,7 +9,7 @@ import com.luohuo.flex.base.entity.system.DefClient;
* 客户端
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-13
*/
public interface DefClientManager extends SuperCacheManager<DefClient> {

View File

@@ -11,7 +11,7 @@ import java.time.LocalDateTime;
* 登录日志
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-11-12
*/
public interface DefLoginLogManager extends SuperManager<DefLoginLog> {

View File

@@ -9,7 +9,7 @@ import com.luohuo.flex.base.entity.system.DefMsgTemplate;
* 消息模板
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2022-07-04 15:51:37
* @create [2022-07-04 15:51:37] [zuihou] [代码生成器生成]
*/

View File

@@ -13,7 +13,7 @@ import java.util.Map;
* 参数配置
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-13
*/
public interface DefParameterManager extends SuperCacheManager<DefParameter>, LoadService {

View File

@@ -21,7 +21,7 @@ import java.util.List;
* 操作日志
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-11-08
* @create [2021-11-08] [zuihou] [代码生成器生成]
*/

View File

@@ -32,7 +32,7 @@ import java.util.function.Function;
* 角色
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
* @create [2021-10-18] [zuihou] [代码生成器生成]
*/
@@ -72,7 +72,6 @@ public class BaseRoleManagerImpl extends SuperCacheManagerImpl<BaseRoleMapper, B
*/
@Override
public List<Long> findResourceIdByEmployeeId(Long applicationId, Long employeeId) {
List<BaseRole> roleList = findRoleByEmployeeId(employeeId);
List<Long> roleIdList = roleList.stream().map(BaseRole::getId).toList();
log.debug("roleIdList={}", roleIdList.size());
@@ -81,7 +80,6 @@ public class BaseRoleManagerImpl extends SuperCacheManagerImpl<BaseRoleMapper, B
return roleIdList;
}
// 新方法
Function<Long, CacheKey> cacheBuilder = roleId -> RoleResourceCacheKeyBuilder.build(applicationId, roleId);
// 缓存中不存在时,回调函数
Function<Long, List<Long>> loader = roleId -> baseRoleResourceRelMapper.selectResourceIdByRoleId(applicationId, roleId);
@@ -119,35 +117,12 @@ public class BaseRoleManagerImpl extends SuperCacheManagerImpl<BaseRoleMapper, B
log.debug("orgIdList={}", orgIdList.size());
// 机构 - 角色
// 新旧方法
// 旧方法
// Set<Long> roleIdSet = new HashSet<>();
// for (Long orgId : orgIdList) {
// CacheKey orKey = OrgRoleCacheKeyBuilder.build(orgId);
// CacheResult<List<Long>> roleIds = cacheOps.get(orKey, k -> baseMapper.selectRoleIdByOrgId(orgId));
// roleIdSet.addAll(roleIds.asList());
// }
// 旧方法end
// 新方法
Function<Long, CacheKey> cacheBuilder = OrgRoleCacheKeyBuilder::build;
// 缓存中不存在时,回调函数
Function<Long, List<Long>> loader = baseMapper::selectRoleIdByOrgId;
Set<Long> roleIdSet = findCollectByIds(orgIdList, cacheBuilder, loader);
// 新方法 end
Set<Long> roleIdSet = findCollectByIds(orgIdList, OrgRoleCacheKeyBuilder::build, baseMapper::selectRoleIdByOrgId);
return CollHelper.addAllUnique(new ArrayList<>(roleIdSet), roleIdList.asList());
}
@Override
public boolean checkRole(Long employeeId, String... codes) {
/*ArgumentAssert.notEmpty(codes, "请传递角色编码");
List<Long> roleIds = findRoleIdByEmployeeId(employeeId);
List<BaseRole> roleList = findByIds(roleIds, null);
return roleList.stream()
.filter(Objects::nonNull)
.anyMatch(item -> item.getState() && ArrayUtil.contains(codes, item.getCode()));*/
List<BaseRole> baseRoles = baseMapper.selectRoleByEmployee(employeeId, codes);
return !baseRoles.isEmpty();
}

View File

@@ -22,7 +22,7 @@ import java.util.List;
* 角色的资源
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
* @create [2021-10-18] [zuihou] [代码生成器生成]
*/

View File

@@ -14,7 +14,7 @@ import com.luohuo.flex.base.mapper.system.DefAreaMapper;
* 地区表
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-13
* @create [2021-10-13] [zuihou] [代码生成器生成]
*/

View File

@@ -21,7 +21,7 @@ import com.luohuo.flex.common.cache.tenant.system.DefClientSecretCacheKeyBuilder
* 客户端
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-13
* @create [2021-10-13] [zuihou] [代码生成器生成]
*/

View File

@@ -37,7 +37,7 @@ import static java.util.stream.Collectors.groupingBy;
import static java.util.stream.Collectors.toList;
/**
* @author zuihou
* @author 乾乾
* @date 2021/10/10 23:21
*/
@RequiredArgsConstructor

View File

@@ -20,7 +20,7 @@ import java.util.List;
* 登录日志
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-11-12
* @create [2021-11-12] [zuihou] [代码生成器生成]
*/

View File

@@ -15,7 +15,7 @@ import com.luohuo.flex.base.mapper.system.DefMsgTemplateMapper;
* 消息模板
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2022-07-04 15:51:37
* @create [2022-07-04 15:51:37] [zuihou] [代码生成器生成]
*/

View File

@@ -30,7 +30,7 @@ import java.util.Set;
* 参数配置
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-13
* @create [2021-10-13] [zuihou] [代码生成器生成]
*/

View File

@@ -12,7 +12,7 @@ import java.util.List;
* 员工
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-27
*/
public interface DefUserTenantRelManager extends SuperCacheManager<DefUserTenantRel> {

View File

@@ -78,10 +78,7 @@ public class DefTenantManagerImpl extends SuperCacheManagerImpl<DefTenantMapper,
.collect(Collectors.toList());
// 3. 查询租户信息
List<DefTenant> tenantList = baseMapper.selectList(
Wrappers.<DefTenant>lambdaQuery()
.in(DefTenant::getId, tenantIds)
);
List<DefTenant> tenantList = baseMapper.selectByIds(tenantIds);
// 4. 转换为 VO 并填充员工信息
Map<Long, DefUserTenantRel> relMap = userTenantRelList.stream()

View File

@@ -15,7 +15,7 @@ import java.util.List;
* 员工
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
*/
public interface BaseEmployeeManager extends SuperCacheManager<BaseEmployee> {

View File

@@ -13,7 +13,7 @@ import java.util.List;
* 员工所在部门
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
*/
public interface BaseEmployeeOrgRelManager extends SuperManager<BaseEmployeeOrgRel> {

View File

@@ -13,7 +13,7 @@ import java.util.List;
* 员工的角色
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
*/
public interface BaseEmployeeRoleRelManager extends SuperManager<BaseEmployeeRoleRel> {

View File

@@ -10,7 +10,7 @@ import com.luohuo.flex.base.entity.user.BaseOrg;
* 组织
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
*/
public interface BaseOrgManager extends SuperCacheManager<BaseOrg>, LoadService {

View File

@@ -11,7 +11,7 @@ import java.util.Collection;
* 组织的角色
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
*/
public interface BaseOrgRoleRelManager extends SuperManager<BaseOrgRoleRel> {

View File

@@ -10,7 +10,7 @@ import com.luohuo.flex.base.entity.user.BasePosition;
* 岗位
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
*/
public interface BasePositionManager extends SuperCacheManager<BasePosition>, LoadService {

View File

@@ -24,7 +24,7 @@ import java.util.List;
* 员工
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
* @create [2021-10-18] [zuihou] [代码生成器生成]
*/

View File

@@ -26,7 +26,7 @@ import java.util.List;
* 员工所在部门
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
* @create [2021-10-18] [zuihou] [代码生成器生成]
*/

View File

@@ -25,7 +25,7 @@ import java.util.List;
* 员工的角色
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
* @create [2021-10-18] [zuihou] [代码生成器生成]
*/

View File

@@ -28,7 +28,7 @@ import java.util.Set;
* 组织
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
* @create [2021-10-18] [zuihou] [代码生成器生成]
*/

View File

@@ -22,7 +22,7 @@ import java.util.List;
* 组织的角色
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
* @create [2021-10-18] [zuihou] [代码生成器生成]
*/

View File

@@ -24,7 +24,7 @@ import java.util.Set;
* 岗位
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
* @create [2021-10-18] [zuihou] [代码生成器生成]
*/

View File

@@ -10,7 +10,7 @@ import com.luohuo.flex.base.entity.user.BaseEmployee;
/**
* 仅仅测试使用
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
*/
@Repository

View File

@@ -15,7 +15,7 @@ import java.util.List;
* 应用
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-09-15
*/
@Repository

View File

@@ -15,7 +15,7 @@ import java.util.List;
* 资源接口
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-09-17
*/
@Repository

View File

@@ -14,7 +14,7 @@ import java.util.List;
* 资源
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-09-13
*/
@Repository

View File

@@ -11,7 +11,7 @@ import com.luohuo.flex.base.entity.application.DefUserApplication;
* 用户的默认应用
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2022-03-06
*/
@Repository

View File

@@ -14,7 +14,7 @@ import java.util.List;
* 操作日志
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-11-08
*/
@Repository

View File

@@ -14,7 +14,7 @@ import java.util.List;
* 操作日志
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-11-08
*/
@Repository

View File

@@ -13,7 +13,7 @@ import java.util.List;
* 角色
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
*/
@Repository

View File

@@ -13,7 +13,7 @@ import java.util.List;
* 角色的资源
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
*/
@Repository

View File

@@ -11,7 +11,7 @@ import com.luohuo.flex.base.entity.system.DefArea;
* 地区表
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-13
*/
@Repository

View File

@@ -11,7 +11,7 @@ import com.luohuo.flex.base.entity.system.DefClient;
* 客户端
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-13
*/
@Repository

View File

@@ -11,7 +11,7 @@ import com.luohuo.flex.base.entity.system.DefDict;
* 字典
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-04
*/
@Repository

View File

@@ -15,7 +15,7 @@ import java.util.List;
* 登录日志
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-11-12
*/
@Repository

View File

@@ -11,7 +11,7 @@ import com.luohuo.flex.base.entity.system.DefMsgTemplate;
* 消息模板
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2022-07-04 15:51:37
* @create [2022-07-04 15:51:37] [zuihou] [代码生成器生成]
*/

View File

@@ -11,7 +11,7 @@ import com.luohuo.flex.base.entity.system.DefParameter;
* 参数配置
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-13
*/
@Repository

View File

@@ -17,7 +17,7 @@ import java.time.LocalDateTime;
* 用户
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-09
*/
@Repository

View File

@@ -18,7 +18,7 @@ import java.util.List;
* 员工
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
*/
@Repository

View File

@@ -13,7 +13,7 @@ import java.util.List;
* 员工所在部门
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
*/
@Repository

View File

@@ -10,7 +10,7 @@ import com.luohuo.flex.base.entity.user.BaseEmployeeRoleRel;
* 员工的角色
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
*/
@Repository

View File

@@ -13,7 +13,7 @@ import java.util.List;
* 组织
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
*/
@Repository

View File

@@ -10,7 +10,7 @@ import com.luohuo.flex.base.entity.user.BaseOrgRoleRel;
* 组织的角色
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
*/
@Repository

View File

@@ -10,7 +10,7 @@ import com.luohuo.flex.base.entity.user.BasePosition;
* 岗位
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-10-18
*/
@Repository

View File

@@ -13,7 +13,7 @@ import java.util.List;
* 应用
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-09-15
*/
public interface DefApplicationService extends SuperCacheService<Long, DefApplication> {

View File

@@ -18,7 +18,7 @@ import java.util.Map;
* 资源
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2021-09-13
*/
public interface DefResourceService extends SuperCacheService<Long, DefResource> {

View File

@@ -9,7 +9,7 @@ import com.luohuo.flex.base.entity.application.DefUserApplication;
* 用户的默认应用
* </p>
*
* @author zuihou
* @author 乾乾
* @date 2022-03-06
*/
public interface DefUserApplicationService extends SuperService<Long, DefUserApplication> {

Some files were not shown because too many files have changed in this diff Show More