10.部门管理
1.更改数据库sys_dept sys_permission2.Spring Security防止点击劫持攻击3.登录使用记住我功能4.添加部门管理页面5.实现部门管理的增删改查
5.1 添加依赖包和工具类5.2 查询部门列表5.3 添加部门信息5.4 修改部门信息5.5 删除部门信息
建议配合视频学习食用(3-1~3-8):
https://www.bilibili.com/video/BV1rr4y1F7Y2?p=1
菜单栏与内容栏是分层的,添加防止点击劫持攻击可以将子页面显示到右面的区域中 
修改spring-security.xml文件,在http标签内添加
3.登录使用记住我功能
修改spring-security.xml文件,在http标签内添加
在login.jsp页面修改
4.1在springmvc.xml修改jsp文件的路径
4.2添加deptManager.jsp文件
deptManager.jsp
<%--
Created by IntelliJ IDEA.
User: 12917
Date: 2022/1/17
Time: 20:49
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
layui
<%-- 搜索条件区域 --%>
<%-- 头部工具栏区域 --%>
<%-- 表格区域 --%>
<%-- 行工具栏区域 --%>
<%-- 添加和修改窗口 --%>
4.3在hotel-manager下新建页面控制文件PageController.java
package com.manong.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/admin")
public class PageController {
@RequestMapping("/toDeptManager")
public String toDeptManager(){
return "dept/deptManager";
}
}
4.5修改数据库sys_permission表
4.6效果
Dept–>DeptVo–>DeptMapper–>DeptMapper.xml–>DeptService–>DeptServiceImpl–>DeptController—>deptManager.jsp
5.1 添加依赖包和工具类对于DeptVo 的分页需要加载PageHelper依赖于插件
在hotel-parent下的pom.xml下添加
在hotel-dao的mybatis-config.xml文件下添加
添加工具类DataGridViewResult.java 部门数据列表显示
package com.manong.utils;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
public class DataGridViewResult {
private Integer code = 0;
private String msg = "";
private Long count;
private Object data;
public DataGridViewResult(Long count, Object data) {
this.count = count;
this.data = data;
}
public DataGridViewResult(Object data) {
this.data = data;
}
}
5.2 查询部门列表
1.添加Dept,DeptVo的实现类
package com.manong.entity;
import lombok.Data;
import java.util.Date;
@Data
public class Dept {
private Integer id;
private String deptName;
private String address;
private Date createDate;
private String remark;
}
package com.manong.vo;
import com.manong.entity.Dept;
import lombok.Data;
@Data
public class DeptVo extends Dept {
private Integer page;//当前页码
private Integer limit;//每页显示数量
}
2.在dao层添加DeptMapper.java接口及DeptMapper.xml实现文件
List findDeptList(DeptVo deptVo);
3.在service层添加DeptService.java接口及DeptServiceImpl.java实现类
List findDeptList(DeptVo deptVo);
public List findDeptList(DeptVo deptVo) {
return deptMapper.findDeptList(deptVo);
}
4.在manager层添加DeptController.java类
@RequestMapping("/list")
public DataGridViewResult list(DeptVo deptVo){
//设置分页信息
PageHelper.startPage(deptVo.getPage(),deptVo.getLimit());
//调用查询部门列表的方法
List deptList = deptService.findDeptList(deptVo);
//创建分页对象
PageInfo pageInfo = new PageInfo(deptList);
//返回数据
return new DataGridViewResult(pageInfo.getTotal(),pageInfo.getList());
}
5.修改页面提交地址
deptManager.jsp
1.在dao层添加DeptMapper.java接口及DeptMapper.xml实现文件
int insert(Dept record);
insert into sys_dept (deptName, address, createDate, remark) values (#{deptName,jdbcType=VARCHAR}, #{address,jdbcType=VARCHAR}, #{createDate,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR})
2.在service层添加DeptService.java接口及DeptServiceImpl.java实现类
int insert(Dept record);
@Override
public int insert(Dept record) {
record.setCreateDate(new Date());
return deptMapper.insert(record);
}
3.在manager层添加DeptController.java类
@RequestMapping("/addDept")
public String addDept(Dept dept){
Map map = new HashMap();
if(deptService.insert(dept)>0){
map.put(SystemConstants.SUCCESS,true);
map.put(SystemConstants.MESSAGE,"添加成功");
}else{
map.put(SystemConstants.SUCCESS,false);
map.put(SystemConstants.MESSAGE,"添加失败");
}
return JSON.toJSONString(map);
}
5.4 修改部门信息
1.在dao层添加DeptMapper.java接口及DeptMapper.xml实现文件
int updateDept(Dept record);
update sys_dept where id = #{id} deptName = #{deptName,jdbcType=VARCHAR}, address = #{address,jdbcType=VARCHAR}, createDate = #{createDate,jdbcType=TIMESTAMP}, remark = #{remark,jdbcType=VARCHAR},
2.在service层添加DeptService.java接口及DeptServiceImpl.java实现类
int updateDept(Dept record);
@Override
public int updateDept(Dept dept) {
return deptMapper.updateDept(dept);
}
3.在manager层添加DeptController.java类
@RequestMapping("/updateDept")
public String updateDept(Dept dept){
Map map = new HashMap();
if(deptService.updateDept(dept)>0){
map.put(SystemConstants.SUCCESS,true);
map.put(SystemConstants.MESSAGE,"修改成功");
}else{
map.put(SystemConstants.SUCCESS,false);
map.put(SystemConstants.MESSAGE,"修改失败");
}
return JSON.toJSONString(map);
}
5.5 删除部门信息
1.删除前先判断该部门下有没有用户
SysUserMapper.java–>SysUserService.java->SysUserServiceImpl.java->DeptController.java增加一个getUserCountByDept方法
@Select("select count(1) from sys_user where deptId = #{deptId}")
int getUserCountByDeptId(Integer deptId);
int getUserCountByDeptId(Integer deptId);
public int getUserCountByDeptId(Integer deptId) {
return userMapper.getUserCountByDeptId(deptId);
}
@Resource
private SysUserService userService;
@RequestMapping("/checkDeptHasUser")
public String checkDeptHasUser(Integer deptId){
Map map = new HashMap();
if(userService.getUserCountByDeptId(deptId)>0){
map.put(SystemConstants.EXIST,true);
map.put(SystemConstants.MESSAGE,"该部门下存在用户信息,无法删除");
}else{
map.put(SystemConstants.EXIST,false);
}
return JSON.toJSONString(map);
}
2.在dao层添加DeptMapper.java接口及DeptMapper.xml实现文件
int deleteById(Integer id);
delete from sys_dept where id = #{id}
3.在service层添加DeptService.java接口及DeptServiceImpl.java实现类
int deleteById(Integer id);
@Override
public int deleteById(Integer id) {
return deptMapper.deleteById(id);
}
4.在manager层添加DeptController.java类
@RequestMapping("/deleteById")
public String deleteById(Integer id){
Map map = new HashMap();
if(deptService.deleteById(id)>0){
map.put(SystemConstants.SUCCESS,true);
map.put(SystemConstants.MESSAGE,"删除成功");
}else{
map.put(SystemConstants.SUCCESS,false);
map.put(SystemConstants.MESSAGE,"删除失败");
}
return JSON.toJSONString(map);
}



