@@ -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> { | |||
} |