基于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版权协议,转载请附上原文出处链接和本声明。