/*
 Navicat Premium Data Transfer

 Source Server         : 本机
 Source Server Type    : MySQL
 Source Server Version : 80017 (8.0.17)
 Source Host           : localhost:3306
 Source Schema         : youlai_admin

 Target Server Type    : MySQL
 Target Server Version : 80017 (8.0.17)
 File Encoding         : 65001

 Date: 17/04/2026 14:00:08
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for gen_table
-- ----------------------------
DROP TABLE IF EXISTS `gen_table`;
CREATE TABLE `gen_table`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `table_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '表名',
  `module_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '模块名',
  `package_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '包名',
  `business_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '业务名',
  `entity_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '实体类名',
  `author` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '作者',
  `parent_menu_id` bigint(20) NULL DEFAULT NULL COMMENT '上级菜单ID，对应sys_menu的id ',
  `remove_table_prefix` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '要移除的表前缀，如: sys_',
  `page_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '页面类型(classic|curd)',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint(4) NULL DEFAULT 0 COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_tablename`(`table_name` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '代码生成配置表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of gen_table
-- ----------------------------

-- ----------------------------
-- Table structure for gen_table_column
-- ----------------------------
DROP TABLE IF EXISTS `gen_table_column`;
CREATE TABLE `gen_table_column`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `table_id` bigint(20) NOT NULL COMMENT '关联的表配置ID',
  `column_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `column_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `column_length` int(11) NULL DEFAULT NULL,
  `field_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '字段名称',
  `field_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '字段类型',
  `field_sort` int(11) NULL DEFAULT NULL COMMENT '字段排序',
  `field_comment` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '字段描述',
  `max_length` int(11) NULL DEFAULT NULL,
  `is_required` tinyint(1) NULL DEFAULT NULL COMMENT '是否必填',
  `is_show_in_list` tinyint(1) NULL DEFAULT 0 COMMENT '是否在列表显示',
  `is_show_in_form` tinyint(1) NULL DEFAULT 0 COMMENT '是否在表单显示',
  `is_show_in_query` tinyint(1) NULL DEFAULT 0 COMMENT '是否在查询条件显示',
  `query_type` tinyint(4) NULL DEFAULT NULL COMMENT '查询方式',
  `form_type` tinyint(4) NULL DEFAULT NULL COMMENT '表单类型',
  `dict_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '字典类型',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_table_id`(`table_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '代码生成字段配置表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of gen_table_column
-- ----------------------------

-- ----------------------------
-- Table structure for sys_config
-- ----------------------------
DROP TABLE IF EXISTS `sys_config`;
CREATE TABLE `sys_config`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `config_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '配置名称',
  `config_key` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '配置key',
  `config_value` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '配置值',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人ID',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `is_deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识(0-未删除 1-已删除)',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统配置表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of sys_config
-- ----------------------------
INSERT INTO `sys_config` VALUES (1, '系统限流QPS', 'IP_QPS_THRESHOLD_LIMIT', '10', '单个IP请求的最大每秒查询数（QPS）阈值Key', '2026-04-14 20:40:54', 1, NULL, NULL, 0);
INSERT INTO `sys_config` VALUES (2, '会员认证策略', 'member.verify.policy', '{\"enabled\":true,\"forceRequired\":false,\"forceScenes\":[],\"fields\":[{\"code\":\"mobile\",\"label\":\"手机号\",\"type\":\"TEXT\",\"enabled\":true,\"required\":true,\"readonly\":true,\"source\":\"ACCOUNT\",\"maxCount\":1,\"sort\":10,\"placeholder\":\"自动读取账号手机号\"},{\"code\":\"realName\",\"label\":\"姓名\",\"type\":\"TEXT\",\"enabled\":true,\"required\":true,\"readonly\":false,\"source\":\"USER_INPUT\",\"maxCount\":1,\"sort\":20,\"placeholder\":\"请输入真实姓名\"},{\"code\":\"idCardNo\",\"label\":\"身份证号\",\"type\":\"TEXT\",\"enabled\":true,\"required\":true,\"readonly\":false,\"source\":\"USER_INPUT\",\"maxCount\":1,\"sort\":30,\"placeholder\":\"请输入身份证号\"},{\"code\":\"idCardFrontUrl\",\"label\":\"身份证人像面\",\"type\":\"IMAGE\",\"enabled\":true,\"required\":true,\"readonly\":false,\"source\":\"USER_INPUT\",\"maxCount\":1,\"sort\":40,\"placeholder\":\"请上传身份证人像面\"},{\"code\":\"idCardBackUrl\",\"label\":\"身份证国徽面\",\"type\":\"IMAGE\",\"enabled\":true,\"required\":true,\"readonly\":false,\"source\":\"USER_INPUT\",\"maxCount\":1,\"sort\":50,\"placeholder\":\"请上传身份证国徽面\"},{\"code\":\"supportDocs\",\"label\":\"其他图片辅证\",\"type\":\"IMAGE_LIST\",\"enabled\":true,\"required\":false,\"readonly\":false,\"source\":\"USER_INPUT\",\"maxCount\":5,\"sort\":60,\"placeholder\":\"可上传补充图片材料\"}]}', '会员实名认证表单与强制校验策略', '2026-04-17 13:47:32', 1, NULL, NULL, 0);

-- ----------------------------
-- Table structure for sys_dept
-- ----------------------------
DROP TABLE IF EXISTS `sys_dept`;
CREATE TABLE `sys_dept`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '部门名称',
  `code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '部门编号',
  `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父节点id',
  `tree_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '父节点id路径',
  `sort` smallint(6) NULL DEFAULT 0 COMMENT '显示顺序',
  `status` tinyint(4) NULL DEFAULT 1 COMMENT '状态(1-正常 0-禁用)',
  `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人ID',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人ID',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint(4) NULL DEFAULT 0 COMMENT '逻辑删除标识(1-已删除 0-未删除)',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_code`(`code` ASC) USING BTREE COMMENT '部门编号唯一索引'
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '部门管理表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of sys_dept
-- ----------------------------
INSERT INTO `sys_dept` VALUES (1, '小葵技术', 'XIAOKUI', 0, '0', 1, 1, 1, NULL, 1, '2026-04-15 15:30:30', 0);
INSERT INTO `sys_dept` VALUES (2, '研发部门', 'RD001', 1, '0,1', 1, 1, 2, NULL, 2, '2026-04-14 20:40:53', 0);
INSERT INTO `sys_dept` VALUES (3, '测试部门', 'QA001', 1, '0,1', 1, 1, 2, NULL, 2, '2026-04-14 20:40:53', 0);

-- ----------------------------
-- Table structure for sys_dict
-- ----------------------------
DROP TABLE IF EXISTS `sys_dict`;
CREATE TABLE `sys_dict`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `dict_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '类型编码',
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '类型名称',
  `status` tinyint(1) NULL DEFAULT 0 COMMENT '状态(0:正常;1:禁用)',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人ID',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人ID',
  `is_deleted` tinyint(4) NULL DEFAULT 0 COMMENT '是否删除(1-删除，0-未删除)',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_dict_code`(`dict_code` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '数据字典类型表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of sys_dict
-- ----------------------------
INSERT INTO `sys_dict` VALUES (1, 'gender', '性别', 1, NULL, '2026-04-14 20:40:53', 1, '2026-04-14 20:40:53', 1, 0);
INSERT INTO `sys_dict` VALUES (2, 'notice_type', '通知类型', 1, NULL, '2026-04-14 20:40:53', 1, '2026-04-14 20:40:53', 1, 0);
INSERT INTO `sys_dict` VALUES (3, 'notice_level', '通知级别', 1, NULL, '2026-04-14 20:40:53', 1, '2026-04-14 20:40:53', 1, 0);

-- ----------------------------
-- Table structure for sys_dict_item
-- ----------------------------
DROP TABLE IF EXISTS `sys_dict_item`;
CREATE TABLE `sys_dict_item`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `dict_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '关联字典编码，与sys_dict表中的dict_code对应',
  `value` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '字典项值',
  `label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '字典项标签',
  `tag_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '标签类型，用于前端样式展示（如success、warning等）',
  `status` tinyint(4) NULL DEFAULT 0 COMMENT '状态（1-正常，0-禁用）',
  `sort` int(11) NULL DEFAULT 0 COMMENT '排序',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人ID',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人ID',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '数据字典项表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of sys_dict_item
-- ----------------------------
INSERT INTO `sys_dict_item` VALUES (1, 'gender', '1', '男', 'primary', 1, 1, NULL, '2026-04-14 20:40:53', 1, '2026-04-14 20:40:53', 1);
INSERT INTO `sys_dict_item` VALUES (2, 'gender', '2', '女', 'danger', 1, 2, NULL, '2026-04-14 20:40:53', 1, '2026-04-14 20:40:53', 1);
INSERT INTO `sys_dict_item` VALUES (3, 'gender', '0', '保密', 'info', 1, 3, NULL, '2026-04-14 20:40:53', 1, '2026-04-14 20:40:53', 1);
INSERT INTO `sys_dict_item` VALUES (4, 'notice_type', '1', '系统升级', 'success', 1, 1, '', '2026-04-14 20:40:53', 1, '2026-04-14 20:40:53', 1);
INSERT INTO `sys_dict_item` VALUES (5, 'notice_type', '2', '系统维护', 'primary', 1, 2, '', '2026-04-14 20:40:53', 1, '2026-04-14 20:40:53', 1);
INSERT INTO `sys_dict_item` VALUES (6, 'notice_type', '3', '安全警告', 'danger', 1, 3, '', '2026-04-14 20:40:53', 1, '2026-04-14 20:40:53', 1);
INSERT INTO `sys_dict_item` VALUES (7, 'notice_type', '4', '假期通知', 'success', 1, 4, '', '2026-04-14 20:40:53', 1, '2026-04-14 20:40:53', 1);
INSERT INTO `sys_dict_item` VALUES (8, 'notice_type', '5', '公司新闻', 'primary', 1, 5, '', '2026-04-14 20:40:53', 1, '2026-04-14 20:40:53', 1);
INSERT INTO `sys_dict_item` VALUES (9, 'notice_type', '99', '其他', 'info', 1, 99, '', '2026-04-14 20:40:53', 1, '2026-04-14 20:40:53', 1);
INSERT INTO `sys_dict_item` VALUES (10, 'notice_level', 'L', '低', 'info', 1, 1, '', '2026-04-14 20:40:53', 1, '2026-04-14 20:40:53', 1);
INSERT INTO `sys_dict_item` VALUES (11, 'notice_level', 'M', '中', 'warning', 1, 2, '', '2026-04-14 20:40:53', 1, '2026-04-14 20:40:53', 1);
INSERT INTO `sys_dict_item` VALUES (12, 'notice_level', 'H', '高', 'danger', 1, 3, '', '2026-04-14 20:40:53', 1, '2026-04-14 20:40:53', 1);

-- ----------------------------
-- Table structure for sys_log
-- ----------------------------
DROP TABLE IF EXISTS `sys_log`;
CREATE TABLE `sys_log`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `module` tinyint(4) NOT NULL COMMENT '模块，数字枚举，参考 LogModule 枚举',
  `action_type` tinyint(4) NOT NULL COMMENT '操作类型，数字枚举，参考 ActionType 枚举',
  `title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '前端显示标题',
  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '自定义日志内容',
  `operator_id` bigint(20) NULL DEFAULT NULL COMMENT '操作人ID',
  `operator_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作人名称',
  `request_uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '请求路径',
  `request_method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '请求方法',
  `ip` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'IP地址',
  `province` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '省份',
  `city` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '城市',
  `device` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备',
  `os` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作系统',
  `browser` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '浏览器',
  `status` tinyint(4) NULL DEFAULT 1 COMMENT '0失败 1成功',
  `error_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '错误信息',
  `execution_time` int(11) NULL DEFAULT NULL COMMENT '执行时间(ms)',
  `create_time` datetime NULL DEFAULT NULL COMMENT '操作时间',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_module_action_time`(`module` ASC, `action_type` ASC, `create_time` ASC) USING BTREE,
  INDEX `idx_operator_time`(`operator_id` ASC, `create_time` ASC) USING BTREE,
  INDEX `idx_time`(`create_time` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 166 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统操作日志表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of sys_log
-- ----------------------------
INSERT INTO `sys_log` VALUES (1, 1, 1, '登录-登录', '', 2, 'admin', '/api/v1/auth/login', 'POST', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 471, '2026-04-14 20:59:53');
INSERT INTO `sys_log` VALUES (2, 2, 15, '用户管理-查询列表', '', 2, 'admin', '/api/v1/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 19, '2026-04-14 21:00:36');
INSERT INTO `sys_log` VALUES (3, 3, 15, '角色管理-查询列表', '', 2, 'admin', '/api/v1/roles', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 13, '2026-04-14 21:00:37');
INSERT INTO `sys_log` VALUES (4, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 37, '2026-04-14 21:00:39');
INSERT INTO `sys_log` VALUES (5, 4, 15, '部门管理-查询列表', '', 2, 'admin', '/api/v1/depts', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 6, '2026-04-14 21:00:40');
INSERT INTO `sys_log` VALUES (6, 6, 15, '字典管理-查询列表', '', 2, 'admin', '/api/v1/dicts', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 6, '2026-04-14 21:00:41');
INSERT INTO `sys_log` VALUES (7, 10, 15, '日志管理-查询列表', '', 2, 'admin', '/api/v1/logs', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 15, '2026-04-14 21:00:42');
INSERT INTO `sys_log` VALUES (8, 7, 15, '系统配置-查询列表', '', 2, 'admin', '/api/v1/configs', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 6, '2026-04-14 21:00:43');
INSERT INTO `sys_log` VALUES (9, 9, 15, '通知公告-查询列表', '', 2, 'admin', '/api/v1/notices', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 8, '2026-04-14 21:00:44');
INSERT INTO `sys_log` VALUES (10, 2, 15, '用户管理-查询列表', '', 2, 'admin', '/api/v1/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 11, '2026-04-14 21:00:46');
INSERT INTO `sys_log` VALUES (11, 2, 15, '用户管理-查询列表', '', 2, 'admin', '/api/v1/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 8, '2026-04-14 21:00:47');
INSERT INTO `sys_log` VALUES (12, 2, 15, '用户管理-查询列表', '', 2, 'admin', '/api/v1/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 17, '2026-04-14 21:00:48');
INSERT INTO `sys_log` VALUES (13, 2, 15, '用户管理-查询列表', '', 2, 'admin', '/api/v1/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 10, '2026-04-14 21:00:49');
INSERT INTO `sys_log` VALUES (14, 2, 15, '用户管理-查询列表', '', 2, 'admin', '/api/v1/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 23, '2026-04-14 21:00:54');
INSERT INTO `sys_log` VALUES (15, 2, 15, '用户管理-查询列表', '', 2, 'admin', '/api/v1/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 14, '2026-04-14 21:00:56');
INSERT INTO `sys_log` VALUES (16, 2, 15, '用户管理-查询列表', '', 2, 'admin', '/api/v1/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 13, '2026-04-14 21:02:45');
INSERT INTO `sys_log` VALUES (17, 3, 15, '角色管理-查询列表', '', 2, 'admin', '/api/v1/roles', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 5, '2026-04-14 21:02:47');
INSERT INTO `sys_log` VALUES (18, 4, 15, '部门管理-查询列表', '', 2, 'admin', '/api/v1/depts', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 4, '2026-04-14 21:02:52');
INSERT INTO `sys_log` VALUES (19, 10, 15, '日志管理-查询列表', '', 2, 'admin', '/api/v1/logs', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 12, '2026-04-14 21:02:54');
INSERT INTO `sys_log` VALUES (20, 6, 15, '字典管理-查询列表', '', 2, 'admin', '/api/v1/dicts', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 3, '2026-04-14 21:02:57');
INSERT INTO `sys_log` VALUES (21, 9, 15, '通知公告-查询列表', '', 2, 'admin', '/api/v1/notices', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 7, '2026-04-14 21:02:58');
INSERT INTO `sys_log` VALUES (22, 9, 5, '通知公告-删除', '', 2, 'admin', '/api/v1/notices/5,4,7,9,2,1,8,3,10,6', 'DELETE', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 38, '2026-04-14 21:03:04');
INSERT INTO `sys_log` VALUES (23, 9, 15, '通知公告-查询列表', '', 2, 'admin', '/api/v1/notices', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 3, '2026-04-14 21:03:04');
INSERT INTO `sys_log` VALUES (24, 7, 15, '系统配置-查询列表', '', 2, 'admin', '/api/v1/configs', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 7, '2026-04-14 21:03:06');
INSERT INTO `sys_log` VALUES (25, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 27, '2026-04-14 21:03:17');
INSERT INTO `sys_log` VALUES (26, 1, 1, '登录-登录', '', 2, 'admin', '/api/v1/auth/login', 'POST', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 546, '2026-04-15 14:50:26');
INSERT INTO `sys_log` VALUES (27, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 25, '2026-04-15 14:51:03');
INSERT INTO `sys_log` VALUES (28, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/orders', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 26, '2026-04-15 14:51:03');
INSERT INTO `sys_log` VALUES (29, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 11, '2026-04-15 14:51:09');
INSERT INTO `sys_log` VALUES (30, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/orders', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 13, '2026-04-15 14:51:09');
INSERT INTO `sys_log` VALUES (31, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 102, '2026-04-15 14:53:51');
INSERT INTO `sys_log` VALUES (32, 5, 5, '菜单管理-删除', '', 2, 'admin', '/api/v1/menus/9', 'DELETE', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 34, '2026-04-15 14:53:56');
INSERT INTO `sys_log` VALUES (33, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 44, '2026-04-15 14:53:56');
INSERT INTO `sys_log` VALUES (34, 5, 5, '菜单管理-删除', '', 2, 'admin', '/api/v1/menus/8', 'DELETE', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 28, '2026-04-15 14:53:59');
INSERT INTO `sys_log` VALUES (35, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 33, '2026-04-15 14:54:00');
INSERT INTO `sys_log` VALUES (36, 5, 5, '菜单管理-删除', '', 2, 'admin', '/api/v1/menus/7', 'DELETE', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 25, '2026-04-15 14:54:03');
INSERT INTO `sys_log` VALUES (37, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 28, '2026-04-15 14:54:03');
INSERT INTO `sys_log` VALUES (38, 5, 5, '菜单管理-删除', '', 2, 'admin', '/api/v1/menus/6', 'DELETE', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 19, '2026-04-15 14:54:06');
INSERT INTO `sys_log` VALUES (39, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 32, '2026-04-15 14:54:07');
INSERT INTO `sys_log` VALUES (40, 5, 5, '菜单管理-删除', '', 2, 'admin', '/api/v1/menus/5', 'DELETE', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 21, '2026-04-15 14:54:09');
INSERT INTO `sys_log` VALUES (41, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 34, '2026-04-15 14:54:10');
INSERT INTO `sys_log` VALUES (42, 5, 5, '菜单管理-删除', '', 2, 'admin', '/api/v1/menus/4', 'DELETE', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 27, '2026-04-15 14:54:13');
INSERT INTO `sys_log` VALUES (43, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 45, '2026-04-15 14:54:13');
INSERT INTO `sys_log` VALUES (44, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 27, '2026-04-15 14:54:17');
INSERT INTO `sys_log` VALUES (45, 5, 4, '菜单管理-修改', '', 2, 'admin', '/api/v1/menus/2', 'PUT', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 35, '2026-04-15 14:54:29');
INSERT INTO `sys_log` VALUES (46, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 33, '2026-04-15 14:54:30');
INSERT INTO `sys_log` VALUES (47, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 29, '2026-04-15 14:54:33');
INSERT INTO `sys_log` VALUES (48, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 32, '2026-04-15 14:54:47');
INSERT INTO `sys_log` VALUES (49, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 7, '2026-04-15 14:54:56');
INSERT INTO `sys_log` VALUES (50, 5, 4, '菜单管理-修改', '', 2, 'admin', '/api/v1/menus/1110', 'PUT', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 53, '2026-04-15 14:55:40');
INSERT INTO `sys_log` VALUES (51, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 26, '2026-04-15 14:55:40');
INSERT INTO `sys_log` VALUES (52, 7, 15, '系统配置-查询列表', '', 2, 'admin', '/api/v1/configs', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 13, '2026-04-15 14:56:00');
INSERT INTO `sys_log` VALUES (53, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/orders', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 6, '2026-04-15 14:56:04');
INSERT INTO `sys_log` VALUES (54, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 6, '2026-04-15 14:56:04');
INSERT INTO `sys_log` VALUES (55, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/static-assets', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 17, '2026-04-15 14:56:12');
INSERT INTO `sys_log` VALUES (56, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 8, '2026-04-15 14:56:14');
INSERT INTO `sys_log` VALUES (57, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/duration-multipliers', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 12, '2026-04-15 14:56:14');
INSERT INTO `sys_log` VALUES (58, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 7, '2026-04-15 14:56:16');
INSERT INTO `sys_log` VALUES (59, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/dynamic-plans', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 9, '2026-04-15 14:56:16');
INSERT INTO `sys_log` VALUES (60, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 8, '2026-04-15 14:56:17');
INSERT INTO `sys_log` VALUES (61, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/static-country-prices', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 15, '2026-04-15 14:56:17');
INSERT INTO `sys_log` VALUES (62, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/upstream-providers', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 11, '2026-04-15 14:56:20');
INSERT INTO `sys_log` VALUES (63, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/wallet-accounts', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 8, '2026-04-15 14:56:39');
INSERT INTO `sys_log` VALUES (64, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/distribution-commissions', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 9, '2026-04-15 14:56:44');
INSERT INTO `sys_log` VALUES (65, 2, 15, '用户管理-查询列表', '', 2, 'admin', '/api/v1/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 15, '2026-04-15 14:56:49');
INSERT INTO `sys_log` VALUES (66, 2, 15, '用户管理-查询列表', '', 2, 'admin', '/api/v1/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 12, '2026-04-15 14:56:56');
INSERT INTO `sys_log` VALUES (67, 2, 15, '用户管理-查询列表', '', 2, 'admin', '/api/v1/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 10, '2026-04-15 14:56:58');
INSERT INTO `sys_log` VALUES (68, 2, 15, '用户管理-查询列表', '', 2, 'admin', '/api/v1/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 11, '2026-04-15 14:56:59');
INSERT INTO `sys_log` VALUES (69, 2, 15, '用户管理-查询列表', '', 2, 'admin', '/api/v1/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 11, '2026-04-15 14:57:00');
INSERT INTO `sys_log` VALUES (70, 2, 15, '用户管理-查询列表', '', 2, 'admin', '/api/v1/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 12, '2026-04-15 14:57:01');
INSERT INTO `sys_log` VALUES (71, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/upstream-providers', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 6, '2026-04-15 14:58:05');
INSERT INTO `sys_log` VALUES (72, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/upstream-providers', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 8, '2026-04-15 14:59:03');
INSERT INTO `sys_log` VALUES (73, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 10, '2026-04-15 14:59:03');
INSERT INTO `sys_log` VALUES (74, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/dynamic-channels', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 19, '2026-04-15 14:59:03');
INSERT INTO `sys_log` VALUES (75, 10, 15, '日志管理-查询列表', '', 2, 'admin', '/api/v1/logs', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 14, '2026-04-15 15:00:25');
INSERT INTO `sys_log` VALUES (76, 9, 15, '通知公告-查询列表', '', 2, 'admin', '/api/v1/notices', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 19, '2026-04-15 15:29:16');
INSERT INTO `sys_log` VALUES (77, 4, 15, '部门管理-查询列表', '', 2, 'admin', '/api/v1/depts', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 9, '2026-04-15 15:30:13');
INSERT INTO `sys_log` VALUES (78, 4, 4, '部门管理-修改', '', 2, 'admin', '/api/v1/depts/1', 'PUT', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 16, '2026-04-15 15:30:30');
INSERT INTO `sys_log` VALUES (79, 4, 15, '部门管理-查询列表', '', 2, 'admin', '/api/v1/depts', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 7, '2026-04-15 15:30:30');
INSERT INTO `sys_log` VALUES (80, 3, 15, '角色管理-查询列表', '', 2, 'admin', '/api/v1/roles', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 15, '2026-04-15 15:30:37');
INSERT INTO `sys_log` VALUES (81, 2, 15, '用户管理-查询列表', '', 2, 'admin', '/api/v1/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 14, '2026-04-15 15:31:01');
INSERT INTO `sys_log` VALUES (82, 1, 1, '登录-登录', '', 2, 'admin', '/api/v1/auth/login', 'POST', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 551, '2026-04-17 13:24:55');
INSERT INTO `sys_log` VALUES (83, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/static-country-prices', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 18, '2026-04-17 13:25:10');
INSERT INTO `sys_log` VALUES (84, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 23, '2026-04-17 13:25:10');
INSERT INTO `sys_log` VALUES (85, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 10, '2026-04-17 13:25:11');
INSERT INTO `sys_log` VALUES (86, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/dynamic-plans', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 13, '2026-04-17 13:25:11');
INSERT INTO `sys_log` VALUES (87, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 14, '2026-04-17 13:25:14');
INSERT INTO `sys_log` VALUES (88, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/orders', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 23, '2026-04-17 13:25:14');
INSERT INTO `sys_log` VALUES (89, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 7, '2026-04-17 13:25:15');
INSERT INTO `sys_log` VALUES (90, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/distribution-commissions', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 14, '2026-04-17 13:25:19');
INSERT INTO `sys_log` VALUES (91, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 101, '2026-04-17 13:25:25');
INSERT INTO `sys_log` VALUES (92, 5, 4, '菜单管理-修改', '', 2, 'admin', '/api/v1/menus/1120', 'PUT', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 74, '2026-04-17 13:25:48');
INSERT INTO `sys_log` VALUES (93, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 46, '2026-04-17 13:25:48');
INSERT INTO `sys_log` VALUES (94, 5, 4, '菜单管理-修改', '', 2, 'admin', '/api/v1/menus/1130', 'PUT', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 55, '2026-04-17 13:25:55');
INSERT INTO `sys_log` VALUES (95, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 27, '2026-04-17 13:25:56');
INSERT INTO `sys_log` VALUES (96, 5, 4, '菜单管理-修改', '', 2, 'admin', '/api/v1/menus/1140', 'PUT', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 50, '2026-04-17 13:26:11');
INSERT INTO `sys_log` VALUES (97, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 32, '2026-04-17 13:26:11');
INSERT INTO `sys_log` VALUES (98, 5, 4, '菜单管理-修改', '', 2, 'admin', '/api/v1/menus/1150', 'PUT', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 45, '2026-04-17 13:26:18');
INSERT INTO `sys_log` VALUES (99, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 25, '2026-04-17 13:26:18');
INSERT INTO `sys_log` VALUES (100, 5, 4, '菜单管理-修改', '', 2, 'admin', '/api/v1/menus/1190', 'PUT', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 43, '2026-04-17 13:26:25');
INSERT INTO `sys_log` VALUES (101, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 46, '2026-04-17 13:26:25');
INSERT INTO `sys_log` VALUES (102, 5, 4, '菜单管理-修改', '', 2, 'admin', '/api/v1/menus/1150', 'PUT', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 40, '2026-04-17 13:26:33');
INSERT INTO `sys_log` VALUES (103, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 26, '2026-04-17 13:26:34');
INSERT INTO `sys_log` VALUES (104, 5, 4, '菜单管理-修改', '', 2, 'admin', '/api/v1/menus/1160', 'PUT', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 38, '2026-04-17 13:26:44');
INSERT INTO `sys_log` VALUES (105, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 47, '2026-04-17 13:26:44');
INSERT INTO `sys_log` VALUES (106, 5, 4, '菜单管理-修改', '', 2, 'admin', '/api/v1/menus/1180', 'PUT', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 39, '2026-04-17 13:26:53');
INSERT INTO `sys_log` VALUES (107, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 31, '2026-04-17 13:26:53');
INSERT INTO `sys_log` VALUES (108, 5, 4, '菜单管理-修改', '', 2, 'admin', '/api/v1/menus/1170', 'PUT', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 34, '2026-04-17 13:27:03');
INSERT INTO `sys_log` VALUES (109, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 31, '2026-04-17 13:27:03');
INSERT INTO `sys_log` VALUES (110, 5, 4, '菜单管理-修改', '', 2, 'admin', '/api/v1/menus/1200', 'PUT', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 40, '2026-04-17 13:27:11');
INSERT INTO `sys_log` VALUES (111, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 29, '2026-04-17 13:27:11');
INSERT INTO `sys_log` VALUES (112, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 41, '2026-04-17 13:27:16');
INSERT INTO `sys_log` VALUES (113, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 8, '2026-04-17 13:27:22');
INSERT INTO `sys_log` VALUES (114, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/static-country-prices', 'GET', '192.168.1.2', NULL, NULL, 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 8, '2026-04-17 13:27:23');
INSERT INTO `sys_log` VALUES (115, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 8, '2026-04-17 13:27:23');
INSERT INTO `sys_log` VALUES (116, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/static-assets', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 11, '2026-04-17 13:27:27');
INSERT INTO `sys_log` VALUES (117, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/distribution-commissions', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 9, '2026-04-17 13:27:30');
INSERT INTO `sys_log` VALUES (118, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 6, '2026-04-17 13:27:57');
INSERT INTO `sys_log` VALUES (119, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/dynamic-plans', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 6, '2026-04-17 13:27:57');
INSERT INTO `sys_log` VALUES (120, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 5, '2026-04-17 13:28:30');
INSERT INTO `sys_log` VALUES (121, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/duration-multipliers', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 8, '2026-04-17 13:28:30');
INSERT INTO `sys_log` VALUES (122, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 5, '2026-04-17 13:28:36');
INSERT INTO `sys_log` VALUES (123, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/orders', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 5, '2026-04-17 13:28:36');
INSERT INTO `sys_log` VALUES (124, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/upstream-providers', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 7, '2026-04-17 13:28:42');
INSERT INTO `sys_log` VALUES (125, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/upstream-providers', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 6, '2026-04-17 13:28:52');
INSERT INTO `sys_log` VALUES (126, 99, 3, '其他-新增', '', 2, 'admin', '/api/v1/proxy/upstream-providers', 'POST', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 9, '2026-04-17 13:29:45');
INSERT INTO `sys_log` VALUES (127, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/upstream-providers', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 12, '2026-04-17 13:29:46');
INSERT INTO `sys_log` VALUES (128, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/wallet-accounts', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 13, '2026-04-17 13:29:56');
INSERT INTO `sys_log` VALUES (129, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/wallet-accounts', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 3, '2026-04-17 13:30:01');
INSERT INTO `sys_log` VALUES (130, 7, 15, '系统配置-查询列表', '', 2, 'admin', '/api/v1/configs', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 9, '2026-04-17 13:30:52');
INSERT INTO `sys_log` VALUES (131, 10, 15, '日志管理-查询列表', '', 2, 'admin', '/api/v1/logs', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 21, '2026-04-17 13:31:02');
INSERT INTO `sys_log` VALUES (132, 9, 15, '通知公告-查询列表', '', 2, 'admin', '/api/v1/notices', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 7, '2026-04-17 13:31:04');
INSERT INTO `sys_log` VALUES (133, 4, 15, '部门管理-查询列表', '', 2, 'admin', '/api/v1/depts', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 6, '2026-04-17 13:31:06');
INSERT INTO `sys_log` VALUES (134, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 29, '2026-04-17 13:31:07');
INSERT INTO `sys_log` VALUES (135, 3, 15, '角色管理-查询列表', '', 2, 'admin', '/api/v1/roles', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 15, '2026-04-17 13:31:08');
INSERT INTO `sys_log` VALUES (136, 2, 15, '用户管理-查询列表', '', 2, 'admin', '/api/v1/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 16, '2026-04-17 13:31:10');
INSERT INTO `sys_log` VALUES (137, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/orders', 'GET', '192.168.1.2', NULL, NULL, 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 8, '2026-04-17 13:31:15');
INSERT INTO `sys_log` VALUES (138, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', NULL, NULL, 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 8, '2026-04-17 13:31:15');
INSERT INTO `sys_log` VALUES (139, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/duration-multipliers', 'GET', '192.168.1.2', NULL, NULL, 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 11, '2026-04-17 13:31:16');
INSERT INTO `sys_log` VALUES (140, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', NULL, NULL, 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 11, '2026-04-17 13:31:16');
INSERT INTO `sys_log` VALUES (141, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 5, '2026-04-17 13:31:17');
INSERT INTO `sys_log` VALUES (142, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/dynamic-plans', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 6, '2026-04-17 13:31:17');
INSERT INTO `sys_log` VALUES (143, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 5, '2026-04-17 13:31:18');
INSERT INTO `sys_log` VALUES (144, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/static-country-prices', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 4, '2026-04-17 13:31:18');
INSERT INTO `sys_log` VALUES (145, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/proxy/products', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 3, '2026-04-17 13:31:21');
INSERT INTO `sys_log` VALUES (146, 1, 1, '登录-登录', '', 2, 'admin', '/api/v1/auth/login', 'POST', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 549, '2026-04-17 13:52:58');
INSERT INTO `sys_log` VALUES (147, 2, 15, '用户管理-查询列表', '', 2, 'admin', '/api/v1/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 25, '2026-04-17 13:53:22');
INSERT INTO `sys_log` VALUES (148, 3, 15, '角色管理-查询列表', '', 2, 'admin', '/api/v1/roles', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 21, '2026-04-17 13:53:25');
INSERT INTO `sys_log` VALUES (149, 3, 6, '角色管理-授权', '', 2, 'admin', '/api/v1/roles/2/menus', 'PUT', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 108, '2026-04-17 13:53:32');
INSERT INTO `sys_log` VALUES (150, 3, 15, '角色管理-查询列表', '', 2, 'admin', '/api/v1/roles', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 12, '2026-04-17 13:53:32');
INSERT INTO `sys_log` VALUES (151, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/admin/member/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 9, '2026-04-17 13:53:37');
INSERT INTO `sys_log` VALUES (152, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/admin/member/verify-records', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 9, '2026-04-17 13:53:39');
INSERT INTO `sys_log` VALUES (153, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/admin/member/verify-records', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 7, '2026-04-17 13:53:40');
INSERT INTO `sys_log` VALUES (154, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/admin/member/verify-records', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 12, '2026-04-17 13:53:46');
INSERT INTO `sys_log` VALUES (155, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 67, '2026-04-17 13:53:46');
INSERT INTO `sys_log` VALUES (156, 5, 4, '菜单管理-修改', '', 2, 'admin', '/api/v1/menus/1300', 'PUT', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 76, '2026-04-17 13:54:31');
INSERT INTO `sys_log` VALUES (157, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 41, '2026-04-17 13:54:31');
INSERT INTO `sys_log` VALUES (158, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/admin/member/verify-records', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 4, '2026-04-17 13:54:34');
INSERT INTO `sys_log` VALUES (159, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/admin/member/verify-records', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 7, '2026-04-17 13:54:37');
INSERT INTO `sys_log` VALUES (160, 5, 4, '菜单管理-修改', '', 2, 'admin', '/api/v1/menus/1310', 'PUT', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 46, '2026-04-17 13:54:51');
INSERT INTO `sys_log` VALUES (161, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 32, '2026-04-17 13:54:51');
INSERT INTO `sys_log` VALUES (162, 5, 4, '菜单管理-修改', '', 2, 'admin', '/api/v1/menus/1320', 'PUT', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 32, '2026-04-17 13:55:01');
INSERT INTO `sys_log` VALUES (163, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 25, '2026-04-17 13:55:01');
INSERT INTO `sys_log` VALUES (164, 5, 15, '菜单管理-查询列表', '', 2, 'admin', '/api/v1/menus', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 30, '2026-04-17 13:55:05');
INSERT INTO `sys_log` VALUES (165, 99, 15, '其他-查询列表', '', 2, 'admin', '/api/v1/admin/member/users', 'GET', '192.168.1.2', '0', '内网IP', 'Windows 10 or Windows Server 2016', 'Windows 10 or Windows Server 2016', 'Chrome', 1, NULL, 4, '2026-04-17 13:55:13');

-- ----------------------------
-- Table structure for sys_menu
-- ----------------------------
DROP TABLE IF EXISTS `sys_menu`;
CREATE TABLE `sys_menu`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `parent_id` bigint(20) NOT NULL COMMENT '父菜单ID',
  `tree_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '父节点ID路径',
  `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '菜单名称',
  `type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '菜单类型（C-目录 M-菜单 B-按钮）',
  `route_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '路由名称（Vue Router 中用于命名路由）',
  `route_path` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '路由路径（Vue Router 中定义的 URL 路径）',
  `component` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '组件路径（组件页面完整路径，相对于 src/views/，缺省后缀 .vue）',
  `perm` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '【按钮】权限标识',
  `always_show` tinyint(4) NULL DEFAULT 0 COMMENT '【目录】只有一个子路由是否始终显示（1-是 0-否）',
  `keep_alive` tinyint(4) NULL DEFAULT 0 COMMENT '【菜单】是否开启页面缓存（1-是 0-否）',
  `visible` tinyint(1) NULL DEFAULT 1 COMMENT '显示状态（1-显示 0-隐藏）',
  `sort` int(11) NULL DEFAULT 0 COMMENT '排序',
  `icon` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '菜单图标',
  `redirect` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '跳转路径',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `params` json NULL COMMENT '路由参数',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 13203 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统菜单表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of sys_menu
-- ----------------------------
INSERT INTO `sys_menu` VALUES (1, 0, '0', '系统管理', 'C', '', '/system', 'Layout', NULL, NULL, NULL, 1, 1, 'system', '/system/user', '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2, 0, '0', '代码生成', 'C', '', '/codegen', 'Layout', NULL, 1, NULL, 1, 2, 'code', '/codegen/index', '2026-04-14 20:40:53', '2026-04-15 14:54:29', NULL);
INSERT INTO `sys_menu` VALUES (210, 1, '0,1', '用户管理', 'M', 'User', 'user', 'system/user/index', NULL, NULL, 1, 1, 1, 'el-icon-User', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (220, 1, '0,1', '角色管理', 'M', 'Role', 'role', 'system/role/index', NULL, NULL, 1, 1, 2, 'role', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (230, 1, '0,1', '菜单管理', 'M', 'SysMenu', 'menu', 'system/menu/index', NULL, NULL, 1, 1, 3, 'menu', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (240, 1, '0,1', '部门管理', 'M', 'Dept', 'dept', 'system/dept/index', NULL, NULL, 1, 1, 4, 'tree', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (250, 1, '0,1', '字典管理', 'M', 'Dict', 'dict', 'system/dict/index', NULL, NULL, 1, 1, 5, 'dict', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (251, 1, '0,1', '字典项', 'M', 'DictItem', 'dict-item', 'system/dict/dict-item', NULL, 0, 1, 0, 6, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (260, 1, '0,1', '系统日志', 'M', 'Log', 'log', 'system/log/index', NULL, 0, 1, 1, 7, 'document', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (270, 1, '0,1', '系统配置', 'M', 'Config', 'config', 'system/config/index', NULL, 0, 1, 1, 8, 'setting', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (271, 1, '0,1', '业务配置', 'M', 'BizConfigCenter', 'biz-config', 'system/biz-config/index', NULL, 0, 1, 1, 8, 'setting', NULL, '2026-04-17 13:47:38', '2026-04-17 13:47:38', NULL);
INSERT INTO `sys_menu` VALUES (280, 1, '0,1', '通知公告', 'M', 'Notice', 'notice', 'system/notice/index', NULL, NULL, NULL, 1, 9, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (310, 2, '0,2', '代码生成', 'M', 'Codegen', 'codegen', 'codegen/index', NULL, NULL, 1, 1, 1, 'code', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (1100, 0, '0', '代理平台', 'C', 'Proxy', '/proxy', 'Layout', NULL, 1, NULL, 1, 10, 'monitor', '/proxy/product', '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (1110, 1100, '0,1100', '商品管理', 'M', 'ProxyProduct', 'product', 'proxy/product/index', NULL, 0, 1, 1, 1, 'el-icon-Shop', NULL, '2026-04-15 14:34:17', '2026-04-15 14:55:40', NULL);
INSERT INTO `sys_menu` VALUES (1120, 1100, '0,1100', '静态价格管理', 'M', 'ProxyStaticPrice', 'static-price', 'proxy/static-price/index', NULL, 0, 1, 1, 2, 'el-icon-GoodsFilled', NULL, '2026-04-15 14:34:17', '2026-04-17 13:25:48', NULL);
INSERT INTO `sys_menu` VALUES (1130, 1100, '0,1100', '动态套餐管理', 'M', 'ProxyDynamicPlan', 'dynamic-plan', 'proxy/dynamic-plan/index', NULL, 0, 1, 1, 3, 'el-icon-GoodsFilled', NULL, '2026-04-15 14:34:17', '2026-04-17 13:25:55', NULL);
INSERT INTO `sys_menu` VALUES (1140, 1100, '0,1100', '时长倍率管理', 'M', 'ProxyDurationMultiplier', 'duration-multiplier', 'proxy/duration-multiplier/index', NULL, 0, 1, 1, 4, 'el-icon-TrendCharts', NULL, '2026-04-15 14:34:17', '2026-04-17 13:26:11', NULL);
INSERT INTO `sys_menu` VALUES (1150, 1100, '0,1100', '订单管理', 'M', 'ProxyOrder', 'order', 'proxy/order/index', NULL, 0, 1, 1, 5, 'el-icon-Promotion', NULL, '2026-04-15 14:34:17', '2026-04-17 13:26:33', NULL);
INSERT INTO `sys_menu` VALUES (1160, 1100, '0,1100', '静态代理管理', 'M', 'ProxyStaticAsset', 'static-asset', 'proxy/static-asset/index', NULL, 0, 1, 1, 6, 'el-icon-Shop', NULL, '2026-04-15 14:34:17', '2026-04-17 13:26:44', NULL);
INSERT INTO `sys_menu` VALUES (1170, 1100, '0,1100', '动态通道管理', 'M', 'ProxyDynamicChannel', 'dynamic-channel', 'proxy/dynamic-channel/index', NULL, 0, 1, 1, 7, 'el-icon-Histogram', NULL, '2026-04-15 14:34:17', '2026-04-17 13:27:03', NULL);
INSERT INTO `sys_menu` VALUES (1180, 1100, '0,1100', '上游供应商管理', 'M', 'ProxyUpstreamProvider', 'upstream-provider', 'proxy/upstream-provider/index', NULL, 0, 1, 1, 8, 'el-icon-Platform', NULL, '2026-04-15 14:34:17', '2026-04-17 13:26:53', NULL);
INSERT INTO `sys_menu` VALUES (1190, 1100, '0,1100', '钱包管理', 'M', 'ProxyWallet', 'wallet', 'proxy/wallet/index', NULL, 0, 1, 1, 9, 'el-icon-WalletFilled', NULL, '2026-04-15 14:34:17', '2026-04-17 13:26:25', NULL);
INSERT INTO `sys_menu` VALUES (1200, 1100, '0,1100', '分销管理', 'M', 'ProxyDistribution', 'distribution', 'proxy/distribution/index', NULL, 0, 1, 1, 10, 'el-icon-Fold', NULL, '2026-04-15 14:34:17', '2026-04-17 13:27:11', NULL);
INSERT INTO `sys_menu` VALUES (1300, 0, '0', '会员中心', 'C', 'Member', '/member', 'Layout', NULL, 1, NULL, 1, 11, 'role', '/member/user', '2026-04-17 13:48:14', '2026-04-17 13:54:31', NULL);
INSERT INTO `sys_menu` VALUES (1310, 1300, '0,1300', '会员管理', 'M', 'MemberUser', 'user', 'member/user/index', NULL, 0, 1, 1, 1, 'el-icon-User', NULL, '2026-04-17 13:48:14', '2026-04-17 13:54:51', NULL);
INSERT INTO `sys_menu` VALUES (1320, 1300, '0,1300', '认证审核', 'M', 'MemberVerifyAudit', 'verify', 'member/verify/index', NULL, 0, 1, 1, 2, 'el-icon-Unlock', NULL, '2026-04-17 13:47:38', '2026-04-17 13:55:01', NULL);
INSERT INTO `sys_menu` VALUES (2101, 210, '0,1,210', '用户查询', 'B', NULL, '', NULL, 'sys:user:list', NULL, NULL, 1, 1, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2102, 210, '0,1,210', '用户新增', 'B', NULL, '', NULL, 'sys:user:create', NULL, NULL, 1, 2, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2103, 210, '0,1,210', '用户编辑', 'B', NULL, '', NULL, 'sys:user:update', NULL, NULL, 1, 3, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2104, 210, '0,1,210', '用户删除', 'B', NULL, '', NULL, 'sys:user:delete', NULL, NULL, 1, 4, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2105, 210, '0,1,210', '重置密码', 'B', NULL, '', NULL, 'sys:user:reset-password', NULL, NULL, 1, 5, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2106, 210, '0,1,210', '用户导入', 'B', NULL, '', NULL, 'sys:user:import', NULL, NULL, 1, 6, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2107, 210, '0,1,210', '用户导出', 'B', NULL, '', NULL, 'sys:user:export', NULL, NULL, 1, 7, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2201, 220, '0,1,220', '角色查询', 'B', NULL, '', NULL, 'sys:role:list', NULL, NULL, 1, 1, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2202, 220, '0,1,220', '角色新增', 'B', NULL, '', NULL, 'sys:role:create', NULL, NULL, 1, 2, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2203, 220, '0,1,220', '角色编辑', 'B', NULL, '', NULL, 'sys:role:update', NULL, NULL, 1, 3, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2204, 220, '0,1,220', '角色删除', 'B', NULL, '', NULL, 'sys:role:delete', NULL, NULL, 1, 4, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2205, 220, '0,1,220', '角色分配权限', 'B', NULL, '', NULL, 'sys:role:assign', NULL, NULL, 1, 5, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2301, 230, '0,1,230', '菜单查询', 'B', NULL, '', NULL, 'sys:menu:list', NULL, NULL, 1, 1, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2302, 230, '0,1,230', '菜单新增', 'B', NULL, '', NULL, 'sys:menu:create', NULL, NULL, 1, 2, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2303, 230, '0,1,230', '菜单编辑', 'B', NULL, '', NULL, 'sys:menu:update', NULL, NULL, 1, 3, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2304, 230, '0,1,230', '菜单删除', 'B', NULL, '', NULL, 'sys:menu:delete', NULL, NULL, 1, 4, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2401, 240, '0,1,240', '部门查询', 'B', NULL, '', NULL, 'sys:dept:list', NULL, NULL, 1, 1, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2402, 240, '0,1,240', '部门新增', 'B', NULL, '', NULL, 'sys:dept:create', NULL, NULL, 1, 2, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2403, 240, '0,1,240', '部门编辑', 'B', NULL, '', NULL, 'sys:dept:update', NULL, NULL, 1, 3, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2404, 240, '0,1,240', '部门删除', 'B', NULL, '', NULL, 'sys:dept:delete', NULL, NULL, 1, 4, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2501, 250, '0,1,250', '字典查询', 'B', NULL, '', NULL, 'sys:dict:list', NULL, NULL, 1, 1, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2502, 250, '0,1,250', '字典新增', 'B', NULL, '', NULL, 'sys:dict:create', NULL, NULL, 1, 2, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2503, 250, '0,1,250', '字典编辑', 'B', NULL, '', NULL, 'sys:dict:update', NULL, NULL, 1, 3, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2504, 250, '0,1,250', '字典删除', 'B', NULL, '', NULL, 'sys:dict:delete', NULL, NULL, 1, 4, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2511, 251, '0,1,251', '字典项查询', 'B', NULL, '', NULL, 'sys:dict-item:list', NULL, NULL, 1, 1, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2512, 251, '0,1,251', '字典项新增', 'B', NULL, '', NULL, 'sys:dict-item:create', NULL, NULL, 1, 2, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2513, 251, '0,1,251', '字典项编辑', 'B', NULL, '', NULL, 'sys:dict-item:update', NULL, NULL, 1, 3, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2514, 251, '0,1,251', '字典项删除', 'B', NULL, '', NULL, 'sys:dict-item:delete', NULL, NULL, 1, 4, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2601, 260, '0,1,260', '日志查询', 'B', NULL, '', NULL, 'sys:log:list', NULL, NULL, 1, 1, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2701, 270, '0,1,270', '系统配置查询', 'B', NULL, '', NULL, 'sys:config:list', 0, 1, 1, 1, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2702, 270, '0,1,270', '系统配置新增', 'B', NULL, '', NULL, 'sys:config:create', 0, 1, 1, 2, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2703, 270, '0,1,270', '系统配置修改', 'B', NULL, '', NULL, 'sys:config:update', 0, 1, 1, 3, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2704, 270, '0,1,270', '系统配置删除', 'B', NULL, '', NULL, 'sys:config:delete', 0, 1, 1, 4, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2705, 270, '0,1,270', '系统配置刷新', 'B', NULL, '', NULL, 'sys:config:refresh', 0, 1, 1, 5, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2711, 271, '0,1,271', '会员认证策略查看', 'B', NULL, '', NULL, 'member:verify:policy:view', NULL, NULL, 1, 1, '', NULL, '2026-04-17 13:47:38', '2026-04-17 13:47:38', NULL);
INSERT INTO `sys_menu` VALUES (2712, 271, '0,1,271', '会员认证策略修改', 'B', NULL, '', NULL, 'member:verify:policy:update', NULL, NULL, 1, 2, '', NULL, '2026-04-17 13:47:38', '2026-04-17 13:47:38', NULL);
INSERT INTO `sys_menu` VALUES (2713, 271, '0,1,271', '会员登录注册配置查看', 'B', NULL, '', NULL, 'member:auth:config:view', NULL, NULL, 1, 3, '', NULL, '2026-04-22 00:00:00', '2026-04-22 00:00:00', NULL);
INSERT INTO `sys_menu` VALUES (2714, 271, '0,1,271', '会员登录注册配置修改', 'B', NULL, '', NULL, 'member:auth:config:update', NULL, NULL, 1, 4, '', NULL, '2026-04-22 00:00:00', '2026-04-22 00:00:00', NULL);
INSERT INTO `sys_menu` VALUES (2801, 280, '0,1,280', '通知查询', 'B', NULL, '', NULL, 'sys:notice:list', NULL, NULL, 1, 1, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2802, 280, '0,1,280', '通知新增', 'B', NULL, '', NULL, 'sys:notice:create', NULL, NULL, 1, 2, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2803, 280, '0,1,280', '通知编辑', 'B', NULL, '', NULL, 'sys:notice:update', NULL, NULL, 1, 3, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2804, 280, '0,1,280', '通知删除', 'B', NULL, '', NULL, 'sys:notice:delete', NULL, NULL, 1, 4, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2805, 280, '0,1,280', '通知发布', 'B', NULL, '', NULL, 'sys:notice:publish', 0, 1, 1, 5, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (2806, 280, '0,1,280', '通知撤回', 'B', NULL, '', NULL, 'sys:notice:revoke', 0, 1, 1, 6, '', NULL, '2026-04-14 20:40:53', '2026-04-14 20:40:53', NULL);
INSERT INTO `sys_menu` VALUES (11101, 1110, '0,1100,1110', '商品查询', 'B', NULL, '', NULL, 'proxy:product:list', NULL, NULL, 1, 1, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11102, 1110, '0,1100,1110', '商品新增', 'B', NULL, '', NULL, 'proxy:product:create', NULL, NULL, 1, 2, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11103, 1110, '0,1100,1110', '商品修改', 'B', NULL, '', NULL, 'proxy:product:update', NULL, NULL, 1, 3, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11104, 1110, '0,1100,1110', '商品删除', 'B', NULL, '', NULL, 'proxy:product:delete', NULL, NULL, 1, 4, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11201, 1120, '0,1100,1120', '静态价格查询', 'B', NULL, '', NULL, 'proxy:static-price:list', NULL, NULL, 1, 1, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11202, 1120, '0,1100,1120', '静态价格新增', 'B', NULL, '', NULL, 'proxy:static-price:create', NULL, NULL, 1, 2, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11203, 1120, '0,1100,1120', '静态价格修改', 'B', NULL, '', NULL, 'proxy:static-price:update', NULL, NULL, 1, 3, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11204, 1120, '0,1100,1120', '静态价格删除', 'B', NULL, '', NULL, 'proxy:static-price:delete', NULL, NULL, 1, 4, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11301, 1130, '0,1100,1130', '动态套餐查询', 'B', NULL, '', NULL, 'proxy:dynamic-plan:list', NULL, NULL, 1, 1, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11302, 1130, '0,1100,1130', '动态套餐新增', 'B', NULL, '', NULL, 'proxy:dynamic-plan:create', NULL, NULL, 1, 2, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11303, 1130, '0,1100,1130', '动态套餐修改', 'B', NULL, '', NULL, 'proxy:dynamic-plan:update', NULL, NULL, 1, 3, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11304, 1130, '0,1100,1130', '动态套餐删除', 'B', NULL, '', NULL, 'proxy:dynamic-plan:delete', NULL, NULL, 1, 4, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11401, 1140, '0,1100,1140', '时长倍率查询', 'B', NULL, '', NULL, 'proxy:duration:list', NULL, NULL, 1, 1, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11402, 1140, '0,1100,1140', '时长倍率新增', 'B', NULL, '', NULL, 'proxy:duration:create', NULL, NULL, 1, 2, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11403, 1140, '0,1100,1140', '时长倍率修改', 'B', NULL, '', NULL, 'proxy:duration:update', NULL, NULL, 1, 3, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11404, 1140, '0,1100,1140', '时长倍率删除', 'B', NULL, '', NULL, 'proxy:duration:delete', NULL, NULL, 1, 4, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11501, 1150, '0,1100,1150', '订单查询', 'B', NULL, '', NULL, 'proxy:order:list', NULL, NULL, 1, 1, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11502, 1150, '0,1100,1150', '订单创建', 'B', NULL, '', NULL, 'proxy:order:create', NULL, NULL, 1, 2, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11503, 1150, '0,1100,1150', '订单支付', 'B', NULL, '', NULL, 'proxy:order:pay', NULL, NULL, 1, 3, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11504, 1150, '0,1100,1150', '订单补偿重试', 'B', NULL, '', NULL, 'proxy:order:compensate', NULL, NULL, 1, 4, '', NULL, '2026-04-16 10:21:38', '2026-04-16 10:21:38', NULL);
INSERT INTO `sys_menu` VALUES (11505, 1150, '0,1100,1150', '订单取消', 'B', NULL, '', NULL, 'proxy:order:cancel', NULL, NULL, 1, 5, '', NULL, '2026-04-20 00:00:00', '2026-04-20 00:00:00', NULL);
INSERT INTO `sys_menu` VALUES (11601, 1160, '0,1100,1160', '静态代理查询', 'B', NULL, '', NULL, 'proxy:static-asset:list', NULL, NULL, 1, 1, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11602, 1160, '0,1100,1160', '静态代理续费', 'B', NULL, '', NULL, 'proxy:static-asset:renew', NULL, NULL, 1, 2, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11603, 1160, '0,1100,1160', '静态代理维护', 'B', NULL, '', NULL, 'proxy:static-asset:update', NULL, NULL, 1, 3, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11701, 1170, '0,1100,1170', '动态通道查询', 'B', NULL, '', NULL, 'proxy:dynamic-channel:list', NULL, NULL, 1, 1, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11702, 1170, '0,1100,1170', '动态通道维护', 'B', NULL, '', NULL, 'proxy:dynamic-channel:update', NULL, NULL, 1, 2, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11801, 1180, '0,1100,1180', '上游供应商查询', 'B', NULL, '', NULL, 'proxy:upstream:list', NULL, NULL, 1, 1, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11802, 1180, '0,1100,1180', '上游供应商新增', 'B', NULL, '', NULL, 'proxy:upstream:create', NULL, NULL, 1, 2, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11803, 1180, '0,1100,1180', '上游供应商修改', 'B', NULL, '', NULL, 'proxy:upstream:update', NULL, NULL, 1, 3, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11804, 1180, '0,1100,1180', '上游供应商删除', 'B', NULL, '', NULL, 'proxy:upstream:delete', NULL, NULL, 1, 4, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11901, 1190, '0,1100,1190', '钱包查询', 'B', NULL, '', NULL, 'proxy:wallet:list', NULL, NULL, 1, 1, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (11902, 1190, '0,1100,1190', '钱包加款', 'B', NULL, '', NULL, 'proxy:wallet:recharge', NULL, NULL, 1, 2, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (12001, 1200, '0,1100,1200', '分销配置查询', 'B', NULL, '', NULL, 'proxy:distribution:list', NULL, NULL, 1, 1, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (12002, 1200, '0,1100,1200', '分销配置维护', 'B', NULL, '', NULL, 'proxy:distribution:update', NULL, NULL, 1, 2, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (12003, 1200, '0,1100,1200', '佣金流水查询', 'B', NULL, '', NULL, 'proxy:distribution:commission:list', NULL, NULL, 1, 3, '', NULL, '2026-04-15 14:34:17', '2026-04-15 14:34:17', NULL);
INSERT INTO `sys_menu` VALUES (13101, 1310, '0,1300,1310', '会员查询', 'B', NULL, '', NULL, 'member:user:list', NULL, NULL, 1, 1, '', NULL, '2026-04-17 13:48:14', '2026-04-17 13:48:14', NULL);
INSERT INTO `sys_menu` VALUES (13102, 1310, '0,1300,1310', '会员新增', 'B', NULL, '', NULL, 'member:user:create', NULL, NULL, 1, 2, '', NULL, '2026-04-17 13:48:14', '2026-04-17 13:48:14', NULL);
INSERT INTO `sys_menu` VALUES (13103, 1310, '0,1300,1310', '会员修改', 'B', NULL, '', NULL, 'member:user:update', NULL, NULL, 1, 3, '', NULL, '2026-04-17 13:48:14', '2026-04-17 13:48:14', NULL);
INSERT INTO `sys_menu` VALUES (13201, 1320, '0,1300,1320', '认证记录查询', 'B', NULL, '', NULL, 'member:verify:record:list', NULL, NULL, 1, 1, '', NULL, '2026-04-17 13:47:38', '2026-04-17 13:47:38', NULL);
INSERT INTO `sys_menu` VALUES (13202, 1320, '0,1300,1320', '认证审核处理', 'B', NULL, '', NULL, 'member:verify:record:audit', NULL, NULL, 1, 2, '', NULL, '2026-04-17 13:47:38', '2026-04-17 13:47:38', NULL);

-- ----------------------------
-- Table structure for sys_notice
-- ----------------------------
DROP TABLE IF EXISTS `sys_notice`;
CREATE TABLE `sys_notice`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '通知标题',
  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '通知内容',
  `type` tinyint(4) NOT NULL COMMENT '通知类型（关联字典编码：notice_type）',
  `level` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '通知等级（字典code：notice_level）',
  `target_type` tinyint(4) NOT NULL COMMENT '目标类型（1: 全体, 2: 指定）',
  `target_user_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '目标人ID集合（多个使用英文逗号,分割）',
  `publisher_id` bigint(20) NULL DEFAULT NULL COMMENT '发布人ID',
  `publish_status` tinyint(4) NULL DEFAULT 0 COMMENT '发布状态（0: 未发布, 1: 已发布, -1: 已撤回）',
  `publish_time` datetime NULL DEFAULT NULL COMMENT '发布时间',
  `revoke_time` datetime NULL DEFAULT NULL COMMENT '撤回时间',
  `create_by` bigint(20) NOT NULL COMMENT '创建人ID',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除（0: 未删除, 1: 已删除）',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统通知公告表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of sys_notice
-- ----------------------------
INSERT INTO `sys_notice` VALUES (1, 'v3.0.0 版本发布 - 多租户功能上线', '<p>🎉 新版本发布，主要更新内容：</p><p>1. 新增多租户功能，支持租户隔离和数据管理</p><p>2. 优化系统性能，提升响应速度</p><p>3. 完善权限管理，增强安全性</p><p>4. 修复已知问题，提升系统稳定性</p>', 1, 'H', 1, NULL, 1, 1, '2024-12-15 10:00:00', NULL, 1, '2024-12-15 10:00:00', 1, '2026-04-14 21:03:04', 1);
INSERT INTO `sys_notice` VALUES (2, '系统维护通知 - 2024年12月20日', '<p>⏰ 系统维护通知</p><p>系统将于 <strong>2024年12月20日（本周五）凌晨 2:00-4:00</strong> 进行例行维护升级。</p><p>维护期间系统将暂停服务，请提前做好数据备份工作。</p><p>给您带来的不便，敬请谅解！</p>', 2, 'H', 1, NULL, 1, 1, '2024-12-18 14:30:00', NULL, 1, '2024-12-18 14:30:00', 1, '2026-04-14 21:03:04', 1);
INSERT INTO `sys_notice` VALUES (3, '安全提醒 - 防范钓鱼邮件', '<p>⚠️ 安全提醒</p><p>近期发现有不法分子通过钓鱼邮件进行网络攻击，请大家提高警惕：</p><p>1. 不要点击来源不明的邮件链接</p><p>2. 不要下载可疑附件</p><p>3. 遇到可疑邮件请及时联系IT部门</p><p>4. 定期修改密码，使用强密码策略</p>', 3, 'H', 1, NULL, 1, 1, '2024-12-10 09:00:00', NULL, 1, '2024-12-10 09:00:00', 1, '2026-04-14 21:03:04', 1);
INSERT INTO `sys_notice` VALUES (4, '元旦假期安排通知', '<p>📅 元旦假期安排</p><p>根据国家法定节假日安排，公司元旦假期时间为：</p><p><strong>2024年12月30日（周一）至 2025年1月1日（周三）</strong>，共3天。</p><p>2024年12月29日（周日）正常上班。</p><p>祝大家元旦快乐，假期愉快！</p>', 4, 'M', 1, NULL, 1, 1, '2024-12-25 16:00:00', NULL, 1, '2024-12-25 16:00:00', 1, '2026-04-14 21:03:04', 1);
INSERT INTO `sys_notice` VALUES (5, '新产品发布会邀请', '<p>🎊 新产品发布会邀请</p><p>公司将于 <strong>2025年1月15日下午14:00</strong> 在总部会议室举办新产品发布会。</p><p>届时将展示最新研发的产品和技术成果，欢迎全体员工参加。</p><p>请各部门提前安排好工作，准时参加。</p>', 5, 'M', 1, NULL, 1, 1, '2024-12-28 11:00:00', NULL, 1, '2024-12-28 11:00:00', 1, '2026-04-14 21:03:04', 1);
INSERT INTO `sys_notice` VALUES (6, 'v2.16.1 版本更新', '<p>✨ 版本更新</p><p>v2.16.1 版本已发布，主要修复内容：</p><p>1. 修复 WebSocket 重复连接导致的后台线程阻塞问题</p><p>2. 优化通知公告功能，提升用户体验</p><p>3. 修复部分已知bug</p><p>建议尽快更新到最新版本。</p>', 1, 'M', 1, NULL, 1, 1, '2024-12-05 15:30:00', NULL, 1, '2024-12-05 15:30:00', 1, '2026-04-14 21:03:04', 1);
INSERT INTO `sys_notice` VALUES (7, '年终总结会议通知', '<p>📋 年终总结会议通知</p><p>各部门年终总结会议将于 <strong>2024年12月30日上午9:00</strong> 召开。</p><p>请各部门负责人提前准备好年度工作总结和下年度工作计划。</p><p>会议地点：总部大会议室</p>', 5, 'M', 2, '1,2', 1, 1, '2024-12-22 10:00:00', NULL, 1, '2024-12-22 10:00:00', 1, '2026-04-14 21:03:04', 1);
INSERT INTO `sys_notice` VALUES (8, '系统功能优化完成', '<p>✅ 系统功能优化</p><p>已完成以下功能优化：</p><p>1. 优化用户管理界面，提升操作体验</p><p>2. 增强数据导出功能，支持更多格式</p><p>3. 优化搜索功能，提升查询效率</p><p>4. 修复部分界面显示问题</p>', 1, 'L', 1, NULL, 1, 1, '2024-12-12 14:20:00', NULL, 1, '2024-12-12 14:20:00', 1, '2026-04-14 21:03:04', 1);
INSERT INTO `sys_notice` VALUES (9, '员工培训计划', '<p>📚 员工培训计划</p><p>为提升员工专业技能，公司将于 <strong>2025年1月8日-10日</strong> 组织技术培训。</p><p>培训内容：</p><p>1. 新技术框架应用</p><p>2. 代码规范与最佳实践</p><p>3. 系统架构设计</p><p>请各部门合理安排工作，确保培训顺利进行。</p>', 5, 'M', 1, NULL, 1, 1, '2024-12-20 09:30:00', NULL, 1, '2024-12-20 09:30:00', 1, '2026-04-14 21:03:04', 1);
INSERT INTO `sys_notice` VALUES (10, '数据备份提醒', '<p>💾 数据备份提醒</p><p>请各部门注意定期备份重要数据，建议每周至少备份一次。</p><p>备份方式：</p><p>1. 使用系统自带备份功能</p><p>2. 手动导出重要数据</p><p>3. 联系IT部门协助备份</p><p>数据安全，人人有责！</p>', 3, 'L', 1, NULL, 1, 1, '2024-12-08 08:00:00', NULL, 1, '2024-12-08 08:00:00', 1, '2026-04-14 21:03:04', 1);

-- ----------------------------
-- Table structure for sys_role
-- ----------------------------
DROP TABLE IF EXISTS `sys_role`;
CREATE TABLE `sys_role`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色名称',
  `code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色编码',
  `sort` int(11) NULL DEFAULT NULL COMMENT '显示顺序',
  `status` tinyint(1) NULL DEFAULT 1 COMMENT '角色状态(1-正常 0-停用)',
  `data_scope` tinyint(4) NULL DEFAULT NULL COMMENT '数据权限(1-所有数据 2-部门及子部门数据 3-本部门数据 4-本人数据 5-自定义部门数据)',
  `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人 ID',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint(1) NULL DEFAULT 0 COMMENT '逻辑删除标识(0-未删除 1-已删除)',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_name`(`name` ASC) USING BTREE COMMENT '角色名称唯一索引',
  UNIQUE INDEX `uk_code`(`code` ASC) USING BTREE COMMENT '角色编码唯一索引'
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统角色表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of sys_role
-- ----------------------------
INSERT INTO `sys_role` VALUES (1, '超级管理员', 'ROOT', 1, 1, 1, NULL, '2026-04-14 20:40:53', NULL, '2026-04-14 20:40:53', 0);
INSERT INTO `sys_role` VALUES (2, '系统管理员', 'ADMIN', 2, 1, 1, NULL, '2026-04-14 20:40:53', NULL, NULL, 0);
INSERT INTO `sys_role` VALUES (3, '访问游客', 'GUEST', 3, 1, 3, NULL, '2026-04-14 20:40:53', NULL, '2026-04-14 20:40:53', 0);
INSERT INTO `sys_role` VALUES (4, '部门主管', 'DEPT_MANAGER', 4, 1, 2, NULL, '2026-04-14 20:40:53', NULL, '2026-04-14 20:40:53', 0);
INSERT INTO `sys_role` VALUES (5, '部门成员', 'DEPT_MEMBER', 5, 1, 3, NULL, '2026-04-14 20:40:53', NULL, '2026-04-14 20:40:53', 0);
INSERT INTO `sys_role` VALUES (6, '普通员工', 'EMPLOYEE', 6, 1, 4, NULL, '2026-04-14 20:40:53', NULL, '2026-04-14 20:40:53', 0);
INSERT INTO `sys_role` VALUES (7, '自定义权限用户', 'CUSTOM_USER', 7, 1, 5, NULL, '2026-04-14 20:40:53', NULL, '2026-04-14 20:40:53', 0);
INSERT INTO `sys_role` VALUES (8, '代理平台主管', 'PROXY_MANAGER', 80, 1, 1, 1, '2026-04-15 14:34:10', 1, '2026-04-15 14:34:10', 0);

-- ----------------------------
-- Table structure for sys_role_dept
-- ----------------------------
DROP TABLE IF EXISTS `sys_role_dept`;
CREATE TABLE `sys_role_dept`  (
  `role_id` bigint(20) NOT NULL COMMENT '角色ID',
  `dept_id` bigint(20) NOT NULL COMMENT '部门ID',
  UNIQUE INDEX `uk_roleid_deptid`(`role_id` ASC, `dept_id` ASC) USING BTREE COMMENT '角色部门唯一索引'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '角色部门关联表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of sys_role_dept
-- ----------------------------
INSERT INTO `sys_role_dept` VALUES (7, 1);
INSERT INTO `sys_role_dept` VALUES (7, 2);

-- ----------------------------
-- Table structure for sys_role_menu
-- ----------------------------
DROP TABLE IF EXISTS `sys_role_menu`;
CREATE TABLE `sys_role_menu`  (
  `role_id` bigint(20) NOT NULL COMMENT '角色ID',
  `menu_id` bigint(20) NOT NULL COMMENT '菜单ID',
  UNIQUE INDEX `uk_roleid_menuid`(`role_id` ASC, `menu_id` ASC) USING BTREE COMMENT '角色菜单唯一索引'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '角色菜单关联表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of sys_role_menu
-- ----------------------------
INSERT INTO `sys_role_menu` VALUES (2, 1);
INSERT INTO `sys_role_menu` VALUES (2, 2);
INSERT INTO `sys_role_menu` VALUES (2, 210);
INSERT INTO `sys_role_menu` VALUES (2, 220);
INSERT INTO `sys_role_menu` VALUES (2, 230);
INSERT INTO `sys_role_menu` VALUES (2, 240);
INSERT INTO `sys_role_menu` VALUES (2, 250);
INSERT INTO `sys_role_menu` VALUES (2, 251);
INSERT INTO `sys_role_menu` VALUES (2, 260);
INSERT INTO `sys_role_menu` VALUES (2, 270);
INSERT INTO `sys_role_menu` VALUES (2, 271);
INSERT INTO `sys_role_menu` VALUES (2, 280);
INSERT INTO `sys_role_menu` VALUES (2, 310);
INSERT INTO `sys_role_menu` VALUES (2, 1100);
INSERT INTO `sys_role_menu` VALUES (2, 1110);
INSERT INTO `sys_role_menu` VALUES (2, 1120);
INSERT INTO `sys_role_menu` VALUES (2, 1130);
INSERT INTO `sys_role_menu` VALUES (2, 1140);
INSERT INTO `sys_role_menu` VALUES (2, 1150);
INSERT INTO `sys_role_menu` VALUES (2, 1160);
INSERT INTO `sys_role_menu` VALUES (2, 1170);
INSERT INTO `sys_role_menu` VALUES (2, 1180);
INSERT INTO `sys_role_menu` VALUES (2, 1190);
INSERT INTO `sys_role_menu` VALUES (2, 1200);
INSERT INTO `sys_role_menu` VALUES (2, 1300);
INSERT INTO `sys_role_menu` VALUES (2, 1310);
INSERT INTO `sys_role_menu` VALUES (2, 1320);
INSERT INTO `sys_role_menu` VALUES (2, 2101);
INSERT INTO `sys_role_menu` VALUES (2, 2102);
INSERT INTO `sys_role_menu` VALUES (2, 2103);
INSERT INTO `sys_role_menu` VALUES (2, 2104);
INSERT INTO `sys_role_menu` VALUES (2, 2105);
INSERT INTO `sys_role_menu` VALUES (2, 2106);
INSERT INTO `sys_role_menu` VALUES (2, 2107);
INSERT INTO `sys_role_menu` VALUES (2, 2201);
INSERT INTO `sys_role_menu` VALUES (2, 2202);
INSERT INTO `sys_role_menu` VALUES (2, 2203);
INSERT INTO `sys_role_menu` VALUES (2, 2204);
INSERT INTO `sys_role_menu` VALUES (2, 2205);
INSERT INTO `sys_role_menu` VALUES (2, 2301);
INSERT INTO `sys_role_menu` VALUES (2, 2302);
INSERT INTO `sys_role_menu` VALUES (2, 2303);
INSERT INTO `sys_role_menu` VALUES (2, 2304);
INSERT INTO `sys_role_menu` VALUES (2, 2401);
INSERT INTO `sys_role_menu` VALUES (2, 2402);
INSERT INTO `sys_role_menu` VALUES (2, 2403);
INSERT INTO `sys_role_menu` VALUES (2, 2404);
INSERT INTO `sys_role_menu` VALUES (2, 2501);
INSERT INTO `sys_role_menu` VALUES (2, 2502);
INSERT INTO `sys_role_menu` VALUES (2, 2503);
INSERT INTO `sys_role_menu` VALUES (2, 2504);
INSERT INTO `sys_role_menu` VALUES (2, 2511);
INSERT INTO `sys_role_menu` VALUES (2, 2512);
INSERT INTO `sys_role_menu` VALUES (2, 2513);
INSERT INTO `sys_role_menu` VALUES (2, 2514);
INSERT INTO `sys_role_menu` VALUES (2, 2601);
INSERT INTO `sys_role_menu` VALUES (2, 2701);
INSERT INTO `sys_role_menu` VALUES (2, 2702);
INSERT INTO `sys_role_menu` VALUES (2, 2703);
INSERT INTO `sys_role_menu` VALUES (2, 2704);
INSERT INTO `sys_role_menu` VALUES (2, 2705);
INSERT INTO `sys_role_menu` VALUES (2, 2711);
INSERT INTO `sys_role_menu` VALUES (2, 2712);
INSERT INTO `sys_role_menu` VALUES (2, 2713);
INSERT INTO `sys_role_menu` VALUES (2, 2714);
INSERT INTO `sys_role_menu` VALUES (2, 2801);
INSERT INTO `sys_role_menu` VALUES (2, 2802);
INSERT INTO `sys_role_menu` VALUES (2, 2803);
INSERT INTO `sys_role_menu` VALUES (2, 2804);
INSERT INTO `sys_role_menu` VALUES (2, 2805);
INSERT INTO `sys_role_menu` VALUES (2, 2806);
INSERT INTO `sys_role_menu` VALUES (2, 11101);
INSERT INTO `sys_role_menu` VALUES (2, 11102);
INSERT INTO `sys_role_menu` VALUES (2, 11103);
INSERT INTO `sys_role_menu` VALUES (2, 11104);
INSERT INTO `sys_role_menu` VALUES (2, 11201);
INSERT INTO `sys_role_menu` VALUES (2, 11202);
INSERT INTO `sys_role_menu` VALUES (2, 11203);
INSERT INTO `sys_role_menu` VALUES (2, 11204);
INSERT INTO `sys_role_menu` VALUES (2, 11301);
INSERT INTO `sys_role_menu` VALUES (2, 11302);
INSERT INTO `sys_role_menu` VALUES (2, 11303);
INSERT INTO `sys_role_menu` VALUES (2, 11304);
INSERT INTO `sys_role_menu` VALUES (2, 11401);
INSERT INTO `sys_role_menu` VALUES (2, 11402);
INSERT INTO `sys_role_menu` VALUES (2, 11403);
INSERT INTO `sys_role_menu` VALUES (2, 11404);
INSERT INTO `sys_role_menu` VALUES (2, 11501);
INSERT INTO `sys_role_menu` VALUES (2, 11502);
INSERT INTO `sys_role_menu` VALUES (2, 11503);
INSERT INTO `sys_role_menu` VALUES (2, 11504);
INSERT INTO `sys_role_menu` VALUES (2, 11505);
INSERT INTO `sys_role_menu` VALUES (2, 11601);
INSERT INTO `sys_role_menu` VALUES (2, 11602);
INSERT INTO `sys_role_menu` VALUES (2, 11603);
INSERT INTO `sys_role_menu` VALUES (2, 11701);
INSERT INTO `sys_role_menu` VALUES (2, 11702);
INSERT INTO `sys_role_menu` VALUES (2, 11801);
INSERT INTO `sys_role_menu` VALUES (2, 11802);
INSERT INTO `sys_role_menu` VALUES (2, 11803);
INSERT INTO `sys_role_menu` VALUES (2, 11804);
INSERT INTO `sys_role_menu` VALUES (2, 11901);
INSERT INTO `sys_role_menu` VALUES (2, 11902);
INSERT INTO `sys_role_menu` VALUES (2, 12001);
INSERT INTO `sys_role_menu` VALUES (2, 12002);
INSERT INTO `sys_role_menu` VALUES (2, 12003);
INSERT INTO `sys_role_menu` VALUES (2, 13101);
INSERT INTO `sys_role_menu` VALUES (2, 13102);
INSERT INTO `sys_role_menu` VALUES (2, 13103);
INSERT INTO `sys_role_menu` VALUES (2, 13201);
INSERT INTO `sys_role_menu` VALUES (2, 13202);
INSERT INTO `sys_role_menu` VALUES (4, 1);
INSERT INTO `sys_role_menu` VALUES (4, 210);
INSERT INTO `sys_role_menu` VALUES (4, 220);
INSERT INTO `sys_role_menu` VALUES (4, 2101);
INSERT INTO `sys_role_menu` VALUES (4, 2102);
INSERT INTO `sys_role_menu` VALUES (4, 2103);
INSERT INTO `sys_role_menu` VALUES (4, 2104);
INSERT INTO `sys_role_menu` VALUES (4, 2105);
INSERT INTO `sys_role_menu` VALUES (4, 2106);
INSERT INTO `sys_role_menu` VALUES (4, 2107);
INSERT INTO `sys_role_menu` VALUES (4, 2201);
INSERT INTO `sys_role_menu` VALUES (4, 2202);
INSERT INTO `sys_role_menu` VALUES (4, 2203);
INSERT INTO `sys_role_menu` VALUES (4, 2204);
INSERT INTO `sys_role_menu` VALUES (4, 2205);
INSERT INTO `sys_role_menu` VALUES (5, 1);
INSERT INTO `sys_role_menu` VALUES (5, 210);
INSERT INTO `sys_role_menu` VALUES (5, 220);
INSERT INTO `sys_role_menu` VALUES (5, 2101);
INSERT INTO `sys_role_menu` VALUES (5, 2102);
INSERT INTO `sys_role_menu` VALUES (5, 2103);
INSERT INTO `sys_role_menu` VALUES (5, 2104);
INSERT INTO `sys_role_menu` VALUES (5, 2105);
INSERT INTO `sys_role_menu` VALUES (5, 2106);
INSERT INTO `sys_role_menu` VALUES (5, 2107);
INSERT INTO `sys_role_menu` VALUES (5, 2201);
INSERT INTO `sys_role_menu` VALUES (5, 2202);
INSERT INTO `sys_role_menu` VALUES (5, 2203);
INSERT INTO `sys_role_menu` VALUES (5, 2204);
INSERT INTO `sys_role_menu` VALUES (5, 2205);
INSERT INTO `sys_role_menu` VALUES (6, 1);
INSERT INTO `sys_role_menu` VALUES (6, 210);
INSERT INTO `sys_role_menu` VALUES (6, 220);
INSERT INTO `sys_role_menu` VALUES (6, 2101);
INSERT INTO `sys_role_menu` VALUES (6, 2102);
INSERT INTO `sys_role_menu` VALUES (6, 2103);
INSERT INTO `sys_role_menu` VALUES (6, 2104);
INSERT INTO `sys_role_menu` VALUES (6, 2105);
INSERT INTO `sys_role_menu` VALUES (6, 2106);
INSERT INTO `sys_role_menu` VALUES (6, 2107);
INSERT INTO `sys_role_menu` VALUES (6, 2201);
INSERT INTO `sys_role_menu` VALUES (6, 2202);
INSERT INTO `sys_role_menu` VALUES (6, 2203);
INSERT INTO `sys_role_menu` VALUES (6, 2204);
INSERT INTO `sys_role_menu` VALUES (6, 2205);
INSERT INTO `sys_role_menu` VALUES (7, 1);
INSERT INTO `sys_role_menu` VALUES (7, 210);
INSERT INTO `sys_role_menu` VALUES (7, 220);
INSERT INTO `sys_role_menu` VALUES (7, 2101);
INSERT INTO `sys_role_menu` VALUES (7, 2102);
INSERT INTO `sys_role_menu` VALUES (7, 2103);
INSERT INTO `sys_role_menu` VALUES (7, 2104);
INSERT INTO `sys_role_menu` VALUES (7, 2105);
INSERT INTO `sys_role_menu` VALUES (7, 2106);
INSERT INTO `sys_role_menu` VALUES (7, 2107);
INSERT INTO `sys_role_menu` VALUES (7, 2201);
INSERT INTO `sys_role_menu` VALUES (7, 2202);
INSERT INTO `sys_role_menu` VALUES (7, 2203);
INSERT INTO `sys_role_menu` VALUES (7, 2204);
INSERT INTO `sys_role_menu` VALUES (7, 2205);

-- ----------------------------
-- Table structure for sys_user
-- ----------------------------
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `username` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户名',
  `nickname` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '昵称',
  `gender` tinyint(1) NULL DEFAULT 1 COMMENT '性别((1-男 2-女 0-保密)',
  `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '密码',
  `dept_id` int(11) NULL DEFAULT NULL COMMENT '部门ID',
  `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户头像',
  `mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '联系方式',
  `status` tinyint(1) NULL DEFAULT 1 COMMENT '状态(1-正常 0-禁用)',
  `email` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户邮箱',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人ID',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人ID',
  `is_deleted` tinyint(1) NULL DEFAULT 0 COMMENT '逻辑删除标识(0-未删除 1-已删除)',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统用户表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of sys_user
-- ----------------------------
INSERT INTO `sys_user` VALUES (1, 'root', '有来技术', 0, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', NULL, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18812345677', 1, 'youlaitech@163.com', '2026-04-14 20:40:53', NULL, '2026-04-14 20:40:53', NULL, 0);
INSERT INTO `sys_user` VALUES (2, 'admin', '系统管理员', 1, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', 1, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18888888888', 1, 'youlaitech@163.com', '2026-04-14 20:40:53', NULL, '2026-04-14 20:40:53', NULL, 0);
INSERT INTO `sys_user` VALUES (3, 'test', '测试小用户', 1, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', 3, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18812345679', 1, 'youlaitech@163.com', '2026-04-14 20:40:53', NULL, '2026-04-14 20:40:53', NULL, 0);
INSERT INTO `sys_user` VALUES (4, 'dept_manager', '部门主管', 1, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', 1, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18812345680', 1, 'manager@youlaitech.com', '2026-04-14 20:40:53', NULL, '2026-04-14 20:40:53', NULL, 0);
INSERT INTO `sys_user` VALUES (5, 'dept_member', '部门成员', 1, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', 1, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18812345681', 1, 'member@youlaitech.com', '2026-04-14 20:40:53', NULL, '2026-04-14 20:40:53', NULL, 0);
INSERT INTO `sys_user` VALUES (6, 'employee', '普通员工', 1, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', 2, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18812345682', 1, 'employee@youlaitech.com', '2026-04-14 20:40:53', NULL, '2026-04-14 20:40:53', NULL, 0);
INSERT INTO `sys_user` VALUES (7, 'custom_user', '自定义权限用户', 1, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', 3, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18812345683', 1, 'custom@youlaitech.com', '2026-04-14 20:40:53', NULL, '2026-04-14 20:40:53', NULL, 0);

-- ----------------------------
-- Table structure for sys_user_notice
-- ----------------------------
DROP TABLE IF EXISTS `sys_user_notice`;
CREATE TABLE `sys_user_notice`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `notice_id` bigint(20) NOT NULL COMMENT '公共通知id',
  `user_id` bigint(20) NOT NULL COMMENT '用户id',
  `is_read` tinyint(4) NULL DEFAULT 0 COMMENT '读取状态（0: 未读, 1: 已读）',
  `read_time` datetime NULL DEFAULT NULL COMMENT '阅读时间',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint(4) NULL DEFAULT 0 COMMENT '逻辑删除(0: 未删除, 1: 已删除)',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户通知公告关联表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of sys_user_notice
-- ----------------------------
INSERT INTO `sys_user_notice` VALUES (1, 1, 2, 1, NULL, '2026-04-14 20:40:54', '2026-04-14 20:40:54', 1);
INSERT INTO `sys_user_notice` VALUES (2, 2, 2, 1, NULL, '2026-04-14 20:40:54', '2026-04-14 20:40:54', 1);
INSERT INTO `sys_user_notice` VALUES (3, 3, 2, 1, NULL, '2026-04-14 20:40:54', '2026-04-14 20:40:54', 1);
INSERT INTO `sys_user_notice` VALUES (4, 4, 2, 1, NULL, '2026-04-14 20:40:54', '2026-04-14 20:40:54', 1);
INSERT INTO `sys_user_notice` VALUES (5, 5, 2, 1, NULL, '2026-04-14 20:40:54', '2026-04-14 20:40:54', 1);
INSERT INTO `sys_user_notice` VALUES (6, 6, 2, 1, NULL, '2026-04-14 20:40:54', '2026-04-14 20:40:54', 1);
INSERT INTO `sys_user_notice` VALUES (7, 7, 2, 1, NULL, '2026-04-14 20:40:54', '2026-04-14 20:40:54', 1);
INSERT INTO `sys_user_notice` VALUES (8, 8, 2, 1, NULL, '2026-04-14 20:40:54', '2026-04-14 20:40:54', 1);
INSERT INTO `sys_user_notice` VALUES (9, 9, 2, 1, NULL, '2026-04-14 20:40:54', '2026-04-14 20:40:54', 1);
INSERT INTO `sys_user_notice` VALUES (10, 10, 2, 1, NULL, '2026-04-14 20:40:54', '2026-04-14 20:40:54', 1);

-- ----------------------------
-- Table structure for sys_user_role
-- ----------------------------
DROP TABLE IF EXISTS `sys_user_role`;
CREATE TABLE `sys_user_role`  (
  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户ID',
  `role_id` bigint(20) NOT NULL COMMENT '角色ID',
  PRIMARY KEY (`user_id`, `role_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户角色关联表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of sys_user_role
-- ----------------------------
INSERT INTO `sys_user_role` VALUES (1, 1);
INSERT INTO `sys_user_role` VALUES (2, 2);
INSERT INTO `sys_user_role` VALUES (3, 3);
INSERT INTO `sys_user_role` VALUES (4, 4);
INSERT INTO `sys_user_role` VALUES (5, 5);
INSERT INTO `sys_user_role` VALUES (6, 6);
INSERT INTO `sys_user_role` VALUES (7, 7);

-- ----------------------------
-- Table structure for sys_user_social
-- ----------------------------
DROP TABLE IF EXISTS `sys_user_social`;
CREATE TABLE `sys_user_social`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户ID',
  `platform` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '平台类型(WECHAT_MINI/WECHAT_MP/ALIPAY/QQ/APPLE)',
  `openid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '平台openid',
  `unionid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '微信unionid',
  `nickname` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '第三方昵称',
  `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '第三方头像URL',
  `session_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '微信session_key',
  `verified` tinyint(1) NULL DEFAULT 1 COMMENT '是否已验证(1-已验证 0-未验证)',
  `create_time` datetime NULL DEFAULT NULL COMMENT '绑定时间',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_platform_openid`(`platform` ASC, `openid` ASC) USING BTREE,
  INDEX `idx_user_id`(`user_id` ASC) USING BTREE,
  INDEX `idx_unionid`(`unionid` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户第三方账号绑定表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of sys_user_social
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_distribution_commission
-- ----------------------------
DROP TABLE IF EXISTS `xxk_distribution_commission`;
CREATE TABLE `xxk_distribution_commission`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` bigint(20) NOT NULL COMMENT '佣金归属用户ID',
  `from_user_id` bigint(20) NOT NULL COMMENT '消费用户ID',
  `order_id` bigint(20) NOT NULL COMMENT '订单ID',
  `order_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '订单号',
  `level_no` tinyint(4) NOT NULL COMMENT '层级(1/2)',
  `rate` decimal(10, 4) NOT NULL DEFAULT 0.0000 COMMENT '佣金比例',
  `base_amount` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '佣金基数',
  `commission_amount` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '佣金金额',
  `commission_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PENDING' COMMENT '佣金状态',
  `confirm_time` datetime NULL DEFAULT NULL COMMENT '确认时间',
  `settle_time` datetime NULL DEFAULT NULL COMMENT '结算时间',
  `invalid_time` datetime NULL DEFAULT NULL COMMENT '失效时间',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_commission_user_status`(`user_id` ASC, `commission_status` ASC) USING BTREE,
  INDEX `idx_commission_order_id`(`order_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '分销佣金流水表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_distribution_commission
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_distribution_config
-- ----------------------------
DROP TABLE IF EXISTS `xxk_distribution_config`;
CREATE TABLE `xxk_distribution_config`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `distribution_enabled` tinyint(4) NULL DEFAULT 0 COMMENT '是否启用分销(1-是 0-否)',
  `first_level_rate` decimal(10, 4) NOT NULL DEFAULT 0.0000 COMMENT '一级佣金比例',
  `second_level_rate` decimal(10, 4) NOT NULL DEFAULT 0.0000 COMMENT '二级佣金比例',
  `withdraw_threshold` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '提现门槛金额',
  `withdraw_fee_rate` decimal(10, 4) NOT NULL DEFAULT 0.0000 COMMENT '提现手续费比例',
  `settle_rule` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'OPEN_SUCCESS_AMOUNT' COMMENT '结算规则',
  `status` tinyint(4) NULL DEFAULT 1 COMMENT '状态(1-启用 0-禁用)',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
  `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人ID',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '分销配置表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_distribution_config
-- ----------------------------
INSERT INTO `xxk_distribution_config` VALUES (1, 1, 0.1000, 0.0300, 0.00, 0.0000, 'OPEN_SUCCESS_AMOUNT', 1, '代理平台演示分销配置', 1, '2026-04-15 14:34:23', 1, '2026-04-15 14:34:23');

-- ----------------------------
-- Table structure for xxk_distribution_relation
-- ----------------------------
DROP TABLE IF EXISTS `xxk_distribution_relation`;
CREATE TABLE `xxk_distribution_relation`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '当前用户ID',
  `parent_user_id` bigint(20) NULL DEFAULT NULL COMMENT '一级上级用户ID',
  `grand_parent_user_id` bigint(20) NULL DEFAULT NULL COMMENT '二级上级用户ID',
  `bind_source` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '绑定来源',
  `bind_time` datetime NULL DEFAULT NULL COMMENT '绑定时间',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint(4) NULL DEFAULT 0 COMMENT '逻辑删除(1-已删除 0-未删除)',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_distribution_user_id`(`user_id` ASC) USING BTREE,
  INDEX `idx_distribution_parent_user_id`(`parent_user_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '分销关系表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_distribution_relation
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_dynamic_channel
-- ----------------------------
DROP TABLE IF EXISTS `xxk_dynamic_channel`;
CREATE TABLE `xxk_dynamic_channel`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户ID',
  `member_user_id` bigint(20) NULL DEFAULT NULL COMMENT '会员ID',
  `order_id` bigint(20) NOT NULL COMMENT '订单ID',
  `order_item_id` bigint(20) NULL DEFAULT NULL COMMENT '订单项ID',
  `product_id` bigint(20) NOT NULL COMMENT '商品ID',
  `upstream_provider_id` bigint(20) NOT NULL COMMENT '上游供应商ID',
  `upstream_channel_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '上游通道ID',
  `channel_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '通道名称',
  `channel_password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '通道密码',
  `channel_status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'ENABLED' COMMENT '通道状态',
  `flow_package_gb` decimal(12, 3) NOT NULL DEFAULT 0.000 COMMENT '购买流量包GB',
  `traffic_limit_gb` decimal(12, 3) NOT NULL DEFAULT 0.000 COMMENT '通道流量上限GB',
  `used_traffic_gb` decimal(12, 3) NOT NULL DEFAULT 0.000 COMMENT '已用流量GB',
  `remaining_traffic_gb` decimal(12, 3) NOT NULL DEFAULT 0.000 COMMENT '剩余流量GB',
  `expired_at` datetime NULL DEFAULT NULL COMMENT '到期时间',
  `allow_generate_proxy` tinyint(4) NULL DEFAULT 1 COMMENT '允许生成代理(1-是 0-否)',
  `last_sync_time` datetime NULL DEFAULT NULL COMMENT '最后同步时间',
  `raw_data` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '原始数据快照',
  `status` tinyint(4) NULL DEFAULT 1 COMMENT '业务状态(1-有效 0-无效)',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint(4) NULL DEFAULT 0 COMMENT '逻辑删除(1-已删除 0-未删除)',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_dynamic_upstream_channel_id`(`upstream_channel_id` ASC) USING BTREE,
  INDEX `idx_dynamic_user_status`(`user_id` ASC, `status` ASC) USING BTREE,
  INDEX `idx_xxk_dynamic_channel_member_user_id`(`member_user_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '动态通道表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_dynamic_channel
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_dynamic_channel_traffic_log
-- ----------------------------
DROP TABLE IF EXISTS `xxk_dynamic_channel_traffic_log`;
CREATE TABLE `xxk_dynamic_channel_traffic_log`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `channel_id` bigint(20) NOT NULL COMMENT '动态通道ID',
  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户ID',
  `member_user_id` bigint(20) NULL DEFAULT NULL COMMENT '会员ID',
  `date_type` tinyint(4) NULL DEFAULT NULL COMMENT '查询日期类型',
  `start_date` date NULL DEFAULT NULL COMMENT '开始日期',
  `end_date` date NULL DEFAULT NULL COMMENT '结束日期',
  `used_traffic_gb` decimal(12, 3) NOT NULL DEFAULT 0.000 COMMENT '已用流量GB',
  `total_traffic_gb` decimal(12, 3) NULL DEFAULT 0.000 COMMENT '累计流量GB',
  `raw_data` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '原始返回',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_channel_traffic_channel_id`(`channel_id` ASC, `create_time` ASC) USING BTREE,
  INDEX `idx_xxk_dynamic_channel_traffic_log_member_user_id`(`member_user_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '动态通道流量日志表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_dynamic_channel_traffic_log
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_dynamic_proxy_generate_log
-- ----------------------------
DROP TABLE IF EXISTS `xxk_dynamic_proxy_generate_log`;
CREATE TABLE `xxk_dynamic_proxy_generate_log`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `channel_id` bigint(20) NOT NULL COMMENT '动态通道ID',
  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户ID',
  `member_user_id` bigint(20) NULL DEFAULT NULL COMMENT '会员ID',
  `location` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '地区参数',
  `domain` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'Global' COMMENT '域名参数',
  `sticky_session_time` int(11) NOT NULL DEFAULT 0 COMMENT '粘性会话分钟',
  `proxy_count` int(11) NOT NULL DEFAULT 1 COMMENT '生成数量',
  `state` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '州',
  `city` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '城市',
  `generated_result` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '生成结果',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_generate_channel_id`(`channel_id` ASC, `create_time` ASC) USING BTREE,
  INDEX `idx_xxk_dynamic_proxy_generate_log_member_user_id`(`member_user_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '动态代理生成日志表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_dynamic_proxy_generate_log
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_member_login_log
-- ----------------------------
DROP TABLE IF EXISTS `xxk_member_login_log`;
CREATE TABLE `xxk_member_login_log`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `member_user_id` bigint(20) NULL DEFAULT NULL COMMENT '会员ID',
  `mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '登录手机号',
  `login_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '登录类型',
  `login_ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '登录IP',
  `login_region` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '登录地区',
  `device_info` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备信息',
  `status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '登录结果(1成功 0失败)',
  `message` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '结果说明',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_xxk_member_login_log_user`(`member_user_id` ASC) USING BTREE,
  INDEX `idx_xxk_member_login_log_mobile`(`mobile` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '会员登录日志表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_member_login_log
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_member_profile
-- ----------------------------
DROP TABLE IF EXISTS `xxk_member_profile`;
CREATE TABLE `xxk_member_profile`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `member_user_id` bigint(20) NOT NULL COMMENT '会员ID',
  `real_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '真实姓名',
  `id_card_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '身份证号',
  `id_card_front_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '身份证人像面',
  `id_card_back_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '身份证国徽面',
  `support_docs_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '补充材料JSON',
  `company_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '公司名称',
  `contact_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '联系人',
  `contact_wechat` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '联系微信',
  `email` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '联系邮箱',
  `qq` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'QQ',
  `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '地址',
  `industry` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '行业',
  `realname_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '实名状态(0未提交 1待审核 2已认证 3已驳回)',
  `last_verify_record_id` bigint(20) NULL DEFAULT NULL COMMENT '最近认证记录ID',
  `last_submit_time` datetime NULL DEFAULT NULL COMMENT '最近提交时间',
  `verified_time` datetime NULL DEFAULT NULL COMMENT '认证通过时间',
  `audit_time` datetime NULL DEFAULT NULL COMMENT '审核时间',
  `audit_by` bigint(20) NULL DEFAULT NULL COMMENT '审核人ID',
  `audit_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '审核备注',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
  `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人ID',
  `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `is_deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否删除(0否 1是)',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_xxk_member_profile_user`(`member_user_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '会员资料表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_member_profile
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_member_user
-- ----------------------------
DROP TABLE IF EXISTS `xxk_member_user`;
CREATE TABLE `xxk_member_user`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `username` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名',
  `nickname` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '昵称',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '密码',
  `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '头像',
  `mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '手机号',
  `email` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '邮箱',
  `status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '状态(1正常 0禁用)',
  `source` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'MANUAL' COMMENT '注册来源',
  `wx_openid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '微信openid',
  `wx_unionid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '微信unionid',
  `last_login_time` datetime NULL DEFAULT NULL COMMENT '最后登录时间',
  `last_login_ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '最后登录IP',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
  `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人ID',
  `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `is_deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否删除(0否 1是)',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_xxk_member_user_mobile`(`mobile` ASC) USING BTREE,
  UNIQUE INDEX `uk_xxk_member_user_username`(`username` ASC) USING BTREE,
  INDEX `idx_xxk_member_user_status`(`status` ASC) USING BTREE,
  INDEX `idx_xxk_member_user_source`(`source` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '会员主账号表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_member_user
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_member_verify_record
-- ----------------------------
DROP TABLE IF EXISTS `xxk_member_verify_record`;
CREATE TABLE `xxk_member_verify_record`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `verify_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '认证单号',
  `member_user_id` bigint(20) NOT NULL COMMENT '会员ID',
  `username_snapshot` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户名快照',
  `nickname_snapshot` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '昵称快照',
  `mobile_snapshot` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '手机号快照',
  `real_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '真实姓名',
  `id_card_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '身份证号',
  `id_card_front_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '身份证人像面',
  `id_card_back_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '身份证国徽面',
  `support_docs_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '补充材料JSON',
  `policy_snapshot_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '策略快照JSON',
  `form_data_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '提交数据JSON',
  `status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '状态(1待审核 2通过 3驳回)',
  `submit_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '提交备注',
  `submit_time` datetime NULL DEFAULT NULL COMMENT '提交时间',
  `audit_time` datetime NULL DEFAULT NULL COMMENT '审核时间',
  `audit_by` bigint(20) NULL DEFAULT NULL COMMENT '审核人ID',
  `audit_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '审核备注',
  `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人ID',
  `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `is_deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否删除(0否 1是)',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_xxk_member_verify_record_no`(`verify_no` ASC) USING BTREE,
  INDEX `idx_xxk_member_verify_record_member_user_id`(`member_user_id` ASC) USING BTREE,
  INDEX `idx_xxk_member_verify_record_status`(`status` ASC) USING BTREE,
  INDEX `idx_xxk_member_verify_record_submit_time`(`submit_time` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '会员认证记录表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_member_verify_record
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_member_wallet
-- ----------------------------
DROP TABLE IF EXISTS `xxk_member_wallet`;
CREATE TABLE `xxk_member_wallet`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `member_user_id` bigint(20) NOT NULL COMMENT '会员ID',
  `balance` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '余额',
  `frozen_balance` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '冻结金额',
  `total_recharge_amount` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '累计充值金额',
  `total_consume_amount` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '累计消费金额',
  `total_refund_amount` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '累计退款金额',
  `status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '状态(1正常 0禁用)',
  `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人ID',
  `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `is_deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否删除(0否 1是)',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_xxk_member_wallet_user`(`member_user_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '会员钱包表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_member_wallet
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_order_compensation_record
-- ----------------------------
DROP TABLE IF EXISTS `xxk_order_compensation_record`;
CREATE TABLE `xxk_order_compensation_record`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `order_id` bigint(20) NOT NULL COMMENT '订单ID',
  `order_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '订单号',
  `compensation_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '补偿类型',
  `attempt_no` int(11) NOT NULL DEFAULT 1 COMMENT '第几次补偿尝试',
  `compensation_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PENDING' COMMENT '补偿状态(PENDING/SUCCESS/FAIL)',
  `reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '补偿原因',
  `error_message` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '失败原因',
  `related_flow_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '关联退款流水号',
  `operator_id` bigint(20) NULL DEFAULT NULL COMMENT '操作人ID',
  `operator_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作人名称',
  `execute_time` datetime NULL DEFAULT NULL COMMENT '执行时间',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `is_deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否删除(0否 1是)',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_xxk_order_compensation_attempt`(`order_id` ASC, `compensation_type` ASC, `attempt_no` ASC) USING BTREE,
  INDEX `idx_xxk_order_compensation_order_no`(`order_no` ASC) USING BTREE,
  INDEX `idx_xxk_order_compensation_status`(`compensation_status` ASC, `execute_time` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '订单补偿记录表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_order_compensation_record
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_order_operate_log
-- ----------------------------
DROP TABLE IF EXISTS `xxk_order_operate_log`;
CREATE TABLE `xxk_order_operate_log`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `order_id` bigint(20) NOT NULL COMMENT '订单ID',
  `order_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '订单号',
  `operate_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '操作类型',
  `before_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作前状态',
  `after_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作后状态',
  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '操作内容',
  `operator_id` bigint(20) NULL DEFAULT NULL COMMENT '操作人ID',
  `operator_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作人名称',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_order_operate_order_id`(`order_id` ASC, `create_time` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '订单操作日志表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_order_operate_log
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_product
-- ----------------------------
DROP TABLE IF EXISTS `xxk_product`;
CREATE TABLE `xxk_product`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `product_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '商品编码',
  `product_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '商品名称',
  `product_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '商品类型(STATIC_RESIDENTIAL/DYNAMIC_RESIDENTIAL)',
  `upstream_provider_id` bigint(20) NOT NULL COMMENT '上游供应商ID',
  `upstream_product_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '上游商品编码',
  `proxies_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '上游代理类型',
  `proxies_format` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '上游代理格式',
  `purpose_web` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '上游用途参数',
  `upstream_params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '上游扩展参数JSON',
  `upstream_capabilities` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '上游能力JSON',
  `protocols_type` tinyint(4) NULL DEFAULT NULL COMMENT '协议类型(1-HTTP 2-SOCKS5 3-HTTP+SOCKS5)',
  `udp_status` tinyint(4) NULL DEFAULT 0 COMMENT '是否启用UDP(1-是 0-否)',
  `currency` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'RMB' COMMENT '币种',
  `enable_distribution` tinyint(4) NULL DEFAULT 1 COMMENT '是否参与分销(1-是 0-否)',
  `status` tinyint(4) NULL DEFAULT 1 COMMENT '状态(1-上架 0-下架)',
  `sort` int(11) NULL DEFAULT 0 COMMENT '排序',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
  `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人ID',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint(4) NULL DEFAULT 0 COMMENT '逻辑删除(1-已删除 0-未删除)',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_product_code`(`product_code` ASC) USING BTREE,
  INDEX `idx_product_type_status`(`product_type` ASC, `status` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '商品主表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_product
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_product_duration_multiplier
-- ----------------------------
DROP TABLE IF EXISTS `xxk_product_duration_multiplier`;
CREATE TABLE `xxk_product_duration_multiplier`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `product_id` bigint(20) NOT NULL COMMENT '商品ID',
  `duration_days` int(11) NOT NULL COMMENT '兼容时长天数',
  `duration_unit` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'DAY' COMMENT '时长单位(DAY天/HOUR小时)',
  `duration_value` int(11) NOT NULL DEFAULT 1 COMMENT '时长数值',
  `multiplier` decimal(10, 4) NOT NULL DEFAULT 1.0000 COMMENT '价格倍率',
  `status` tinyint(4) NULL DEFAULT 1 COMMENT '状态(1-启用 0-禁用)',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
  `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人ID',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint(4) NULL DEFAULT 0 COMMENT '逻辑删除(1-已删除 0-未删除)',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_product_duration_unit_value`(`product_id` ASC, `duration_unit` ASC, `duration_value` ASC) USING BTREE,
  INDEX `idx_product_duration_days`(`product_id` ASC, `duration_days` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '商品时长倍率表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_product_duration_multiplier
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_product_dynamic_plan
-- ----------------------------
DROP TABLE IF EXISTS `xxk_product_dynamic_plan`;
CREATE TABLE `xxk_product_dynamic_plan`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `product_id` bigint(20) NOT NULL COMMENT '商品ID',
  `plan_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '流量套餐编码',
  `flow_gb` decimal(12, 3) NOT NULL DEFAULT 0.000 COMMENT '流量套餐GB',
  `base_price` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '流量套餐基础价',
  `allow_sticky_session` tinyint(4) NULL DEFAULT 1 COMMENT '允许粘性会话(1-是 0-否)',
  `allow_location_select` tinyint(4) NULL DEFAULT 1 COMMENT '允许地区选择(1-是 0-否)',
  `allow_custom_limit` tinyint(4) NULL DEFAULT 0 COMMENT '允许自定义通道流量上限(1-是 0-否)',
  `status` tinyint(4) NULL DEFAULT 1 COMMENT '状态(1-启用 0-禁用)',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
  `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人ID',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint(4) NULL DEFAULT 0 COMMENT '逻辑删除(1-已删除 0-未删除)',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_plan_code`(`plan_code` ASC) USING BTREE,
  UNIQUE INDEX `uk_product_flow`(`product_id` ASC, `flow_gb` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '动态商品流量套餐表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_product_dynamic_plan
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_product_static_country_price
-- ----------------------------
DROP TABLE IF EXISTS `xxk_product_static_country_price`;
CREATE TABLE `xxk_product_static_country_price`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `product_id` bigint(20) NOT NULL COMMENT '商品ID',
  `price_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '价格类型(DEFAULT默认/NODE特殊节点)',
  `qiyun_product_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '齐云产品类型',
  `qiyun_pid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '齐云项目ID',
  `qiyun_project_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '齐云项目名称',
  `qiyun_area_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '齐云省份ID',
  `qiyun_area_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '齐云省份名称',
  `qiyun_node_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '齐云节点ID',
  `qiyun_node_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '齐云节点名称',
  `region_id` bigint(20) NULL DEFAULT NULL COMMENT '地区ID',
  `region_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '地区编号',
  `region_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '地区名称',
  `region_name_zh` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '地区中文名',
  `country_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '国家编码',
  `country_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '国家名称',
  `base_price` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '国家基础单价',
  `currency` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'RMB' COMMENT '币种',
  `status` tinyint(4) NULL DEFAULT 1 COMMENT '状态(1-启用 0-禁用)',
  `sort` int(11) NULL DEFAULT 0 COMMENT '排序',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
  `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人ID',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint(4) NULL DEFAULT 0 COMMENT '逻辑删除(1-已删除 0-未删除)',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_product_country`(`product_id` ASC, `country_code` ASC) USING BTREE,
  INDEX `idx_country_code`(`country_code` ASC) USING BTREE,
  INDEX `idx_static_price_region_id`(`region_id` ASC) USING BTREE,
  INDEX `idx_static_price_qiyun_node`(`product_id` ASC, `price_type` ASC, `qiyun_node_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '静态商品地区定价表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_product_static_country_price
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_proxy_order
-- ----------------------------
DROP TABLE IF EXISTS `xxk_proxy_order`;
CREATE TABLE `xxk_proxy_order`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `order_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '订单号',
  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户ID',
  `member_user_id` bigint(20) NULL DEFAULT NULL COMMENT '会员ID',
  `product_id` bigint(20) NOT NULL COMMENT '商品ID',
  `product_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '商品类型',
  `order_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'NEW' COMMENT '订单类型(NEW/RENEW)',
  `order_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'WAIT_PAY' COMMENT '订单状态',
  `pay_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'UNPAID' COMMENT '支付状态',
  `open_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'WAIT_OPEN' COMMENT '开通状态',
  `compensation_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'NONE' COMMENT '补偿状态(NONE无需补偿 PENDING待补偿 SUCCESS补偿成功 FAIL补偿失败)',
  `payment_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'BALANCE' COMMENT '支付方式',
  `currency` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'RMB' COMMENT '币种',
  `buy_quantity` int(11) NOT NULL DEFAULT 1 COMMENT '购买数量',
  `duration_days` int(11) NOT NULL COMMENT '购买天数',
  `sale_amount` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '销售金额',
  `paid_amount` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '实付金额',
  `cost_amount` decimal(18, 2) NULL DEFAULT 0.00 COMMENT '采购成本',
  `open_success_amount` decimal(18, 2) NULL DEFAULT 0.00 COMMENT '开通成功金额',
  `region_snapshot` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '地区快照',
  `product_snapshot` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '商品快照',
  `inviter_user_id` bigint(20) NULL DEFAULT NULL COMMENT '一级邀请人',
  `parent_inviter_user_id` bigint(20) NULL DEFAULT NULL COMMENT '二级邀请人',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
  `compensation_reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '补偿说明',
  `compensation_retry_count` int(11) NOT NULL DEFAULT 0 COMMENT '补偿重试次数',
  `last_compensation_time` datetime NULL DEFAULT NULL COMMENT '最近补偿时间',
  `pay_time` datetime NULL DEFAULT NULL COMMENT '支付时间',
  `open_time` datetime NULL DEFAULT NULL COMMENT '开通时间',
  `finish_time` datetime NULL DEFAULT NULL COMMENT '完成时间',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint(4) NULL DEFAULT 0 COMMENT '逻辑删除(1-已删除 0-未删除)',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_order_no`(`order_no` ASC) USING BTREE,
  INDEX `idx_order_user_time`(`user_id` ASC, `create_time` ASC) USING BTREE,
  INDEX `idx_order_status`(`order_status` ASC, `pay_status` ASC, `open_status` ASC) USING BTREE,
  INDEX `idx_xxk_proxy_order_member_user_id`(`member_user_id` ASC) USING BTREE,
  INDEX `idx_xxk_proxy_order_compensation_status`(`compensation_status` ASC, `update_time` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '代理订单主表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_proxy_order
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_proxy_order_item
-- ----------------------------
DROP TABLE IF EXISTS `xxk_proxy_order_item`;
CREATE TABLE `xxk_proxy_order_item`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `order_id` bigint(20) NOT NULL COMMENT '订单ID',
  `order_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '订单号',
  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户ID',
  `member_user_id` bigint(20) NULL DEFAULT NULL COMMENT '会员ID',
  `product_id` bigint(20) NOT NULL COMMENT '商品ID',
  `product_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '商品类型',
  `country_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '国家编码',
  `country_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '国家名称',
  `quantity` int(11) NOT NULL DEFAULT 1 COMMENT '数量',
  `duration_days` int(11) NOT NULL COMMENT '时长天数',
  `duration_multiplier` decimal(10, 4) NOT NULL DEFAULT 1.0000 COMMENT '时长倍率',
  `unit_price` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '单价',
  `line_amount` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '小计金额',
  `flow_gb` decimal(12, 3) NULL DEFAULT NULL COMMENT '动态流量GB',
  `upstream_payload` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '上游请求快照',
  `item_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'INIT' COMMENT '订单项状态',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint(4) NULL DEFAULT 0 COMMENT '逻辑删除(1-已删除 0-未删除)',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_order_item_order_id`(`order_id` ASC) USING BTREE,
  INDEX `idx_xxk_proxy_order_item_member_user_id`(`member_user_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '代理订单项表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_proxy_order_item
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_static_proxy_asset
-- ----------------------------
DROP TABLE IF EXISTS `xxk_static_proxy_asset`;
CREATE TABLE `xxk_static_proxy_asset`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户ID',
  `member_user_id` bigint(20) NULL DEFAULT NULL COMMENT '会员ID',
  `order_id` bigint(20) NOT NULL COMMENT '订单ID',
  `order_item_id` bigint(20) NULL DEFAULT NULL COMMENT '订单项ID',
  `product_id` bigint(20) NOT NULL COMMENT '商品ID',
  `upstream_provider_id` bigint(20) NOT NULL COMMENT '上游供应商ID',
  `upstream_order_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '上游订单号',
  `upstream_proxy_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '上游代理ID',
  `proxy_address` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '代理IP',
  `port` int(11) NOT NULL COMMENT '端口',
  `username` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '账号',
  `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '密码',
  `protocols` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '协议',
  `country_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '国家编码',
  `country_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '国家名称',
  `city_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '城市名称',
  `proxy_status` tinyint(4) NULL DEFAULT 1 COMMENT '代理状态(1-正常 2-禁用 3-维护)',
  `is_auto_renew` tinyint(4) NULL DEFAULT 0 COMMENT '自动续费(1-开 0-关)',
  `expired_at` datetime NULL DEFAULT NULL COMMENT '到期时间',
  `last_sync_time` datetime NULL DEFAULT NULL COMMENT '最后同步时间',
  `raw_data` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '原始数据快照',
  `status` tinyint(4) NULL DEFAULT 1 COMMENT '业务状态(1-有效 0-无效)',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint(4) NULL DEFAULT 0 COMMENT '逻辑删除(1-已删除 0-未删除)',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_static_upstream_proxy_id`(`upstream_proxy_id` ASC) USING BTREE,
  INDEX `idx_static_user_status`(`user_id` ASC, `status` ASC) USING BTREE,
  INDEX `idx_static_expired_at`(`expired_at` ASC) USING BTREE,
  INDEX `idx_xxk_static_proxy_asset_member_user_id`(`member_user_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '静态代理资产表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_static_proxy_asset
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_static_proxy_change_log
-- ----------------------------
DROP TABLE IF EXISTS `xxk_static_proxy_change_log`;
CREATE TABLE `xxk_static_proxy_change_log`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `asset_id` bigint(20) NOT NULL COMMENT '静态资产ID',
  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户ID',
  `change_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '变更类型',
  `before_value` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '变更前',
  `after_value` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '变更后',
  `operator_id` bigint(20) NULL DEFAULT NULL COMMENT '操作人ID',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_static_change_asset_id`(`asset_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '静态代理变更日志表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_static_proxy_change_log
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_static_proxy_whitelist
-- ----------------------------
DROP TABLE IF EXISTS `xxk_static_proxy_whitelist`;
CREATE TABLE `xxk_static_proxy_whitelist`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户ID',
  `member_user_id` bigint(20) NULL DEFAULT NULL COMMENT '会员ID',
  `product_id` bigint(20) NULL DEFAULT NULL COMMENT '商品ID',
  `proxy_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '静态代理类型',
  `whitelist_ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '白名单IP',
  `upstream_address_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '上游白名单记录ID',
  `status` tinyint(4) NULL DEFAULT 1 COMMENT '状态(1-有效 0-删除)',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_user_whitelist_ip`(`user_id` ASC, `whitelist_ip` ASC) USING BTREE,
  UNIQUE INDEX `uk_member_whitelist_ip`(`member_user_id` ASC, `whitelist_ip` ASC) USING BTREE,
  INDEX `idx_xxk_static_proxy_whitelist_member_user_id`(`member_user_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '静态代理白名单表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_static_proxy_whitelist
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_upstream_provider
-- ----------------------------
DROP TABLE IF EXISTS `xxk_upstream_provider`;
CREATE TABLE `xxk_upstream_provider`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `provider_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '供应商编码',
  `provider_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '供应商名称',
  `provider_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '供应商类型',
  `base_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '接口基础地址',
  `auth_user_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '上游UserId',
  `auth_token` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '上游Token',
  `success_codes` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '1000,2001' COMMENT '成功业务码集合',
  `http_timeout_ms` int(11) NULL DEFAULT 10000 COMMENT '超时时间(毫秒)',
  `status` tinyint(4) NULL DEFAULT 1 COMMENT '状态(1-启用 0-禁用)',
  `is_default` tinyint(4) NULL DEFAULT 0 COMMENT '默认供应商(1-是 0-否)',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
  `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人ID',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint(4) NULL DEFAULT 0 COMMENT '逻辑删除(1-已删除 0-未删除)',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_provider_code`(`provider_code` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '上游供应商配置表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_upstream_provider
-- ----------------------------
INSERT INTO `xxk_upstream_provider` VALUES (1, 'QIYUN01', '齐云IP', 'QIYUN', 'https://www.qiyunip.com', NULL, '请填写齐云Header apikey', '1', 10000, 1, 1, '', 2, '2026-04-17 13:29:45', NULL, '2026-04-17 13:29:45', 0);

-- ----------------------------
-- Table structure for xxk_upstream_request_log
-- ----------------------------
DROP TABLE IF EXISTS `xxk_upstream_request_log`;
CREATE TABLE `xxk_upstream_request_log`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `provider_id` bigint(20) NOT NULL COMMENT '供应商ID',
  `biz_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '业务类型',
  `api_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '接口名称',
  `request_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '请求地址',
  `request_headers` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '请求头',
  `request_body` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '请求体',
  `response_body` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '响应体',
  `http_status` int(11) NULL DEFAULT NULL COMMENT 'HTTP状态码',
  `biz_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '业务码',
  `success_flag` tinyint(4) NULL DEFAULT 0 COMMENT '是否成功(1-是 0-否)',
  `duration_ms` int(11) NULL DEFAULT NULL COMMENT '耗时毫秒',
  `error_message` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '异常信息',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_request_provider_time`(`provider_id` ASC, `create_time` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '上游请求日志表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_upstream_request_log
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_user_profile
-- ----------------------------
DROP TABLE IF EXISTS `xxk_user_profile`;
CREATE TABLE `xxk_user_profile`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` bigint(20) NOT NULL COMMENT '关联sys_user.id',
  `user_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'CUSTOMER' COMMENT '用户类型',
  `invite_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '邀请码',
  `register_source` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'ADMIN' COMMENT '注册来源',
  `register_ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '注册IP',
  `last_login_ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '最后登录IP',
  `last_login_time` datetime NULL DEFAULT NULL COMMENT '最后登录时间',
  `status` tinyint(4) NULL DEFAULT 1 COMMENT '状态(1-正常 0-禁用)',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  `is_deleted` tinyint(4) NULL DEFAULT 0 COMMENT '逻辑删除(1-已删除 0-未删除)',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_user_id`(`user_id` ASC) USING BTREE,
  UNIQUE INDEX `uk_invite_code`(`invite_code` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户业务扩展表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_user_profile
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_wallet_account
-- ----------------------------
DROP TABLE IF EXISTS `xxk_wallet_account`;
CREATE TABLE `xxk_wallet_account`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户ID',
  `member_user_id` bigint(20) NULL DEFAULT NULL COMMENT '会员ID',
  `balance` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '可用余额',
  `frozen_balance` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '冻结余额',
  `total_recharge_amount` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '累计充值金额',
  `total_consume_amount` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '累计消费金额',
  `total_refund_amount` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '累计退款金额',
  `status` tinyint(4) NULL DEFAULT 1 COMMENT '状态(1-正常 0-禁用)',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_wallet_user_id`(`user_id` ASC) USING BTREE,
  UNIQUE INDEX `uk_xxk_wallet_account_member_user_id`(`member_user_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '钱包账户表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_wallet_account
-- ----------------------------

-- ----------------------------
-- Table structure for xxk_wallet_flow
-- ----------------------------
DROP TABLE IF EXISTS `xxk_wallet_flow`;
CREATE TABLE `xxk_wallet_flow`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `flow_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '流水号',
  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户ID',
  `member_user_id` bigint(20) NULL DEFAULT NULL COMMENT '会员ID',
  `biz_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '业务类型',
  `change_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '变动类型(IN/OUT)',
  `change_amount` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '变动金额',
  `before_balance` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '变动前余额',
  `after_balance` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '变动后余额',
  `related_order_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '关联订单号',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
  `operate_by` bigint(20) NULL DEFAULT NULL COMMENT '操作人ID',
  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_flow_no`(`flow_no` ASC) USING BTREE,
  INDEX `idx_wallet_user_time`(`user_id` ASC, `create_time` ASC) USING BTREE,
  INDEX `idx_xxk_wallet_flow_member_user_id`(`member_user_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '钱包流水表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of xxk_wallet_flow
-- ----------------------------

SET FOREIGN_KEY_CHECKS = 1;
