

CREATE TABLE `TB_U_USER` (
  `ID` VARCHAR(100) NOT NULL COMMENT '',
  `COMPANY_ID` VARCHAR(100) COMMENT 'CompanyID',
  `DELETED` INT(1) COMMENT '是否删除',
  `ADD_ACCOUNT` VARCHAR(100) COMMENT '创建人',
  `ADD_TIME` DATETIME COMMENT '创建时间',
  `EDIT_ACCOUNT` VARCHAR(100) COMMENT '修改人',
  `EDIT_TIME` DATETIME COMMENT '修改时间',
  `DELETE_ACCOUNT` VARCHAR(100) COMMENT '删除人',
  `DELETE_TIME` DATETIME COMMENT '删除时间',

  `USERNAME` VARCHAR(200) NOT NULL COMMENT '账号',
  `PASSWORD` VARCHAR(200) NOT NULL COMMENT '密码',

  `ENABLED` INT(11) NOT NULL COMMENT '是否可用，1 可用，0 不可用，默认：1',
  `ACCOUNT_NON_EXPIRED` INT(11) NOT NULL COMMENT '账号未过期，1 未过期，0 过期，默认：1',
  `ACCOUNT_NON_LOCKED` INT(11) NOT NULL COMMENT '账号未锁定，1 未锁定，0 锁定，默认：1',
  `CREDENTIALS_NON_EXPIRED` INT(11) NOT NULL COMMENT '密码未过期，1 未过期，0 过期，默认：1',

  `NAME` VARCHAR(200) NOT NULL COMMENT '姓名',
  `STATUS` VARCHAR(10) NOT NULL COMMENT '状态（1 启用，0 停用）',

  `MOBILE` VARCHAR(100) COMMENT '登录手机',
  `EMAIL` VARCHAR(100) COMMENT '登录邮箱',

  PRIMARY KEY (`ID`),
  UNIQUE KEY `UQ_USERNAME` (`USERNAME`)
)
COMMENT = '用户表';


CREATE TABLE `TB_U_GROUP` (
  `ID` VARCHAR(100) NOT NULL COMMENT '',
  `COMPANY_ID` VARCHAR(100) COMMENT 'CompanyID',
  `DELETED` INT(1) COMMENT '是否删除',
  `ADD_ACCOUNT` VARCHAR(100) COMMENT '创建人',
  `ADD_TIME` DATETIME COMMENT '创建时间',
  `EDIT_ACCOUNT` VARCHAR(100) COMMENT '修改人',
  `EDIT_TIME` DATETIME COMMENT '修改时间',
  `DELETE_ACCOUNT` VARCHAR(100) COMMENT '删除人',
  `DELETE_TIME` DATETIME COMMENT '删除时间',

  `CODE` VARCHAR(200) NOT NULL COMMENT '代码',
  `NAME` VARCHAR(200) NOT NULL COMMENT '名称',
  `MEMO` VARCHAR(500) COMMENT '备注',
  `STATUS` VARCHAR(10) NOT NULL COMMENT '状态（1 启用，0 停用）',

  PRIMARY KEY (`ID`),
  UNIQUE KEY `UQ_CODE` (`COMPANY_ID`,`CODE`)
)
COMMENT = '用户组表';


CREATE TABLE `TB_U_ROLE` (
  `ID` VARCHAR(100) NOT NULL COMMENT '',
  `COMPANY_ID` VARCHAR(100) COMMENT 'CompanyID',
  `DELETED` INT(1) COMMENT '是否删除',
  `ADD_ACCOUNT` VARCHAR(100) COMMENT '创建人',
  `ADD_TIME` DATETIME COMMENT '创建时间',
  `EDIT_ACCOUNT` VARCHAR(100) COMMENT '修改人',
  `EDIT_TIME` DATETIME COMMENT '修改时间',
  `DELETE_ACCOUNT` VARCHAR(100) COMMENT '删除人',
  `DELETE_TIME` DATETIME COMMENT '删除时间',

  `CODE` VARCHAR(200) NOT NULL COMMENT '代码',
  `NAME` VARCHAR(200) NOT NULL COMMENT '名称',
  `MEMO` VARCHAR(500) COMMENT '备注',
  `STATUS` VARCHAR(10) NOT NULL COMMENT '状态（1 启用，0 停用）',

  PRIMARY KEY (`ID`),
  UNIQUE KEY `UQ_CODE` (`COMPANY_ID`,`CODE`)
)
COMMENT = '角色表';



CREATE TABLE `TB_U_USER_GROUP` (
  `ID` VARCHAR(100) NOT NULL COMMENT '',
  `COMPANY_ID` VARCHAR(100) COMMENT 'CompanyID',
  `DELETED` INT(1) COMMENT '是否删除',
  `ADD_ACCOUNT` VARCHAR(100) COMMENT '创建人',
  `ADD_TIME` DATETIME COMMENT '创建时间',
  `EDIT_ACCOUNT` VARCHAR(100) COMMENT '修改人',
  `EDIT_TIME` DATETIME COMMENT '修改时间',
  `DELETE_ACCOUNT` VARCHAR(100) COMMENT '删除人',
  `DELETE_TIME` DATETIME COMMENT '删除时间',

  `USER_ID` VARCHAR(200) NOT NULL COMMENT '用户ID',
  `GROUP_ID` VARCHAR(200) NOT NULL COMMENT '用户组ID',

  PRIMARY KEY (`ID`)
)
COMMENT = '用户组 - 用户表';



CREATE TABLE `TB_U_USER_ROLE` (
  `ID` VARCHAR(100) NOT NULL COMMENT '',
  `COMPANY_ID` VARCHAR(100) COMMENT 'CompanyID',
  `DELETED` INT(1) COMMENT '是否删除',
  `ADD_ACCOUNT` VARCHAR(100) COMMENT '创建人',
  `ADD_TIME` DATETIME COMMENT '创建时间',
  `EDIT_ACCOUNT` VARCHAR(100) COMMENT '修改人',
  `EDIT_TIME` DATETIME COMMENT '修改时间',
  `DELETE_ACCOUNT` VARCHAR(100) COMMENT '删除人',
  `DELETE_TIME` DATETIME COMMENT '删除时间',

  `USER_ID` VARCHAR(200) NOT NULL COMMENT '用户ID',
  `ROLE_ID` VARCHAR(200) NOT NULL COMMENT '角色ID',

  PRIMARY KEY (`ID`)
)
COMMENT = '用户 - 角色表';



CREATE TABLE `TB_U_GROUP_ROLE` (
  `ID` VARCHAR(100) NOT NULL COMMENT '',
  `COMPANY_ID` VARCHAR(100) COMMENT 'CompanyID',
  `DELETED` INT(1) COMMENT '是否删除',
  `ADD_ACCOUNT` VARCHAR(100) COMMENT '创建人',
  `ADD_TIME` DATETIME COMMENT '创建时间',
  `EDIT_ACCOUNT` VARCHAR(100) COMMENT '修改人',
  `EDIT_TIME` DATETIME COMMENT '修改时间',
  `DELETE_ACCOUNT` VARCHAR(100) COMMENT '删除人',
  `DELETE_TIME` DATETIME COMMENT '删除时间',

  `GROUP_ID` VARCHAR(200) NOT NULL COMMENT '用户组ID',
  `ROLE_ID` VARCHAR(200) NOT NULL COMMENT '角色ID',

  PRIMARY KEY (`ID`)
)
COMMENT = '用户组 - 角色表';



CREATE TABLE `TB_U_PERMISSION` (
  `ID` VARCHAR(100) NOT NULL COMMENT '',
  `COMPANY_ID` VARCHAR(100) COMMENT 'CompanyID',
  `DELETED` INT(1) COMMENT '是否删除',
  `ADD_ACCOUNT` VARCHAR(100) COMMENT '创建人',
  `ADD_TIME` DATETIME COMMENT '创建时间',
  `EDIT_ACCOUNT` VARCHAR(100) COMMENT '修改人',
  `EDIT_TIME` DATETIME COMMENT '修改时间',
  `DELETE_ACCOUNT` VARCHAR(100) COMMENT '删除人',
  `DELETE_TIME` DATETIME COMMENT '删除时间',

  `CODE` VARCHAR(200) NOT NULL COMMENT '代码',
  `NAME` VARCHAR(200) NOT NULL COMMENT '名称',
  `MEMO` VARCHAR(500) COMMENT '备注',
  `STATUS` VARCHAR(10) NOT NULL COMMENT '状态（1 启用，0 停用）',

  `TYPE_` VARCHAR(10) NOT NULL COMMENT '类型（1 应用，2 页面，3 操作）',
  `URL` VARCHAR(500) COMMENT 'URL地址',

  `PARENT_ID` VARCHAR(10) NOT NULL COMMENT '父级ID', 
  `ORDER_` INT(11) NOT NULL COMMENT '排序',
  `LEVEL_` INT(11) NOT NULL COMMENT '层次',
  `LFT` INT(11) NOT NULL COMMENT '左索引',
  `RGT` INT(11) NOT NULL COMMENT '右索引',

  PRIMARY KEY (`ID`),
  UNIQUE KEY `UQ_CODE` (`COMPANY_ID`,`CODE`)
)
COMMENT = '权限表';



CREATE TABLE `TB_U_ROLE_PERMISSION` (
  `ID` VARCHAR(100) NOT NULL COMMENT '',
  `COMPANY_ID` VARCHAR(100) COMMENT 'CompanyID',
  `DELETED` INT(1) COMMENT '是否删除',
  `ADD_ACCOUNT` VARCHAR(100) COMMENT '创建人',
  `ADD_TIME` DATETIME COMMENT '创建时间',
  `EDIT_ACCOUNT` VARCHAR(100) COMMENT '修改人',
  `EDIT_TIME` DATETIME COMMENT '修改时间',
  `DELETE_ACCOUNT` VARCHAR(100) COMMENT '删除人',
  `DELETE_TIME` DATETIME COMMENT '删除时间',

  `ROLE_ID` VARCHAR(200) NOT NULL COMMENT '角色ID',
  `PERMISSION_ID` VARCHAR(200) NOT NULL COMMENT '权限ID',

  PRIMARY KEY (`ID`)
)
COMMENT = '角色 - 权限表';




insert into TB_U_USER (ID, DELETED, USERNAME, PASSWORD, ENABLED, ACCOUNT_NON_EXPIRED, ACCOUNT_NON_LOCKED, CREDENTIALS_NON_EXPIRED, NAME, STATUS) 
values ('1', 1, 'admin', 'admin', 1, 1, 1, 1, 'Admin', '1');

commit;


insert into TB_U_GROUP (ID, DELETED, CODE, NAME, STATUS) 
values ('1', 1, 'users', '所有用户', '1');

commit;


insert into TB_U_ROLE (ID, DELETED, CODE, NAME, STATUS) 
values ('1', 1, 'administrator', '超级管理员', '1');
insert into TB_U_ROLE (ID, DELETED, CODE, NAME, STATUS) 
values ('2', 1, 'user', '普通用户', '1');

commit;


insert into TB_U_USER_GROUP (ID, DELETED, USER_ID, GROUP_ID) 
values ('1_1', 1, '1', '1');

commit;


insert into TB_U_USER_ROLE (ID, DELETED, USER_ID, ROLE_ID) 
values ('1_1', 1, '1', '1');

insert into TB_U_USER_ROLE (ID, DELETED, USER_ID, ROLE_ID) 
values ('1_2', 1, '1', '2');

commit;


insert into TB_U_GROUP_ROLE (ID, DELETED, GROUP_ID, ROLE_ID) 
values ('1', 1, '1', '2');

commit;


insert into TB_U_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, URL, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) 
values ('1', 1, 'client', 'Client', '1', '1', '', '0', 1, 1, 1, 10);

insert into TB_U_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, URL, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) 
values ('10000', 1, 'admin.system', '系统管理', '1', '2', '', '1', 1000, 2, 2, 9);

insert into TB_U_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, URL, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) 
values ('10100', 1, 'admin.system.user', '用户管理', '1', '2', '', '10000', 10100, 3, 3, 4);
insert into TB_U_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, URL, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) 
values ('10200', 1, 'admin.system.role', '角色管理', '1', '2', '', '10000', 10200, 3, 5, 6);
insert into TB_U_PERMISSION (ID, DELETED, CODE, NAME, STATUS, TYPE_, URL, PARENT_ID, ORDER_, LEVEL_, LFT, RGT) 
values ('10300', 1, 'admin.system.permission', '权限管理', '1', '2', '', '10000', 10300, 3, 7, 8);

commit;


insert into TB_U_ROLE_PERMISSION (ID, DELETED, ROLE_ID, PERMISSION_ID) 
values ('2_1', 1, '2', '1');

insert into TB_U_ROLE_PERMISSION (ID, DELETED, ROLE_ID, PERMISSION_ID) 
select CONCAT('1_', ID), 1, '1', ID from TB_U_PERMISSION;

commit;
