IRoleDao
public interface IRoleDao {
@Select("select * from role")
List<Role> findAll() throws Exception;
//根据用户id查询出所有对应的角色
@Select(("select * from role where id in (select roleId from users_role where userId=#{userId})"))
@Results({
@Result(id = true, property = "id", column = "id"),
@Result(property = "roleName", column = "roleName"),
@Result(property = "roleDesc", column = "roleDesc"),
@Result(property = "permissions", column = "id", javaType = java.util.List.class, many = @Many(select = "com.itheima.ssm.dao.IPermissionDao.findPermissionByRoleId")),
})
List<Role> findRoleByUserId(String userId) throws Exception;
@Insert("insert into role (roleName, roleDesc) values(#{roleName}, #{roleDesc})")
void save(Role role) throws Exception;
@Select("select * from role where id = #{roleId}")
@Results({
@Result(id = true, property = "id", column = "id"),
@Result(property = "roleName", column = "roleName"),
@Result(property = "roleDesc", column = "roleDesc"),
@Result(property = "permissions", column = "id", javaType = java.util.List.class, many = @Many(select = "com.itheima.ssm.dao.IPermissionDao.findPermissionByRoleId"))
})
Role findById(int roleId);
@Delete(("delete from users_role where roleId = #{roleId}"))
void deleteFromUser_RoleByRoleId(int roleId);
@Delete(("delete from role_permission where roleId = #{roleId}"))
void deleteFromRole_PermissionByRoleId(int roleId);
@Delete(("delete from role where id = #{roleId}"))
void deleteRoleById(int roleId);
@Select("select * from permission where id not in (select permissionId from role_permission where roleId = #{roleId})")
List<Permission> findOtherPermissions(int roleId) throws Exception;
@Insert("insert into role_permission (roleId, permissionId) values (#{roleId}, #{permissionId})")
void addPermissionToRole(@Param("roleId") int roleId, @Param("permissionId") int permissionId);
}
IPermissionDao
public interface IPermissionDao {
@Select("select * from permission where id in (select permissionId from role_permission where roleId = #{id})")
public List<Permission> findPermissionByRoleId(int id) throws Exception;
@Select("select * from permission")
List<Permission> findAll() throws Exception;
@Insert("insert into permission(permissionName, url) values(#{permissionName}, #{url})")
void save(Permission permission);
}
Role
public class Role {
private String id;
private String roleName;
private String roleDesc;
private List<Permission> permissions;
private List<UserInfo> users;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public String getRoleDesc() {
return roleDesc;
}
public void setRoleDesc(String roleDesc) {
this.roleDesc = roleDesc;
}
public List<Permission> getPermissions() {
return permissions;
}
public void setPermissions(List<Permission> permissions) {
this.permissions = permissions;
}
public List<UserInfo> getUsers() {
return users;
}
public void setUsers(List<UserInfo> users) {
this.users = users;
}
}
Permission
public class Permission {
private String id;
private String permissionName;
private String url;
private List<Role> roles;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPermissionName() {
return permissionName;
}
public void setPermissionName(String permissionName) {
this.permissionName = permissionName;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public List<Role> getRoles() {
return roles;
}
public void setRoles(List<Role> roles) {
this.roles = roles;
}
}