add
This commit is contained in:
703
document/db/ROOT.sql
Normal file
703
document/db/ROOT.sql
Normal file
@ -0,0 +1,703 @@
|
||||
CREATE TABLE "SYS_CONFIG" (
|
||||
"CONFIG_ID" NUMBER(20,0) NOT NULL,
|
||||
"CONFIG_NAME" NVARCHAR2(100),
|
||||
"CONFIG_KEY" NVARCHAR2(100),
|
||||
"CONFIG_VALUE" NVARCHAR2(500),
|
||||
"CONFIG_TYPE" NCHAR(1),
|
||||
"CREATE_USER" NVARCHAR2(64),
|
||||
"CREATE_TIME" DATE,
|
||||
"UPDATE_USER" NVARCHAR2(64),
|
||||
"UPDATE_TIME" DATE,
|
||||
"REMARK" NVARCHAR2(500),
|
||||
"TENANT_ID" NUMBER(20,0)
|
||||
)
|
||||
LOGGING
|
||||
NOCOMPRESS
|
||||
PCTFREE 10
|
||||
INITRANS 1
|
||||
STORAGE (
|
||||
INITIAL 65536
|
||||
NEXT 1048576
|
||||
MINEXTENTS 1
|
||||
MAXEXTENTS 2147483645
|
||||
BUFFER_POOL DEFAULT
|
||||
)
|
||||
PARALLEL 1
|
||||
NOCACHE
|
||||
DISABLE ROW MOVEMENT
|
||||
;
|
||||
COMMENT ON COLUMN "SYS_CONFIG"."CONFIG_ID" IS '参数主键';
|
||||
COMMENT ON COLUMN "SYS_CONFIG"."CONFIG_NAME" IS '参数名称';
|
||||
COMMENT ON COLUMN "SYS_CONFIG"."CONFIG_KEY" IS '参数键名';
|
||||
COMMENT ON COLUMN "SYS_CONFIG"."CONFIG_VALUE" IS '参数键值';
|
||||
COMMENT ON COLUMN "SYS_CONFIG"."CONFIG_TYPE" IS '系统内置(Y是 N否)';
|
||||
COMMENT ON COLUMN "SYS_CONFIG"."CREATE_USER" IS '创建者';
|
||||
COMMENT ON COLUMN "SYS_CONFIG"."CREATE_TIME" IS '创建时间';
|
||||
COMMENT ON COLUMN "SYS_CONFIG"."UPDATE_USER" IS '更新者';
|
||||
COMMENT ON COLUMN "SYS_CONFIG"."UPDATE_TIME" IS '更新时间';
|
||||
COMMENT ON COLUMN "SYS_CONFIG"."REMARK" IS '备注';
|
||||
COMMENT ON TABLE "SYS_CONFIG" IS '参数配置表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for SYS_DEPT
|
||||
-- ----------------------------
|
||||
|
||||
CREATE TABLE "SYS_DEPT" (
|
||||
"DEPT_ID" NUMBER(20,0) NOT NULL,
|
||||
"PARENT_ID" NUMBER(20,0),
|
||||
"ANCESTORS" NVARCHAR2(500),
|
||||
"DEPT_NAME" NVARCHAR2(30),
|
||||
"ORDER_NUM" NUMBER(11,0),
|
||||
"LEADER" NVARCHAR2(20),
|
||||
"PHONE" NVARCHAR2(30),
|
||||
"EMAIL" NVARCHAR2(30),
|
||||
"STATUS" NCHAR(1),
|
||||
"CREATE_USER" NVARCHAR2(64),
|
||||
"CREATE_TIME" DATE,
|
||||
"UPDATE_USER" NVARCHAR2(64),
|
||||
"UPDATE_TIME" DATE,
|
||||
"REMARK" NVARCHAR2(255),
|
||||
"TENANT_ID" NUMBER(20,0)
|
||||
)
|
||||
LOGGING
|
||||
NOCOMPRESS
|
||||
PCTFREE 10
|
||||
INITRANS 1
|
||||
STORAGE (
|
||||
INITIAL 65536
|
||||
NEXT 1048576
|
||||
MINEXTENTS 1
|
||||
MAXEXTENTS 2147483645
|
||||
BUFFER_POOL DEFAULT
|
||||
)
|
||||
PARALLEL 1
|
||||
NOCACHE
|
||||
DISABLE ROW MOVEMENT
|
||||
;
|
||||
COMMENT ON COLUMN "SYS_DEPT"."DEPT_ID" IS '部门id';
|
||||
COMMENT ON COLUMN "SYS_DEPT"."PARENT_ID" IS '父部门id';
|
||||
COMMENT ON COLUMN "SYS_DEPT"."ANCESTORS" IS '祖级列表';
|
||||
COMMENT ON COLUMN "SYS_DEPT"."DEPT_NAME" IS '部门名称';
|
||||
COMMENT ON COLUMN "SYS_DEPT"."ORDER_NUM" IS '显示顺序';
|
||||
COMMENT ON COLUMN "SYS_DEPT"."LEADER" IS '负责人ID';
|
||||
COMMENT ON COLUMN "SYS_DEPT"."PHONE" IS '手机号';
|
||||
COMMENT ON COLUMN "SYS_DEPT"."EMAIL" IS '邮箱';
|
||||
COMMENT ON COLUMN "SYS_DEPT"."STATUS" IS '部门状态(1正常 0停用)';
|
||||
COMMENT ON COLUMN "SYS_DEPT"."CREATE_USER" IS '创建者';
|
||||
COMMENT ON COLUMN "SYS_DEPT"."CREATE_TIME" IS '创建时间';
|
||||
COMMENT ON COLUMN "SYS_DEPT"."UPDATE_USER" IS '更新者';
|
||||
COMMENT ON COLUMN "SYS_DEPT"."UPDATE_TIME" IS '更新时间';
|
||||
COMMENT ON COLUMN "SYS_DEPT"."REMARK" IS '备注';
|
||||
COMMENT ON COLUMN "SYS_DEPT"."TENANT_ID" IS '租户ID';
|
||||
COMMENT ON TABLE "SYS_DEPT" IS '部门表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for SYS_DICT_DATA
|
||||
-- ----------------------------
|
||||
CREATE TABLE "SYS_DICT_DATA" (
|
||||
"DICT_CODE" NUMBER(20,0) NOT NULL,
|
||||
"DICT_SORT" NUMBER(11,0),
|
||||
"DICT_LABEL" NVARCHAR2(100),
|
||||
"DICT_VALUE" NVARCHAR2(100),
|
||||
"DICT_TYPE" NVARCHAR2(100),
|
||||
"CSS_CLASS" NVARCHAR2(100),
|
||||
"LIST_CLASS" NVARCHAR2(100),
|
||||
"STATUS" NCHAR(1),
|
||||
"CREATE_USER" NVARCHAR2(64),
|
||||
"CREATE_TIME" DATE,
|
||||
"UPDATE_USER" NVARCHAR2(64),
|
||||
"UPDATE_TIME" DATE,
|
||||
"REMARK" NVARCHAR2(500),
|
||||
"TENANT_ID" NUMBER(20,0)
|
||||
)
|
||||
LOGGING
|
||||
NOCOMPRESS
|
||||
PCTFREE 10
|
||||
INITRANS 1
|
||||
STORAGE (
|
||||
BUFFER_POOL DEFAULT
|
||||
)
|
||||
PARALLEL 1
|
||||
NOCACHE
|
||||
DISABLE ROW MOVEMENT
|
||||
;
|
||||
COMMENT ON COLUMN "SYS_DICT_DATA"."DICT_CODE" IS '字典编码';
|
||||
COMMENT ON COLUMN "SYS_DICT_DATA"."DICT_SORT" IS '字典排序';
|
||||
COMMENT ON COLUMN "SYS_DICT_DATA"."DICT_LABEL" IS '字典标签';
|
||||
COMMENT ON COLUMN "SYS_DICT_DATA"."DICT_VALUE" IS '字典键值';
|
||||
COMMENT ON COLUMN "SYS_DICT_DATA"."DICT_TYPE" IS '字典类型';
|
||||
COMMENT ON COLUMN "SYS_DICT_DATA"."CSS_CLASS" IS '样式属性(其他样式扩展)';
|
||||
COMMENT ON COLUMN "SYS_DICT_DATA"."LIST_CLASS" IS '表格回显样式';
|
||||
COMMENT ON COLUMN "SYS_DICT_DATA"."STATUS" IS '状态(0正常 1停用)';
|
||||
COMMENT ON COLUMN "SYS_DICT_DATA"."CREATE_USER" IS '创建者';
|
||||
COMMENT ON COLUMN "SYS_DICT_DATA"."CREATE_TIME" IS '创建时间';
|
||||
COMMENT ON COLUMN "SYS_DICT_DATA"."UPDATE_USER" IS '更新者';
|
||||
COMMENT ON COLUMN "SYS_DICT_DATA"."UPDATE_TIME" IS '更新时间';
|
||||
COMMENT ON COLUMN "SYS_DICT_DATA"."REMARK" IS '备注';
|
||||
COMMENT ON COLUMN "SYS_DICT_DATA"."TENANT_ID" IS '租户ID';
|
||||
COMMENT ON TABLE "SYS_DICT_DATA" IS '字典数据表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for SYS_DICT_TYPE
|
||||
-- ----------------------------
|
||||
CREATE TABLE "SYS_DICT_TYPE" (
|
||||
"DICT_ID" NUMBER(20,0) NOT NULL,
|
||||
"DICT_NAME" NVARCHAR2(100),
|
||||
"DICT_TYPE" NVARCHAR2(100),
|
||||
"STATUS" NCHAR(1),
|
||||
"CREATE_USER" NVARCHAR2(64),
|
||||
"CREATE_TIME" DATE,
|
||||
"UPDATE_USER" NVARCHAR2(64),
|
||||
"UPDATE_TIME" DATE,
|
||||
"REMARK" NVARCHAR2(500),
|
||||
"TENANT_ID" NUMBER(20,0)
|
||||
)
|
||||
LOGGING
|
||||
NOCOMPRESS
|
||||
PCTFREE 10
|
||||
INITRANS 1
|
||||
STORAGE (
|
||||
BUFFER_POOL DEFAULT
|
||||
)
|
||||
PARALLEL 1
|
||||
NOCACHE
|
||||
DISABLE ROW MOVEMENT
|
||||
;
|
||||
COMMENT ON COLUMN "SYS_DICT_TYPE"."DICT_ID" IS '字典主键';
|
||||
COMMENT ON COLUMN "SYS_DICT_TYPE"."DICT_NAME" IS '字典名称';
|
||||
COMMENT ON COLUMN "SYS_DICT_TYPE"."DICT_TYPE" IS '字典类型';
|
||||
COMMENT ON COLUMN "SYS_DICT_TYPE"."STATUS" IS '状态(0正常 1停用)';
|
||||
COMMENT ON COLUMN "SYS_DICT_TYPE"."CREATE_USER" IS '创建者';
|
||||
COMMENT ON COLUMN "SYS_DICT_TYPE"."CREATE_TIME" IS '创建时间';
|
||||
COMMENT ON COLUMN "SYS_DICT_TYPE"."UPDATE_USER" IS '更新者';
|
||||
COMMENT ON COLUMN "SYS_DICT_TYPE"."UPDATE_TIME" IS '更新时间';
|
||||
COMMENT ON COLUMN "SYS_DICT_TYPE"."REMARK" IS '备注';
|
||||
COMMENT ON COLUMN "SYS_DICT_TYPE"."TENANT_ID" IS '租户ID';
|
||||
COMMENT ON TABLE "SYS_DICT_TYPE" IS '字典类型表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for SYS_LOGIN_LOG
|
||||
-- ----------------------------
|
||||
CREATE TABLE "SYS_LOGIN_LOG" (
|
||||
"LOGIN_ID" NUMBER(20,0) NOT NULL,
|
||||
"DEVICE_SN" NVARCHAR2(50),
|
||||
"USERNAME" NVARCHAR2(50),
|
||||
"NICKNAME" NVARCHAR2(30),
|
||||
"IP" NVARCHAR2(30),
|
||||
"ADDRESS" NVARCHAR2(255),
|
||||
"BROWSER" NVARCHAR2(50),
|
||||
"OS" NVARCHAR2(50),
|
||||
"LOGIN_TIME" DATE,
|
||||
"CREATE_USER" NVARCHAR2(64),
|
||||
"CREATE_TIME" DATE,
|
||||
"UPDATE_USER" NVARCHAR2(64),
|
||||
"UPDATE_TIME" DATE,
|
||||
"REMARK" NVARCHAR2(500),
|
||||
"TENANT_ID" NUMBER(20,0)
|
||||
)
|
||||
LOGGING
|
||||
NOCOMPRESS
|
||||
PCTFREE 10
|
||||
INITRANS 1
|
||||
STORAGE (
|
||||
INITIAL 65536
|
||||
NEXT 1048576
|
||||
MINEXTENTS 1
|
||||
MAXEXTENTS 2147483645
|
||||
BUFFER_POOL DEFAULT
|
||||
)
|
||||
PARALLEL 1
|
||||
NOCACHE
|
||||
DISABLE ROW MOVEMENT
|
||||
;
|
||||
COMMENT ON COLUMN "SYS_LOGIN_LOG"."DEVICE_SN" IS '设备编码';
|
||||
COMMENT ON COLUMN "SYS_LOGIN_LOG"."USERNAME" IS '登录账号';
|
||||
COMMENT ON COLUMN "SYS_LOGIN_LOG"."NICKNAME" IS '用户名称';
|
||||
COMMENT ON COLUMN "SYS_LOGIN_LOG"."IP" IS '访问IP';
|
||||
COMMENT ON COLUMN "SYS_LOGIN_LOG"."ADDRESS" IS '登录地点';
|
||||
COMMENT ON COLUMN "SYS_LOGIN_LOG"."BROWSER" IS '浏览器';
|
||||
COMMENT ON COLUMN "SYS_LOGIN_LOG"."OS" IS '操作系统';
|
||||
COMMENT ON COLUMN "SYS_LOGIN_LOG"."LOGIN_TIME" IS '登录时间';
|
||||
COMMENT ON COLUMN "SYS_LOGIN_LOG"."CREATE_USER" IS '创建者';
|
||||
COMMENT ON COLUMN "SYS_LOGIN_LOG"."CREATE_TIME" IS '创建时间';
|
||||
COMMENT ON COLUMN "SYS_LOGIN_LOG"."UPDATE_USER" IS '更新者';
|
||||
COMMENT ON COLUMN "SYS_LOGIN_LOG"."UPDATE_TIME" IS '更新时间';
|
||||
COMMENT ON COLUMN "SYS_LOGIN_LOG"."REMARK" IS '备注';
|
||||
COMMENT ON TABLE "SYS_LOGIN_LOG" IS '登录日志';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for SYS_MENU
|
||||
-- ----------------------------
|
||||
CREATE TABLE "SYS_MENU" (
|
||||
"MENU_ID" NUMBER(20,0) NOT NULL,
|
||||
"MENU_NAME" NVARCHAR2(50) NOT NULL,
|
||||
"PARENT_ID" NUMBER(20,0),
|
||||
"ORDER_NUM" NUMBER(11,0),
|
||||
"PATH" NVARCHAR2(200),
|
||||
"COMPONENT" NVARCHAR2(255),
|
||||
"QUERY" NVARCHAR2(255),
|
||||
"IS_FRAME" NUMBER(11,0),
|
||||
"IS_CACHE" NUMBER(11,0),
|
||||
"MENU_TYPE" NCHAR(1),
|
||||
"IS_VISIBLE" NCHAR(1),
|
||||
"PERMS" NVARCHAR2(100),
|
||||
"ICON" NVARCHAR2(100),
|
||||
"CREATE_USER" NVARCHAR2(64),
|
||||
"CREATE_TIME" DATE,
|
||||
"UPDATE_USER" NVARCHAR2(64),
|
||||
"UPDATE_TIME" DATE,
|
||||
"REMARK" NVARCHAR2(500),
|
||||
"TENANT_ID" NUMBER(20,0)
|
||||
)
|
||||
LOGGING
|
||||
NOCOMPRESS
|
||||
PCTFREE 10
|
||||
INITRANS 1
|
||||
STORAGE (
|
||||
INITIAL 65536
|
||||
NEXT 1048576
|
||||
MINEXTENTS 1
|
||||
MAXEXTENTS 2147483645
|
||||
BUFFER_POOL DEFAULT
|
||||
)
|
||||
PARALLEL 1
|
||||
NOCACHE
|
||||
DISABLE ROW MOVEMENT
|
||||
;
|
||||
COMMENT ON COLUMN "SYS_MENU"."MENU_ID" IS '菜单ID';
|
||||
COMMENT ON COLUMN "SYS_MENU"."MENU_NAME" IS '菜单名称';
|
||||
COMMENT ON COLUMN "SYS_MENU"."PARENT_ID" IS '父菜单ID';
|
||||
COMMENT ON COLUMN "SYS_MENU"."ORDER_NUM" IS '显示顺序';
|
||||
COMMENT ON COLUMN "SYS_MENU"."PATH" IS '路由地址';
|
||||
COMMENT ON COLUMN "SYS_MENU"."COMPONENT" IS '组件路径';
|
||||
COMMENT ON COLUMN "SYS_MENU"."QUERY" IS '路由参数';
|
||||
COMMENT ON COLUMN "SYS_MENU"."IS_FRAME" IS '是否为外链(1是 0否)';
|
||||
COMMENT ON COLUMN "SYS_MENU"."IS_CACHE" IS '是否缓存(1缓存 0不缓存)';
|
||||
COMMENT ON COLUMN "SYS_MENU"."MENU_TYPE" IS '菜单类型(M目录 C菜单 F按钮)';
|
||||
COMMENT ON COLUMN "SYS_MENU"."IS_VISIBLE" IS '菜单状态(1显示 0隐藏)';
|
||||
COMMENT ON COLUMN "SYS_MENU"."PERMS" IS '权限标识';
|
||||
COMMENT ON COLUMN "SYS_MENU"."ICON" IS '菜单图标';
|
||||
COMMENT ON COLUMN "SYS_MENU"."CREATE_USER" IS '创建者';
|
||||
COMMENT ON COLUMN "SYS_MENU"."CREATE_TIME" IS '创建时间';
|
||||
COMMENT ON COLUMN "SYS_MENU"."UPDATE_USER" IS '更新者';
|
||||
COMMENT ON COLUMN "SYS_MENU"."UPDATE_TIME" IS '更新时间';
|
||||
COMMENT ON COLUMN "SYS_MENU"."REMARK" IS '备注';
|
||||
COMMENT ON TABLE "SYS_MENU" IS '菜单权限表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for SYS_POST
|
||||
-- ----------------------------
|
||||
CREATE TABLE "SYS_POST" (
|
||||
"POST_ID" NUMBER(20,0) NOT NULL,
|
||||
"POST_CODE" NVARCHAR2(64) NOT NULL,
|
||||
"POST_NAME" NVARCHAR2(50) NOT NULL,
|
||||
"POST_SORT" NUMBER(11,0) NOT NULL,
|
||||
"STATUS" NCHAR(1) NOT NULL,
|
||||
"CREATE_USER" NVARCHAR2(64),
|
||||
"CREATE_TIME" DATE,
|
||||
"UPDATE_USER" NVARCHAR2(64),
|
||||
"UPDATE_TIME" DATE,
|
||||
"REMARK" NVARCHAR2(500),
|
||||
"TENANT_ID" NUMBER(20,0)
|
||||
)
|
||||
LOGGING
|
||||
NOCOMPRESS
|
||||
PCTFREE 10
|
||||
INITRANS 1
|
||||
STORAGE (
|
||||
INITIAL 65536
|
||||
NEXT 1048576
|
||||
MINEXTENTS 1
|
||||
MAXEXTENTS 2147483645
|
||||
BUFFER_POOL DEFAULT
|
||||
)
|
||||
PARALLEL 1
|
||||
NOCACHE
|
||||
DISABLE ROW MOVEMENT
|
||||
;
|
||||
COMMENT ON COLUMN "SYS_POST"."POST_ID" IS '岗位ID';
|
||||
COMMENT ON COLUMN "SYS_POST"."POST_CODE" IS '岗位编码';
|
||||
COMMENT ON COLUMN "SYS_POST"."POST_NAME" IS '岗位名称';
|
||||
COMMENT ON COLUMN "SYS_POST"."POST_SORT" IS '显示顺序';
|
||||
COMMENT ON COLUMN "SYS_POST"."STATUS" IS '状态(1正常 0停用)';
|
||||
COMMENT ON COLUMN "SYS_POST"."CREATE_USER" IS '创建者';
|
||||
COMMENT ON COLUMN "SYS_POST"."CREATE_TIME" IS '创建时间';
|
||||
COMMENT ON COLUMN "SYS_POST"."UPDATE_USER" IS '更新者';
|
||||
COMMENT ON COLUMN "SYS_POST"."UPDATE_TIME" IS '更新时间';
|
||||
COMMENT ON COLUMN "SYS_POST"."REMARK" IS '备注';
|
||||
COMMENT ON COLUMN "SYS_POST"."TENANT_ID" IS '租户ID';
|
||||
COMMENT ON TABLE "SYS_POST" IS '岗位信息表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for SYS_ROLE
|
||||
-- ----------------------------
|
||||
CREATE TABLE "SYS_ROLE" (
|
||||
"ROLE_ID" NUMBER(20,0) NOT NULL,
|
||||
"ROLE_NAME" NVARCHAR2(30) NOT NULL,
|
||||
"ROLE_KEY" NVARCHAR2(100) NOT NULL,
|
||||
"ROLE_SORT" NUMBER(11,0) NOT NULL,
|
||||
"DATA_SCOPE" NCHAR(1),
|
||||
"STATUS" NCHAR(1) NOT NULL,
|
||||
"CREATE_USER" NVARCHAR2(64),
|
||||
"CREATE_TIME" DATE,
|
||||
"UPDATE_USER" NVARCHAR2(64),
|
||||
"UPDATE_TIME" DATE,
|
||||
"REMARK" NVARCHAR2(500),
|
||||
"TENANT_ID" NUMBER(20,0)
|
||||
)
|
||||
LOGGING
|
||||
NOCOMPRESS
|
||||
PCTFREE 10
|
||||
INITRANS 1
|
||||
STORAGE (
|
||||
INITIAL 65536
|
||||
NEXT 1048576
|
||||
MINEXTENTS 1
|
||||
MAXEXTENTS 2147483645
|
||||
BUFFER_POOL DEFAULT
|
||||
)
|
||||
PARALLEL 1
|
||||
NOCACHE
|
||||
DISABLE ROW MOVEMENT
|
||||
;
|
||||
COMMENT ON COLUMN "SYS_ROLE"."ROLE_ID" IS '角色ID';
|
||||
COMMENT ON COLUMN "SYS_ROLE"."ROLE_NAME" IS '角色名称';
|
||||
COMMENT ON COLUMN "SYS_ROLE"."ROLE_KEY" IS '角色权限字符串';
|
||||
COMMENT ON COLUMN "SYS_ROLE"."ROLE_SORT" IS '显示顺序';
|
||||
COMMENT ON COLUMN "SYS_ROLE"."DATA_SCOPE" IS '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)';
|
||||
COMMENT ON COLUMN "SYS_ROLE"."STATUS" IS '角色状态(1正常 0停用)';
|
||||
COMMENT ON COLUMN "SYS_ROLE"."CREATE_USER" IS '创建者';
|
||||
COMMENT ON COLUMN "SYS_ROLE"."CREATE_TIME" IS '创建时间';
|
||||
COMMENT ON COLUMN "SYS_ROLE"."UPDATE_USER" IS '更新者';
|
||||
COMMENT ON COLUMN "SYS_ROLE"."UPDATE_TIME" IS '更新时间';
|
||||
COMMENT ON COLUMN "SYS_ROLE"."REMARK" IS '备注';
|
||||
COMMENT ON COLUMN "SYS_ROLE"."TENANT_ID" IS '租户ID';
|
||||
COMMENT ON TABLE "SYS_ROLE" IS '角色信息表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for SYS_ROLE_DEPT
|
||||
-- ----------------------------
|
||||
CREATE TABLE "SYS_ROLE_DEPT" (
|
||||
"ROLE_ID" NUMBER(20,0) NOT NULL,
|
||||
"DEPT_ID" NUMBER(20,0) NOT NULL,
|
||||
"TENANT_ID" NUMBER(20,0) NOT NULL
|
||||
)
|
||||
LOGGING
|
||||
NOCOMPRESS
|
||||
PCTFREE 10
|
||||
INITRANS 1
|
||||
STORAGE (
|
||||
INITIAL 65536
|
||||
NEXT 1048576
|
||||
MINEXTENTS 1
|
||||
MAXEXTENTS 2147483645
|
||||
BUFFER_POOL DEFAULT
|
||||
)
|
||||
PARALLEL 1
|
||||
NOCACHE
|
||||
DISABLE ROW MOVEMENT
|
||||
;
|
||||
COMMENT ON COLUMN "SYS_ROLE_DEPT"."ROLE_ID" IS '角色ID';
|
||||
COMMENT ON COLUMN "SYS_ROLE_DEPT"."DEPT_ID" IS '部门ID';
|
||||
COMMENT ON COLUMN "SYS_ROLE_DEPT"."TENANT_ID" IS '租户ID';
|
||||
COMMENT ON TABLE "SYS_ROLE_DEPT" IS '角色和部门关联表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for SYS_ROLE_MENU
|
||||
-- ----------------------------
|
||||
CREATE TABLE "SYS_ROLE_MENU" (
|
||||
"ROLE_ID" NUMBER(20,0) NOT NULL,
|
||||
"MENU_ID" NUMBER(20,0) NOT NULL,
|
||||
"TENANT_ID" NUMBER(20,0) NOT NULL
|
||||
)
|
||||
LOGGING
|
||||
NOCOMPRESS
|
||||
PCTFREE 10
|
||||
INITRANS 1
|
||||
STORAGE (
|
||||
INITIAL 65536
|
||||
NEXT 1048576
|
||||
MINEXTENTS 1
|
||||
MAXEXTENTS 2147483645
|
||||
BUFFER_POOL DEFAULT
|
||||
)
|
||||
PARALLEL 1
|
||||
NOCACHE
|
||||
DISABLE ROW MOVEMENT
|
||||
;
|
||||
COMMENT ON COLUMN "SYS_ROLE_MENU"."ROLE_ID" IS '角色ID';
|
||||
COMMENT ON COLUMN "SYS_ROLE_MENU"."MENU_ID" IS '菜单ID';
|
||||
COMMENT ON COLUMN "SYS_ROLE_MENU"."TENANT_ID" IS '租户ID';
|
||||
COMMENT ON TABLE "SYS_ROLE_MENU" IS '角色和菜单关联表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for SYS_USER
|
||||
-- ----------------------------
|
||||
CREATE TABLE "SYS_USER" (
|
||||
"USER_ID" NUMBER(20,0) NOT NULL,
|
||||
"DEPT_ID" NUMBER(20,0),
|
||||
"USERNAME" NVARCHAR2(30) NOT NULL,
|
||||
"NICKNAME" NVARCHAR2(30) NOT NULL,
|
||||
"EMAIL" NVARCHAR2(50),
|
||||
"PHONE" NVARCHAR2(11),
|
||||
"GENDER" NCHAR(1),
|
||||
"AVATAR" NVARCHAR2(100),
|
||||
"PASSWORD" NVARCHAR2(100),
|
||||
"STATUS" NCHAR(1),
|
||||
"CREATE_USER" NVARCHAR2(64),
|
||||
"CREATE_TIME" DATE,
|
||||
"UPDATE_USER" NVARCHAR2(64),
|
||||
"UPDATE_TIME" DATE,
|
||||
"REMARK" NVARCHAR2(500),
|
||||
"TENANT_ID" NUMBER(20,0)
|
||||
)
|
||||
LOGGING
|
||||
NOCOMPRESS
|
||||
PCTFREE 10
|
||||
INITRANS 1
|
||||
STORAGE (
|
||||
INITIAL 65536
|
||||
NEXT 1048576
|
||||
MINEXTENTS 1
|
||||
MAXEXTENTS 2147483645
|
||||
BUFFER_POOL DEFAULT
|
||||
)
|
||||
PARALLEL 1
|
||||
NOCACHE
|
||||
DISABLE ROW MOVEMENT
|
||||
;
|
||||
COMMENT ON COLUMN "SYS_USER"."USER_ID" IS '用户ID';
|
||||
COMMENT ON COLUMN "SYS_USER"."DEPT_ID" IS '部门ID';
|
||||
COMMENT ON COLUMN "SYS_USER"."USERNAME" IS '用户账号';
|
||||
COMMENT ON COLUMN "SYS_USER"."NICKNAME" IS '用户昵称';
|
||||
COMMENT ON COLUMN "SYS_USER"."EMAIL" IS '用户邮箱';
|
||||
COMMENT ON COLUMN "SYS_USER"."PHONE" IS '手机号码';
|
||||
COMMENT ON COLUMN "SYS_USER"."GENDER" IS '用户性别(0男 1女 2未知)';
|
||||
COMMENT ON COLUMN "SYS_USER"."AVATAR" IS '头像地址';
|
||||
COMMENT ON COLUMN "SYS_USER"."PASSWORD" IS '密码';
|
||||
COMMENT ON COLUMN "SYS_USER"."STATUS" IS '帐号状态(1正常 0停用)';
|
||||
COMMENT ON COLUMN "SYS_USER"."CREATE_USER" IS '创建者';
|
||||
COMMENT ON COLUMN "SYS_USER"."CREATE_TIME" IS '创建时间';
|
||||
COMMENT ON COLUMN "SYS_USER"."UPDATE_USER" IS '更新者';
|
||||
COMMENT ON COLUMN "SYS_USER"."UPDATE_TIME" IS '更新时间';
|
||||
COMMENT ON COLUMN "SYS_USER"."REMARK" IS '备注';
|
||||
COMMENT ON COLUMN "SYS_USER"."TENANT_ID" IS '租户ID';
|
||||
COMMENT ON TABLE "SYS_USER" IS '用户信息表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for SYS_USER_POST
|
||||
-- ----------------------------
|
||||
CREATE TABLE "SYS_USER_POST" (
|
||||
"USER_ID" NUMBER(20,0) NOT NULL,
|
||||
"POST_ID" NUMBER(20,0) NOT NULL,
|
||||
"TENANT_ID" NUMBER(20,0) NOT NULL
|
||||
)
|
||||
LOGGING
|
||||
NOCOMPRESS
|
||||
PCTFREE 10
|
||||
INITRANS 1
|
||||
STORAGE (
|
||||
INITIAL 65536
|
||||
NEXT 1048576
|
||||
MINEXTENTS 1
|
||||
MAXEXTENTS 2147483645
|
||||
BUFFER_POOL DEFAULT
|
||||
)
|
||||
PARALLEL 1
|
||||
NOCACHE
|
||||
DISABLE ROW MOVEMENT
|
||||
;
|
||||
COMMENT ON COLUMN "SYS_USER_POST"."USER_ID" IS '用户ID';
|
||||
COMMENT ON COLUMN "SYS_USER_POST"."POST_ID" IS '岗位ID';
|
||||
COMMENT ON COLUMN "SYS_USER_POST"."TENANT_ID" IS '租户ID';
|
||||
COMMENT ON TABLE "SYS_USER_POST" IS '用户与岗位关联表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for SYS_USER_ROLE
|
||||
-- ----------------------------
|
||||
CREATE TABLE "SYS_USER_ROLE" (
|
||||
"USER_ID" NUMBER(20,0) NOT NULL,
|
||||
"ROLE_ID" NUMBER(20,0) NOT NULL,
|
||||
"TENANT_ID" NUMBER(20,0) NOT NULL
|
||||
)
|
||||
LOGGING
|
||||
NOCOMPRESS
|
||||
PCTFREE 10
|
||||
INITRANS 1
|
||||
STORAGE (
|
||||
INITIAL 65536
|
||||
NEXT 1048576
|
||||
MINEXTENTS 1
|
||||
MAXEXTENTS 2147483645
|
||||
BUFFER_POOL DEFAULT
|
||||
)
|
||||
PARALLEL 1
|
||||
NOCACHE
|
||||
DISABLE ROW MOVEMENT
|
||||
;
|
||||
COMMENT ON COLUMN "SYS_USER_ROLE"."USER_ID" IS '用户ID';
|
||||
COMMENT ON COLUMN "SYS_USER_ROLE"."ROLE_ID" IS '角色ID';
|
||||
COMMENT ON COLUMN "SYS_USER_ROLE"."TENANT_ID" IS '租户ID';
|
||||
COMMENT ON TABLE "SYS_USER_ROLE" IS '用户和角色关联表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table SYS_CONFIG
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_CONFIG" ADD CONSTRAINT "SYS_C0011164" PRIMARY KEY ("CONFIG_ID");
|
||||
|
||||
-- ----------------------------
|
||||
-- Checks structure for table SYS_CONFIG
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_CONFIG" ADD CONSTRAINT "SYS_C0011119" CHECK ("CONFIG_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table SYS_DEPT
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_DEPT" ADD CONSTRAINT "SYS_C0011162" PRIMARY KEY ("DEPT_ID");
|
||||
|
||||
-- ----------------------------
|
||||
-- Checks structure for table SYS_DEPT
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_DEPT" ADD CONSTRAINT "SYS_C0011117" CHECK ("DEPT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table SYS_DICT_DATA
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_DICT_DATA" ADD CONSTRAINT "SYS_C0011165" PRIMARY KEY ("DICT_CODE");
|
||||
|
||||
-- ----------------------------
|
||||
-- Checks structure for table SYS_DICT_DATA
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_DICT_DATA" ADD CONSTRAINT "SYS_C0011121" CHECK ("DICT_CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table SYS_DICT_TYPE
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_DICT_TYPE" ADD CONSTRAINT "SYS_C0011166" PRIMARY KEY ("DICT_ID");
|
||||
|
||||
-- ----------------------------
|
||||
-- Checks structure for table SYS_DICT_TYPE
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_DICT_TYPE" ADD CONSTRAINT "SYS_C0011120" CHECK ("DICT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
|
||||
-- ----------------------------
|
||||
-- Indexes structure for table SYS_DICT_TYPE
|
||||
-- ----------------------------
|
||||
CREATE UNIQUE INDEX "DICT_TYPE"
|
||||
ON "SYS_DICT_TYPE" ("DICT_TYPE" ASC)
|
||||
LOGGING
|
||||
VISIBLE
|
||||
PCTFREE 10
|
||||
INITRANS 2
|
||||
STORAGE (
|
||||
BUFFER_POOL DEFAULT
|
||||
);
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table SYS_LOGIN_LOG
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_LOGIN_LOG" ADD CONSTRAINT "SYS_C0011167" PRIMARY KEY ("LOGIN_ID");
|
||||
|
||||
-- ----------------------------
|
||||
-- Checks structure for table SYS_LOGIN_LOG
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_LOGIN_LOG" ADD CONSTRAINT "SYS_C0011122" CHECK ("LOGIN_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table SYS_MENU
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_MENU" ADD CONSTRAINT "SYS_C0011168" PRIMARY KEY ("MENU_ID");
|
||||
|
||||
-- ----------------------------
|
||||
-- Checks structure for table SYS_MENU
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_MENU" ADD CONSTRAINT "SYS_C0011123" CHECK ("MENU_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_MENU" ADD CONSTRAINT "SYS_C0011124" CHECK ("MENU_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table SYS_POST
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_POST" ADD CONSTRAINT "SYS_C0011169" PRIMARY KEY ("POST_ID");
|
||||
|
||||
-- ----------------------------
|
||||
-- Checks structure for table SYS_POST
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_POST" ADD CONSTRAINT "SYS_C0011125" CHECK ("POST_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_POST" ADD CONSTRAINT "SYS_C0011126" CHECK ("POST_CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_POST" ADD CONSTRAINT "SYS_C0011127" CHECK ("POST_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_POST" ADD CONSTRAINT "SYS_C0011128" CHECK ("POST_SORT" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_POST" ADD CONSTRAINT "SYS_C0011129" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table SYS_ROLE
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_ROLE" ADD CONSTRAINT "SYS_C0011170" PRIMARY KEY ("ROLE_ID");
|
||||
|
||||
-- ----------------------------
|
||||
-- Checks structure for table SYS_ROLE
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_ROLE" ADD CONSTRAINT "SYS_C0011130" CHECK ("ROLE_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_ROLE" ADD CONSTRAINT "SYS_C0011131" CHECK ("ROLE_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_ROLE" ADD CONSTRAINT "SYS_C0011132" CHECK ("ROLE_KEY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_ROLE" ADD CONSTRAINT "SYS_C0011133" CHECK ("ROLE_SORT" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_ROLE" ADD CONSTRAINT "SYS_C0011134" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table SYS_ROLE_DEPT
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_ROLE_DEPT" ADD CONSTRAINT "SYS_C0011171" PRIMARY KEY ("ROLE_ID", "DEPT_ID", "TENANT_ID");
|
||||
|
||||
-- ----------------------------
|
||||
-- Checks structure for table SYS_ROLE_DEPT
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_ROLE_DEPT" ADD CONSTRAINT "SYS_C0011135" CHECK ("ROLE_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_ROLE_DEPT" ADD CONSTRAINT "SYS_C0011136" CHECK ("DEPT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_ROLE_DEPT" ADD CONSTRAINT "SYS_C0011137" CHECK ("TENANT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table SYS_ROLE_MENU
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_ROLE_MENU" ADD CONSTRAINT "SYS_C0011172" PRIMARY KEY ("ROLE_ID", "MENU_ID", "TENANT_ID");
|
||||
|
||||
-- ----------------------------
|
||||
-- Checks structure for table SYS_ROLE_MENU
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_ROLE_MENU" ADD CONSTRAINT "SYS_C0011138" CHECK ("ROLE_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_ROLE_MENU" ADD CONSTRAINT "SYS_C0011139" CHECK ("MENU_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_ROLE_MENU" ADD CONSTRAINT "SYS_C0011140" CHECK ("TENANT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table SYS_USER
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_USER" ADD CONSTRAINT "SYS_C0011175" PRIMARY KEY ("USER_ID");
|
||||
|
||||
-- ----------------------------
|
||||
-- Checks structure for table SYS_USER
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_USER" ADD CONSTRAINT "SYS_C0011152" CHECK ("USER_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_USER" ADD CONSTRAINT "SYS_C0011153" CHECK ("USERNAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_USER" ADD CONSTRAINT "SYS_C0011154" CHECK ("NICKNAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table SYS_USER_POST
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_USER_POST" ADD CONSTRAINT "SYS_C0011176" PRIMARY KEY ("USER_ID", "POST_ID", "TENANT_ID");
|
||||
|
||||
-- ----------------------------
|
||||
-- Checks structure for table SYS_USER_POST
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_USER_POST" ADD CONSTRAINT "SYS_C0011155" CHECK ("USER_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_USER_POST" ADD CONSTRAINT "SYS_C0011156" CHECK ("POST_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_USER_POST" ADD CONSTRAINT "SYS_C0011157" CHECK ("TENANT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table SYS_USER_ROLE
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_USER_ROLE" ADD CONSTRAINT "SYS_C0011177" PRIMARY KEY ("USER_ID", "ROLE_ID", "TENANT_ID");
|
||||
|
||||
-- ----------------------------
|
||||
-- Checks structure for table SYS_USER_ROLE
|
||||
-- ----------------------------
|
||||
ALTER TABLE "SYS_USER_ROLE" ADD CONSTRAINT "SYS_C0011158" CHECK ("USER_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_USER_ROLE" ADD CONSTRAINT "SYS_C0011159" CHECK ("ROLE_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
||||
ALTER TABLE "SYS_USER_ROLE" ADD CONSTRAINT "SYS_C0011160" CHECK ("TENANT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
|
@ -15,32 +15,32 @@ public enum DatasourceErrorCode {
|
||||
/**
|
||||
* 未找到
|
||||
*/
|
||||
NOT_FIND(50101, "未找到数据源信息"),
|
||||
NOT_FIND(50401, "未找到数据源信息"),
|
||||
|
||||
/**
|
||||
* 连接错误
|
||||
*/
|
||||
CONNECT_ERROR(50102, "数据源无法连接"),
|
||||
CONNECT_ERROR(50402, "数据源无法连接"),
|
||||
|
||||
/**
|
||||
* 切换模式错误
|
||||
*/
|
||||
SWITCH_SCHEMA_ERROR(50103, "切换模式错误"),
|
||||
SWITCH_SCHEMA_ERROR(50403, "切换模式错误"),
|
||||
|
||||
/**
|
||||
* 创建表错误
|
||||
*/
|
||||
CREATE_TABLE_ERROR(50104, "创建表错误"),
|
||||
CREATE_TABLE_ERROR(50404, "创建表错误"),
|
||||
|
||||
/**
|
||||
* 创建模式/库错误
|
||||
*/
|
||||
CREATE_SCHEMA_ERROR(50105, "创建模式/库错误"),
|
||||
CREATE_SCHEMA_ERROR(50405, "创建模式/库错误"),
|
||||
|
||||
/**
|
||||
* 初始化数据错误
|
||||
*/
|
||||
INIT_DATA_ERROR(50106, "初始化数据错误");
|
||||
INIT_DATA_ERROR(50406, "初始化数据错误");
|
||||
|
||||
private final Integer code;
|
||||
private final String msg;
|
||||
|
@ -16,6 +16,7 @@ public enum TenantErrorCode {
|
||||
* 未找到
|
||||
*/
|
||||
NOT_FIND(5010, "未找到租户信息"),
|
||||
|
||||
/**
|
||||
* 禁用
|
||||
*/
|
||||
@ -24,7 +25,12 @@ public enum TenantErrorCode {
|
||||
/**
|
||||
* 过期
|
||||
*/
|
||||
EXPIRE(5012, "租户已过期");
|
||||
EXPIRE(5012, "租户已过期"),
|
||||
|
||||
/**
|
||||
* 租户模式不存在
|
||||
*/
|
||||
MODE_NOT_FIND(50103, "未找到租户模式");
|
||||
|
||||
private final Integer code;
|
||||
private final String msg;
|
||||
|
@ -1,16 +1,12 @@
|
||||
package com.qiaoba.common.database.interceptors;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.db.sql.SqlExecutor;
|
||||
import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
|
||||
import com.qiaoba.common.base.constants.BaseConstant;
|
||||
import com.qiaoba.common.base.constants.TenantConstant;
|
||||
import com.qiaoba.common.base.context.BaseContext;
|
||||
import com.qiaoba.common.database.context.TenantDbTypeContext;
|
||||
import com.qiaoba.common.database.properties.TenantSchema;
|
||||
import com.qiaoba.common.database.utils.DbUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.ibatis.executor.statement.StatementHandler;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
@ -26,17 +22,12 @@ import java.util.Objects;
|
||||
@Slf4j
|
||||
public class SchemaInterceptor implements InnerInterceptor {
|
||||
|
||||
@Value("${spring.application.name}")
|
||||
private String schemaPrefix;
|
||||
|
||||
@Override
|
||||
public void beforePrepare(StatementHandler sh, Connection conn, Integer transactionTimeout) {
|
||||
|
||||
if (Objects.nonNull(BaseContext.isSchemaMode()) && BaseContext.isSchemaMode()) {
|
||||
try {
|
||||
// schemaPrefix + '-' + tenantId
|
||||
// eg: schema = qiaoba-boot-2
|
||||
DbUtil.setSchema(TenantDbTypeContext.getDefault(), conn, schemaPrefix + BaseConstant.HYPHEN_JOIN_STR + BaseContext.getTenantId());
|
||||
DbUtil.setSchema(TenantDbTypeContext.getDefault(), conn, TenantSchema.getSchema(BaseContext.getTenantId()));
|
||||
} catch (SQLException e) {
|
||||
log.info("切换SCHEMA失败, 原因: {}", e.getMessage());
|
||||
}
|
||||
|
@ -0,0 +1,37 @@
|
||||
package com.qiaoba.common.database.properties;
|
||||
|
||||
import com.qiaoba.common.base.constants.BaseConstant;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* 租户Schema
|
||||
*
|
||||
* @author ailanyin
|
||||
* @version 1.0
|
||||
* @since 2023/6/29 8:53
|
||||
*/
|
||||
@Component
|
||||
public class TenantSchema {
|
||||
|
||||
|
||||
private static String schemaPrefix;
|
||||
|
||||
@Value("${spring.application.name}")
|
||||
public void setSchemaPrefix(String name) {
|
||||
schemaPrefix = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* 租户schema生成逻辑
|
||||
* schemaPrefix + '-' + tenantId
|
||||
* eg: schema = abc-2
|
||||
*
|
||||
* @param tenantId 租户ID
|
||||
* @return schema
|
||||
*/
|
||||
public static String getSchema(String tenantId) {
|
||||
return schemaPrefix + BaseConstant.HYPHEN_JOIN_STR + tenantId;
|
||||
}
|
||||
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package com.qiaoba.common.database.utils;
|
||||
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import com.qiaoba.common.base.enums.DataBaseEnum;
|
||||
import org.apache.ibatis.jdbc.ScriptRunner;
|
||||
import org.postgresql.jdbc.PgConnection;
|
||||
@ -10,6 +11,7 @@ import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
|
||||
/**
|
||||
* @author ailanyin
|
||||
@ -40,4 +42,14 @@ public class DbUtil {
|
||||
scriptRunner.runScript(reader);
|
||||
reader.close();
|
||||
}
|
||||
|
||||
public static void runSql(Connection conn, String sql) throws SQLException {
|
||||
Statement statement = null;
|
||||
try {
|
||||
statement = conn.createStatement();
|
||||
statement.execute(sql);
|
||||
} finally {
|
||||
IoUtil.close(statement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,10 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.sql.*;
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.Statement;
|
||||
|
||||
/**
|
||||
* JdbcUtil
|
||||
@ -100,19 +103,4 @@ public class JdbcUtil {
|
||||
private String msg;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Connection connection = getConnection("oracle.jdbc.OracleDriver", "jdbc:oracle:thin:@//192.168.0.205:1521/ORCL", "system", "root");
|
||||
try {
|
||||
DbUtil.setSchema("Oracle",connection,"scott");
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
connection.close();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
||||
com.qiaoba.common.database.factories.DynamicDataSourceFactory,\
|
||||
com.qiaoba.common.database.properties.TenantSchema,\
|
||||
com.qiaoba.common.database.config.MybatisPlusConfig
|
||||
|
@ -73,13 +73,6 @@ public class SysTenantController {
|
||||
return AjaxResult.success(sysTenantService.update(BeanUtil.copyProperties(dto, SysTenant.class)));
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority('tenant:init')")
|
||||
@PostMapping("/init")
|
||||
@Operation(summary = "初始化")
|
||||
public void initData(String tenantId) throws Exception {
|
||||
sysTenantService.initData(tenantId);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority('tenant:remove')")
|
||||
@DeleteMapping("/refreshCache")
|
||||
@Operation(summary = "刷新缓存")
|
||||
|
@ -38,4 +38,10 @@ public class SysTenantInitController {
|
||||
return sysTenantInitService.createTables(tenantId);
|
||||
}
|
||||
|
||||
@PostMapping(value = "/initData/{tenantId}")
|
||||
@Operation(summary = "步骤三: 导入数据")
|
||||
public TenantInitVo initData(@PathVariable String tenantId) throws Exception {
|
||||
return sysTenantInitService.initData(tenantId);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -29,21 +29,6 @@ public class SysTenant extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 字段模式
|
||||
*/
|
||||
public static final String COLUMN_MODE = "1";
|
||||
|
||||
/**
|
||||
* SCHEMA 模式
|
||||
*/
|
||||
public static final String SCHEMA_MODE = "2";
|
||||
|
||||
/**
|
||||
* 数据源模式
|
||||
*/
|
||||
public static final String DATASOURCE_MODE = "3";
|
||||
|
||||
@TableId
|
||||
@NotNull(message = "id不能为空", groups = {EditGroup.class})
|
||||
private String tenantId;
|
||||
|
@ -10,28 +10,28 @@ import lombok.Getter;
|
||||
* @since 2023/6/5 16:33
|
||||
*/
|
||||
@Getter
|
||||
public enum TenantTypeEnum {
|
||||
public enum TenantModeEnum {
|
||||
|
||||
/**
|
||||
* 字段模式-隔离级别最小
|
||||
*/
|
||||
COLUMN("column", "字段模式"),
|
||||
COLUMN("1", "字段模式"),
|
||||
|
||||
/**
|
||||
* SCHEMA模式-隔离级别中等
|
||||
*/
|
||||
SCHEMA("schema", "SCHEMA模式"),
|
||||
SCHEMA("2", "SCHEMA模式"),
|
||||
|
||||
/**
|
||||
* 数据源模式-隔离级别最大
|
||||
*/
|
||||
DATASOURCE("datasource", "数据源模式");
|
||||
DATASOURCE("3", "数据源模式");
|
||||
|
||||
private final String type;
|
||||
private final String mode;
|
||||
private final String info;
|
||||
|
||||
TenantTypeEnum(String code, String info) {
|
||||
this.type = code;
|
||||
TenantModeEnum(String code, String info) {
|
||||
this.mode = code;
|
||||
this.info = info;
|
||||
}
|
||||
}
|
@ -11,6 +11,7 @@ import com.qiaoba.common.database.context.TenantDbTypeContext;
|
||||
import com.qiaoba.common.web.utils.ResponseUtil;
|
||||
import com.qiaoba.common.web.utils.UriUtil;
|
||||
import com.qiaoba.module.tenant.entity.SysTenant;
|
||||
import com.qiaoba.module.tenant.enums.TenantModeEnum;
|
||||
import com.qiaoba.module.tenant.enums.TenantStatusEnum;
|
||||
import com.qiaoba.module.tenant.service.SysTenantService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -87,9 +88,9 @@ public class DynamicDataSourceFilter extends OncePerRequestFilter {
|
||||
private void before(SysTenant sysTenant) {
|
||||
log.debug("设置租户信息, 租户ID: {},租户模式: {}", sysTenant.getTenantId(), sysTenant.getMode());
|
||||
BaseContext.setTenantId(sysTenant.getTenantId());
|
||||
BaseContext.setSchema(sysTenant.getMode().equals(SysTenant.SCHEMA_MODE));
|
||||
BaseContext.setSchema(sysTenant.getMode().equals(TenantModeEnum.SCHEMA.getMode()));
|
||||
// 数据源模式-设置第三方数据源
|
||||
if (sysTenant.getMode().equals(SysTenant.DATASOURCE_MODE)) {
|
||||
if (sysTenant.getMode().equals(TenantModeEnum.DATASOURCE.getMode())) {
|
||||
//设置当前租户对应的数据源
|
||||
BaseContext.setDataSource(sysTenant.getTenantId());
|
||||
BaseContext.setDatabaseType(TenantDbTypeContext.get(sysTenant.getTenantId()));
|
||||
|
@ -1,24 +0,0 @@
|
||||
package com.qiaoba.module.tenant.init;
|
||||
|
||||
import com.qiaoba.module.tenant.entity.vo.TenantInitVo;
|
||||
|
||||
import java.sql.Connection;
|
||||
|
||||
/**
|
||||
* 初始化数据策略
|
||||
*
|
||||
* @author ailanyin
|
||||
* @version 1.0
|
||||
* @since 2023/6/27 13:05
|
||||
*/
|
||||
public interface InitDataStrategy {
|
||||
|
||||
/**
|
||||
* 初始化数据
|
||||
*
|
||||
* @param conn 连接对象
|
||||
* @param tenantId 租户ID
|
||||
* @return 结果
|
||||
*/
|
||||
TenantInitVo init(Connection conn, String tenantId);
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
package com.qiaoba.module.tenant.init;
|
||||
|
||||
import com.qiaoba.common.base.enums.DataBaseEnum;
|
||||
import com.qiaoba.common.base.exceptions.ServiceException;
|
||||
import com.qiaoba.module.tenant.init.impl.MysqlInitDataStrategy;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
/**
|
||||
* 策略工厂-租户初始化-导入数据
|
||||
*
|
||||
* @author ailanyin
|
||||
* @version 1.0
|
||||
* @since 2023/6/27 16:41
|
||||
*/
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class InitDataStrategyFactory {
|
||||
|
||||
private static Map<String, InitDataStrategy> FACTORY = new ConcurrentHashMap<>();
|
||||
|
||||
private final MysqlInitDataStrategy mysqlInitDataStrategy;
|
||||
|
||||
|
||||
@PostConstruct
|
||||
public void register() {
|
||||
FACTORY.put(DataBaseEnum.MY_SQL.getType(), mysqlInitDataStrategy);
|
||||
}
|
||||
|
||||
public static InitDataStrategy getStrategy(String name) {
|
||||
InitDataStrategy strategy = FACTORY.get(name);
|
||||
if (Objects.isNull(strategy)) {
|
||||
throw new ServiceException("[ InitDataStrategy ]策略工厂异常, 类型:[" + name + "]找不到相对应的策略");
|
||||
}
|
||||
return strategy;
|
||||
}
|
||||
}
|
@ -3,6 +3,7 @@ package com.qiaoba.module.tenant.init;
|
||||
import com.qiaoba.common.base.enums.DataBaseEnum;
|
||||
import com.qiaoba.common.base.exceptions.ServiceException;
|
||||
import com.qiaoba.module.tenant.init.impl.MysqlInitTablesStrategy;
|
||||
import com.qiaoba.module.tenant.init.impl.PgSqlInitTablesStrategy;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@ -25,11 +26,13 @@ public class InitTablesStrategyFactory {
|
||||
private static Map<String, InitTablesStrategy> FACTORY = new ConcurrentHashMap<>();
|
||||
|
||||
private final MysqlInitTablesStrategy mysqlInitTablesStrategy;
|
||||
private final PgSqlInitTablesStrategy pgSqlInitTablesStrategy;
|
||||
|
||||
|
||||
@PostConstruct
|
||||
public void register() {
|
||||
FACTORY.put(DataBaseEnum.MY_SQL.getType(), mysqlInitTablesStrategy);
|
||||
FACTORY.put(DataBaseEnum.POSTGRE_SQL.getType(), pgSqlInitTablesStrategy);
|
||||
}
|
||||
|
||||
public static InitTablesStrategy getStrategy(String name) {
|
||||
|
@ -1,56 +0,0 @@
|
||||
package com.qiaoba.module.tenant.init.impl;
|
||||
|
||||
import cn.hutool.db.DbUtil;
|
||||
import cn.hutool.http.HttpStatus;
|
||||
import com.qiaoba.common.base.code.DatasourceErrorCode;
|
||||
import com.qiaoba.module.tenant.entity.vo.TenantInitVo;
|
||||
import com.qiaoba.module.tenant.init.InitDataStrategy;
|
||||
import com.qiaoba.module.tenant.utils.InitDataUtil;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
|
||||
/**
|
||||
* 初始化数据策略
|
||||
*
|
||||
* @author ailanyin
|
||||
* @version 1.0
|
||||
* @since 2023/6/27 13:05
|
||||
*/
|
||||
@Component
|
||||
public class MysqlInitDataStrategy implements InitDataStrategy {
|
||||
@Override
|
||||
public TenantInitVo init(Connection conn, String tenantId) {
|
||||
|
||||
try {
|
||||
// 手动提交
|
||||
conn.setAutoCommit(false);
|
||||
// 处理 sys_config
|
||||
InitDataUtil.handleSysConfig(conn, tenantId, "MySQL/data/sys_config_data");
|
||||
// 处理 sys_post
|
||||
InitDataUtil.handleSysPost(conn, tenantId, "MySQL/data/sys_post_data");
|
||||
// 处理 sys_role
|
||||
InitDataUtil.handleSysRole(conn, tenantId, "MySQL/data/sys_role_data");
|
||||
// 处理 sys_user
|
||||
InitDataUtil.handleSysUser(conn, tenantId, "MySQL/data/sys_user_data");
|
||||
// 处理 sys_user_role
|
||||
InitDataUtil.bindUserAndRole(conn, tenantId);
|
||||
// 处理 sys_menu todo
|
||||
//MenuUtil.handleMenu(conn, tenantId);
|
||||
// 处理 sys_role_menu
|
||||
InitDataUtil.bindRoleAndMenu(conn, tenantId);
|
||||
conn.commit();
|
||||
return new TenantInitVo(HttpStatus.HTTP_OK, null);
|
||||
} catch (Exception e) {
|
||||
try {
|
||||
conn.rollback();
|
||||
} catch (SQLException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
return new TenantInitVo(DatasourceErrorCode.INIT_DATA_ERROR.getCode(), e.getMessage());
|
||||
} finally {
|
||||
DbUtil.close(conn);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package com.qiaoba.module.tenant.init.impl;
|
||||
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.http.HttpStatus;
|
||||
import com.qiaoba.common.base.code.DatasourceErrorCode;
|
||||
import com.qiaoba.common.database.utils.DbUtil;
|
||||
import com.qiaoba.module.tenant.entity.vo.TenantInitVo;
|
||||
import com.qiaoba.module.tenant.init.InitTablesStrategy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.sql.Connection;
|
||||
|
||||
/**
|
||||
* 初始化表策略-Mysql
|
||||
*
|
||||
* @author ailanyin
|
||||
* @version 1.0
|
||||
* @since 2023/6/27 16:01
|
||||
*/
|
||||
@Service
|
||||
public class PgSqlInitTablesStrategy implements InitTablesStrategy {
|
||||
|
||||
public static final String CREATE_MYSQL_DB_SQL = "DROP DATABASE IF EXISTS `{}`;CREATE DATABASE `{}` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';";
|
||||
|
||||
@Override
|
||||
public TenantInitVo create(Connection conn, String schema) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TenantInitVo create(Connection conn) {
|
||||
try {
|
||||
DbUtil.runScript(conn, "init/table/PostgreSQL/create_tables");
|
||||
return new TenantInitVo(HttpStatus.HTTP_OK, null);
|
||||
} catch (IOException e) {
|
||||
return new TenantInitVo(DatasourceErrorCode.CREATE_TABLE_ERROR.getCode(), e.getMessage());
|
||||
} finally {
|
||||
IoUtil.close(conn);
|
||||
}
|
||||
}
|
||||
}
|
@ -3,6 +3,8 @@ package com.qiaoba.module.tenant.service;
|
||||
import com.qiaoba.module.tenant.entity.vo.TenantInitCheckVo;
|
||||
import com.qiaoba.module.tenant.entity.vo.TenantInitVo;
|
||||
|
||||
import java.sql.SQLException;
|
||||
|
||||
/**
|
||||
* 租户初始化 服务层
|
||||
*
|
||||
@ -27,4 +29,13 @@ public interface SysTenantInitService {
|
||||
* @return 结果
|
||||
*/
|
||||
TenantInitVo createTables(String tenantId);
|
||||
|
||||
/**
|
||||
* 导入表数据
|
||||
*
|
||||
* @param tenantId 租户ID
|
||||
* @return 结果
|
||||
* @throws SQLException SQLException
|
||||
*/
|
||||
TenantInitVo initData(String tenantId) throws SQLException;
|
||||
}
|
||||
|
@ -64,14 +64,6 @@ public interface SysTenantService {
|
||||
*/
|
||||
SysTenant selectFromCache(String tenantId);
|
||||
|
||||
/**
|
||||
* 初始化数据
|
||||
*
|
||||
* @param tenantId tenantId
|
||||
* @throws Exception Exception
|
||||
*/
|
||||
void initData(String tenantId) throws Exception;
|
||||
|
||||
/**
|
||||
* 更改状态
|
||||
*
|
||||
|
@ -4,24 +4,30 @@ import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.http.HttpStatus;
|
||||
import com.alibaba.druid.pool.DruidDataSource;
|
||||
import com.qiaoba.common.base.code.DatasourceErrorCode;
|
||||
import com.qiaoba.common.base.constants.BaseConstant;
|
||||
import com.qiaoba.common.base.code.TenantErrorCode;
|
||||
import com.qiaoba.common.base.enums.DataBaseEnum;
|
||||
import com.qiaoba.common.database.context.PrimaryDatasourceContext;
|
||||
import com.qiaoba.common.database.context.TenantDbTypeContext;
|
||||
import com.qiaoba.common.database.properties.TenantSchema;
|
||||
import com.qiaoba.common.database.utils.DbUtil;
|
||||
import com.qiaoba.common.database.utils.JdbcUtil;
|
||||
import com.qiaoba.module.tenant.entity.SysTenant;
|
||||
import com.qiaoba.module.tenant.entity.SysTenantDatasource;
|
||||
import com.qiaoba.module.tenant.entity.vo.TenantInitCheckVo;
|
||||
import com.qiaoba.module.tenant.entity.vo.TenantInitVo;
|
||||
import com.qiaoba.module.tenant.enums.TenantModeEnum;
|
||||
import com.qiaoba.module.tenant.init.InitTablesStrategyFactory;
|
||||
import com.qiaoba.module.tenant.service.SysTenantDatasourceService;
|
||||
import com.qiaoba.module.tenant.service.SysTenantInitService;
|
||||
import com.qiaoba.module.tenant.service.SysTenantService;
|
||||
import com.qiaoba.module.tenant.utils.InitDataUtil;
|
||||
import com.qiaoba.module.tenant.utils.MenuUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
@ -38,15 +44,12 @@ public class SysTenantInitServiceImpl implements SysTenantInitService {
|
||||
private final SysTenantService sysTenantService;
|
||||
private final SysTenantDatasourceService sysTenantDatasourceService;
|
||||
|
||||
@Value("${spring.application.name}")
|
||||
private String schemaPrefix;
|
||||
|
||||
@Override
|
||||
public TenantInitCheckVo check(String tenantId) {
|
||||
// 1. 查询租户信息, 获取租户名称|租户模式
|
||||
SysTenant sysTenant = sysTenantService.selectById(tenantId, false);
|
||||
// 2. 租户模式 = 3 数据源模式
|
||||
if (SysTenant.DATASOURCE_MODE.equals(sysTenant.getMode())) {
|
||||
if (TenantModeEnum.DATASOURCE.getMode().equals(sysTenant.getMode())) {
|
||||
// 3. 根据租户ID查询主要数据源(1条)
|
||||
SysTenantDatasource datasource = sysTenantDatasourceService.selectPrimary(tenantId);
|
||||
// 4. 若没有主要数据源, 返回 未找到数据源信息
|
||||
@ -74,18 +77,17 @@ public class SysTenantInitServiceImpl implements SysTenantInitService {
|
||||
public TenantInitVo createTables(String tenantId) {
|
||||
SysTenant sysTenant = sysTenantService.selectById(tenantId, false);
|
||||
// 字段模式
|
||||
if (SysTenant.COLUMN_MODE.equals(sysTenant.getMode())) {
|
||||
if (TenantModeEnum.COLUMN.getMode().equals(sysTenant.getMode())) {
|
||||
return new TenantInitVo(HttpStatus.HTTP_OK, "字段模式, 无需新建表");
|
||||
}
|
||||
// Schema模式
|
||||
if (SysTenant.SCHEMA_MODE.equals(sysTenant.getMode())) {
|
||||
if (TenantModeEnum.SCHEMA.getMode().equals(sysTenant.getMode())) {
|
||||
Connection connection = null;
|
||||
try {
|
||||
String schema = schemaPrefix + BaseConstant.HYPHEN_JOIN_STR + tenantId;
|
||||
// 获取主库Connection 和 Schema
|
||||
DruidDataSource dataSource = (DruidDataSource) PrimaryDatasourceContext.getDefault();
|
||||
connection = dataSource.getConnection();
|
||||
return InitTablesStrategyFactory.getStrategy(TenantDbTypeContext.getDefault()).create(connection, schema);
|
||||
return InitTablesStrategyFactory.getStrategy(TenantDbTypeContext.getDefault()).create(connection, TenantSchema.getSchema(tenantId));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
@ -93,15 +95,83 @@ public class SysTenantInitServiceImpl implements SysTenantInitService {
|
||||
}
|
||||
}
|
||||
// 数据源模式
|
||||
if (SysTenant.DATASOURCE_MODE.equals(sysTenant.getMode())) {
|
||||
if (TenantModeEnum.DATASOURCE.getMode().equals(sysTenant.getMode())) {
|
||||
SysTenantDatasource primary = sysTenantDatasourceService.selectPrimary(tenantId, false);
|
||||
Connection connection = JdbcUtil.getConnection(DataBaseEnum.getDriver(primary.getType()),
|
||||
DataBaseEnum.getUrl(primary.getType(), primary.getIp(), primary.getPort(), primary.getDbName(), primary.getSchemaName()),
|
||||
primary.getUsername(), primary.getPassword());
|
||||
return InitTablesStrategyFactory.getStrategy(primary.getType()).create(connection);
|
||||
}
|
||||
return new TenantInitVo(500, "未知异常");
|
||||
return new TenantInitVo(TenantErrorCode.MODE_NOT_FIND.getCode(), TenantErrorCode.MODE_NOT_FIND.getMsg());
|
||||
}
|
||||
|
||||
@Override
|
||||
public TenantInitVo initData(String tenantId) throws SQLException {
|
||||
SysTenant sysTenant = sysTenantService.selectById(tenantId, false);
|
||||
// 字段模式
|
||||
if (TenantModeEnum.COLUMN.getMode().equals(sysTenant.getMode())) {
|
||||
// 获取默认租户的主数据源
|
||||
DataSource dataSource = (DataSource) PrimaryDatasourceContext.getDefault();
|
||||
// 获取默认租户的主数据库类型
|
||||
String dbType = TenantDbTypeContext.getDefault();
|
||||
// 初始化
|
||||
return init(dataSource.getConnection(), tenantId);
|
||||
}
|
||||
// SCHEMA
|
||||
else if (TenantModeEnum.SCHEMA.getMode().equals(sysTenant.getMode())) {
|
||||
// 获取默认租户的主数据源
|
||||
DataSource dataSource = (DataSource) PrimaryDatasourceContext.getDefault();
|
||||
// 获取默认租户的主数据库类型
|
||||
String dbType = TenantDbTypeContext.getDefault();
|
||||
// 切换 SCHEMA
|
||||
Connection connection = dataSource.getConnection();
|
||||
DbUtil.setSchema(dbType, connection, TenantSchema.getSchema(tenantId));
|
||||
// 初始化
|
||||
return init(connection, tenantId);
|
||||
}
|
||||
// Datasource
|
||||
else if (TenantModeEnum.DATASOURCE.getMode().equals(sysTenant.getMode())) {
|
||||
SysTenantDatasource primary = sysTenantDatasourceService.selectPrimary(tenantId, false);
|
||||
Connection connection = JdbcUtil.getConnection(DataBaseEnum.getDriver(primary.getType()),
|
||||
DataBaseEnum.getUrl(primary.getType(), primary.getIp(), primary.getPort(), primary.getDbName(), primary.getSchemaName()),
|
||||
primary.getUsername(), primary.getPassword());
|
||||
// 初始化
|
||||
return init(connection, tenantId);
|
||||
}
|
||||
return new TenantInitVo(TenantErrorCode.MODE_NOT_FIND.getCode(), TenantErrorCode.MODE_NOT_FIND.getMsg());
|
||||
}
|
||||
|
||||
private TenantInitVo init(Connection conn, String tenantId) {
|
||||
|
||||
try {
|
||||
// 手动提交
|
||||
conn.setAutoCommit(false);
|
||||
// 处理 sys_config
|
||||
InitDataUtil.handleSysConfig(conn, tenantId, "init/data/sys_config_data");
|
||||
// 处理 sys_post
|
||||
InitDataUtil.handleSysPost(conn, tenantId, "init/data/sys_post_data");
|
||||
// 处理 sys_role
|
||||
InitDataUtil.handleSysRole(conn, tenantId, "init/data/sys_role_data");
|
||||
// 处理 sys_user
|
||||
InitDataUtil.handleSysUser(conn, tenantId, "init/data/sys_user_data");
|
||||
// 处理 sys_user_role
|
||||
InitDataUtil.bindUserAndRole(conn, tenantId);
|
||||
// 处理 sys_menu
|
||||
MenuUtil.handleMenu(conn, tenantId);
|
||||
// 处理 sys_role_menu
|
||||
InitDataUtil.bindRoleAndMenu(conn, tenantId);
|
||||
conn.commit();
|
||||
return new TenantInitVo(HttpStatus.HTTP_OK, null);
|
||||
} catch (Exception e) {
|
||||
try {
|
||||
conn.rollback();
|
||||
} catch (SQLException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
return new TenantInitVo(DatasourceErrorCode.INIT_DATA_ERROR.getCode(), e.getMessage());
|
||||
} finally {
|
||||
InitDataUtil.removeLocal();
|
||||
cn.hutool.db.DbUtil.close(conn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
package com.qiaoba.module.tenant.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.druid.pool.DruidDataSource;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.qiaoba.auth.utils.SecurityUtil;
|
||||
import com.qiaoba.common.base.code.TenantErrorCode;
|
||||
@ -9,25 +8,19 @@ import com.qiaoba.common.base.constants.BaseConstant;
|
||||
import com.qiaoba.common.base.constants.TenantConstant;
|
||||
import com.qiaoba.common.base.context.BaseContext;
|
||||
import com.qiaoba.common.base.enums.BaseEnum;
|
||||
import com.qiaoba.common.base.enums.DataBaseEnum;
|
||||
import com.qiaoba.common.base.exceptions.ServiceException;
|
||||
import com.qiaoba.common.database.config.DynamicDataSourceConfig;
|
||||
import com.qiaoba.common.database.entity.PageQuery;
|
||||
import com.qiaoba.common.database.entity.TableDataInfo;
|
||||
import com.qiaoba.common.database.utils.JdbcUtil;
|
||||
import com.qiaoba.common.redis.service.RedisService;
|
||||
import com.qiaoba.module.tenant.entity.SysTenant;
|
||||
import com.qiaoba.module.tenant.entity.SysTenantDatasource;
|
||||
import com.qiaoba.module.tenant.entity.param.SysTenantParam;
|
||||
import com.qiaoba.module.tenant.mapper.SysTenantMapper;
|
||||
import com.qiaoba.module.tenant.service.SysTenantDatasourceService;
|
||||
import com.qiaoba.module.tenant.service.SysTenantService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
@ -49,9 +42,6 @@ public class SysTenantServiceImpl implements SysTenantService {
|
||||
private final SysTenantDatasourceService sysTenantDatasourceService;
|
||||
private final RedisService redisService;
|
||||
|
||||
@Value("${spring.application.name}")
|
||||
private String baseDatabase;
|
||||
|
||||
@Override
|
||||
public int insert(SysTenant sysTenant) {
|
||||
sysTenant.setCreateTime(new Date());
|
||||
@ -104,16 +94,6 @@ public class SysTenantServiceImpl implements SysTenantService {
|
||||
return sysTenant;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initData(String tenantId) throws Exception {
|
||||
|
||||
SysTenant sysTenant = selectById(tenantId);
|
||||
if (Objects.isNull(sysTenant)) {
|
||||
throw new ServiceException("租户不存在");
|
||||
}
|
||||
// 初始化数据 todo
|
||||
Connection connection = getConnection(sysTenant);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStatus(String tenantId, String status) {
|
||||
@ -153,48 +133,6 @@ public class SysTenantServiceImpl implements SysTenantService {
|
||||
return wrapper;
|
||||
}
|
||||
|
||||
private Connection getConnection(SysTenant sysTenant) {
|
||||
if (SysTenant.COLUMN_MODE.equals(sysTenant.getMode())) {
|
||||
return column();
|
||||
}
|
||||
if (SysTenant.SCHEMA_MODE.equals(sysTenant.getMode())) {
|
||||
return schema(sysTenant.getTenantId());
|
||||
}
|
||||
if (SysTenant.DATASOURCE_MODE.equals(sysTenant.getMode())) {
|
||||
return datasource(sysTenant.getTenantId());
|
||||
}
|
||||
|
||||
throw new ServiceException("未找到租户设置的数据源模式");
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理字段模式
|
||||
*/
|
||||
private Connection column() {
|
||||
DruidDataSource dataSource = DynamicDataSourceConfig.getPrimaryDataSource(TenantConstant.DEFAULT_TENANT_ID);
|
||||
return JdbcUtil.getConnection(dataSource.getDriverClassName(), dataSource.getUrl(), dataSource.getUsername(), dataSource.getPassword());
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理数据库模式
|
||||
*/
|
||||
private Connection schema(String tenantId) {
|
||||
DruidDataSource dataSource = DynamicDataSourceConfig.getPrimaryDataSource(TenantConstant.DEFAULT_TENANT_ID);
|
||||
String realUrl = dataSource.getUrl().replaceFirst(baseDatabase, baseDatabase + BaseConstant.HYPHEN_JOIN_STR + tenantId);
|
||||
return JdbcUtil.getConnection(dataSource.getDriverClassName(), realUrl, dataSource.getUsername(), dataSource.getPassword());
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理数据源模式
|
||||
*/
|
||||
private Connection datasource(String tenantId) {
|
||||
SysTenantDatasource primary = sysTenantDatasourceService.selectPrimary(tenantId);
|
||||
if (Objects.isNull(primary)) {
|
||||
throw new ServiceException("未找到租户主数据源信息");
|
||||
}
|
||||
return JdbcUtil.getConnection(DataBaseEnum.getDriver(primary.getType()), DataBaseEnum.getUrl(primary.getType(), primary.getIp(), primary.getPort(), primary.getDbName(), primary.getSchemaName()), primary.getUsername(), primary.getPassword());
|
||||
}
|
||||
|
||||
private void toCache(SysTenant sysTenant) {
|
||||
log.debug("加载租户信息进缓存, 租户ID: {}", sysTenant.getTenantId());
|
||||
redisService.set(TenantConstant.TENANT_INFO_KEY_PREFIX + sysTenant.getTenantId(), sysTenant);
|
||||
|
@ -3,7 +3,7 @@ package com.qiaoba.module.tenant.utils;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.lang.Snowflake;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.db.sql.SqlExecutor;
|
||||
import com.qiaoba.common.database.utils.DbUtil;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
@ -32,6 +32,10 @@ public class InitDataUtil {
|
||||
*/
|
||||
private static final ThreadLocal<Long> USER_SUPER_ADMIN_ID = new ThreadLocal<>();
|
||||
|
||||
public static void removeLocal() {
|
||||
ROLE_SUPER_ADMIN_ID.remove();
|
||||
USER_SUPER_ADMIN_ID.remove();
|
||||
}
|
||||
|
||||
public static void handleSysConfig(Connection conn, String tenantId, String filePath) throws Exception {
|
||||
handleSql(conn, tenantId, filePath);
|
||||
@ -69,8 +73,9 @@ public class InitDataUtil {
|
||||
}
|
||||
sb.append(line);
|
||||
}
|
||||
if (StrUtil.isNotBlank(sb.toString())) {
|
||||
SqlExecutor.execute(conn, sb.toString());
|
||||
String sql = sb.toString();
|
||||
if (StrUtil.isNotBlank(sql)) {
|
||||
DbUtil.runSql(conn, sql);
|
||||
}
|
||||
}
|
||||
|
||||
@ -83,7 +88,7 @@ public class InitDataUtil {
|
||||
String sql = StrUtil.format("INSERT INTO sys_user_role VALUES ('{}', '{}', '{}');",
|
||||
USER_SUPER_ADMIN_ID.get(),
|
||||
ROLE_SUPER_ADMIN_ID.get(), tenantId);
|
||||
SqlExecutor.execute(conn, sql);
|
||||
DbUtil.runSql(conn, sql);
|
||||
}
|
||||
|
||||
public static void bindRoleAndMenu(Connection conn, String tenantId) throws Exception {
|
||||
@ -93,8 +98,9 @@ public class InitDataUtil {
|
||||
for (String menuId : menuIds) {
|
||||
sb.append(StrUtil.format(sql, ROLE_SUPER_ADMIN_ID.get(), menuId, tenantId));
|
||||
}
|
||||
if (StrUtil.isNotBlank(sb.toString())) {
|
||||
SqlExecutor.execute(conn, sb.toString());
|
||||
String sbStr = sb.toString();
|
||||
if (StrUtil.isNotBlank(sbStr)) {
|
||||
DbUtil.runSql(conn, sbStr);
|
||||
}
|
||||
}
|
||||
|
||||
@ -109,8 +115,9 @@ public class InitDataUtil {
|
||||
sb.append(line);
|
||||
}
|
||||
}
|
||||
if (StrUtil.isNotBlank(sb.toString())) {
|
||||
SqlExecutor.execute(conn, sb.toString());
|
||||
String sql = sb.toString();
|
||||
if (StrUtil.isNotBlank(sql)) {
|
||||
DbUtil.runSql(conn, sql);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.lang.Snowflake;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.db.sql.SqlExecutor;
|
||||
import com.qiaoba.common.database.utils.DbUtil;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
@ -34,42 +34,42 @@ public class MenuUtil {
|
||||
|
||||
private static void handleMonitorMenu(Connection conn, String tenantId) throws Exception {
|
||||
long monitorId = new Snowflake().nextId();
|
||||
String sql = "INSERT INTO `sys_menu` VALUES ({}, '系统监控', 0, 2, 'monitor', NULL, '', 0, 0, 'M', '1', '', 'monitor', 'admin', '2023-05-27 22:25:03', '', NULL, '系统监控目录', {});";
|
||||
String sql = "INSERT INTO sys_menu VALUES ('{}', '系统监控', 0, 2, 'monitor', NULL, '', 0, 0, 'M', '1', '', 'monitor', 'admin', '2023-05-27 22:25:03', '', NULL, '系统监控目录', '{}');";
|
||||
sql = StrUtil.format(sql, monitorId, tenantId);
|
||||
SqlExecutor.execute(conn, sql);
|
||||
DbUtil.runSql(conn, sql);
|
||||
|
||||
// 登录用户
|
||||
Long onlineUserId = handleMenu(conn, monitorId, tenantId, "MySQL/data/sys_menu/monitor/online_user/menu");
|
||||
handleButton(conn, tenantId, onlineUserId, "MySQL/data/sys_menu/monitor/online_user/button");
|
||||
Long onlineUserId = handleMenu(conn, monitorId, tenantId, "init/data/sys_menu/monitor/online_user/menu");
|
||||
handleButton(conn, tenantId, onlineUserId, "init/data/sys_menu/monitor/online_user/button");
|
||||
}
|
||||
|
||||
private static void handleSystemMenu(Connection conn, String tenantId) throws Exception {
|
||||
long systemId = new Snowflake().nextId();
|
||||
String sql = "INSERT INTO `sys_menu` VALUES ({}, '系统管理', 0, 1, 'system', NULL, '', 0, 0, 'M', '1', '', 'system', 'admin', '2023-04-23 14:35:29', '', NULL, '系统管理目录', {});";
|
||||
String sql = "INSERT INTO sys_menu VALUES ('{}', '系统管理', 0, 1, 'system', NULL, '', 0, 0, 'M', '1', '', 'system', 'admin', '2023-04-23 14:35:29', '', NULL, '系统管理目录', '{}');";
|
||||
sql = StrUtil.format(sql, systemId, tenantId);
|
||||
SqlExecutor.execute(conn, sql);
|
||||
DbUtil.runSql(conn, sql);
|
||||
|
||||
// 用户管理
|
||||
Long userId = handleMenu(conn, systemId, tenantId, "MySQL/data/sys_menu/system/user/menu");
|
||||
handleButton(conn, tenantId, userId, "MySQL/data/sys_menu/system/user/button");
|
||||
Long userId = handleMenu(conn, systemId, tenantId, "init/data/sys_menu/system/user/menu");
|
||||
handleButton(conn, tenantId, userId, "init/data/sys_menu/system/user/button");
|
||||
// 角色管理
|
||||
Long roleId = handleMenu(conn, systemId, tenantId, "MySQL/data/sys_menu/system/role/menu");
|
||||
handleButton(conn, tenantId, roleId, "MySQL/data/sys_menu/system/role/button");
|
||||
Long roleId = handleMenu(conn, systemId, tenantId, "init/data/sys_menu/system/role/menu");
|
||||
handleButton(conn, tenantId, roleId, "init/data/sys_menu/system/role/button");
|
||||
// 菜单管理
|
||||
Long menuId = handleMenu(conn, systemId, tenantId, "MySQL/data/sys_menu/system/menu/menu");
|
||||
handleButton(conn, tenantId, menuId, "MySQL/data/sys_menu/system/menu/button");
|
||||
Long menuId = handleMenu(conn, systemId, tenantId, "init/data/sys_menu/system/menu/menu");
|
||||
handleButton(conn, tenantId, menuId, "init/data/sys_menu/system/menu/button");
|
||||
// 部门管理
|
||||
Long deptId = handleMenu(conn, systemId, tenantId, "MySQL/data/sys_menu/system/dept/menu");
|
||||
handleButton(conn, tenantId, deptId, "MySQL/data/sys_menu/system/dept/button");
|
||||
Long deptId = handleMenu(conn, systemId, tenantId, "init/data/sys_menu/system/dept/menu");
|
||||
handleButton(conn, tenantId, deptId, "init/data/sys_menu/system/dept/button");
|
||||
// 岗位管理
|
||||
Long postId = handleMenu(conn, systemId, tenantId, "MySQL/data/sys_menu/system/post/menu");
|
||||
handleButton(conn, tenantId, postId, "MySQL/data/sys_menu/system/post/button");
|
||||
Long postId = handleMenu(conn, systemId, tenantId, "init/data/sys_menu/system/post/menu");
|
||||
handleButton(conn, tenantId, postId, "init/data/sys_menu/system/post/button");
|
||||
// 字典管理
|
||||
Long dictId = handleMenu(conn, systemId, tenantId, "MySQL/data/sys_menu/system/dict/menu");
|
||||
handleButton(conn, tenantId, dictId, "MySQL/data/sys_menu/system/dict/button");
|
||||
Long dictId = handleMenu(conn, systemId, tenantId, "init/data/sys_menu/system/dict/menu");
|
||||
handleButton(conn, tenantId, dictId, "init/data/sys_menu/system/dict/button");
|
||||
// 参数管理
|
||||
Long configId = handleMenu(conn, systemId, tenantId, "MySQL/data/sys_menu/system/config/menu");
|
||||
handleButton(conn, tenantId, configId, "MySQL/data/sys_menu/system/config/button");
|
||||
Long configId = handleMenu(conn, systemId, tenantId, "init/data/sys_menu/system/config/menu");
|
||||
handleButton(conn, tenantId, configId, "init/data/sys_menu/system/config/button");
|
||||
}
|
||||
|
||||
private static Long handleMenu(Connection conn, Long systemId, String tenantId, String fileName) throws Exception {
|
||||
@ -84,7 +84,7 @@ public class MenuUtil {
|
||||
}
|
||||
}
|
||||
if (StrUtil.isNotBlank(sb.toString())) {
|
||||
SqlExecutor.execute(conn, sb.toString());
|
||||
DbUtil.runSql(conn, sb.toString());
|
||||
}
|
||||
return tempId;
|
||||
}
|
||||
@ -100,25 +100,23 @@ public class MenuUtil {
|
||||
}
|
||||
}
|
||||
if (StrUtil.isNotBlank(sb.toString())) {
|
||||
SqlExecutor.execute(conn, sb.toString());
|
||||
DbUtil.runSql(conn, sb.toString());
|
||||
}
|
||||
}
|
||||
|
||||
public static List<String> getAllMenuIdsByTenantId(Connection conn, String tenantId) {
|
||||
public static List<String> getAllMenuIdsByTenantId(Connection conn, String tenantId) throws SQLException {
|
||||
List<String> menuIds = new ArrayList<>();
|
||||
ResultSet resultSet = null;
|
||||
Statement statement = null;
|
||||
try {
|
||||
statement = conn.createStatement();
|
||||
resultSet = statement.executeQuery(StrUtil.format("SELECT menu_id FROM `sys_menu` where tenant_id = '{}'", tenantId));
|
||||
resultSet = statement.executeQuery(StrUtil.format("SELECT menu_id FROM sys_menu where tenant_id = '{}'", tenantId));
|
||||
while (resultSet.next()) {
|
||||
String menuId = resultSet.getString("menu_id");
|
||||
if (StrUtil.isNotBlank(menuId)) {
|
||||
menuIds.add(menuId);
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
IoUtil.close(resultSet);
|
||||
IoUtil.close(statement);
|
||||
|
@ -1,7 +1,7 @@
|
||||
INSERT INTO `sys_config` VALUES ('{}', 'Token有效期', 'sys.token.expireTime', '96', 'Y', 'admin', '2023-05-25 13:22:50', 'admin', '2023-05-25 15:02:42', '单位:小时,仅支持正整数', '{}');
|
||||
INSERT INTO `sys_config` VALUES ('{}', '账号黑名单开关', 'sys.account.blacklistOnOff', 'true', 'Y', 'admin', '2023-05-25 13:22:31', 'admin', '2023-05-25 13:57:14', '(true开启,false关闭)', '{}');
|
||||
INSERT INTO `sys_config` VALUES ('{}', '账号注册开关', 'sys.account.registerUser', 'false', 'Y', 'admin', '2023-05-25 13:21:38', 'admin', '2023-05-25 15:07:00', '(true开启,false关闭)', '{}');
|
||||
INSERT INTO `sys_config` VALUES ('{}', '登录验证码开关', 'sys.account.captchaOnOff', 'true', 'Y', 'admin', '2023-05-25 13:23:52', 'admin', '2023-06-05 13:43:00', '(true开启,false关闭)', '{}');
|
||||
INSERT INTO `sys_config` VALUES ('{}', '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-light', 'Y', 'admin', '2022-08-15 18:01:28', 'admin', '2023-05-25 13:26:27', '深色主题theme-dark,浅色主题theme-light', '{}');
|
||||
INSERT INTO `sys_config` VALUES ('{}', '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', '2022-08-15 18:01:28', '', NULL, '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow', '{}');
|
||||
INSERT INTO `sys_config` VALUES ('{}', '账号允许同时在线', 'sys.account.allowBothOnline', 'true', 'Y', 'admin', '2023-05-28 14:28:05', 'admin', '2023-05-28 15:39:48', '(true允许,false禁止)', '{}');
|
||||
INSERT INTO sys_config VALUES ('{}', 'Token有效期', 'sys.token.expireTime', '96', 'Y', 'admin', '2023-05-25 13:22:50', 'admin', '2023-05-25 15:02:42', '单位:小时,仅支持正整数', '{}');
|
||||
INSERT INTO sys_config VALUES ('{}', '账号黑名单开关', 'sys.account.blacklistOnOff', 'true', 'Y', 'admin', '2023-05-25 13:22:31', 'admin', '2023-05-25 13:57:14', '(true开启,false关闭)', '{}');
|
||||
INSERT INTO sys_config VALUES ('{}', '账号注册开关', 'sys.account.registerUser', 'false', 'Y', 'admin', '2023-05-25 13:21:38', 'admin', '2023-05-25 15:07:00', '(true开启,false关闭)', '{}');
|
||||
INSERT INTO sys_config VALUES ('{}', '登录验证码开关', 'sys.account.captchaOnOff', 'true', 'Y', 'admin', '2023-05-25 13:23:52', 'admin', '2023-06-05 13:43:00', '(true开启,false关闭)', '{}');
|
||||
INSERT INTO sys_config VALUES ('{}', '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-light', 'Y', 'admin', '2022-08-15 18:01:28', 'admin', '2023-05-25 13:26:27', '深色主题theme-dark,浅色主题theme-light', '{}');
|
||||
INSERT INTO sys_config VALUES ('{}', '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', '2022-08-15 18:01:28', '', NULL, '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow', '{}');
|
||||
INSERT INTO sys_config VALUES ('{}', '账号允许同时在线', 'sys.account.allowBothOnline', 'true', 'Y', 'admin', '2023-05-28 14:28:05', 'admin', '2023-05-28 15:39:48', '(true允许,false禁止)', '{}');
|
||||
|
@ -1,3 +1,3 @@
|
||||
INSERT INTO `sys_menu` VALUES ({}, '在线查询', {}, 1, '#', '', '', 0, 0, 'F', '1', 'monitor:online:query', '#', 'admin', '2023-05-27 22:22:59', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '批量强退', {}, 2, '#', '', '', 0, 0, 'F', '1', 'monitor:online:batchLogout', '#', 'admin', '2023-05-27 22:22:59', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '单条强退', {}, 3, '#', '', '', 0, 0, 'F', '1', 'monitor:online:forceLogout', '#', 'admin', '2023-05-27 22:22:59', '', NULL, '', {});
|
||||
INSERT INTO sys_menu VALUES ('{}', '在线查询', '{}', 1, '#', '', '', 0, 0, 'F', '1', 'monitor:online:query', '#', 'admin', '2023-05-27 22:22:59', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '批量强退', '{}', 2, '#', '', '', 0, 0, 'F', '1', 'monitor:online:batchLogout', '#', 'admin', '2023-05-27 22:22:59', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '单条强退', '{}', 3, '#', '', '', 0, 0, 'F', '1', 'monitor:online:forceLogout', '#', 'admin', '2023-05-27 22:22:59', '', NULL, '', '{}');
|
||||
|
@ -1 +1 @@
|
||||
INSERT INTO `sys_menu` VALUES ({}, '登录用户', {}, 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', '在线用户菜单', {});
|
||||
INSERT INTO sys_menu VALUES ('{}', '登录用户', '{}', 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,4 +1,4 @@
|
||||
INSERT INTO `sys_menu` VALUES ({}, '参数查询', {}, 1, '#', '', '', 0, 0, 'F', '1', 'system:config:query', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '参数新增', {}, 2, '#', '', '', 0, 0, 'F', '1', 'system:config:add', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '参数修改', {}, 3, '#', '', '', 0, 0, 'F', '1', 'system:config:edit', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '参数删除', {}, 4, '#', '', '', 0, 0, 'F', '1', 'system:config:remove', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', {});
|
||||
INSERT INTO sys_menu VALUES ('{}', '参数查询', '{}', 1, '#', '', '', 0, 0, 'F', '1', 'system:config:query', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '参数新增', '{}', 2, '#', '', '', 0, 0, 'F', '1', 'system:config:add', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '参数修改', '{}', 3, '#', '', '', 0, 0, 'F', '1', 'system:config:edit', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '参数删除', '{}', 4, '#', '', '', 0, 0, 'F', '1', 'system:config:remove', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', '{}');
|
||||
|
@ -1 +1 @@
|
||||
INSERT INTO `sys_menu` VALUES ({}, '参数设置', {}, 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', '参数设置菜单', {});
|
||||
INSERT INTO sys_menu VALUES ('{}', '参数设置', '{}', 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,4 +1,4 @@
|
||||
INSERT INTO `sys_menu` VALUES ({}, '部门查询', {}, 1, '', '', '', 0, 0, 'F', '1', 'system:dept:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '部门新增', {}, 2, '', '', '', 0, 0, 'F', '1', 'system:dept:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '部门修改', {}, 3, '', '', '', 0, 0, 'F', '1', 'system:dept:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '部门删除', {}, 4, '', '', '', 0, 0, 'F', '1', 'system:dept:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO sys_menu VALUES ('{}', '部门查询', '{}', 1, '', '', '', 0, 0, 'F', '1', 'system:dept:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '部门新增', '{}', 2, '', '', '', 0, 0, 'F', '1', 'system:dept:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '部门修改', '{}', 3, '', '', '', 0, 0, 'F', '1', 'system:dept:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '部门删除', '{}', 4, '', '', '', 0, 0, 'F', '1', 'system:dept:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
|
@ -1 +1 @@
|
||||
INSERT INTO `sys_menu` VALUES ({}, '部门管理', {}, 4, 'dept', 'system/dept/index', '', 0, 0, 'C', '1', 'system:dept:list', 'tree', 'admin', '2023-04-23 14:35:29', '', NULL, '部门管理菜单', {});
|
||||
INSERT INTO sys_menu VALUES ('{}', '部门管理', '{}', 4, 'dept', 'system/dept/index', '', 0, 0, 'C', '1', 'system:dept:list', 'tree', 'admin', '2023-04-23 14:35:29', '', NULL, '部门管理菜单', '{}');
|
||||
|
@ -1,5 +1,5 @@
|
||||
INSERT INTO `sys_menu` VALUES ({}, '字典查询', {}, 1, '#', '', '', 0, 0, 'F', '1', 'system:dict:query', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '字典新增', {}, 2, '#', '', '', 0, 0, 'F', '1', 'system:dict:add', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '字典修改', {}, 3, '#', '', '', 0, 0, 'F', '1', 'system:dict:edit', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '字典删除', {}, 4, '#', '', '', 0, 0, 'F', '1', 'system:dict:remove', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '字典导出', {}, 5, '#', '', '', 0, 0, 'F', '1', 'system:dict:export', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', {});
|
||||
INSERT INTO sys_menu VALUES ('{}', '字典查询', '{}', 1, '#', '', '', 0, 0, 'F', '1', 'system:dict:query', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '字典新增', '{}', 2, '#', '', '', 0, 0, 'F', '1', 'system:dict:add', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '字典修改', '{}', 3, '#', '', '', 0, 0, 'F', '1', 'system:dict:edit', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '字典删除', '{}', 4, '#', '', '', 0, 0, 'F', '1', 'system:dict:remove', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '字典导出', '{}', 5, '#', '', '', 0, 0, 'F', '1', 'system:dict:export', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', '{}');
|
||||
|
@ -1 +1 @@
|
||||
INSERT INTO `sys_menu` VALUES ({}, '字典管理', {}, 6, 'dict', 'system/dict/index', '', 0, 0, 'C', '1', 'system:dict:list', 'documentation', 'admin', '2022-08-15 18:01:28', 'admin', '2023-05-31 11:15:14', '字典管理菜单', {});
|
||||
INSERT INTO sys_menu VALUES ('{}', '字典管理', '{}', 6, 'dict', 'system/dict/index', '', 0, 0, 'C', '1', 'system:dict:list', 'documentation', 'admin', '2022-08-15 18:01:28', 'admin', '2023-05-31 11:15:14', '字典管理菜单', '{}');
|
||||
|
@ -1,4 +1,4 @@
|
||||
INSERT INTO `sys_menu` VALUES ({}, '菜单查询', {}, 1, '', '', '', 0, 0, 'F', '1', 'system:menu:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '菜单新增', {}, 2, '', '', '', 0, 0, 'F', '1', 'system:menu:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '菜单修改', {}, 3, '', '', '', 0, 0, 'F', '1', 'system:menu:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '菜单删除', {}, 4, '', '', '', 0, 0, 'F', '1', 'system:menu:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO sys_menu VALUES ('{}', '菜单查询', '{}', 1, '', '', '', 0, 0, 'F', '1', 'system:menu:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '菜单新增', '{}', 2, '', '', '', 0, 0, 'F', '1', 'system:menu:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '菜单修改', '{}', 3, '', '', '', 0, 0, 'F', '1', 'system:menu:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '菜单删除', '{}', 4, '', '', '', 0, 0, 'F', '1', 'system:menu:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
|
@ -1 +1 @@
|
||||
INSERT INTO `sys_menu` VALUES ({}, '菜单管理', {}, 3, 'menu', 'system/menu/index', '', 0, 0, 'C', '1', 'system:menu:list', 'tree-table', 'admin', '2023-04-23 14:35:29', '', NULL, '菜单管理菜单', {});
|
||||
INSERT INTO sys_menu VALUES ('{}', '菜单管理', '{}', 3, 'menu', 'system/menu/index', '', 0, 0, 'C', '1', 'system:menu:list', 'tree-table', 'admin', '2023-04-23 14:35:29', '', NULL, '菜单管理菜单', '{}');
|
||||
|
@ -1,5 +1,5 @@
|
||||
INSERT INTO `sys_menu` VALUES ({}, '岗位查询', {}, 1, '', '', '', 0, 0, 'F', '1', 'system:post:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '岗位新增', {}, 2, '', '', '', 0, 0, 'F', '1', 'system:post:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '岗位修改', {}, 3, '', '', '', 0, 0, 'F', '1', 'system:post:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '岗位删除', {}, 4, '', '', '', 0, 0, 'F', '1', 'system:post:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '岗位导出', {}, 5, '', '', '', 0, 0, 'F', '1', 'system:post:export', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO sys_menu VALUES ('{}', '岗位查询', '{}', 1, '', '', '', 0, 0, 'F', '1', 'system:post:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '岗位新增', '{}', 2, '', '', '', 0, 0, 'F', '1', 'system:post:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '岗位修改', '{}', 3, '', '', '', 0, 0, 'F', '1', 'system:post:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '岗位删除', '{}', 4, '', '', '', 0, 0, 'F', '1', 'system:post:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '岗位导出', '{}', 5, '', '', '', 0, 0, 'F', '1', 'system:post:export', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
|
@ -1 +1 @@
|
||||
INSERT INTO `sys_menu` VALUES ({}, '岗位管理', {}, 5, 'post', 'system/post/index', '', 0, 0, 'C', '1', 'system:post:list', 'post', 'admin', '2023-04-23 14:35:29', '', NULL, '岗位管理菜单', {});
|
||||
INSERT INTO sys_menu VALUES ('{}', '岗位管理', '{}', 5, 'post', 'system/post/index', '', 0, 0, 'C', '1', 'system:post:list', 'post', 'admin', '2023-04-23 14:35:29', '', NULL, '岗位管理菜单', '{}');
|
||||
|
@ -1,5 +1,5 @@
|
||||
INSERT INTO `sys_menu` VALUES ({}, '角色查询', {}, 1, '', '', '', 0, 0, 'F', '1', 'system:role:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '角色新增', {}, 2, '', '', '', 0, 0, 'F', '1', 'system:role:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '角色修改', {}, 3, '', '', '', 0, 0, 'F', '1', 'system:role:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '角色删除', {}, 4, '', '', '', 0, 0, 'F', '1', 'system:role:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '角色导出', {}, 5, '', '', '', 0, 0, 'F', '1', 'system:role:export', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO sys_menu VALUES ('{}', '角色查询', '{}', 1, '', '', '', 0, 0, 'F', '1', 'system:role:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '角色新增', '{}', 2, '', '', '', 0, 0, 'F', '1', 'system:role:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '角色修改', '{}', 3, '', '', '', 0, 0, 'F', '1', 'system:role:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '角色删除', '{}', 4, '', '', '', 0, 0, 'F', '1', 'system:role:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '角色导出', '{}', 5, '', '', '', 0, 0, 'F', '1', 'system:role:export', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
|
@ -1 +1 @@
|
||||
INSERT INTO `sys_menu` VALUES ({}, '角色管理', {}, 2, 'role', 'system/role/index', '', 0, 0, 'C', '1', 'system:role:list', 'peoples', 'admin', '2023-04-23 14:35:29', '', NULL, '角色管理菜单', {});
|
||||
INSERT INTO sys_menu VALUES ('{}', '角色管理', '{}', 2, 'role', 'system/role/index', '', 0, 0, 'C', '1', 'system:role:list', 'peoples', 'admin', '2023-04-23 14:35:29', '', NULL, '角色管理菜单', '{}');
|
||||
|
@ -1,7 +1,7 @@
|
||||
INSERT INTO `sys_menu` VALUES ({}, '用户查询', {}, 1, '', '', '', 0, 0, 'F', '1', 'system:user:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '用户新增', {}, 2, '', '', '', 0, 0, 'F', '1', 'system:user:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '用户修改', {}, 3, '', '', '', 0, 0, 'F', '1', 'system:user:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '用户删除', {}, 4, '', '', '', 0, 0, 'F', '1', 'system:user:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '用户导出', {}, 5, '', '', '', 0, 0, 'F', '1', 'system:user:export', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '用户导入', {}, 6, '', '', '', 0, 0, 'F', '1', 'system:user:import', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO `sys_menu` VALUES ({}, '重置密码', {}, 7, '', '', '', 0, 0, 'F', '1', 'system:user:resetPwd', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', {});
|
||||
INSERT INTO sys_menu VALUES ('{}', '用户查询', '{}', 1, '', '', '', 0, 0, 'F', '1', 'system:user:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '用户新增', '{}', 2, '', '', '', 0, 0, 'F', '1', 'system:user:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '用户修改', '{}', 3, '', '', '', 0, 0, 'F', '1', 'system:user:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '用户删除', '{}', 4, '', '', '', 0, 0, 'F', '1', 'system:user:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '用户导出', '{}', 5, '', '', '', 0, 0, 'F', '1', 'system:user:export', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '用户导入', '{}', 6, '', '', '', 0, 0, 'F', '1', 'system:user:import', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '重置密码', '{}', 7, '', '', '', 0, 0, 'F', '1', 'system:user:resetPwd', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
|
@ -1 +1 @@
|
||||
INSERT INTO `sys_menu` VALUES ({}, '用户管理', {}, 1, 'user', 'system/user/index', '', 0, 0, 'C', '1', 'system:user:list', 'user', 'admin', '2023-04-23 14:35:29', '', NULL, '用户管理菜单', {});
|
||||
INSERT INTO sys_menu VALUES ('{}', '用户管理', '{}', 1, 'user', 'system/user/index', '', 0, 0, 'C', '1', 'system:user:list', 'user', 'admin', '2023-04-23 14:35:29', '', NULL, '用户管理菜单', '{}');
|
||||
|
@ -1,4 +1,4 @@
|
||||
INSERT INTO `sys_post` VALUES ({}, 'ceo', '总经理', 1, '1', 'admin', '2023-05-19 14:06:53', 'admin', '2023-05-22 14:56:56', NULL, {});
|
||||
INSERT INTO `sys_post` VALUES ({}, 'cto', '技术总监', 2, '1', 'admin', '2023-05-19 14:07:06', 'admin', '2023-05-22 14:57:10', NULL,{});
|
||||
INSERT INTO `sys_post` VALUES ({}, 'hr', '人事', 3, '1', 'admin', '2023-05-19 14:07:16', '', NULL, NULL, {});
|
||||
INSERT INTO `sys_post` VALUES ({}, 'acct', '会计', 4, '1', 'admin', '2023-05-19 14:07:51', '', NULL, NULL, {});
|
||||
INSERT INTO sys_post VALUES ('{}', 'ceo', '总经理', 1, '1', 'admin', '2023-05-19 14:06:53', 'admin', '2023-05-22 14:56:56', NULL, '{}');
|
||||
INSERT INTO sys_post VALUES ('{}', 'cto', '技术总监', 2, '1', 'admin', '2023-05-19 14:07:06', 'admin', '2023-05-22 14:57:10', NULL,'{}');
|
||||
INSERT INTO sys_post VALUES ('{}', 'hr', '人事', 3, '1', 'admin', '2023-05-19 14:07:16', '', NULL, NULL, '{}');
|
||||
INSERT INTO sys_post VALUES ('{}', 'acct', '会计', 4, '1', 'admin', '2023-05-19 14:07:51', '', NULL, NULL, '{}');
|
||||
|
@ -1,2 +1,2 @@
|
||||
INSERT INTO `sys_role` VALUES ({}, '超级管理员', 'admin', 1, '1', '1', 'admin', '2023-04-23 14:35:29', 'admin', '2023-05-31 11:05:52', '超级管理员', {});
|
||||
INSERT INTO `sys_role` VALUES ({}, '测试', 'test', 1, '1', '1', 'admin', '2023-05-22 14:38:31', '', NULL, NULL, {});
|
||||
INSERT INTO sys_role VALUES ('{}', '超级管理员', 'admin', 1, '1', '1', 'admin', '2023-04-23 14:35:29', 'admin', '2023-05-31 11:05:52', '超级管理员', '{}');
|
||||
INSERT INTO sys_role VALUES ('{}', '测试', 'test', 1, '1', '1', 'admin', '2023-05-22 14:38:31', '', NULL, NULL, '{}');
|
||||
|
@ -1 +1 @@
|
||||
INSERT INTO `sys_user` VALUES ({}, NULL, 'admin', '超级管理员', '', '', '0', '', '$2a$10$mDfrzPMZuxvKeKmqUPA4hOgNC2Zdgb8vOgVL8hP8IIdT6fAWpe0Bm', '1', '', NULL, '', NULL, NULL, {});
|
||||
INSERT INTO sys_user VALUES ('{}', NULL, 'admin', '超级管理员', '', '', '0', '', '$2a$10$mDfrzPMZuxvKeKmqUPA4hOgNC2Zdgb8vOgVL8hP8IIdT6fAWpe0Bm', '1', '', NULL, '', NULL, NULL, '{}');
|
||||
|
@ -0,0 +1,7 @@
|
||||
INSERT INTO sys_config VALUES ('{}', 'Token有效期', 'sys.token.expireTime', '96', 'Y', 'admin', '2023-05-25 13:22:50', 'admin', '2023-05-25 15:02:42', '单位:小时,仅支持正整数', '{}');
|
||||
INSERT INTO sys_config VALUES ('{}', '账号黑名单开关', 'sys.account.blacklistOnOff', 'true', 'Y', 'admin', '2023-05-25 13:22:31', 'admin', '2023-05-25 13:57:14', '(true开启,false关闭)', '{}');
|
||||
INSERT INTO sys_config VALUES ('{}', '账号注册开关', 'sys.account.registerUser', 'false', 'Y', 'admin', '2023-05-25 13:21:38', 'admin', '2023-05-25 15:07:00', '(true开启,false关闭)', '{}');
|
||||
INSERT INTO sys_config VALUES ('{}', '登录验证码开关', 'sys.account.captchaOnOff', 'true', 'Y', 'admin', '2023-05-25 13:23:52', 'admin', '2023-06-05 13:43:00', '(true开启,false关闭)', '{}');
|
||||
INSERT INTO sys_config VALUES ('{}', '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-light', 'Y', 'admin', '2022-08-15 18:01:28', 'admin', '2023-05-25 13:26:27', '深色主题theme-dark,浅色主题theme-light', '{}');
|
||||
INSERT INTO sys_config VALUES ('{}', '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', '2022-08-15 18:01:28', '', NULL, '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow', '{}');
|
||||
INSERT INTO sys_config VALUES ('{}', '账号允许同时在线', 'sys.account.allowBothOnline', 'true', 'Y', 'admin', '2023-05-28 14:28:05', 'admin', '2023-05-28 15:39:48', '(true允许,false禁止)', '{}');
|
@ -0,0 +1 @@
|
||||
null not found
|
@ -0,0 +1,3 @@
|
||||
INSERT INTO sys_menu VALUES ('{}', '在线查询', '{}', 1, '#', '', '', 0, 0, 'F', '1', 'monitor:online:query', '#', 'admin', '2023-05-27 22:22:59', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '批量强退', '{}', 2, '#', '', '', 0, 0, 'F', '1', 'monitor:online:batchLogout', '#', 'admin', '2023-05-27 22:22:59', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '单条强退', '{}', 3, '#', '', '', 0, 0, 'F', '1', 'monitor:online:forceLogout', '#', 'admin', '2023-05-27 22:22:59', '', NULL, '', '{}');
|
@ -0,0 +1 @@
|
||||
INSERT INTO sys_menu VALUES ('{}', '登录用户', '{}', 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', '在线用户菜单', '{}');
|
@ -0,0 +1,4 @@
|
||||
INSERT INTO sys_menu VALUES ('{}', '参数查询', '{}', 1, '#', '', '', 0, 0, 'F', '1', 'system:config:query', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '参数新增', '{}', 2, '#', '', '', 0, 0, 'F', '1', 'system:config:add', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '参数修改', '{}', 3, '#', '', '', 0, 0, 'F', '1', 'system:config:edit', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '参数删除', '{}', 4, '#', '', '', 0, 0, 'F', '1', 'system:config:remove', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', '{}');
|
@ -0,0 +1 @@
|
||||
INSERT INTO sys_menu VALUES ('{}', '参数设置', '{}', 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', '参数设置菜单', '{}');
|
@ -0,0 +1,4 @@
|
||||
INSERT INTO sys_menu VALUES ('{}', '部门查询', '{}', 1, '', '', '', 0, 0, 'F', '1', 'system:dept:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '部门新增', '{}', 2, '', '', '', 0, 0, 'F', '1', 'system:dept:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '部门修改', '{}', 3, '', '', '', 0, 0, 'F', '1', 'system:dept:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '部门删除', '{}', 4, '', '', '', 0, 0, 'F', '1', 'system:dept:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
@ -0,0 +1 @@
|
||||
INSERT INTO sys_menu VALUES ('{}', '部门管理', '{}', 4, 'dept', 'system/dept/index', '', 0, 0, 'C', '1', 'system:dept:list', 'tree', 'admin', '2023-04-23 14:35:29', '', NULL, '部门管理菜单', '{}');
|
@ -0,0 +1,5 @@
|
||||
INSERT INTO sys_menu VALUES ('{}', '字典查询', '{}', 1, '#', '', '', 0, 0, 'F', '1', 'system:dict:query', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '字典新增', '{}', 2, '#', '', '', 0, 0, 'F', '1', 'system:dict:add', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '字典修改', '{}', 3, '#', '', '', 0, 0, 'F', '1', 'system:dict:edit', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '字典删除', '{}', 4, '#', '', '', 0, 0, 'F', '1', 'system:dict:remove', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '字典导出', '{}', 5, '#', '', '', 0, 0, 'F', '1', 'system:dict:export', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', '{}');
|
@ -0,0 +1 @@
|
||||
INSERT INTO sys_menu VALUES ('{}', '字典管理', '{}', 6, 'dict', 'system/dict/index', '', 0, 0, 'C', '1', 'system:dict:list', 'documentation', 'admin', '2022-08-15 18:01:28', 'admin', '2023-05-31 11:15:14', '字典管理菜单', '{}');
|
@ -0,0 +1,4 @@
|
||||
INSERT INTO sys_menu VALUES ('{}', '菜单查询', '{}', 1, '', '', '', 0, 0, 'F', '1', 'system:menu:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '菜单新增', '{}', 2, '', '', '', 0, 0, 'F', '1', 'system:menu:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '菜单修改', '{}', 3, '', '', '', 0, 0, 'F', '1', 'system:menu:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '菜单删除', '{}', 4, '', '', '', 0, 0, 'F', '1', 'system:menu:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
@ -0,0 +1 @@
|
||||
INSERT INTO sys_menu VALUES ('{}', '菜单管理', '{}', 3, 'menu', 'system/menu/index', '', 0, 0, 'C', '1', 'system:menu:list', 'tree-table', 'admin', '2023-04-23 14:35:29', '', NULL, '菜单管理菜单', '{}');
|
@ -0,0 +1,5 @@
|
||||
INSERT INTO sys_menu VALUES ('{}', '岗位查询', '{}', 1, '', '', '', 0, 0, 'F', '1', 'system:post:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '岗位新增', '{}', 2, '', '', '', 0, 0, 'F', '1', 'system:post:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '岗位修改', '{}', 3, '', '', '', 0, 0, 'F', '1', 'system:post:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '岗位删除', '{}', 4, '', '', '', 0, 0, 'F', '1', 'system:post:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '岗位导出', '{}', 5, '', '', '', 0, 0, 'F', '1', 'system:post:export', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
@ -0,0 +1 @@
|
||||
INSERT INTO sys_menu VALUES ('{}', '岗位管理', '{}', 5, 'post', 'system/post/index', '', 0, 0, 'C', '1', 'system:post:list', 'post', 'admin', '2023-04-23 14:35:29', '', NULL, '岗位管理菜单', '{}');
|
@ -0,0 +1,5 @@
|
||||
INSERT INTO sys_menu VALUES ('{}', '角色查询', '{}', 1, '', '', '', 0, 0, 'F', '1', 'system:role:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '角色新增', '{}', 2, '', '', '', 0, 0, 'F', '1', 'system:role:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '角色修改', '{}', 3, '', '', '', 0, 0, 'F', '1', 'system:role:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '角色删除', '{}', 4, '', '', '', 0, 0, 'F', '1', 'system:role:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '角色导出', '{}', 5, '', '', '', 0, 0, 'F', '1', 'system:role:export', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
@ -0,0 +1 @@
|
||||
INSERT INTO sys_menu VALUES ('{}', '角色管理', '{}', 2, 'role', 'system/role/index', '', 0, 0, 'C', '1', 'system:role:list', 'peoples', 'admin', '2023-04-23 14:35:29', '', NULL, '角色管理菜单', '{}');
|
@ -0,0 +1,7 @@
|
||||
INSERT INTO sys_menu VALUES ('{}', '用户查询', '{}', 1, '', '', '', 0, 0, 'F', '1', 'system:user:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '用户新增', '{}', 2, '', '', '', 0, 0, 'F', '1', 'system:user:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '用户修改', '{}', 3, '', '', '', 0, 0, 'F', '1', 'system:user:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '用户删除', '{}', 4, '', '', '', 0, 0, 'F', '1', 'system:user:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '用户导出', '{}', 5, '', '', '', 0, 0, 'F', '1', 'system:user:export', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '用户导入', '{}', 6, '', '', '', 0, 0, 'F', '1', 'system:user:import', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
||||
INSERT INTO sys_menu VALUES ('{}', '重置密码', '{}', 7, '', '', '', 0, 0, 'F', '1', 'system:user:resetPwd', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', '{}');
|
@ -0,0 +1 @@
|
||||
INSERT INTO sys_menu VALUES ('{}', '用户管理', '{}', 1, 'user', 'system/user/index', '', 0, 0, 'C', '1', 'system:user:list', 'user', 'admin', '2023-04-23 14:35:29', '', NULL, '用户管理菜单', '{}');
|
@ -0,0 +1,4 @@
|
||||
INSERT INTO sys_post VALUES ('{}', 'ceo', '总经理', 1, '1', 'admin', '2023-05-19 14:06:53', 'admin', '2023-05-22 14:56:56', NULL, '{}');
|
||||
INSERT INTO sys_post VALUES ('{}', 'cto', '技术总监', 2, '1', 'admin', '2023-05-19 14:07:06', 'admin', '2023-05-22 14:57:10', NULL,'{}');
|
||||
INSERT INTO sys_post VALUES ('{}', 'hr', '人事', 3, '1', 'admin', '2023-05-19 14:07:16', '', NULL, NULL, '{}');
|
||||
INSERT INTO sys_post VALUES ('{}', 'acct', '会计', 4, '1', 'admin', '2023-05-19 14:07:51', '', NULL, NULL, '{}');
|
@ -0,0 +1,2 @@
|
||||
INSERT INTO sys_role VALUES ('{}', '超级管理员', 'admin', 1, '1', '1', 'admin', '2023-04-23 14:35:29', 'admin', '2023-05-31 11:05:52', '超级管理员', '{}');
|
||||
INSERT INTO sys_role VALUES ('{}', '测试', 'test', 1, '1', '1', 'admin', '2023-05-22 14:38:31', '', NULL, NULL, '{}');
|
@ -0,0 +1 @@
|
||||
INSERT INTO sys_user VALUES ('{}', NULL, 'admin', '超级管理员', '', '', '0', '', '$2a$10$mDfrzPMZuxvKeKmqUPA4hOgNC2Zdgb8vOgVL8hP8IIdT6fAWpe0Bm', '1', '', NULL, '', NULL, NULL, '{}');
|
@ -0,0 +1,664 @@
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for gen_table
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "gen_table";
|
||||
CREATE TABLE "gen_table" (
|
||||
"table_id" varchar(20) NOT NULL,
|
||||
"table_name" varchar(200) COLLATE "pg_catalog"."default",
|
||||
"table_comment" varchar(500) COLLATE "pg_catalog"."default",
|
||||
"sub_table_name" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"sub_table_fk_name" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"class_name" varchar(100) COLLATE "pg_catalog"."default",
|
||||
"tpl_category" varchar(200) COLLATE "pg_catalog"."default",
|
||||
"package_name" varchar(100) COLLATE "pg_catalog"."default",
|
||||
"module_name" varchar(30) COLLATE "pg_catalog"."default",
|
||||
"business_name" varchar(30) COLLATE "pg_catalog"."default",
|
||||
"function_name" varchar(50) COLLATE "pg_catalog"."default",
|
||||
"function_author" varchar(50) COLLATE "pg_catalog"."default",
|
||||
"gen_type" char(1) COLLATE "pg_catalog"."default",
|
||||
"gen_path" varchar(200) COLLATE "pg_catalog"."default",
|
||||
"options" varchar(1000) COLLATE "pg_catalog"."default",
|
||||
"create_by" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"create_time" timestamp(6),
|
||||
"update_by" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"update_time" timestamp(6),
|
||||
"remark" varchar(500) COLLATE "pg_catalog"."default"
|
||||
)
|
||||
;
|
||||
COMMENT ON COLUMN "gen_table"."table_id" IS '编号';
|
||||
COMMENT ON COLUMN "gen_table"."table_name" IS '表名称';
|
||||
COMMENT ON COLUMN "gen_table"."table_comment" IS '表描述';
|
||||
COMMENT ON COLUMN "gen_table"."sub_table_name" IS '关联子表的表名';
|
||||
COMMENT ON COLUMN "gen_table"."sub_table_fk_name" IS '子表关联的外键名';
|
||||
COMMENT ON COLUMN "gen_table"."class_name" IS '实体类名称';
|
||||
COMMENT ON COLUMN "gen_table"."tpl_category" IS '使用的模板(crud单表操作 tree树表操作)';
|
||||
COMMENT ON COLUMN "gen_table"."package_name" IS '生成包路径';
|
||||
COMMENT ON COLUMN "gen_table"."module_name" IS '生成模块名';
|
||||
COMMENT ON COLUMN "gen_table"."business_name" IS '生成业务名';
|
||||
COMMENT ON COLUMN "gen_table"."function_name" IS '生成功能名';
|
||||
COMMENT ON COLUMN "gen_table"."function_author" IS '生成功能作者';
|
||||
COMMENT ON COLUMN "gen_table"."gen_type" IS '生成代码方式(0zip压缩包 1自定义路径)';
|
||||
COMMENT ON COLUMN "gen_table"."gen_path" IS '生成路径(不填默认项目路径)';
|
||||
COMMENT ON COLUMN "gen_table"."options" IS '其它生成选项';
|
||||
COMMENT ON COLUMN "gen_table"."create_by" IS '创建者';
|
||||
COMMENT ON COLUMN "gen_table"."create_time" IS '创建时间';
|
||||
COMMENT ON COLUMN "gen_table"."update_by" IS '更新者';
|
||||
COMMENT ON COLUMN "gen_table"."update_time" IS '更新时间';
|
||||
COMMENT ON COLUMN "gen_table"."remark" IS '备注';
|
||||
COMMENT ON TABLE "gen_table" IS '代码生成业务表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for gen_table_column
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "gen_table_column";
|
||||
CREATE TABLE "gen_table_column" (
|
||||
"column_id" varchar(20) NOT NULL,
|
||||
"table_id" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"column_name" varchar(200) COLLATE "pg_catalog"."default",
|
||||
"column_comment" varchar(500) COLLATE "pg_catalog"."default",
|
||||
"column_type" varchar(100) COLLATE "pg_catalog"."default",
|
||||
"java_type" varchar(500) COLLATE "pg_catalog"."default",
|
||||
"java_field" varchar(200) COLLATE "pg_catalog"."default",
|
||||
"is_pk" char(1) COLLATE "pg_catalog"."default",
|
||||
"is_increment" char(1) COLLATE "pg_catalog"."default",
|
||||
"is_required" char(1) COLLATE "pg_catalog"."default",
|
||||
"is_insert" char(1) COLLATE "pg_catalog"."default",
|
||||
"is_edit" char(1) COLLATE "pg_catalog"."default",
|
||||
"is_list" char(1) COLLATE "pg_catalog"."default",
|
||||
"is_query" char(1) COLLATE "pg_catalog"."default",
|
||||
"query_type" varchar(200) COLLATE "pg_catalog"."default",
|
||||
"html_type" varchar(200) COLLATE "pg_catalog"."default",
|
||||
"dict_type" varchar(200) COLLATE "pg_catalog"."default",
|
||||
"sort" int4,
|
||||
"create_by" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"create_time" timestamp(6),
|
||||
"update_by" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"update_time" timestamp(6)
|
||||
)
|
||||
;
|
||||
COMMENT ON COLUMN "gen_table_column"."column_id" IS '编号';
|
||||
COMMENT ON COLUMN "gen_table_column"."table_id" IS '归属表编号';
|
||||
COMMENT ON COLUMN "gen_table_column"."column_name" IS '列名称';
|
||||
COMMENT ON COLUMN "gen_table_column"."column_comment" IS '列描述';
|
||||
COMMENT ON COLUMN "gen_table_column"."column_type" IS '列类型';
|
||||
COMMENT ON COLUMN "gen_table_column"."java_type" IS 'JAVA类型';
|
||||
COMMENT ON COLUMN "gen_table_column"."java_field" IS 'JAVA字段名';
|
||||
COMMENT ON COLUMN "gen_table_column"."is_pk" IS '是否主键(1是)';
|
||||
COMMENT ON COLUMN "gen_table_column"."is_increment" IS '是否自增(1是)';
|
||||
COMMENT ON COLUMN "gen_table_column"."is_required" IS '是否必填(1是)';
|
||||
COMMENT ON COLUMN "gen_table_column"."is_insert" IS '是否为插入字段(1是)';
|
||||
COMMENT ON COLUMN "gen_table_column"."is_edit" IS '是否编辑字段(1是)';
|
||||
COMMENT ON COLUMN "gen_table_column"."is_list" IS '是否列表字段(1是)';
|
||||
COMMENT ON COLUMN "gen_table_column"."is_query" IS '是否查询字段(1是)';
|
||||
COMMENT ON COLUMN "gen_table_column"."query_type" IS '查询方式(等于、不等于、大于、小于、范围)';
|
||||
COMMENT ON COLUMN "gen_table_column"."html_type" IS '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)';
|
||||
COMMENT ON COLUMN "gen_table_column"."dict_type" IS '字典类型';
|
||||
COMMENT ON COLUMN "gen_table_column"."sort" IS '排序';
|
||||
COMMENT ON COLUMN "gen_table_column"."create_by" IS '创建者';
|
||||
COMMENT ON COLUMN "gen_table_column"."create_time" IS '创建时间';
|
||||
COMMENT ON COLUMN "gen_table_column"."update_by" IS '更新者';
|
||||
COMMENT ON COLUMN "gen_table_column"."update_time" IS '更新时间';
|
||||
COMMENT ON TABLE "gen_table_column" IS '代码生成业务表字段';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_config
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "sys_config";
|
||||
CREATE TABLE "sys_config" (
|
||||
"config_id" varchar(20) NOT NULL,
|
||||
"config_name" varchar(100) COLLATE "pg_catalog"."default",
|
||||
"config_key" varchar(100) COLLATE "pg_catalog"."default",
|
||||
"config_value" varchar(500) COLLATE "pg_catalog"."default",
|
||||
"config_type" char(1) COLLATE "pg_catalog"."default",
|
||||
"create_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"create_time" timestamp(6),
|
||||
"update_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"update_time" timestamp(6),
|
||||
"remark" varchar(500) COLLATE "pg_catalog"."default",
|
||||
"tenant_id" varchar(20)
|
||||
)
|
||||
;
|
||||
COMMENT ON COLUMN "sys_config"."config_id" IS '参数主键';
|
||||
COMMENT ON COLUMN "sys_config"."config_name" IS '参数名称';
|
||||
COMMENT ON COLUMN "sys_config"."config_key" IS '参数键名';
|
||||
COMMENT ON COLUMN "sys_config"."config_value" IS '参数键值';
|
||||
COMMENT ON COLUMN "sys_config"."config_type" IS '系统内置(Y是 N否)';
|
||||
COMMENT ON COLUMN "sys_config"."create_user" IS '创建者';
|
||||
COMMENT ON COLUMN "sys_config"."create_time" IS '创建时间';
|
||||
COMMENT ON COLUMN "sys_config"."update_user" IS '更新者';
|
||||
COMMENT ON COLUMN "sys_config"."update_time" IS '更新时间';
|
||||
COMMENT ON COLUMN "sys_config"."remark" IS '备注';
|
||||
COMMENT ON TABLE "sys_config" IS '参数配置表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_dept
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "sys_dept";
|
||||
CREATE TABLE "sys_dept" (
|
||||
"dept_id" varchar(20) NOT NULL,
|
||||
"parent_id" varchar(20),
|
||||
"ancestors" varchar(500) COLLATE "pg_catalog"."default",
|
||||
"dept_name" varchar(30) COLLATE "pg_catalog"."default",
|
||||
"order_num" int4,
|
||||
"leader" varchar(20) COLLATE "pg_catalog"."default",
|
||||
"phone" varchar(30) COLLATE "pg_catalog"."default",
|
||||
"email" varchar(30) COLLATE "pg_catalog"."default",
|
||||
"status" char(1) COLLATE "pg_catalog"."default",
|
||||
"create_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"create_time" timestamp(6),
|
||||
"update_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"update_time" timestamp(6),
|
||||
"remark" varchar(255) COLLATE "pg_catalog"."default",
|
||||
"tenant_id" varchar(20)
|
||||
)
|
||||
;
|
||||
COMMENT ON COLUMN "sys_dept"."dept_id" IS '部门id';
|
||||
COMMENT ON COLUMN "sys_dept"."parent_id" IS '父部门id';
|
||||
COMMENT ON COLUMN "sys_dept"."ancestors" IS '祖级列表';
|
||||
COMMENT ON COLUMN "sys_dept"."dept_name" IS '部门名称';
|
||||
COMMENT ON COLUMN "sys_dept"."order_num" IS '显示顺序';
|
||||
COMMENT ON COLUMN "sys_dept"."leader" IS '负责人ID';
|
||||
COMMENT ON COLUMN "sys_dept"."phone" IS '手机号';
|
||||
COMMENT ON COLUMN "sys_dept"."email" IS '邮箱';
|
||||
COMMENT ON COLUMN "sys_dept"."status" IS '部门状态(1正常 0停用)';
|
||||
COMMENT ON COLUMN "sys_dept"."create_user" IS '创建者';
|
||||
COMMENT ON COLUMN "sys_dept"."create_time" IS '创建时间';
|
||||
COMMENT ON COLUMN "sys_dept"."update_user" IS '更新者';
|
||||
COMMENT ON COLUMN "sys_dept"."update_time" IS '更新时间';
|
||||
COMMENT ON COLUMN "sys_dept"."remark" IS '备注';
|
||||
COMMENT ON COLUMN "sys_dept"."tenant_id" IS '租户ID';
|
||||
COMMENT ON TABLE "sys_dept" IS '部门表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_dict_data
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "sys_dict_data";
|
||||
CREATE TABLE "sys_dict_data" (
|
||||
"dict_code" varchar(20) NOT NULL,
|
||||
"dict_sort" int4,
|
||||
"dict_label" varchar(100) COLLATE "pg_catalog"."default",
|
||||
"dict_value" varchar(100) COLLATE "pg_catalog"."default",
|
||||
"dict_type" varchar(100) COLLATE "pg_catalog"."default",
|
||||
"css_class" varchar(100) COLLATE "pg_catalog"."default",
|
||||
"list_class" varchar(100) COLLATE "pg_catalog"."default",
|
||||
"status" char(1) COLLATE "pg_catalog"."default",
|
||||
"create_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"create_time" timestamp(6),
|
||||
"update_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"update_time" timestamp(6),
|
||||
"remark" varchar(500) COLLATE "pg_catalog"."default",
|
||||
"tenant_id" varchar(20)
|
||||
)
|
||||
;
|
||||
COMMENT ON COLUMN "sys_dict_data"."dict_code" IS '字典编码';
|
||||
COMMENT ON COLUMN "sys_dict_data"."dict_sort" IS '字典排序';
|
||||
COMMENT ON COLUMN "sys_dict_data"."dict_label" IS '字典标签';
|
||||
COMMENT ON COLUMN "sys_dict_data"."dict_value" IS '字典键值';
|
||||
COMMENT ON COLUMN "sys_dict_data"."dict_type" IS '字典类型';
|
||||
COMMENT ON COLUMN "sys_dict_data"."css_class" IS '样式属性(其他样式扩展)';
|
||||
COMMENT ON COLUMN "sys_dict_data"."list_class" IS '表格回显样式';
|
||||
COMMENT ON COLUMN "sys_dict_data"."status" IS '状态(0正常 1停用)';
|
||||
COMMENT ON COLUMN "sys_dict_data"."create_user" IS '创建者';
|
||||
COMMENT ON COLUMN "sys_dict_data"."create_time" IS '创建时间';
|
||||
COMMENT ON COLUMN "sys_dict_data"."update_user" IS '更新者';
|
||||
COMMENT ON COLUMN "sys_dict_data"."update_time" IS '更新时间';
|
||||
COMMENT ON COLUMN "sys_dict_data"."remark" IS '备注';
|
||||
COMMENT ON COLUMN "sys_dict_data"."tenant_id" IS '租户ID';
|
||||
COMMENT ON TABLE "sys_dict_data" IS '字典数据表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_dict_type
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "sys_dict_type";
|
||||
CREATE TABLE "sys_dict_type" (
|
||||
"dict_id" varchar(20) NOT NULL,
|
||||
"dict_name" varchar(100) COLLATE "pg_catalog"."default",
|
||||
"dict_type" varchar(100) COLLATE "pg_catalog"."default",
|
||||
"status" char(1) COLLATE "pg_catalog"."default",
|
||||
"create_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"create_time" timestamp(6),
|
||||
"update_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"update_time" timestamp(6),
|
||||
"remark" varchar(500) COLLATE "pg_catalog"."default",
|
||||
"tenant_id" varchar(20)
|
||||
)
|
||||
;
|
||||
COMMENT ON COLUMN "sys_dict_type"."dict_id" IS '字典主键';
|
||||
COMMENT ON COLUMN "sys_dict_type"."dict_name" IS '字典名称';
|
||||
COMMENT ON COLUMN "sys_dict_type"."dict_type" IS '字典类型';
|
||||
COMMENT ON COLUMN "sys_dict_type"."status" IS '状态(0正常 1停用)';
|
||||
COMMENT ON COLUMN "sys_dict_type"."create_user" IS '创建者';
|
||||
COMMENT ON COLUMN "sys_dict_type"."create_time" IS '创建时间';
|
||||
COMMENT ON COLUMN "sys_dict_type"."update_user" IS '更新者';
|
||||
COMMENT ON COLUMN "sys_dict_type"."update_time" IS '更新时间';
|
||||
COMMENT ON COLUMN "sys_dict_type"."remark" IS '备注';
|
||||
COMMENT ON COLUMN "sys_dict_type"."tenant_id" IS '租户ID';
|
||||
COMMENT ON TABLE "sys_dict_type" IS '字典类型表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_login_log
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "sys_login_log";
|
||||
CREATE TABLE "sys_login_log" (
|
||||
"login_id" varchar(20) NOT NULL,
|
||||
"device_sn" varchar(50) COLLATE "pg_catalog"."default",
|
||||
"username" varchar(50) COLLATE "pg_catalog"."default",
|
||||
"nickname" varchar(30) COLLATE "pg_catalog"."default",
|
||||
"ip" varchar(30) COLLATE "pg_catalog"."default",
|
||||
"address" varchar(255) COLLATE "pg_catalog"."default",
|
||||
"browser" varchar(50) COLLATE "pg_catalog"."default",
|
||||
"os" varchar(50) COLLATE "pg_catalog"."default",
|
||||
"login_time" timestamp(6),
|
||||
"create_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"create_time" timestamp(6),
|
||||
"update_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"update_time" timestamp(6),
|
||||
"remark" varchar(500) COLLATE "pg_catalog"."default",
|
||||
"tenant_id" varchar(20)
|
||||
)
|
||||
;
|
||||
COMMENT ON COLUMN "sys_login_log"."device_sn" IS '设备编码';
|
||||
COMMENT ON COLUMN "sys_login_log"."username" IS '登录账号';
|
||||
COMMENT ON COLUMN "sys_login_log"."nickname" IS '用户名称';
|
||||
COMMENT ON COLUMN "sys_login_log"."ip" IS '访问IP';
|
||||
COMMENT ON COLUMN "sys_login_log"."address" IS '登录地点';
|
||||
COMMENT ON COLUMN "sys_login_log"."browser" IS '浏览器';
|
||||
COMMENT ON COLUMN "sys_login_log"."os" IS '操作系统';
|
||||
COMMENT ON COLUMN "sys_login_log"."login_time" IS '登录时间';
|
||||
COMMENT ON COLUMN "sys_login_log"."create_user" IS '创建者';
|
||||
COMMENT ON COLUMN "sys_login_log"."create_time" IS '创建时间';
|
||||
COMMENT ON COLUMN "sys_login_log"."update_user" IS '更新者';
|
||||
COMMENT ON COLUMN "sys_login_log"."update_time" IS '更新时间';
|
||||
COMMENT ON COLUMN "sys_login_log"."remark" IS '备注';
|
||||
COMMENT ON TABLE "sys_login_log" IS '登录日志';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_menu
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "sys_menu";
|
||||
CREATE TABLE "sys_menu" (
|
||||
"menu_id" varchar(20) NOT NULL,
|
||||
"menu_name" varchar(50) COLLATE "pg_catalog"."default" NOT NULL,
|
||||
"parent_id" varchar(20),
|
||||
"order_num" int4,
|
||||
"path" varchar(200) COLLATE "pg_catalog"."default",
|
||||
"component" varchar(255) COLLATE "pg_catalog"."default",
|
||||
"query" varchar(255) COLLATE "pg_catalog"."default",
|
||||
"is_frame" int4,
|
||||
"is_cache" int4,
|
||||
"menu_type" char(1) COLLATE "pg_catalog"."default",
|
||||
"is_visible" char(1) COLLATE "pg_catalog"."default",
|
||||
"perms" varchar(100) COLLATE "pg_catalog"."default",
|
||||
"icon" varchar(100) COLLATE "pg_catalog"."default",
|
||||
"create_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"create_time" timestamp(6),
|
||||
"update_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"update_time" timestamp(6),
|
||||
"remark" varchar(500) COLLATE "pg_catalog"."default",
|
||||
"tenant_id" varchar(20)
|
||||
)
|
||||
;
|
||||
COMMENT ON COLUMN "sys_menu"."menu_id" IS '菜单ID';
|
||||
COMMENT ON COLUMN "sys_menu"."menu_name" IS '菜单名称';
|
||||
COMMENT ON COLUMN "sys_menu"."parent_id" IS '父菜单ID';
|
||||
COMMENT ON COLUMN "sys_menu"."order_num" IS '显示顺序';
|
||||
COMMENT ON COLUMN "sys_menu"."path" IS '路由地址';
|
||||
COMMENT ON COLUMN "sys_menu"."component" IS '组件路径';
|
||||
COMMENT ON COLUMN "sys_menu"."query" IS '路由参数';
|
||||
COMMENT ON COLUMN "sys_menu"."is_frame" IS '是否为外链(1是 0否)';
|
||||
COMMENT ON COLUMN "sys_menu"."is_cache" IS '是否缓存(1缓存 0不缓存)';
|
||||
COMMENT ON COLUMN "sys_menu"."menu_type" IS '菜单类型(M目录 C菜单 F按钮)';
|
||||
COMMENT ON COLUMN "sys_menu"."is_visible" IS '菜单状态(1显示 0隐藏)';
|
||||
COMMENT ON COLUMN "sys_menu"."perms" IS '权限标识';
|
||||
COMMENT ON COLUMN "sys_menu"."icon" IS '菜单图标';
|
||||
COMMENT ON COLUMN "sys_menu"."create_user" IS '创建者';
|
||||
COMMENT ON COLUMN "sys_menu"."create_time" IS '创建时间';
|
||||
COMMENT ON COLUMN "sys_menu"."update_user" IS '更新者';
|
||||
COMMENT ON COLUMN "sys_menu"."update_time" IS '更新时间';
|
||||
COMMENT ON COLUMN "sys_menu"."remark" IS '备注';
|
||||
COMMENT ON TABLE "sys_menu" IS '菜单权限表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_post
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "sys_post";
|
||||
CREATE TABLE "sys_post" (
|
||||
"post_id" varchar(20) NOT NULL,
|
||||
"post_code" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
|
||||
"post_name" varchar(50) COLLATE "pg_catalog"."default" NOT NULL,
|
||||
"post_sort" int4 NOT NULL,
|
||||
"status" char(1) COLLATE "pg_catalog"."default" NOT NULL,
|
||||
"create_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"create_time" timestamp(6),
|
||||
"update_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"update_time" timestamp(6),
|
||||
"remark" varchar(500) COLLATE "pg_catalog"."default",
|
||||
"tenant_id" varchar(20)
|
||||
)
|
||||
;
|
||||
COMMENT ON COLUMN "sys_post"."post_id" IS '岗位ID';
|
||||
COMMENT ON COLUMN "sys_post"."post_code" IS '岗位编码';
|
||||
COMMENT ON COLUMN "sys_post"."post_name" IS '岗位名称';
|
||||
COMMENT ON COLUMN "sys_post"."post_sort" IS '显示顺序';
|
||||
COMMENT ON COLUMN "sys_post"."status" IS '状态(1正常 0停用)';
|
||||
COMMENT ON COLUMN "sys_post"."create_user" IS '创建者';
|
||||
COMMENT ON COLUMN "sys_post"."create_time" IS '创建时间';
|
||||
COMMENT ON COLUMN "sys_post"."update_user" IS '更新者';
|
||||
COMMENT ON COLUMN "sys_post"."update_time" IS '更新时间';
|
||||
COMMENT ON COLUMN "sys_post"."remark" IS '备注';
|
||||
COMMENT ON COLUMN "sys_post"."tenant_id" IS '租户ID';
|
||||
COMMENT ON TABLE "sys_post" IS '岗位信息表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_role
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "sys_role";
|
||||
CREATE TABLE "sys_role" (
|
||||
"role_id" varchar(20) NOT NULL,
|
||||
"role_name" varchar(30) COLLATE "pg_catalog"."default" NOT NULL,
|
||||
"role_key" varchar(100) COLLATE "pg_catalog"."default" NOT NULL,
|
||||
"role_sort" int4 NOT NULL,
|
||||
"data_scope" char(1) COLLATE "pg_catalog"."default",
|
||||
"status" char(1) COLLATE "pg_catalog"."default" NOT NULL,
|
||||
"create_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"create_time" timestamp(6),
|
||||
"update_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"update_time" timestamp(6),
|
||||
"remark" varchar(500) COLLATE "pg_catalog"."default",
|
||||
"tenant_id" varchar(20)
|
||||
)
|
||||
;
|
||||
COMMENT ON COLUMN "sys_role"."role_id" IS '角色ID';
|
||||
COMMENT ON COLUMN "sys_role"."role_name" IS '角色名称';
|
||||
COMMENT ON COLUMN "sys_role"."role_key" IS '角色权限字符串';
|
||||
COMMENT ON COLUMN "sys_role"."role_sort" IS '显示顺序';
|
||||
COMMENT ON COLUMN "sys_role"."data_scope" IS '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)';
|
||||
COMMENT ON COLUMN "sys_role"."status" IS '角色状态(1正常 0停用)';
|
||||
COMMENT ON COLUMN "sys_role"."create_user" IS '创建者';
|
||||
COMMENT ON COLUMN "sys_role"."create_time" IS '创建时间';
|
||||
COMMENT ON COLUMN "sys_role"."update_user" IS '更新者';
|
||||
COMMENT ON COLUMN "sys_role"."update_time" IS '更新时间';
|
||||
COMMENT ON COLUMN "sys_role"."remark" IS '备注';
|
||||
COMMENT ON COLUMN "sys_role"."tenant_id" IS '租户ID';
|
||||
COMMENT ON TABLE "sys_role" IS '角色信息表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_role_dept
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "sys_role_dept";
|
||||
CREATE TABLE "sys_role_dept" (
|
||||
"role_id" varchar(20) NOT NULL,
|
||||
"dept_id" varchar(20) NOT NULL,
|
||||
"tenant_id" varchar(20) NOT NULL
|
||||
)
|
||||
;
|
||||
COMMENT ON COLUMN "sys_role_dept"."role_id" IS '角色ID';
|
||||
COMMENT ON COLUMN "sys_role_dept"."dept_id" IS '部门ID';
|
||||
COMMENT ON COLUMN "sys_role_dept"."tenant_id" IS '租户ID';
|
||||
COMMENT ON TABLE "sys_role_dept" IS '角色和部门关联表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_role_menu
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "sys_role_menu";
|
||||
CREATE TABLE "sys_role_menu" (
|
||||
"role_id" varchar(20) NOT NULL,
|
||||
"menu_id" varchar(20) NOT NULL,
|
||||
"tenant_id" varchar(20) NOT NULL
|
||||
)
|
||||
;
|
||||
COMMENT ON COLUMN "sys_role_menu"."role_id" IS '角色ID';
|
||||
COMMENT ON COLUMN "sys_role_menu"."menu_id" IS '菜单ID';
|
||||
COMMENT ON COLUMN "sys_role_menu"."tenant_id" IS '租户ID';
|
||||
COMMENT ON TABLE "sys_role_menu" IS '角色和菜单关联表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_tenant
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "sys_tenant";
|
||||
CREATE TABLE "sys_tenant" (
|
||||
"tenant_id" varchar(20) NOT NULL,
|
||||
"company_name" varchar(50) COLLATE "pg_catalog"."default" NOT NULL,
|
||||
"contact_name" varchar(30) COLLATE "pg_catalog"."default",
|
||||
"contact_phone" varchar(20) COLLATE "pg_catalog"."default",
|
||||
"address" varchar(255) COLLATE "pg_catalog"."default",
|
||||
"profile" varchar(500) COLLATE "pg_catalog"."default",
|
||||
"license_number" varchar(30) COLLATE "pg_catalog"."default",
|
||||
"domain" varchar(50) COLLATE "pg_catalog"."default",
|
||||
"expire_time" timestamp(6),
|
||||
"account_count" varchar(20),
|
||||
"status" char(1) COLLATE "pg_catalog"."default",
|
||||
"mode" char(1) COLLATE "pg_catalog"."default",
|
||||
"initialized" char(1) COLLATE "pg_catalog"."default",
|
||||
"create_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"create_time" timestamp(6),
|
||||
"update_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"update_time" timestamp(6),
|
||||
"remark" varchar(500) COLLATE "pg_catalog"."default"
|
||||
)
|
||||
;
|
||||
COMMENT ON COLUMN "sys_tenant"."company_name" IS '公司名称';
|
||||
COMMENT ON COLUMN "sys_tenant"."contact_name" IS '联系人名称';
|
||||
COMMENT ON COLUMN "sys_tenant"."contact_phone" IS '联系人电话';
|
||||
COMMENT ON COLUMN "sys_tenant"."address" IS '公司地址';
|
||||
COMMENT ON COLUMN "sys_tenant"."profile" IS '公司简介';
|
||||
COMMENT ON COLUMN "sys_tenant"."license_number" IS '统一社会信用代码';
|
||||
COMMENT ON COLUMN "sys_tenant"."domain" IS '域名';
|
||||
COMMENT ON COLUMN "sys_tenant"."expire_time" IS '过期时间';
|
||||
COMMENT ON COLUMN "sys_tenant"."account_count" IS '用户数量';
|
||||
COMMENT ON COLUMN "sys_tenant"."status" IS '状态';
|
||||
COMMENT ON COLUMN "sys_tenant"."mode" IS '模式';
|
||||
COMMENT ON COLUMN "sys_tenant"."initialized" IS '是否已初始化';
|
||||
COMMENT ON COLUMN "sys_tenant"."create_user" IS '创建者';
|
||||
COMMENT ON COLUMN "sys_tenant"."create_time" IS '创建时间';
|
||||
COMMENT ON COLUMN "sys_tenant"."update_user" IS '更新者';
|
||||
COMMENT ON COLUMN "sys_tenant"."update_time" IS '更新时间';
|
||||
COMMENT ON COLUMN "sys_tenant"."remark" IS '备注';
|
||||
COMMENT ON TABLE "sys_tenant" IS '租户表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_tenant_datasource
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "sys_tenant_datasource";
|
||||
CREATE TABLE "sys_tenant_datasource" (
|
||||
"datasource_id" varchar(20) NOT NULL,
|
||||
"type" varchar(50) COLLATE "pg_catalog"."default" NOT NULL,
|
||||
"ip" varchar(50) COLLATE "pg_catalog"."default" NOT NULL,
|
||||
"port" varchar(20) COLLATE "pg_catalog"."default" NOT NULL,
|
||||
"db_name" varchar(50) COLLATE "pg_catalog"."default" NOT NULL,
|
||||
"schema_name" varchar(50) COLLATE "pg_catalog"."default",
|
||||
"username" varchar(50) COLLATE "pg_catalog"."default" NOT NULL,
|
||||
"password" varchar(50) COLLATE "pg_catalog"."default" NOT NULL,
|
||||
"init_count" int4,
|
||||
"min_count" int4,
|
||||
"max_count" int4,
|
||||
"is_primary" char(1) COLLATE "pg_catalog"."default" NOT NULL,
|
||||
"create_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"create_time" timestamp(6),
|
||||
"update_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"update_time" timestamp(6),
|
||||
"remark" varchar(500) COLLATE "pg_catalog"."default",
|
||||
"tenant_id" varchar(20) NOT NULL
|
||||
)
|
||||
;
|
||||
COMMENT ON COLUMN "sys_tenant_datasource"."type" IS '类型';
|
||||
COMMENT ON COLUMN "sys_tenant_datasource"."ip" IS 'IP';
|
||||
COMMENT ON COLUMN "sys_tenant_datasource"."port" IS '端口';
|
||||
COMMENT ON COLUMN "sys_tenant_datasource"."db_name" IS '数据库名称';
|
||||
COMMENT ON COLUMN "sys_tenant_datasource"."schema_name" IS '模式名称';
|
||||
COMMENT ON COLUMN "sys_tenant_datasource"."username" IS '账号';
|
||||
COMMENT ON COLUMN "sys_tenant_datasource"."password" IS '密码';
|
||||
COMMENT ON COLUMN "sys_tenant_datasource"."init_count" IS '初始连接数';
|
||||
COMMENT ON COLUMN "sys_tenant_datasource"."min_count" IS '最小空闲数';
|
||||
COMMENT ON COLUMN "sys_tenant_datasource"."max_count" IS '最大连接数';
|
||||
COMMENT ON COLUMN "sys_tenant_datasource"."is_primary" IS '主要数据源';
|
||||
COMMENT ON COLUMN "sys_tenant_datasource"."create_user" IS '创建者';
|
||||
COMMENT ON COLUMN "sys_tenant_datasource"."create_time" IS '创建时间';
|
||||
COMMENT ON COLUMN "sys_tenant_datasource"."update_user" IS '更新者';
|
||||
COMMENT ON COLUMN "sys_tenant_datasource"."update_time" IS '更新时间';
|
||||
COMMENT ON COLUMN "sys_tenant_datasource"."remark" IS '备注';
|
||||
COMMENT ON TABLE "sys_tenant_datasource" IS '租户数据源';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_user
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "sys_user";
|
||||
CREATE TABLE "sys_user" (
|
||||
"user_id" varchar(20) NOT NULL,
|
||||
"dept_id" varchar(20),
|
||||
"username" varchar(30) COLLATE "pg_catalog"."default" NOT NULL,
|
||||
"nickname" varchar(30) COLLATE "pg_catalog"."default" NOT NULL,
|
||||
"email" varchar(50) COLLATE "pg_catalog"."default",
|
||||
"phone" varchar(11) COLLATE "pg_catalog"."default",
|
||||
"gender" char(1) COLLATE "pg_catalog"."default",
|
||||
"avatar" varchar(100) COLLATE "pg_catalog"."default",
|
||||
"password" varchar(100) COLLATE "pg_catalog"."default",
|
||||
"status" char(1) COLLATE "pg_catalog"."default",
|
||||
"create_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"create_time" timestamp(6),
|
||||
"update_user" varchar(64) COLLATE "pg_catalog"."default",
|
||||
"update_time" timestamp(6),
|
||||
"remark" varchar(500) COLLATE "pg_catalog"."default",
|
||||
"tenant_id" varchar(20)
|
||||
)
|
||||
;
|
||||
COMMENT ON COLUMN "sys_user"."user_id" IS '用户ID';
|
||||
COMMENT ON COLUMN "sys_user"."dept_id" IS '部门ID';
|
||||
COMMENT ON COLUMN "sys_user"."username" IS '用户账号';
|
||||
COMMENT ON COLUMN "sys_user"."nickname" IS '用户昵称';
|
||||
COMMENT ON COLUMN "sys_user"."email" IS '用户邮箱';
|
||||
COMMENT ON COLUMN "sys_user"."phone" IS '手机号码';
|
||||
COMMENT ON COLUMN "sys_user"."gender" IS '用户性别(0男 1女 2未知)';
|
||||
COMMENT ON COLUMN "sys_user"."avatar" IS '头像地址';
|
||||
COMMENT ON COLUMN "sys_user"."password" IS '密码';
|
||||
COMMENT ON COLUMN "sys_user"."status" IS '帐号状态(1正常 0停用)';
|
||||
COMMENT ON COLUMN "sys_user"."create_user" IS '创建者';
|
||||
COMMENT ON COLUMN "sys_user"."create_time" IS '创建时间';
|
||||
COMMENT ON COLUMN "sys_user"."update_user" IS '更新者';
|
||||
COMMENT ON COLUMN "sys_user"."update_time" IS '更新时间';
|
||||
COMMENT ON COLUMN "sys_user"."remark" IS '备注';
|
||||
COMMENT ON COLUMN "sys_user"."tenant_id" IS '租户ID';
|
||||
COMMENT ON TABLE "sys_user" IS '用户信息表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_user_post
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "sys_user_post";
|
||||
CREATE TABLE "sys_user_post" (
|
||||
"user_id" varchar(20) NOT NULL,
|
||||
"post_id" varchar(20) NOT NULL,
|
||||
"tenant_id" varchar(20) NOT NULL
|
||||
)
|
||||
;
|
||||
COMMENT ON COLUMN "sys_user_post"."user_id" IS '用户ID';
|
||||
COMMENT ON COLUMN "sys_user_post"."post_id" IS '岗位ID';
|
||||
COMMENT ON COLUMN "sys_user_post"."tenant_id" IS '租户ID';
|
||||
COMMENT ON TABLE "sys_user_post" IS '用户与岗位关联表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_user_role
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "sys_user_role";
|
||||
CREATE TABLE "sys_user_role" (
|
||||
"user_id" varchar(20) NOT NULL,
|
||||
"role_id" varchar(20) NOT NULL,
|
||||
"tenant_id" varchar(20) NOT NULL
|
||||
)
|
||||
;
|
||||
COMMENT ON COLUMN "sys_user_role"."user_id" IS '用户ID';
|
||||
COMMENT ON COLUMN "sys_user_role"."role_id" IS '角色ID';
|
||||
COMMENT ON COLUMN "sys_user_role"."tenant_id" IS '租户ID';
|
||||
COMMENT ON TABLE "sys_user_role" IS '用户和角色关联表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table gen_table
|
||||
-- ----------------------------
|
||||
ALTER TABLE "gen_table" ADD CONSTRAINT "gen_table_pkey" PRIMARY KEY ("table_id");
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table gen_table_column
|
||||
-- ----------------------------
|
||||
ALTER TABLE "gen_table_column" ADD CONSTRAINT "gen_table_column_pkey" PRIMARY KEY ("column_id");
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table sys_config
|
||||
-- ----------------------------
|
||||
ALTER TABLE "sys_config" ADD CONSTRAINT "sys_config_pkey" PRIMARY KEY ("config_id");
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table sys_dept
|
||||
-- ----------------------------
|
||||
ALTER TABLE "sys_dept" ADD CONSTRAINT "sys_dept_pkey" PRIMARY KEY ("dept_id");
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table sys_dict_data
|
||||
-- ----------------------------
|
||||
ALTER TABLE "sys_dict_data" ADD CONSTRAINT "sys_dict_data_pkey" PRIMARY KEY ("dict_code");
|
||||
|
||||
-- ----------------------------
|
||||
-- Indexes structure for table sys_dict_type
|
||||
-- ----------------------------
|
||||
CREATE INDEX "dict_type" ON "sys_dict_type" USING btree (
|
||||
"dict_type" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
|
||||
);
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table sys_dict_type
|
||||
-- ----------------------------
|
||||
ALTER TABLE "sys_dict_type" ADD CONSTRAINT "sys_dict_type_pkey" PRIMARY KEY ("dict_id");
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table sys_login_log
|
||||
-- ----------------------------
|
||||
ALTER TABLE "sys_login_log" ADD CONSTRAINT "sys_login_log_pkey" PRIMARY KEY ("login_id");
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table sys_menu
|
||||
-- ----------------------------
|
||||
ALTER TABLE "sys_menu" ADD CONSTRAINT "sys_menu_pkey" PRIMARY KEY ("menu_id");
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table sys_post
|
||||
-- ----------------------------
|
||||
ALTER TABLE "sys_post" ADD CONSTRAINT "sys_post_pkey" PRIMARY KEY ("post_id");
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table sys_role
|
||||
-- ----------------------------
|
||||
ALTER TABLE "sys_role" ADD CONSTRAINT "sys_role_pkey" PRIMARY KEY ("role_id");
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table sys_role_dept
|
||||
-- ----------------------------
|
||||
ALTER TABLE "sys_role_dept" ADD CONSTRAINT "sys_role_dept_pkey" PRIMARY KEY ("role_id", "dept_id", "tenant_id");
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table sys_role_menu
|
||||
-- ----------------------------
|
||||
ALTER TABLE "sys_role_menu" ADD CONSTRAINT "sys_role_menu_pkey" PRIMARY KEY ("role_id", "menu_id", "tenant_id");
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table sys_tenant
|
||||
-- ----------------------------
|
||||
ALTER TABLE "sys_tenant" ADD CONSTRAINT "sys_tenant_pkey" PRIMARY KEY ("tenant_id");
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table sys_tenant_datasource
|
||||
-- ----------------------------
|
||||
ALTER TABLE "sys_tenant_datasource" ADD CONSTRAINT "sys_tenant_datasource_pkey" PRIMARY KEY ("datasource_id");
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table sys_user
|
||||
-- ----------------------------
|
||||
ALTER TABLE "sys_user" ADD CONSTRAINT "sys_user_pkey" PRIMARY KEY ("user_id");
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table sys_user_post
|
||||
-- ----------------------------
|
||||
ALTER TABLE "sys_user_post" ADD CONSTRAINT "sys_user_post_pkey" PRIMARY KEY ("user_id", "post_id", "tenant_id");
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table sys_user_role
|
||||
-- ----------------------------
|
||||
ALTER TABLE "sys_user_role" ADD CONSTRAINT "sys_user_role_pkey" PRIMARY KEY ("user_id", "role_id", "tenant_id");
|
Reference in New Issue
Block a user