基于springboot+redis+bootstrap+mysql开发一套属于自己的分布式springcloud云权限架构(九)【权限架构生产者(角色管理)】

      在第七章我们完成了对数据字典的集成,本章我们将完成角色管理的集成工作,首先打开我们的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


猜你喜欢

转载自blog.csdn.net/linzhefeng89/article/details/79346947