在第七章我们完成了对数据字典的集成,本章我们将完成角色管理的集成工作,首先打开我们的rbac-produce工程,接着在com/produce/sys/dao目录底下创建一个UserRoleDao.java接口内容如下:
package com.produce.sys.dao;
import com.base.entity.QueryUserRole;
import com.base.entity.UserRole;
import com.produce.common.base.dao.GenericDao;
/**
*@author linzf
**/
public interface UserRoleDao extends GenericDao<UserRole, QueryUserRole> {
/**
* 功能描述:获取权限菜单数据
* @param entity
* @return
*/
UserRole getUserRoleAssociate(UserRole entity);
}
接着在我们的mapper文件夹底下创建一个mybatis_userRole.xml文件,文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.produce.sys.dao.UserRoleDao">
<resultMap type="com.base.entity.UserRole" id="UserRoleMap">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="roleName" column="role_name"/>
</resultMap>
<resultMap type="com.base.entity.UserRole" id="UserRoleTreeMap">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="roleName" column="role_name"/>
<collection property="treeList" ofType="com.base.entity.Tree" javaType="java.util.ArrayList">
<id property="id" column="tree_id"/>
<result property="code" column="code"/>
<result property="icon" column="icon"/>
<result property="name" column="tree_name"/>
<result property="pId" column="p_id"/>
<result property="treeOrder" column="tree_order"/>
<result property="url" column="url"/>
<result property="state" column="state"/>
</collection>
</resultMap>
<select id="getUserRoleAssociate" parameterType="com.base.entity.UserRole" resultMap="UserRoleTreeMap">
SELECT ur.*,t.id as tree_id,t.code,t.icon,t.name as tree_name,t.p_id,t.tree_order,t.url,t.state FROM user_role ur inner join role_associate_tree rat on ur.id = rat.role_id inner join tree t on rat.tree_id = t.id
WHERE ur.id=#{id}
</select>
<!--根据主键获取对象-->
<select id="get" parameterType="com.base.entity.UserRole" resultMap="UserRoleTreeMap">
SELECT ur.* FROM user_role ur WHERE ur.id=#{id}
</select>
<!--保存-->
<insert id="save" parameterType="com.base.entity.UserRole" useGeneratedKeys="true" keyProperty="id">
INSERT INTO user_role(name,role_name)
VALUES(#{name},#{roleName})
</insert>
<!--修改-->
<update id="update" parameterType="com.base.entity.UserRole">
UPDATE user_role SET name=#{name},role_name=#{roleName}
WHERE id=#{id}
</update>
<!--删除-->
<delete id="delete" parameterType="com.base.entity.UserRole">
DELETE FROM user_role WHERE id=#{id}
</delete>
<!--分页查询-->
<select id="findByPage" parameterType="com.base.entity.QueryUserRole" resultMap="UserRoleMap">
SELECT id,name,role_name FROM user_role
WHERE 1=1
<if test="name!=null and name!='' " >
AND name like concat(#{name},'%')
</if>
<if test="roleName!=null and roleName!='' " >
AND role_name like concat(#{roleName},'%')
</if>
<if test="sort!= null">
order by ${sort} ${order}
</if>
limit #{offset},#{limit}
</select>
<!--统计-->
<select id="count" parameterType="com.base.entity.QueryUserRole" resultType="int">
SELECT count(*) FROM user_role
WHERE 1=1
<if test="name!=null and name!='' " >
AND name like concat(#{name},'%')
</if>
<if test="roleName!=null and roleName!='' " >
AND role_name like concat(#{roleName},'%')
</if>
</select>
<!--查询-->
<select id="query" parameterType="com.base.entity.QueryUserRole" resultMap="UserRoleMap">
SELECT id,name,role_name FROM user_role
WHERE 1=1
<if test="name!=null and name!='' " >
AND name like concat(#{name},'%')
</if>
<if test="roleName!=null and roleName!='' " >
AND role_name like concat(#{roleName},'%')
</if>
<if test="sort!= null">
order by ${sort} ${order}
</if>
</select>
</mapper>
接着在com/produce/sys/service目录底下创建一个UserRoleService.java实现类内容如下:
package com.produce.sys.service;
import com.base.entity.QueryUserRole;
import com.base.entity.UserRole;
import com.produce.common.base.dao.GenericDao;
import com.produce.common.base.service.GenericService;
import com.produce.sys.dao.UserRoleDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
*@author linzf
**/
@Service("userRoleService")
@Transactional(rollbackFor={IllegalArgumentException.class})
public class UserRoleService extends GenericService<UserRole, QueryUserRole> {
@Autowired
@SuppressWarnings("SpringJavaAutowiringInspection")
private UserRoleDao userRoleDao;
@Override
protected GenericDao<UserRole, QueryUserRole> getDao() {
return userRoleDao;
}
/**
* 功能描述:获取权限菜单数据
* @param entity
* @return
*/
public UserRole getUserRoleAssociate(UserRole entity){
return userRoleDao.getUserRoleAssociate(entity);
}
}
最后在我们的com/produce/sys/controller底下创建我们的RoleController.java实现类内容如下:
package com.produce.sys.controller;
import com.base.entity.QueryUserRole;
import com.base.entity.UserRole;
import com.produce.common.base.controller.GenericController;
import com.produce.common.base.service.GenericService;
import com.produce.sys.service.UserRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/*
* 类描述:
* @auther linzf
* @create 2018/2/6 0006
*/
@RestController
@RequestMapping("/role")
public class RoleController extends GenericController<UserRole, QueryUserRole> {
@Autowired
private UserRoleService userRoleService;
@Override
protected GenericService<UserRole, QueryUserRole> getService() {
return userRoleService;
}
}
到此处我们完成了对角色管理的集成,接着启动我们的注册中心,链路中心同时启动我们的rbac-produce,接着直接访问我们的swagger工程地址:http://127.0.0.1:8100/swagger-ui.html#/,那么我们会看到如下的页面则表示我们的角色管理已经集成成功了。
到此为止的GitHub项目地址:https://github.com/185594-5-27/spring-cloud-rbac/tree/master-base-produce-role
上一篇文章地址:基于springboot+redis+bootstrap+mysql开发一套属于自己的分布式springcloud云权限架构(八)【权限架构生产者(swagger2集成)】
下一篇文章地址:基于springboot+redis+bootstrap+mysql开发一套属于自己的分布式springcloud云权限架构(十)【权限架构生产者(用户管理)】
QQ交流群:578746866