加入了role实体类和两张表来描述用户的具体身份
package com.bean;
public class Role {
private int id;
private String username;
private String roledesc;
@Override
public String toString() {
return "Role{" +
"id=" + id +
", username='" + username + '\'' +
", roledesc='" + roledesc + '\'' +
'}';
}
public String getUsername() {
return username;
}
public Role(int id, String username, String roledesc) {
this.id = id;
this.username = username;
this.roledesc = roledesc;
}
public void setUsername(String username) {
this.username = username;
}
public String getRoledesc() {
return roledesc;
}
public void setRoledesc(String roledesc) {
this.roledesc = roledesc;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
数据库语句
<?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.dao.RoleDao" >
<select id="findRoleIdByUserId" parameterType="int" resultType="int">
select roleId from user_role where userId=#{userId}
</select>
<select id="findRoleByUserId" parameterType="int" resultType="role">
SELECT * FROM role WHERE id NOT IN (SELECT roleId FROM user_role WHERE userId=#{id})
</select>
</mapper>
package com.service.impl;
import com.bean.Role;
import com.dao.RoleDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.service.IRoleService;
import java.util.List;
@Service
public class RoleService implements IRoleService {
@Autowired
private RoleDao roleDao;
@Override
public List<Integer> finRoleId(int userId) {
return roleDao.findRoleIdByUserId(userId);
}
@Override
public List<Role> finRoleByUserId(int id) {
return roleDao.findRoleByUserId(id);
}
@Override
@Override
public void addRoles(int id) {
roleDao.addRoles(id);
}
}
@RequestMapping("toAddRole.do")
public ModelAndView toAddRole(int id){
List<Role> roleList=roleService.finRoleByUserId(id);
ModelAndView modelAndView=new ModelAndView();
modelAndView.addObject("roles",roleList);
modelAndView.setViewName("user-role-add");
return modelAndView;
}
@RequestMapping("addRoles.do")
public String addRoles(int id){
roleService.addRoles(id);
return "redirect:findAllUser.do";
}
function setSidebarActive(tagUri) {
var liObj = $("#" + tagUri);
if (liObj.length > 0) {
liObj.parent().parent().addClass("active");
liObj.addClass("active");
}
}
function addRoles() {
var checkedNum=$("input[name='roleId']:checked").length;
if (checkedNum==0) {
alert("请至少选择一个角色进行添加!");
return;
}
if (confirm("你确认要添加这些角色吗?")){
var roleList=new Array();
$("input[name='roleId']:checked").each(
function () {
roleList.push($(this).val())
}
);
alert(roleList);
$.ajax({
type:"post",
url: "${pageContext.request.contextPath}/user/addRoles.do",
data:{userList:roleList.toString()},
success:function () {
alert("添加成功");
location.reload();
},
error:function () {
alert("添加失败");
}
})
}
}