基于SSM框架用户管理系统的用户角色功能

一、简介

每个用户可以拥有用户角色,用户角色分为管理员和普通用户,管理员可以对其他成员分配用户角色。

二、功能实现

1.实体类创建

Role:

package com.guang.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Role {
    private int id;
    private String rolename;
    private String roledesc;

}

UserRole:

package com.guang.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserRole {
    private int id;
    private int userId;
    private int roleId;
}

2.dao层实现

定义方法
RoleDao:

package com.guang.dao;

import com.guang.bean.Role;
import com.guang.bean.UserRole;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface RoleDao {
    //根据用户id查询角色的id
    List<Integer> findRoleIdByUserId(@Param("userId") int userId);

    //根据用户id查询角色
    List<Role> findRoleByUserId(@Param("id") int id);

    //为用户添加角色
    void addRole(UserRole userRole);


}

连接数据库,实现sql语句
RoleMapper.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.guang.dao.RoleDao">

    <select id="findRoleIdByUserId" parameterType="int" resultType="int">
        select roleId from tb_userRole where userId =#{userId}
    </select>
    
    <select id="findRoleByUserId" parameterType="int" resultType="role">
        select *from tb_role where id not in(select roleId from tb_userRole where userId =#{id})
    </select>

    <insert id="addRole" parameterType="userRole">
        insert into tb_userRole (userId,roleId) values (#{userId},#{roleId})
    </insert>
</mapper>

3.service层实现

RoleService:

package com.guang.service;

import com.guang.bean.Role;

import java.util.List;

public interface RoleService {
    List<Integer> findRoleId(int userId);

    List<Role> findRoleByUserId(int id);

    void add(List<Integer> ids,String userId);


}

RoleServiceImpl:

package com.guang.service;

import com.guang.bean.Role;
import com.guang.bean.UserRole;
import com.guang.dao.RoleDao;
import com.guang.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class RoleServiceImpl implements RoleService{

    @Autowired
    private RoleDao roleDao;
    @Override
    public List<Integer> findRoleId(int userId) {
        return roleDao.findRoleIdByUserId(userId);
    }

    @Override
    public List<Role> findRoleByUserId(int id) {
        return roleDao.findRoleByUserId(id);
    }

    @Override
    public void add(List<Integer> ids, String userId) {
        for (Integer id : ids) {
            UserRole userRole = new UserRole();
            userRole.setUserId(Integer.parseInt(userId));
            userRole.setRoleId(id);
            roleDao.addRole(userRole);
        }
    }
}

4.controller层实现


    //跳转到user-role-add页面
    @RequestMapping("toAddRole.do")
    public ModelAndView toAddRole(int id){
        List<Role> roleList = roleService.findRoleByUserId(id);

        ModelAndView mv = new ModelAndView();
        mv.addObject("roles",roleList);
        mv.addObject("id",id);
        mv.setViewName("user-role-add");
        return mv;
    }

    //实现角色添加功能
    @RequestMapping("addRole.do")
    @ResponseBody
    public String add(String roleList,String userId){
        String []strs = roleList.split(",");
        List<Integer> ids = new ArrayList<>();
        for (String str : strs) {
            ids.add(Integer.parseInt(str));
        }
        roleService.add(ids,userId);
        return "";

    }

三、成果展示

新增了添加角色按钮:
在这里插入图片描述
管理员可以对其他成员进行角色的添加:
在这里插入图片描述
显示添加角色的roleId
在这里插入图片描述
显示添加角色的userId
在这里插入图片描述
添加成功
在这里插入图片描述


版权声明:本文为JZ11111原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。