From 32e9c936d63754a727ef2da4eaf33a4c9bcc2c59 Mon Sep 17 00:00:00 2001 From: ppdxzz <2535414380@qq.com> Date: Tue, 18 Feb 2020 22:19:05 +0800 Subject: [PATCH] =?UTF-8?q?2020.2.18=20=E5=BC=80=E5=8F=91=E8=AE=BF?= =?UTF-8?q?=E5=AE=A2=E6=A8=A1=E5=9D=97=E5=90=8E=E5=8F=B0=E7=9A=84CRUD?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E5=AF=BC=E5=87=BA=E3=80=81=E6=B3=A8=E9=94=80?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/workspace.xml | 142 +++++++----- .../ppdxzz/controller/StudentController.java | 12 + .../ppdxzz/controller/VisitorController.java | 161 +++++++++++++ src/main/java/cn/ppdxzz/dao/StudentDao.java | 2 +- src/main/java/cn/ppdxzz/dao/VisitorDao.java | 55 +++++ src/main/java/cn/ppdxzz/domain/Visitor.java | 112 +++++++++ .../cn/ppdxzz/service/VisitorService.java | 26 +++ .../service/impl/VisitorServiceImpl.java | 101 +++++++++ src/main/webapp/WEB-INF/jsp/admin-edit.jsp | 8 + src/main/webapp/WEB-INF/jsp/main.jsp | 14 +- .../webapp/WEB-INF/jsp/regist_visitor.jsp | 17 ++ src/main/webapp/WEB-INF/jsp/student-add.jsp | 46 +++- src/main/webapp/WEB-INF/jsp/student-edit.jsp | 108 ++++++++- src/main/webapp/WEB-INF/jsp/student-list.jsp | 6 +- src/main/webapp/WEB-INF/jsp/visitor-list.jsp | 214 ++++++++++++++++++ .../webapp/WEB-INF/jsp/visitor-success.jsp | 19 ++ .../ppdxzz/controller/StudentController.class | Bin 5621 -> 5971 bytes target/classes/cn/ppdxzz/utils/LocalIp.class | Bin 0 -> 1255 bytes .../ppdxzz/controller/StudentController.class | Bin 5621 -> 5971 bytes target/hellossm/WEB-INF/jsp/admin-edit.jsp | 8 + target/hellossm/WEB-INF/jsp/main.jsp | 14 +- target/hellossm/WEB-INF/jsp/student-add.jsp | 63 +++++- target/hellossm/WEB-INF/jsp/student-edit.jsp | 108 ++++++++- target/hellossm/WEB-INF/jsp/student-list.jsp | 6 +- 宿管系统(SSM框架)日进度.md | 1 + 25 files changed, 1135 insertions(+), 108 deletions(-) create mode 100644 src/main/java/cn/ppdxzz/controller/VisitorController.java create mode 100644 src/main/java/cn/ppdxzz/dao/VisitorDao.java create mode 100644 src/main/java/cn/ppdxzz/domain/Visitor.java create mode 100644 src/main/java/cn/ppdxzz/service/VisitorService.java create mode 100644 src/main/java/cn/ppdxzz/service/impl/VisitorServiceImpl.java create mode 100644 src/main/webapp/WEB-INF/jsp/regist_visitor.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/visitor-list.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/visitor-success.jsp create mode 100644 target/classes/cn/ppdxzz/utils/LocalIp.class diff --git a/.idea/workspace.xml b/.idea/workspace.xml index f6abfcf..8b880b4 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -8,17 +8,16 @@ - - - - + + + - - - - - - + + + + + + @@ -76,12 +75,12 @@ + + + - - - @@ -89,8 +88,24 @@ + + + + + @@ -274,90 +294,90 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + @@ -378,10 +398,14 @@ - + + + + + - + diff --git a/src/main/java/cn/ppdxzz/controller/StudentController.java b/src/main/java/cn/ppdxzz/controller/StudentController.java index 5c04675..ecc6e9e 100644 --- a/src/main/java/cn/ppdxzz/controller/StudentController.java +++ b/src/main/java/cn/ppdxzz/controller/StudentController.java @@ -6,6 +6,7 @@ import com.github.pagehelper.PageInfo; import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; @@ -16,6 +17,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; +import java.io.UnsupportedEncodingException; import java.util.List; /** @@ -131,6 +133,16 @@ public class StudentController { } + @RequestMapping("/editStudent") + public ModelAndView editStudent(HttpServletRequest request) throws Exception { + ModelAndView mv = new ModelAndView(); + request.setCharacterEncoding("utf-8"); + String sno = request.getParameter("sno"); + Student stu = studentService.findBySno(sno); + mv.addObject("stu",stu); + mv.setViewName("student-edit"); + return mv; + } /** * 修改学生信息 * @param student diff --git a/src/main/java/cn/ppdxzz/controller/VisitorController.java b/src/main/java/cn/ppdxzz/controller/VisitorController.java new file mode 100644 index 0000000..c07980f --- /dev/null +++ b/src/main/java/cn/ppdxzz/controller/VisitorController.java @@ -0,0 +1,161 @@ +package cn.ppdxzz.controller; + +import cn.ppdxzz.domain.Visitor; +import cn.ppdxzz.service.VisitorService; +import com.github.pagehelper.PageInfo; +import org.apache.commons.io.IOUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.io.PrintWriter; +import java.io.UnsupportedEncodingException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.UUID; + +/** + * Description: + * + * @Date: 2020/2/18 16:26 + * @Author: PeiChen + */ +@Controller +@RequestMapping("/visitor") +public class VisitorController { + + private VisitorService visitorService; + + @Autowired + public void setVisitorService(VisitorService visitorService) { + this.visitorService = visitorService; + } + + @RequestMapping("/login") + public String register() { + return "regist_visitor"; + } + + /** + * 来访登记实现(C操作) + * @param visitor + * @return + * @throws Exception + */ + @RequestMapping("/add") + public ModelAndView addVisitor(Visitor visitor) throws Exception { + ModelAndView mv = new ModelAndView(); + if (visitor == null || visitor.getName() == null || visitor.getSno() == null || visitor.getPhone() == null || visitor.getPlace() == null) { + mv.addObject("error_msg","来访登记失败,请重新登记!"); + mv.setViewName("regist_visitor"); + return mv; + } + if (visitor.getId() == null || "".trim().equals(visitor.getId())) { + String uuid = UUID.randomUUID().toString().replace("-", ""); + visitor.setId(uuid); + } + String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + visitor.setBegin_date(date);//设置来访时间为提交来访登记时间 + //先设置离开时间为空串,后续注销时再修改为注销时系统时间 + if (visitor.getEnd_date() == null || "".trim().equals(visitor.getEnd_date())) { + visitor.setEnd_date(""); + } + visitorService.add(visitor); + mv.addObject("id",visitor.getId()); + mv.setViewName("visitor-success"); + return mv; + } + + /** + * 访客记录注销 + * @param request + * @return + * @throws Exception + */ + @RequestMapping("/logout") + public ModelAndView logout(HttpServletRequest request) throws Exception { + ModelAndView mv = new ModelAndView(); + String id = request.getParameter("id"); + if (id == null || "".trim().equals(id)) { + mv.addObject("logout_msg","系统繁忙,请稍后再试!"); + mv.setViewName("error_msg"); + } + String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + visitorService.logout(id,date); + mv.addObject("logout_msg","注销成功"); + mv.setViewName("regist_visitor"); + return mv; + } + + /** + * 管理员手动注销来访状态 + * @param request + * @param response + * @throws Exception + */ + @RequestMapping("/updateStatus") + public void updateStatus(HttpServletRequest request,HttpServletResponse response) throws Exception { + request.setCharacterEncoding("utf-8"); + response.setCharacterEncoding("utf-8"); + PrintWriter writer = response.getWriter(); + String id = request.getParameter("id"); + if (id == null || "".trim().equals(id)) { + writer.write("false"); + return; + } + String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + visitorService.logout(id,date); + writer.write("true"); + } + + /** + * 查询所有访客记录 + * @param page + * @param size + * @param request + * @param response + * @return + * @throws Exception + */ + @RequestMapping("/findAll") + public ModelAndView findAll(@RequestParam(name = "page",required = true,value = "1") int page, @RequestParam(name = "size",required = true,value = "4") int size,HttpServletRequest request,HttpServletResponse response) throws Exception { + request.setCharacterEncoding("utf-8"); + response.setCharacterEncoding("utf-8"); + ModelAndView mv = new ModelAndView(); + List visitors = null; + String keyword = request.getParameter("keyword"); + if (keyword == null || "".trim().equals(keyword) || keyword.length() == 0) { + visitors = visitorService.findAll(page,size); + }else { + visitors = visitorService.search(page,size,keyword); + } + PageInfo pageInfo = new PageInfo(visitors); + mv.addObject("pageInfo",pageInfo); + mv.setViewName("visitor-list"); + + return mv; + } + + /** + * 导出访客信息 + * @param response + * @throws Exception + */ + @RequestMapping("/visitorInfo") + public void export(HttpServletResponse response) throws Exception { + InputStream is = visitorService.getInputStream(); + response.setContentType("application/vnd.ms-excel"); + response.setHeader("contentDisposition","attachment;filename=visitorInfo.xls"); + ServletOutputStream outputStream = response.getOutputStream(); + IOUtils.copy(is,outputStream); + + } +} diff --git a/src/main/java/cn/ppdxzz/dao/StudentDao.java b/src/main/java/cn/ppdxzz/dao/StudentDao.java index 689e06d..d8da82e 100644 --- a/src/main/java/cn/ppdxzz/dao/StudentDao.java +++ b/src/main/java/cn/ppdxzz/dao/StudentDao.java @@ -56,7 +56,7 @@ public interface StudentDao { void delete(String sno) throws Exception; /** - * 修改学生信息 + * 根据id修改学生信息 * @param student * @throws Exception */ diff --git a/src/main/java/cn/ppdxzz/dao/VisitorDao.java b/src/main/java/cn/ppdxzz/dao/VisitorDao.java new file mode 100644 index 0000000..a4bb26f --- /dev/null +++ b/src/main/java/cn/ppdxzz/dao/VisitorDao.java @@ -0,0 +1,55 @@ +package cn.ppdxzz.dao; + +import cn.ppdxzz.domain.Visitor; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * Description:访客持久层 + * + * @Date: 2020/2/18 16:27 + * @Author: PeiChen + */ +@Repository +public interface VisitorDao { + + /** + * 登记到访信息 + * @param visitor + * @throws Exception + */ + @Insert("insert into visitors(id,name,sno,phone,place,begin_date,end_date,visit_result) values(#{id},#{name},#{sno},#{phone},#{place},#{begin_date},#{end_date},#{visit_result})") + void add(Visitor visitor) throws Exception; + + /** + * 按时间晚的优先显示查询所有访客记录 + * @return + * @throws Exception + */ + @Select("select * from visitors order by begin_date desc") + List findAll() throws Exception; + + /** + * 访客离开后修改离开时间(访客记录注销) + * @param id + * @param end_date + * @throws Exception + */ + @Update("update visitors set end_date = #{end_date} where id = #{id}") + void logout(@Param(value = "id") String id,@Param(value = "end_date") String end_date) throws Exception; + + /** + * 根据关键字模糊查询访客记录,并按时间倒序排列 + * @param keyword + * @return + * @throws Exception + */ + @Select("select * from visitors where name like '%${keyword}%' or sno like '%${keyword}%' or phone like '%${keyword}%' or place like '%${keyword}%' or begin_date like '%${keyword}%' or end_date like '%${keyword}%' or visit_result like '%${keyword}%' order by begin_date desc ") + List search(@Param(value = "keyword") String keyword) throws Exception; + +} diff --git a/src/main/java/cn/ppdxzz/domain/Visitor.java b/src/main/java/cn/ppdxzz/domain/Visitor.java new file mode 100644 index 0000000..e20cc25 --- /dev/null +++ b/src/main/java/cn/ppdxzz/domain/Visitor.java @@ -0,0 +1,112 @@ +package cn.ppdxzz.domain; + +import java.io.Serializable; + +/** + * Description:访客实体类 + * + * @Date: 2020/2/18 16:29 + * @Author: PeiChen + */ +public class Visitor implements Serializable { + private String id;//uuid 全球唯一id + private String name;//访客姓名 + private String sno;//访客学号 + private String phone;//联系方式 + private String place;//访问地址 + private String begin_date;//来访时间 + private String end_date;//离开时间 + private String visit_result;//到访原因 + + public Visitor() { + } + + public Visitor(String id, String name, String sno, String phone, String place, String begin_date, String end_date, String visit_result) { + this.id = id; + this.name = name; + this.sno = sno; + this.phone = phone; + this.place = place; + this.begin_date = begin_date; + this.end_date = end_date; + this.visit_result = visit_result; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSno() { + return sno; + } + + public void setSno(String sno) { + this.sno = sno; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPlace() { + return place; + } + + public void setPlace(String place) { + this.place = place; + } + + public String getBegin_date() { + return begin_date; + } + + public void setBegin_date(String begin_date) { + this.begin_date = begin_date; + } + + public String getEnd_date() { + return end_date; + } + + public void setEnd_date(String end_date) { + this.end_date = end_date; + } + + public String getVisit_result() { + return visit_result; + } + + public void setVisit_result(String visit_result) { + this.visit_result = visit_result; + } + + @Override + public String toString() { + return "Visitor{" + + "id='" + id + '\'' + + ", name='" + name + '\'' + + ", sno='" + sno + '\'' + + ", phone='" + phone + '\'' + + ", place='" + place + '\'' + + ", begin_date='" + begin_date + '\'' + + ", end_date='" + end_date + '\'' + + ", visit_result='" + visit_result + '\'' + + '}'; + } +} diff --git a/src/main/java/cn/ppdxzz/service/VisitorService.java b/src/main/java/cn/ppdxzz/service/VisitorService.java new file mode 100644 index 0000000..f68b0ea --- /dev/null +++ b/src/main/java/cn/ppdxzz/service/VisitorService.java @@ -0,0 +1,26 @@ +package cn.ppdxzz.service; + +import cn.ppdxzz.domain.Visitor; + +import java.io.InputStream; +import java.util.List; + +/** + * Description: + * + * @Date: 2020/2/18 18:27 + * @Author: PeiChen + */ +public interface VisitorService { + + void add(Visitor visitor) throws Exception; + + List findAll(int page,int size) throws Exception; + + List search(int page,int size,String keyword) throws Exception; + + void logout(String id,String end_date) throws Exception; + + InputStream getInputStream() throws Exception; + +} diff --git a/src/main/java/cn/ppdxzz/service/impl/VisitorServiceImpl.java b/src/main/java/cn/ppdxzz/service/impl/VisitorServiceImpl.java new file mode 100644 index 0000000..a870f19 --- /dev/null +++ b/src/main/java/cn/ppdxzz/service/impl/VisitorServiceImpl.java @@ -0,0 +1,101 @@ +package cn.ppdxzz.service.impl; + +import cn.ppdxzz.dao.VisitorDao; +import cn.ppdxzz.domain.Visitor; +import cn.ppdxzz.poi.WriteExcel; +import cn.ppdxzz.service.VisitorService; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; + +/** + * Description: + * + * @Date: 2020/2/18 18:50 + * @Author: PeiChen + */ +@Service("visitorService") +public class VisitorServiceImpl implements VisitorService { + + private VisitorDao visitorDao; + + @Autowired + public void setVisitorDao(VisitorDao visitorDao) { + this.visitorDao = visitorDao; + } + + /** + * 登记到访信息 + * @param visitor + * @throws Exception + */ + @Override + public void add(Visitor visitor) throws Exception { + visitorDao.add(visitor); + } + + /** + * 按时间晚的优先显示查询所有访客记录 + * @return + * @throws Exception + */ + @Override + public List findAll(int page, int size) throws Exception { + PageHelper.startPage(page,size); + return visitorDao.findAll(); + } + + /** + * 根据关键字模糊查询访客记录,并按时间倒序排列 + * @param keyword + * @return + * @throws Exception + */ + @Override + public List search(int page, int size, String keyword) throws Exception { + PageHelper.startPage(page,size); + return visitorDao.search(keyword); + } + + /** + * 访客离开后修改离开时间(访客注销) + * @param id + * @param end_date + * @throws Exception + */ + @Override + public void logout(String id, String end_date) throws Exception { + visitorDao.logout(id,end_date); + } + + /** + * 导出访客记录 + * @return + * @throws Exception + */ + @Override + public InputStream getInputStream() throws Exception { + //Excel中的每列列名,依次对应数据库的字段 + String[] title = new String[]{"ID","姓名","学号","联系方式","访问地址","来访时间","离开时间","来访原因"}; + List visitors = visitorDao.findAll(); + List datalist = new ArrayList<>(); + for (int i = 0; i < visitors.size(); i++) { + Object[] obj = new Object[8]; + obj[0] = visitors.get(i).getId(); + obj[1] = visitors.get(i).getName(); + obj[2] = visitors.get(i).getSno(); + obj[3] = visitors.get(i).getPhone(); + obj[4] = visitors.get(i).getPlace(); + obj[5] = visitors.get(i).getBegin_date(); + obj[6] = visitors.get(i).getEnd_date(); + obj[7] = visitors.get(i).getVisit_result(); + datalist.add(obj); + } + WriteExcel excel = new WriteExcel(title,datalist); + return excel.export(); + } +} diff --git a/src/main/webapp/WEB-INF/jsp/admin-edit.jsp b/src/main/webapp/WEB-INF/jsp/admin-edit.jsp index 75278b1..1f639fb 100644 --- a/src/main/webapp/WEB-INF/jsp/admin-edit.jsp +++ b/src/main/webapp/WEB-INF/jsp/admin-edit.jsp @@ -104,6 +104,13 @@ var name = $("#name").val().trim(); var phone = $("#phone").val().trim(); var description = $("#description").val().trim(); + layer.confirm('确定要修改吗',function (index) { + if (${sessionScope.adminInfo.power < 2}) {//非管理员不能修改管理员信息 + layer.msg('对不起,您权限不足'); + layer.close(index); + return false; + } + $.ajax({ url: "${pageContext.request.contextPath}/editAdmin",//要请求的服务器url //这是一个对象,表示请求的参数,两个参数:method=ajax&val=xxx,服务器可以通过request.getParameter()来获取 @@ -127,6 +134,7 @@ } } }); + }); } diff --git a/src/main/webapp/WEB-INF/jsp/main.jsp b/src/main/webapp/WEB-INF/jsp/main.jsp index 22ae37a..a1f4272 100644 --- a/src/main/webapp/WEB-INF/jsp/main.jsp +++ b/src/main/webapp/WEB-INF/jsp/main.jsp @@ -142,12 +142,20 @@
  • - 访客信息 + 访客信息 +
  • - + - 来访登记 + 来访登记(手机端) + +
  • +
  • + + + 访客日志 +
  • diff --git a/src/main/webapp/WEB-INF/jsp/regist_visitor.jsp b/src/main/webapp/WEB-INF/jsp/regist_visitor.jsp new file mode 100644 index 0000000..f93f95c --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/regist_visitor.jsp @@ -0,0 +1,17 @@ +<%-- + Created by IntelliJ IDEA. + User: user + Date: 2020/2/18 + Time: 15:49 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + Title + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/student-add.jsp b/src/main/webapp/WEB-INF/jsp/student-add.jsp index 1e36137..82bcb1a 100644 --- a/src/main/webapp/WEB-INF/jsp/student-add.jsp +++ b/src/main/webapp/WEB-INF/jsp/student-add.jsp @@ -91,7 +91,7 @@ - + 返回列表 @@ -99,6 +99,21 @@ diff --git a/src/main/webapp/WEB-INF/jsp/student-edit.jsp b/src/main/webapp/WEB-INF/jsp/student-edit.jsp index c733192..76fdad8 100644 --- a/src/main/webapp/WEB-INF/jsp/student-edit.jsp +++ b/src/main/webapp/WEB-INF/jsp/student-edit.jsp @@ -1,3 +1,4 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%-- Created by IntelliJ IDEA. User: user @@ -12,6 +13,7 @@ +
    @@ -19,18 +21,25 @@ + - + @@ -39,43 +48,118 @@ - + + + + + + + - + - + + + + + + - + - + - + + + + + + - + + + + + + + - - 返回列表 + + 返回列表
    + diff --git a/src/main/webapp/WEB-INF/jsp/student-list.jsp b/src/main/webapp/WEB-INF/jsp/student-list.jsp index fae5196..62d33fd 100644 --- a/src/main/webapp/WEB-INF/jsp/student-list.jsp +++ b/src/main/webapp/WEB-INF/jsp/student-list.jsp @@ -71,6 +71,7 @@ + 添加 导出 @@ -110,12 +111,9 @@ ${student.teacher} - + - - - diff --git a/src/main/webapp/WEB-INF/jsp/visitor-list.jsp b/src/main/webapp/WEB-INF/jsp/visitor-list.jsp new file mode 100644 index 0000000..93a5758 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/visitor-list.jsp @@ -0,0 +1,214 @@ +<%-- + Created by IntelliJ IDEA. + User: user + Date: 2020/2/18 + Time: 15:56 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + + + + + + + + + + + + + + + + +<%----%> +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    + + + 导出 + + 共有数据:${pageInfo.total} 条 + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ID姓名学号联系方式访问地址来访时间离开时间到访原因操作
    ${visitor.id}${visitor.name}${visitor.sno}${visitor.phone}${visitor.place}${visitor.begin_date}尚未离开${visitor.end_date}${visitor.visit_result} + + + +
    +
    +
    +
    + 共 ${pageInfo.pages} 页 当前页:${pageInfo.pageNum} / ${pageInfo.pages}  每页 + 条 +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + + + + + + ${i} + + + ${i} + + + + + + +
    +
    +
    +
    +
    +
    +
    + + + + diff --git a/src/main/webapp/WEB-INF/jsp/visitor-success.jsp b/src/main/webapp/WEB-INF/jsp/visitor-success.jsp new file mode 100644 index 0000000..99b4135 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/visitor-success.jsp @@ -0,0 +1,19 @@ +<%-- + Created by IntelliJ IDEA. + User: user + Date: 2020/2/18 + Time: 20:07 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Title + + + +

    恭喜您,来访登记成功!

    +
    +注销登记 + + diff --git a/target/classes/cn/ppdxzz/controller/StudentController.class b/target/classes/cn/ppdxzz/controller/StudentController.class index 89db37999a0e053575b684b898af4a9208bc4250..d57930cd20fcbd47f525fa42328a0d5dadf90ec8 100644 GIT binary patch delta 2523 zcmaJ@c~n$o6#u=Mf%lksAdXvrBp{0nn<$}3uH=H@7A1)-vW$fqDl@2=I@)68UQ?O4 z?`dihIyjoP5vG+bTG_r?wl9BlPUmEve)r9=bdGsE-tWGa2*wdJPjKXM=`~vTl-%HfyNTu*HgL*eb!>G;FuQvlcrv?6hJgc8PVjh6Ng)k?%bs z_KJ8`#6A)GMH~?EoQQ*xQZM3p4GnV2Aq|H$_(W|Kal{Hgj;c7O;spf}E_ZFEv)Wzk zteI0);Z%@N|5uW^^Klg?6j+DPt8mV8SIw+;sd%v=+ft?|FL}KoLzI`j=R)>I+MJbD z?&81(3QBr;2ZzLKvum9$cYbP-cdMG-HD7_5Cn(Uf+Ql|32vwDse(0~`I^-${sdZ1y z=&#}x9j~HE#cSS8YIZ_1PU?6aH432P6i(}S18=H$OUE#r(eXCk@&2Lq^z_5KI^M%s zo)P4dF{8@m)^QF^I^M?z+<$7>43|^KhhlM}NrA;(Q%l2ne5AnEl2%q(spDhR=y2nc zcH0SZ9iQSe9iNN$3lU$6_zE>qI=&Y58xa>oEW)=szQaZDMlII-J(|47wLy_T;71)l z;b#@U==c@CHQ2&@7EfOe7@)u;b)aUY&azPE@hgif$s@$k2&JBi2?HoY4Py`FQ`Z9l zxE=%frC<;SGfI*NaWzS_BkeFuZP`}Cnuri2AzQZS8VCz+A=?WU1w$m6>rk!=OI`pA z^1QPn)_4R&A091Ici881b0Vk#5zygedIjUpu*WQ&Mv3_1{V6!G>Z;#{KbN36q$a1viFopa#nuY1WlHP^8c|sI-sp38sgPji3Kj^Ju8mWc0FpIk)wdn*o zBM9=Ejz#T2P9exL7OEWGNHQLk$RwSI1l&E~NuGWiL+|kU_M9bKE!ZVXjCS;U@qnb8x;Y|CB%?<=p{rcApznZre0|Z@1=b{;RK*= z;VScydkmqI8ljF!vzz^}n2=`g=0}(bV;zTJ%J8E*i(*N)$3%xz_u8|<>iD7l3uro|e)H8Zy(>s3vLS8L-! zl3CPJcV!=Uu<*WgNhb+!MJIb+!bw=_(|qXJj0<*~C_dJjbEKFI=Rj(` znvrWbdl^oLm<(qewbW)r8O~InN1%p_jovyEkyfPn;V>b?9^*rlJicb*=^nl=MlYJ9hrhY$ReL1^xtKE_7`&xi*(*4NlpkpdIC|-RWXR}c z+Oz!V?JmwCM+i1YiI%p09JOA!L p9Pa0pGcj7lgLsG_{(roZT)dekJWP}(JYqcPc509EyX{e5_Ad&Btt$Wk delta 2179 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 delta 2179 zcmaJ?X;hSD6n@^BVZM*y191-O0m8!~kTZg)C@8ss=B}BVhUN+?rby0^Xz66BW#!hm zfoa+>Q6jxbOY$^4{mU_s+|?{J*_{GnY@E z0#J-UT!y?ekyf1I)KK0Z*e zeE!;s%4&b!(kh?d!iQ+Ha26l2$ijI`eU%nI7Rv&(DLDKqYH9ccpDM&%Nt;(uVc{HV zEUdt17Cy%p7QU3v^CG?yaY4k_BEAvvttGM!-&yz`KLmTnrrCc)TX0hBki?(xvxSTJ z#lWu?e#7rA`(i_m)IMAVK*1*Lsl`%fGboFK)d^h##k4v31*BmhrKR;43_=ON6mG&` z<`z*O!qdjn>G2+it(lsQy9T(lH4`z&(l>OCL`83q+oiH%ex%Y+o{DW94hJ#VJ8jb# z`m!=m0FztWnV3_UmBzeWq8(1WlUZvnG2KZ-wZwEUhU#jw$Os6uR|}vNWtu|(Bd7`D z07l|w*tIqaqggivl^BDu#GHot0gS_V!py}COu$4KERuvtxP@RQGf7&)Fh>YNpEj)&mxLDe1tf=9CI+&hj}!n zN3A2;t@9Z#Of3y63C(H0SFDG`pwRNa_Dk^@Ob z1}T~}K?Xer(gYiC7{oR#WQAnjvWWLMG&>8ne^FpyF{wGPFiXECwJKh?Bnq;z^Z2Vk z&L+q?Y}8zIBgqW5FQ0V!F}9GU2BAuW9KwczQ@sMRq#a~Q6l6E_h=R=E)FL4B5zi4V zB|#Ymn|&FD8g8#?1|O8`&7zusm!pR4i-HH;NhKZYzf1#)tiL@9NLKd$v%HJ>E8x>p z`O7`^D#CT#n^j1~YLdMNnOH-@Ye_i3g zes^>#328Ign_J)uV#zl9WC?Qx4I3LmC z>v5J^W*DdC2!Vz+9hMoiy5t11!q}`ovvk%v22o?sN@_jAsL{?I+F2nc?JTF39mW*x z%+}6PV$#mR)N;ZYpq)9|=@FB5rc=ueBUw9hLji#rFE)A`NW^mtHg79#v?0%(8bY$X zMRxrbm2%^NE!@4WT<>k%nC%=%kgearhV5iWcG0>UP1u7osOK};pzPSI9N4E4uwNzN zfF6^FO^50d8B;*3(K*o={q-nkbWXB_@iLthP6z++((A6^D$Zs#SA;)oCT`@(TJQ*| zR`gVu;B|Xi;kCi*?&Z#FMSj2zvhA%fu~*&+6in}UdQ diff --git a/target/hellossm/WEB-INF/jsp/main.jsp b/target/hellossm/WEB-INF/jsp/main.jsp index 22ae37a..a1f4272 100644 --- a/target/hellossm/WEB-INF/jsp/main.jsp +++ b/target/hellossm/WEB-INF/jsp/main.jsp @@ -142,12 +142,20 @@
  • - 访客信息 + 访客信息 +
  • - + - 来访登记 + 来访登记(手机端) + +
  • +
  • + + + 访客日志 +
  • diff --git a/target/hellossm/WEB-INF/jsp/student-add.jsp b/target/hellossm/WEB-INF/jsp/student-add.jsp index 964cca8..82bcb1a 100644 --- a/target/hellossm/WEB-INF/jsp/student-add.jsp +++ b/target/hellossm/WEB-INF/jsp/student-add.jsp @@ -91,7 +91,7 @@ - + 返回列表 @@ -99,19 +99,66 @@ diff --git a/target/hellossm/WEB-INF/jsp/student-edit.jsp b/target/hellossm/WEB-INF/jsp/student-edit.jsp index c733192..76fdad8 100644 --- a/target/hellossm/WEB-INF/jsp/student-edit.jsp +++ b/target/hellossm/WEB-INF/jsp/student-edit.jsp @@ -1,3 +1,4 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%-- Created by IntelliJ IDEA. User: user @@ -12,6 +13,7 @@ +
    @@ -19,18 +21,25 @@ + - + @@ -39,43 +48,118 @@ - + + + + + + + - + - + + + + + + - + - + - + + + + + + - + + + + + + + - - 返回列表 + + 返回列表
    + diff --git a/target/hellossm/WEB-INF/jsp/student-list.jsp b/target/hellossm/WEB-INF/jsp/student-list.jsp index fae5196..62d33fd 100644 --- a/target/hellossm/WEB-INF/jsp/student-list.jsp +++ b/target/hellossm/WEB-INF/jsp/student-list.jsp @@ -71,6 +71,7 @@ + 添加 导出 @@ -110,12 +111,9 @@ ${student.teacher} - + - - - diff --git a/宿管系统(SSM框架)日进度.md b/宿管系统(SSM框架)日进度.md index 87c7b84..4796e80 100644 --- a/宿管系统(SSM框架)日进度.md +++ b/宿管系统(SSM框架)日进度.md @@ -7,6 +7,7 @@ 5. 2020.2.15,实现了管理员信息模糊查询并分页的效果,并增加了超级管理员可给普通管理员授权的功能,着手实现数据导出功能,发现程序运行时报错,经验证后发现是json格式从后台传向前台需要经过解析,故导入了相关依赖即可,而后又遇到layui的Excel模块不可用,开始着手解决。 6. 2020.2.16,实现了管理员数据Excel格式的导出,并可以指定保存位置。 7. 2020.2.17,结束了管理员模块,并继续开发学生模块,后台controller、service、dao的CRUD功能已完成,并测试成功,前台页面所有学生信息可分页展示,删除功能已实现;前台注册学生功能还未实现,待明天实现。 +8. 2020.2.18,今天实现学生信息添加的时候,使用ajax异步去请求后台的时候,后台返回的结果前台接受不到,捣鼓了一上午才发现原来是因为一个提交方式为“submit”,使用异步应该将其设置为“button”,特将其错误记录于此。下午结束了学生模块的基本操作,进一步开发访客模块,后台均已写好,待设计前台访客来访记录表页面。