This commit is contained in:
2023-05-30 17:36:42 +08:00
parent 9a747ed3f7
commit 82c0695013
21 changed files with 510 additions and 199 deletions

View File

@ -1,17 +1,17 @@
/*
Navicat Premium Data Transfer
Source Server : 锐能线上
Source Server : 本地Mysql
Source Server Type : MySQL
Source Server Version : 50732
Source Host : 120.79.217.22:3306
Source Server Version : 80032
Source Host : localhost:3306
Source Schema : qiaoba-boot
Target Server Type : MySQL
Target Server Version : 50732
Target Server Version : 80032
File Encoding : 65001
Date: 29/05/2023 09:13:42
Date: 30/05/2023 17:35:39
*/
SET NAMES utf8mb4;
@ -22,19 +22,19 @@ SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
DROP TABLE IF EXISTS `sys_config`;
CREATE TABLE `sys_config` (
`config_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '参数主键',
`config_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '参数名称',
`config_key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '参数键名',
`config_value` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '参数键值',
`config_type` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT 'N' COMMENT '系统内置Y是 N否',
`create_user` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '创建者',
`config_id` bigint NOT NULL AUTO_INCREMENT COMMENT '参数主键',
`config_name` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '' COMMENT '参数名称',
`config_key` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '' COMMENT '参数键名',
`config_value` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '' COMMENT '参数键值',
`config_type` char(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT 'N' COMMENT '系统内置Y是 N否',
`create_user` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_user` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '更新者',
`update_user` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`tenant_id` bigint(20) NULL DEFAULT NULL,
`remark` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注',
`tenant_id` bigint NULL DEFAULT NULL,
PRIMARY KEY (`config_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1662707295331532803 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '参数配置表' ROW_FORMAT = DYNAMIC;
) ENGINE = InnoDB AUTO_INCREMENT = 1662707295331532803 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '参数配置表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of sys_config
@ -52,23 +52,23 @@ INSERT INTO `sys_config` VALUES (1662707295331532802, '账号允许同时在线'
-- ----------------------------
DROP TABLE IF EXISTS `sys_dept`;
CREATE TABLE `sys_dept` (
`dept_id` bigint(20) NOT NULL COMMENT '部门id',
`parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父部门id',
`ancestors` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '祖级列表',
`dept_name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '部门名称',
`order_num` int(11) NULL DEFAULT 0 COMMENT '显示顺序',
`leader` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '负责人ID',
`phone` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手机号',
`email` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱',
`status` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '部门状态1正常 0停用',
`create_user` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '创建者',
`dept_id` bigint NOT NULL COMMENT '部门id',
`parent_id` bigint NULL DEFAULT 0 COMMENT '父部门id',
`ancestors` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '祖级列表',
`dept_name` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '' COMMENT '部门名称',
`order_num` int NULL DEFAULT 0 COMMENT '显示顺序',
`leader` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '负责人ID',
`phone` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '手机号',
`email` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '邮箱',
`status` char(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '部门状态1正常 0停用',
`create_user` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_user` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '更新者',
`update_user` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`tenant_id` bigint(20) NULL DEFAULT NULL COMMENT '租户ID',
`remark` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注',
`tenant_id` bigint NULL DEFAULT NULL COMMENT '租户ID',
PRIMARY KEY (`dept_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '部门表' ROW_FORMAT = DYNAMIC;
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '部门表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of sys_dept
@ -87,15 +87,15 @@ INSERT INTO `sys_dept` VALUES (1659443329390358529, 1659443006122766337, '0,1659
-- ----------------------------
DROP TABLE IF EXISTS `sys_menu`;
CREATE TABLE `sys_menu` (
`menu_id` bigint(20) NOT NULL COMMENT '菜单ID',
`menu_id` bigint NOT NULL COMMENT '菜单ID',
`menu_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜单名称',
`parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父菜单ID',
`order_num` int(11) NULL DEFAULT 0 COMMENT '显示顺序',
`parent_id` bigint NULL DEFAULT 0 COMMENT '父菜单ID',
`order_num` int NULL DEFAULT 0 COMMENT '显示顺序',
`path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '路由地址',
`component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件路径',
`query` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '路由参数',
`is_frame` int(11) NULL DEFAULT 1 COMMENT '是否为外链1是 0否',
`is_cache` int(11) NULL DEFAULT 0 COMMENT '是否缓存1缓存 0不缓存',
`is_frame` int NULL DEFAULT 1 COMMENT '是否为外链1是 0否',
`is_cache` int NULL DEFAULT 0 COMMENT '是否缓存1缓存 0不缓存',
`menu_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '菜单类型M目录 C菜单 F按钮',
`is_visible` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '菜单状态1显示 0隐藏',
`perms` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限标识',
@ -105,7 +105,7 @@ CREATE TABLE `sys_menu` (
`update_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注',
`tenant_id` bigint(20) NULL DEFAULT NULL,
`tenant_id` bigint NULL DEFAULT NULL,
PRIMARY KEY (`menu_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单权限表' ROW_FORMAT = DYNAMIC;
@ -120,7 +120,7 @@ INSERT INTO `sys_menu` VALUES (102, '菜单管理', 1, 3, 'menu', 'system/menu/i
INSERT INTO `sys_menu` VALUES (103, '部门管理', 1, 4, 'dept', 'system/dept/index', '', 0, 0, 'C', '1', 'system:dept:list', 'tree', 'admin', '2023-04-23 14:35:29', '', NULL, '部门管理菜单', 1);
INSERT INTO `sys_menu` VALUES (104, '岗位管理', 1, 5, 'post', 'system/post/index', '', 0, 0, 'C', '1', 'system:post:list', 'post', 'admin', '2023-04-23 14:35:29', '', NULL, '岗位管理菜单', 1);
INSERT INTO `sys_menu` VALUES (106, '参数设置', 1, 7, 'config', 'system/config/index', '', 0, 0, 'C', '1', 'system:config:list', 'edit', 'admin', '2022-08-15 18:01:28', 'admin', '2023-05-24 21:13:11', '参数设置菜单', 1);
INSERT INTO `sys_menu` VALUES (109, '在线用户', 2, 1, 'online', 'monitor/online/index', '', 0, 0, 'C', '1', 'monitor:online:list', 'online', 'admin', '2023-05-27 22:22:18', '', NULL, '在线用户菜单', 1);
INSERT INTO `sys_menu` VALUES (109, '登录用户', 2, 1, 'online', 'monitor/online/index', '', 0, 0, 'C', '1', 'monitor:online:list', 'online', 'admin', '2023-05-27 22:22:18', 'admin', '2023-05-30 09:49:35', '在线用户菜单', 1);
INSERT INTO `sys_menu` VALUES (1000, '用户查询', 100, 1, '', '', '', 0, 0, 'F', '1', 'system:user:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1001, '用户新增', 100, 2, '', '', '', 0, 0, 'F', '1', 'system:user:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1002, '用户修改', 100, 3, '', '', '', 0, 0, 'F', '1', 'system:user:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
@ -153,25 +153,29 @@ INSERT INTO `sys_menu` VALUES (1033, '参数删除', 106, 4, '#', '', '', 0, 0,
INSERT INTO `sys_menu` VALUES (1046, '在线查询', 109, 1, '#', '', '', 0, 0, 'F', '1', 'monitor:online:query', '#', 'admin', '2023-05-27 22:22:59', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1047, '批量强退', 109, 2, '#', '', '', 0, 0, 'F', '1', 'monitor:online:batchLogout', '#', 'admin', '2023-05-27 22:22:59', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1048, '单条强退', 109, 3, '#', '', '', 0, 0, 'F', '1', 'monitor:online:forceLogout', '#', 'admin', '2023-05-27 22:22:59', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1663431933531869185, '租户管理', 0, 3, 'tenant', 'tenant/index', NULL, 0, 0, 'C', '1', 'tenant:list', 'logininfor', 'admin', '2023-05-30 14:27:33', 'admin', '2023-05-30 14:44:25', '', 1);
INSERT INTO `sys_menu` VALUES (1663432090671468545, '新建租户', 1663431933531869185, 2, '', NULL, NULL, 0, 0, 'F', '1', 'tenant:add', '#', 'admin', '2023-05-30 14:28:10', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1663432193243172865, '修改租户', 1663431933531869185, 3, '', NULL, NULL, 0, 0, 'F', '1', 'tenant:edit', '#', 'admin', '2023-05-30 14:28:35', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1663446141111689218, '查询详情', 1663431933531869185, 4, '', NULL, NULL, 0, 0, 'F', '1', 'tenant:query', '#', 'admin', '2023-05-30 15:24:00', '', NULL, '', 1);
-- ----------------------------
-- Table structure for sys_post
-- ----------------------------
DROP TABLE IF EXISTS `sys_post`;
CREATE TABLE `sys_post` (
`post_id` bigint(20) NOT NULL COMMENT '岗位ID',
`post_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '岗位编码',
`post_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '岗位名称',
`post_sort` int(11) NOT NULL COMMENT '显示顺序',
`status` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '状态1正常 0停用',
`create_user` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '创建者',
`post_id` bigint NOT NULL COMMENT '岗位ID',
`post_code` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '岗位编码',
`post_name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '岗位名称',
`post_sort` int NOT NULL COMMENT '显示顺序',
`status` char(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '状态1正常 0停用',
`create_user` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_user` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '更新者',
`update_user` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`tenant_id` bigint(20) NULL DEFAULT NULL COMMENT '租户ID',
`remark` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注',
`tenant_id` bigint NULL DEFAULT NULL COMMENT '租户ID',
PRIMARY KEY (`post_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '岗位信息表' ROW_FORMAT = DYNAMIC;
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '岗位信息表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of sys_post
@ -186,10 +190,10 @@ INSERT INTO `sys_post` VALUES (1659440712018833410, 'acct', '会计', 4, '1', 'a
-- ----------------------------
DROP TABLE IF EXISTS `sys_role`;
CREATE TABLE `sys_role` (
`role_id` bigint(20) NOT NULL COMMENT '角色ID',
`role_id` bigint NOT NULL COMMENT '角色ID',
`role_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '角色名称',
`role_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '角色权限字符串',
`role_sort` int(11) NOT NULL COMMENT '显示顺序',
`role_sort` int NOT NULL COMMENT '显示顺序',
`data_scope` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '数据范围1全部数据权限 2自定数据权限 3本部门数据权限 4本部门及以下数据权限',
`status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '角色状态1正常 0停用',
`create_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
@ -197,14 +201,14 @@ CREATE TABLE `sys_role` (
`update_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
`tenant_id` bigint(20) NULL DEFAULT NULL COMMENT '租户ID',
`tenant_id` bigint NULL DEFAULT NULL COMMENT '租户ID',
PRIMARY KEY (`role_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色信息表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of sys_role
-- ----------------------------
INSERT INTO `sys_role` VALUES (1, '超级管理员', 'admin', 1, '4', '1', 'admin', '2023-04-23 14:35:29', 'admin', '2023-05-27 22:25:39', '超级管理员', 1);
INSERT INTO `sys_role` VALUES (1, '超级管理员', 'admin', 1, '4', '1', 'admin', '2023-04-23 14:35:29', 'admin', '2023-05-30 15:24:08', '超级管理员', 1);
INSERT INTO `sys_role` VALUES (1660535591067213826, '测试', 'test', 1, '1', '1', 'admin', '2023-05-22 14:38:31', '', NULL, NULL, 1);
-- ----------------------------
@ -212,11 +216,11 @@ INSERT INTO `sys_role` VALUES (1660535591067213826, '测试', 'test', 1, '1', '1
-- ----------------------------
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',
`tenant_id` bigint(20) NOT NULL COMMENT '租户ID',
`role_id` bigint NOT NULL COMMENT '角色ID',
`dept_id` bigint NOT NULL COMMENT '部门ID',
`tenant_id` bigint NOT NULL COMMENT '租户ID',
PRIMARY KEY (`role_id`, `dept_id`, `tenant_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色和部门关联表' ROW_FORMAT = DYNAMIC;
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '角色和部门关联表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of sys_role_dept
@ -227,11 +231,11 @@ CREATE TABLE `sys_role_dept` (
-- ----------------------------
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',
`tenant_id` bigint(20) NOT NULL COMMENT '租户ID',
`role_id` bigint NOT NULL COMMENT '角色ID',
`menu_id` bigint NOT NULL COMMENT '菜单ID',
`tenant_id` bigint NOT NULL COMMENT '租户ID',
PRIMARY KEY (`role_id`, `menu_id`, `tenant_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色和菜单关联表' ROW_FORMAT = DYNAMIC;
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '角色和菜单关联表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of sys_role_menu
@ -277,14 +281,48 @@ INSERT INTO `sys_role_menu` VALUES (1, 1033, 1);
INSERT INTO `sys_role_menu` VALUES (1, 1046, 1);
INSERT INTO `sys_role_menu` VALUES (1, 1047, 1);
INSERT INTO `sys_role_menu` VALUES (1, 1048, 1);
INSERT INTO `sys_role_menu` VALUES (1, 1663431933531869185, 1);
INSERT INTO `sys_role_menu` VALUES (1, 1663432090671468545, 1);
INSERT INTO `sys_role_menu` VALUES (1, 1663432193243172865, 1);
INSERT INTO `sys_role_menu` VALUES (1, 1663446141111689218, 1);
-- ----------------------------
-- Table structure for sys_tenant
-- ----------------------------
DROP TABLE IF EXISTS `sys_tenant`;
CREATE TABLE `sys_tenant` (
`tenant_id` bigint NOT NULL,
`company_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '公司名称',
`contact_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '联系人名称',
`contact_phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '联系人电话',
`address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '公司地址',
`profile` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '公司简介',
`license_number` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '统一社会信用代码',
`domain` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '域名',
`expire_time` datetime NULL DEFAULT NULL COMMENT '过期时间',
`account_count` bigint NULL DEFAULT NULL COMMENT '用户数量',
`status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '状态',
`create_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`tenant_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '租户表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of sys_tenant
-- ----------------------------
INSERT INTO `sys_tenant` VALUES (1, '主系统', '111', '111', '11', '11122', '111', NULL, '2099-05-30 23:59:59', 111, '1', 'admin', '2023-05-30 15:18:04', '', NULL, '111');
INSERT INTO `sys_tenant` VALUES (2, '副系统', '111', '111', '11', '11122', '111', NULL, '2023-05-29 15:27:02', 111, '1', 'admin', '2023-05-30 15:18:04', '', NULL, '111');
-- ----------------------------
-- Table structure for sys_user
-- ----------------------------
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
`user_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`dept_id` bigint(20) NULL DEFAULT NULL COMMENT '部门ID',
`user_id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`dept_id` bigint NULL DEFAULT NULL COMMENT '部门ID',
`username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户账号',
`nickname` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户昵称',
`email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '用户邮箱',
@ -300,7 +338,7 @@ CREATE TABLE `sys_user` (
`update_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
`tenant_id` bigint(20) NULL DEFAULT NULL COMMENT '租户ID',
`tenant_id` bigint NULL DEFAULT NULL COMMENT '租户ID',
PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1660830718629277698 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户信息表' ROW_FORMAT = DYNAMIC;
@ -315,11 +353,11 @@ INSERT INTO `sys_user` VALUES (1660830718629277697, 1659443256656932865, 'admin1
-- ----------------------------
DROP TABLE IF EXISTS `sys_user_post`;
CREATE TABLE `sys_user_post` (
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`post_id` bigint(20) NOT NULL COMMENT '岗位ID',
`tenant_id` bigint(20) NOT NULL COMMENT '租户ID',
`user_id` bigint NOT NULL COMMENT '用户ID',
`post_id` bigint NOT NULL COMMENT '岗位ID',
`tenant_id` bigint NOT NULL COMMENT '租户ID',
PRIMARY KEY (`user_id`, `post_id`, `tenant_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户与岗位关联表' ROW_FORMAT = DYNAMIC;
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '用户与岗位关联表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of sys_user_post
@ -333,11 +371,11 @@ INSERT INTO `sys_user_post` VALUES (1660830718629277697, 1659440467696431105, 1)
-- ----------------------------
DROP TABLE IF EXISTS `sys_user_role`;
CREATE TABLE `sys_user_role` (
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`role_id` bigint(20) NOT NULL COMMENT '角色ID',
`tenant_id` bigint(20) NOT NULL COMMENT '租户ID',
`user_id` bigint NOT NULL COMMENT '用户ID',
`role_id` bigint NOT NULL COMMENT '角色ID',
`tenant_id` bigint NOT NULL COMMENT '租户ID',
PRIMARY KEY (`user_id`, `role_id`, `tenant_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户和角色关联表' ROW_FORMAT = DYNAMIC;
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '用户和角色关联表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of sys_user_role

View File

@ -112,6 +112,11 @@
<version>${ip2region.version}</version>
</dependency>
<!-- ======================== system module ======================== -->
<dependency>
<groupId>com.qiaoba</groupId>
<artifactId>qiaoba-module-tenant</artifactId>
<version>${qiaoba.version}</version>
</dependency>
<dependency>
<groupId>com.qiaoba</groupId>
<artifactId>qiaoba-auth</artifactId>

View File

@ -1,50 +0,0 @@
package com.qiaoba.api.system.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qiaoba.common.base.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 租户表
*
* @author ailanyin
* @version 1.0
* @since 2023-04-23 22:02:43
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("sys_tenant")
public class SysTenant extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableId
private String tenantId;
private String tenantCode;
private String tenantName;
private String province;
private String city;
private String district;
private String address;
private String contactUser;
private String contactPhone;
private String dataType;
private Date expireTime;
private String status;
}

View File

@ -1,29 +0,0 @@
package com.qiaoba.api.system.service;
import com.qiaoba.api.system.entity.SysTenant;
/**
* 租户对外暴露接口
*
* @author ailanyin
* @version 1.0
* @since 2023-04-24 19:20:40
*/
public interface SysTenantApiService {
/**
* 新增租户
*
* @param sysTenant sysTenant
* @return > 0 = success
*/
int insert(SysTenant sysTenant);
/**
* 更新租户
*
* @param sysTenant sysTenant
* @return > 0 = success
*/
int update(SysTenant sysTenant);
}

View File

@ -24,6 +24,10 @@
<groupId>com.qiaoba</groupId>
<artifactId>qiaoba-module-file</artifactId>
</dependency>
<dependency>
<groupId>com.qiaoba</groupId>
<artifactId>qiaoba-module-tenant</artifactId>
</dependency>
</dependencies>
<build>

View File

@ -32,6 +32,7 @@ qiaoba:
- /login
- /register
- /captchaImage
- /tenant/normal-list
springdoc:
swagger-ui:
@ -47,6 +48,9 @@ springdoc:
- group: '文件管理'
paths-to-match: '/**'
packages-to-scan: com.qiaoba.module.file.controller
- group: '租户管理'
paths-to-match: '/**'
packages-to-scan: com.qiaoba.module.tenant.controller
# knife4j的增强配置不需要增强可以不配
knife4j:

View File

@ -14,6 +14,7 @@ import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.web.authentication.WebAuthenticationDetailsSource;
import org.springframework.util.AntPathMatcher;
import org.springframework.web.filter.OncePerRequestFilter;
import javax.servlet.FilterChain;
@ -39,14 +40,19 @@ public class AuthenticationCoreFilter extends OncePerRequestFilter {
private final AuthConfigProperties authConfigProperties;
private final AuthConfigApiService authConfigApiService;
private final AntPathMatcher MATCH = new AntPathMatcher();
@Override
protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse response,
FilterChain chain) throws ServletException, IOException {
// 白名单 放行
if (authConfigProperties.getWhitelist().contains(request.getRequestURI())) {
chain.doFilter(request, response);
return;
for (String uri : authConfigProperties.getWhitelist()) {
if (MATCH.match(uri,request.getRequestURI())) {
chain.doFilter(request, response);
return;
}
}
String authToken = TokenUtil.getToken(request, false);

View File

@ -0,0 +1,11 @@
package com.qiaoba.common.base.validate;
/**
* 新增-分组校验
*
* @author ailanyin
* @version 1.0
* @since 2023-5-30 10:14:28
*/
public interface AddGroup {
}

View File

@ -0,0 +1,11 @@
package com.qiaoba.common.base.validate;
/**
* 修改-分组校验
*
* @author ailanyin
* @version 1.0
* @since 2023-5-30 10:14:28
*/
public interface EditGroup {
}

View File

@ -0,0 +1,11 @@
package com.qiaoba.common.base.validate;
/**
* 查询-分组校验
*
* @author ailanyin
* @version 1.0
* @since 2023-5-30 10:14:28
*/
public interface QueryGroup {
}

View File

@ -29,9 +29,10 @@ public class MybatisPlusConfig {
return new StringValue(BaseContext.getTenantId());
}
// sys_tenant 不需要拼接租户ID
@Override
public boolean ignoreTable(String tableName) {
return false;
return "sys_tenant".equals(tableName);
}
}));
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());

View File

@ -16,6 +16,7 @@
<module>qiaoba-module-job</module>
<module>qiaoba-module-file</module>
<module>qiaoba-module-monitor</module>
<module>qiaoba-module-tenant</module>
</modules>
</project>

View File

@ -1,13 +0,0 @@
package com.qiaoba.module.system.service;
import com.qiaoba.api.system.service.SysTenantApiService;
/**
* 租户管理 服务层
*
* @author ailanyin
* @version 1.0
* @since 2023-04-24 19:23:08
*/
public interface SysTenantService extends SysTenantApiService {
}

View File

@ -1,31 +0,0 @@
package com.qiaoba.module.system.service.impl;
import com.qiaoba.api.system.entity.SysTenant;
import com.qiaoba.module.system.mapper.SysTenantMapper;
import com.qiaoba.module.system.service.SysTenantService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* 租户管理 业务层实现
*
* @author ailanyin
* @version 1.0
* @since 2023-04-24 19:46:00
*/
@Service
@RequiredArgsConstructor
public class SysTenantServiceImpl implements SysTenantService {
private final SysTenantMapper sysTenantMapper;
@Override
public int insert(SysTenant sysTenant) {
return sysTenantMapper.insert(sysTenant);
}
@Override
public int update(SysTenant sysTenant) {
return sysTenantMapper.updateById(sysTenant);
}
}

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>qiaoba-modules</artifactId>
<groupId>com.qiaoba</groupId>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>qiaoba-module-tenant</artifactId>
<dependencies>
<dependency>
<groupId>com.qiaoba</groupId>
<artifactId>qiaoba-api-system</artifactId>
</dependency>
<dependency>
<groupId>com.qiaoba</groupId>
<artifactId>qiaoba-auth</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,73 @@
package com.qiaoba.module.tenant.controller;
import com.qiaoba.common.base.enums.BaseEnum;
import com.qiaoba.common.base.result.AjaxResult;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import com.qiaoba.common.database.entity.PageQuery;
import com.qiaoba.common.database.entity.TableDataInfo;
import com.qiaoba.module.tenant.entity.SysTenant;
import com.qiaoba.module.tenant.entity.param.SysTenantParam;
import com.qiaoba.module.tenant.service.SysTenantService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
/**
* 租户管理 Web层
*
* @author ailanyin
* @version 1.0
* @since 2023/5/30 10:52
*/
@RestController
@RequestMapping("/tenant")
@RequiredArgsConstructor
@Tag(name = "租户管理")
public class SysTenantController {
private final SysTenantService sysTenantService;
@PreAuthorize("hasAuthority('tenant:add')")
@PostMapping
@Operation(summary = "新增租户")
public AjaxResult add(@Validated(AddGroup.class) @RequestBody SysTenant sysTenant) {
return AjaxResult.toAjax(sysTenantService.insert(sysTenant));
}
@PreAuthorize("hasAuthority('tenant:query')")
@GetMapping(value = "/{tenantId}")
@Operation(summary = "获取详情")
public AjaxResult getInfo(@PathVariable String tenantId) {
return AjaxResult.success(sysTenantService.selectById(tenantId));
}
@PreAuthorize("hasAuthority('tenant:edit')")
@PutMapping
@Operation(summary = "修改租户")
public AjaxResult edit(@Validated(EditGroup.class) @RequestBody SysTenant sysTenant) {
return AjaxResult.toAjax(sysTenantService.update(sysTenant));
}
@PreAuthorize("hasAuthority('tenant:list')")
@GetMapping("/list")
@Operation(summary = "获取列表")
public TableDataInfo<SysTenant> list(SysTenantParam param, PageQuery pageQuery) {
return sysTenantService.selectPageList(param, pageQuery);
}
@GetMapping("/normal-list")
@Operation(summary = "获取正常列表")
public TableDataInfo<SysTenant> normalPageList(SysTenantParam param, PageQuery pageQuery) {
param.setTime(new Date());
param.setStatus(BaseEnum.NORMAL.getCode());
param.setType(SysTenantParam.TYPE_NOT_EXPIRED);
param.setIsLogin(true);
return sysTenantService.selectPageList(param, pageQuery);
}
}

View File

@ -0,0 +1,71 @@
package com.qiaoba.module.tenant.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qiaoba.common.base.entity.BaseEntity;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 租户 sys_tenant
*
* @author ailanyin
* @version 1.0
* @since 2023/5/30 10:20
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("sys_tenant")
public class SysTenant extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableId
@NotNull(message = "id不能为空", groups = {EditGroup.class})
private String tenantId;
@NotBlank(message = "企业名称不能为空", groups = {AddGroup.class, EditGroup.class})
@Schema(description = "企业名称")
private String companyName;
@Schema(description = "联系人")
private String contactName;
@Schema(description = "联系电话")
private String contactPhone;
@Schema(description = "地址")
private String address;
@Schema(description = "企业简介")
private String profile;
@Schema(description = "统一社会信用代码")
private String licenseNumber;
@Schema(description = "域名")
private String domain;
@Schema(description = "备注")
private String remark;
@NotNull(message = "过期时间不能为空", groups = {AddGroup.class, EditGroup.class})
@Schema(description = "过期时间")
private Date expireTime;
@NotNull(message = "用户数量不能为空", groups = {AddGroup.class, EditGroup.class})
@Schema(description = "用户数量")
private Long accountCount;
@NotNull(message = "状态不能为空", groups = {AddGroup.class, EditGroup.class})
@Schema(description = "状态")
private String status;
}

View File

@ -0,0 +1,44 @@
package com.qiaoba.module.tenant.entity.param;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 租户查询条件
*
* @author ailanyin
* @version 1.0
* @since 2023/5/30 11:02
*/
@Data
public class SysTenantParam implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 未过期
*/
public static final String TYPE_NOT_EXPIRED = "1";
/**
* 已过期
*/
public static final String TYPE_EXPIRED = "2";
private String companyName;
private String contactName;
@Schema(description = "帐号状态(1正常 0停用)")
private String status;
private Date time;
@Schema(description = "类型(1正常 2过期)")
private String type;
private Boolean isLogin = false;
}

View File

@ -1,14 +1,14 @@
package com.qiaoba.module.system.mapper;
package com.qiaoba.module.tenant.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qiaoba.api.system.entity.SysTenant;
import com.qiaoba.module.tenant.entity.SysTenant;
/**
* 租户管理 数据层
*
* @author ailanyin
* @version 1.0
* @since 2023-04-24 19:44:48
* @since 2023/5/30 11:08
*/
public interface SysTenantMapper extends BaseMapper<SysTenant> {
}

View File

@ -0,0 +1,49 @@
package com.qiaoba.module.tenant.service;
import com.qiaoba.common.database.entity.PageQuery;
import com.qiaoba.common.database.entity.TableDataInfo;
import com.qiaoba.module.tenant.entity.SysTenant;
import com.qiaoba.module.tenant.entity.param.SysTenantParam;
/**
* 租户管理 服务层
*
* @author ailanyin
* @version 1.0
* @since 2023/5/30 10:55
*/
public interface SysTenantService {
/**
* 新增租户
*
* @param sysTenant 租户信息
* @return 结果
*/
int insert(SysTenant sysTenant);
/**
* 修改租户
*
* @param sysTenant 租户信息
* @return 结果
*/
int update(SysTenant sysTenant);
/**
* 获取租户列表
*
* @param param param
* @param pageQuery 分页参数
* @return list
*/
TableDataInfo<SysTenant> selectPageList(SysTenantParam param, PageQuery pageQuery);
/**
* 查询详情
*
* @param tenantId tenantId
* @return info
*/
SysTenant selectById(String tenantId);
}

View File

@ -0,0 +1,80 @@
package com.qiaoba.module.tenant.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.qiaoba.auth.utils.SecurityUtil;
import com.qiaoba.common.base.enums.BaseEnum;
import com.qiaoba.common.database.entity.PageQuery;
import com.qiaoba.common.database.entity.TableDataInfo;
import com.qiaoba.module.tenant.entity.SysTenant;
import com.qiaoba.module.tenant.entity.param.SysTenantParam;
import com.qiaoba.module.tenant.mapper.SysTenantMapper;
import com.qiaoba.module.tenant.service.SysTenantService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.Objects;
/**
* 租户管理 服务层实现
*
* @author ailanyin
* @version 1.0
* @since 2023/5/30 10:55
*/
@Service
@RequiredArgsConstructor
public class SysTenantServiceImpl implements SysTenantService {
private final SysTenantMapper sysTenantMapper;
@Override
public int insert(SysTenant sysTenant) {
sysTenant.setCreateTime(new Date());
sysTenant.setCreateUser(SecurityUtil.getLoginUsername());
sysTenant.setStatus(BaseEnum.NORMAL.getCode());
return sysTenantMapper.insert(sysTenant);
}
@Override
public int update(SysTenant sysTenant) {
sysTenant.setUpdateTime(new Date());
sysTenant.setUpdateUser(SecurityUtil.getLoginUsername());
return sysTenantMapper.updateById(sysTenant);
}
@Override
public TableDataInfo<SysTenant> selectPageList(SysTenantParam param, PageQuery pageQuery) {
return TableDataInfo.build(sysTenantMapper.selectPage(pageQuery.build(), param2Wrapper(param)));
}
@Override
public SysTenant selectById(String tenantId) {
return sysTenantMapper.selectById(tenantId);
}
private QueryWrapper<SysTenant> param2Wrapper(SysTenantParam param) {
QueryWrapper<SysTenant> wrapper = new QueryWrapper<>();
wrapper.lambda()
.eq(StrUtil.isNotBlank(param.getStatus()), SysTenant::getStatus, param.getStatus())
.like(StrUtil.isNotBlank(param.getCompanyName()), SysTenant::getCompanyName, param.getCompanyName())
.like(StrUtil.isNotBlank(param.getContactName()), SysTenant::getContactName, param.getContactName());
// 查未过期
if (SysTenantParam.TYPE_NOT_EXPIRED.equals(param.getType())) {
wrapper.lambda().ge(Objects.nonNull(param.getTime()), SysTenant::getExpireTime, param.getTime());
}
// 查已过期
else {
wrapper.lambda().lt(Objects.nonNull(param.getTime()), SysTenant::getExpireTime, param.getTime());
}
// 登录接口
if (param.getIsLogin()) {
wrapper.lambda()
.select(SysTenant::getCompanyName, SysTenant::getTenantId);
}
return wrapper;
}
}