@@ -0,0 +1,65 @@ | |||||
# 用户表 | |||||
CREATE TABLE IF NOT EXISTS `sec_user` | |||||
( | |||||
`id` BIGINT(64) NOT NULL COMMENT '主键', | |||||
`username` VARCHAR(50) NOT NULL COMMENT '用户名', | |||||
`password` VARCHAR(60) NOT NULL COMMENT '密码', | |||||
`nickname` VARCHAR(255) DEFAULT NULL COMMENT '昵称', | |||||
`phone` VARCHAR(11) DEFAULT NULL COMMENT '手机', | |||||
`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱', | |||||
`birthday` BIGINT(13) DEFAULT NULL COMMENT '生日', | |||||
`sex` TINYINT(1) DEFAULT NULL COMMENT '性别,男-1,女-2', | |||||
`status` TINYINT(1) NOT NULL DEFAULT '1' COMMENT '状态,启用-1,禁用-0', | |||||
`create_time` BIGINT(13) NOT NULL COMMENT '创建时间', | |||||
`update_time` BIGINT(13) NOT NULL COMMENT '更新时间', | |||||
PRIMARY KEY (`id`), | |||||
UNIQUE KEY `username` (`username`), | |||||
UNIQUE KEY `phone` (`phone`), | |||||
UNIQUE KEY `email` (`email`) | |||||
) ENGINE = InnoDB | |||||
DEFAULT CHARSET = utf8 COMMENT '用户表'; | |||||
# 角色表 | |||||
CREATE TABLE IF NOT EXISTS `sec_role` | |||||
( | |||||
`id` BIGINT(64) NOT NULL COMMENT '主键', | |||||
`name` VARCHAR(50) NOT NULL COMMENT '角色名', | |||||
`description` VARCHAR(100) DEFAULT NULL COMMENT '描述', | |||||
`create_time` BIGINT(13) NOT NULL COMMENT '创建时间', | |||||
`update_time` BIGINT(13) NOT NULL COMMENT '更新时间', | |||||
PRIMARY KEY (`id`), | |||||
UNIQUE KEY `name` (`name`) | |||||
) ENGINE = InnoDB | |||||
DEFAULT CHARSET = utf8 COMMENT '角色表'; | |||||
# 权限表 | |||||
CREATE TABLE IF NOT EXISTS `sec_permission` | |||||
( | |||||
`id` BIGINT(64) NOT NULL COMMENT '主键', | |||||
`name` VARCHAR(50) NOT NULL COMMENT '权限名', | |||||
`href` VARCHAR(1000) DEFAULT NULL COMMENT '页面地址', | |||||
`type` TINYINT(1) NOT NULL COMMENT '权限类型,页面-1,按钮-2', | |||||
`permission` VARCHAR(50) DEFAULT NULL COMMENT '权限表达式', | |||||
`sort` INT(11) NOT NULL COMMENT '排序', | |||||
`parent_id` BIGINT(64) NOT NULL COMMENT '父级id', | |||||
PRIMARY KEY (`id`) | |||||
) ENGINE = InnoDB | |||||
DEFAULT CHARSET = utf8 COMMENT '权限表'; | |||||
# 用户角色关系表 | |||||
CREATE TABLE IF NOT EXISTS `sec_user_role` | |||||
( | |||||
`user_id` BIGINT(64) NOT NULL COMMENT '用户主键', | |||||
`role_id` BIGINT(64) NOT NULL COMMENT '角色主键', | |||||
PRIMARY KEY (`user_id`, `role_id`) | |||||
) ENGINE = InnoDB | |||||
DEFAULT CHARSET = utf8 COMMENT '用户角色关系表'; | |||||
# 角色权限关系表 | |||||
CREATE TABLE IF NOT EXISTS `sec_role_permission` | |||||
( | |||||
`role_id` BIGINT(64) NOT NULL COMMENT '角色主键', | |||||
`permission_id` BIGINT(64) NOT NULL COMMENT '权限主键', | |||||
PRIMARY KEY (`role_id`, `permission_id`) | |||||
) ENGINE = InnoDB | |||||
DEFAULT CHARSET = utf8 COMMENT '角色权限关系表'; |
@@ -0,0 +1,59 @@ | |||||
package com.xkcoding.rbac.security.model; | |||||
import lombok.Data; | |||||
import javax.persistence.Entity; | |||||
import javax.persistence.Table; | |||||
/** | |||||
* <p> | |||||
* 权限 | |||||
* </p> | |||||
* | |||||
* @package: com.xkcoding.rbac.security.model | |||||
* @description: 权限 | |||||
* @author: yangkai.shen | |||||
* @date: Created in 2018-12-07 16:04 | |||||
* @copyright: Copyright (c) 2018 | |||||
* @version: V1.0 | |||||
* @modified: yangkai.shen | |||||
*/ | |||||
@Data | |||||
@Entity | |||||
@Table(name = "sec_permission") | |||||
public class Permission { | |||||
/** | |||||
* 主键 | |||||
*/ | |||||
private Long id; | |||||
/** | |||||
* 权限名 | |||||
*/ | |||||
private String name; | |||||
/** | |||||
* 页面地址 | |||||
*/ | |||||
private String href; | |||||
/** | |||||
* 权限类型,页面-1,按钮-2 | |||||
*/ | |||||
private String type; | |||||
/** | |||||
* 权限表达式 | |||||
*/ | |||||
private String permission; | |||||
/** | |||||
* 排序 | |||||
*/ | |||||
private String sort; | |||||
/** | |||||
* 父级id | |||||
*/ | |||||
private String parent_id; | |||||
} |
@@ -0,0 +1,54 @@ | |||||
package com.xkcoding.rbac.security.model; | |||||
import lombok.Data; | |||||
import javax.persistence.Column; | |||||
import javax.persistence.Entity; | |||||
import javax.persistence.Id; | |||||
import javax.persistence.Table; | |||||
/** | |||||
* <p> | |||||
* 角色 | |||||
* </p> | |||||
* | |||||
* @package: com.xkcoding.rbac.security.model | |||||
* @description: 角色 | |||||
* @author: yangkai.shen | |||||
* @date: Created in 2018-12-07 15:45 | |||||
* @copyright: Copyright (c) 2018 | |||||
* @version: V1.0 | |||||
* @modified: yangkai.shen | |||||
*/ | |||||
@Data | |||||
@Entity | |||||
@Table(name = "sec_role") | |||||
public class Role { | |||||
/** | |||||
* 主键 | |||||
*/ | |||||
@Id | |||||
private Long id; | |||||
/** | |||||
* 角色名 | |||||
*/ | |||||
private String name; | |||||
/** | |||||
* 描述 | |||||
*/ | |||||
private String description; | |||||
/** | |||||
* 创建时间 | |||||
*/ | |||||
@Column(name = "create_time") | |||||
private Long createTime; | |||||
/** | |||||
* 更新时间 | |||||
*/ | |||||
@Column(name = "update_time") | |||||
private Long updateTime; | |||||
} |
@@ -0,0 +1,85 @@ | |||||
package com.xkcoding.rbac.security.model; | |||||
import lombok.Data; | |||||
import javax.persistence.Column; | |||||
import javax.persistence.Entity; | |||||
import javax.persistence.Id; | |||||
import javax.persistence.Table; | |||||
/** | |||||
* <p> | |||||
* 用户 | |||||
* </p> | |||||
* | |||||
* @package: com.xkcoding.rbac.security.model | |||||
* @description: 用户 | |||||
* @author: yangkai.shen | |||||
* @date: Created in 2018-12-07 16:00 | |||||
* @copyright: Copyright (c) 2018 | |||||
* @version: V1.0 | |||||
* @modified: yangkai.shen | |||||
*/ | |||||
@Data | |||||
@Entity | |||||
@Table(name = "sec_user") | |||||
public class User { | |||||
/** | |||||
* 主键 | |||||
*/ | |||||
@Id | |||||
private Long id; | |||||
/** | |||||
* 用户名 | |||||
*/ | |||||
private String username; | |||||
/** | |||||
* 密码 | |||||
*/ | |||||
private String password; | |||||
/** | |||||
* 昵称 | |||||
*/ | |||||
private String nickname; | |||||
/** | |||||
* 手机 | |||||
*/ | |||||
private String phone; | |||||
/** | |||||
* 邮箱 | |||||
*/ | |||||
private String email; | |||||
/** | |||||
* 生日 | |||||
*/ | |||||
private Long birthday; | |||||
/** | |||||
* 性别,男-1,女-2 | |||||
*/ | |||||
private Integer sex; | |||||
/** | |||||
* 状态,启用-1,禁用-0 | |||||
*/ | |||||
private Integer status; | |||||
/** | |||||
* 创建时间 | |||||
*/ | |||||
@Column(name = "create_time") | |||||
private Long createTime; | |||||
/** | |||||
* 更新时间 | |||||
*/ | |||||
@Column(name = "update_time") | |||||
private Long updateTime; | |||||
} |
@@ -0,0 +1,21 @@ | |||||
package com.xkcoding.rbac.security.repository; | |||||
import com.xkcoding.rbac.security.model.Permission; | |||||
import org.springframework.data.jpa.domain.Specification; | |||||
import org.springframework.data.jpa.repository.JpaRepository; | |||||
/** | |||||
* <p> | |||||
* 权限 DAO | |||||
* </p> | |||||
* | |||||
* @package: com.xkcoding.rbac.security.repository | |||||
* @description: 权限 DAO | |||||
* @author: yangkai.shen | |||||
* @date: Created in 2018-12-07 16:21 | |||||
* @copyright: Copyright (c) 2018 | |||||
* @version: V1.0 | |||||
* @modified: yangkai.shen | |||||
*/ | |||||
public interface PermissionDao extends JpaRepository<Permission, Long>, Specification<Permission> { | |||||
} |
@@ -0,0 +1,21 @@ | |||||
package com.xkcoding.rbac.security.repository; | |||||
import com.xkcoding.rbac.security.model.Role; | |||||
import org.springframework.data.jpa.domain.Specification; | |||||
import org.springframework.data.jpa.repository.JpaRepository; | |||||
/** | |||||
* <p> | |||||
* 角色 DAO | |||||
* </p> | |||||
* | |||||
* @package: com.xkcoding.rbac.security.repository | |||||
* @description: 角色 DAO | |||||
* @author: yangkai.shen | |||||
* @date: Created in 2018-12-07 16:20 | |||||
* @copyright: Copyright (c) 2018 | |||||
* @version: V1.0 | |||||
* @modified: yangkai.shen | |||||
*/ | |||||
public interface RoleDao extends JpaRepository<Role, Long>, Specification<Role> { | |||||
} |
@@ -0,0 +1,21 @@ | |||||
package com.xkcoding.rbac.security.repository; | |||||
import com.xkcoding.rbac.security.model.User; | |||||
import org.springframework.data.jpa.domain.Specification; | |||||
import org.springframework.data.jpa.repository.JpaRepository; | |||||
/** | |||||
* <p> | |||||
* 用户 DAO | |||||
* </p> | |||||
* | |||||
* @package: com.xkcoding.rbac.security.repository | |||||
* @description: 用户 DAO | |||||
* @author: yangkai.shen | |||||
* @date: Created in 2018-12-07 16:18 | |||||
* @copyright: Copyright (c) 2018 | |||||
* @version: V1.0 | |||||
* @modified: yangkai.shen | |||||
*/ | |||||
public interface UserDao extends JpaRepository<User, Long>, Specification<User> { | |||||
} |