• SSM教室预约管理系统


    作者主页:夜未央5788

     简介:Java领域优质创作者、Java项目、学习资料、技术互助

    文末获取源码

    项目介绍

    本项目包含管理员与用户两种角色;

    管理员角色包含以下功能:

    管理员登陆,教室信息管理,预约审核,预约记录查询,注册用户等功能。

    用户角色包含以下功能:

    用户登录,教室信息查询,预约记录查询,预约教室,个人信息修改等功能。

    环境需要

    1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
    2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
    3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
    4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 

    5.数据库:MySql 5.7版本;

    6.是否Maven项目:是;

    技术栈

    1. 后端:Spring+SpringMVC+Mybatis

    2. 前端:JSP+CSS+JavaScript+jQuery+bootstrap

    使用说明

    1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;

    2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

    若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;

    3. 将项目中db.properties配置文件中的数据库配置改为自己的配置;

    4. 运行项目,输入localhost:8080/ 登录

    运行截图

    管理员角色

     

     

     

     

    用户角色 

     

     

     

    相关代码

     登录控制器

    1. @Controller
    2. public class LoginController {
    3. @Autowired
    4. UserService userService;
    5. //登录跳转
    6. @RequestMapping(value = "/login", method = {RequestMethod.GET})
    7. public String loginUI() throws Exception {
    8. return "../../login";
    9. }
    10. //登录表单处理
    11. @RequestMapping(value = "/login", method = {RequestMethod.POST})
    12. public String login(Model model,User user, HttpServletRequest request) throws Exception {
    13. //Shiro实现登录
    14. UsernamePasswordToken token = new UsernamePasswordToken(user.getId(),user.getPassword());
    15. Subject subject = SecurityUtils.getSubject();
    16. //如果获取不到用户名就是登录失败,但登录失败的话,会直接抛出异常
    17. try {
    18. subject.login(token);
    19. } catch (Exception e) {
    20. // return "/login";
    21. model.addAttribute("message","用户名或密码错误");
    22. return "/error";
    23. }
    24. if (subject.hasRole("admin")) {
    25. request.getSession().setAttribute("admin", user.getId());
    26. request.getSession().setAttribute("usersession", userService.findUserById(user.getId()));
    27. return "redirect:/admin/showRoom";
    28. } else if (subject.hasRole("ordinary")) {
    29. request.getSession().setAttribute("user", user.getId());
    30. request.getSession().setAttribute("usersession", userService.findUserById(user.getId()));
    31. return "redirect:/ordinary/showRoom";
    32. }
    33. model.addAttribute("message","登录异常,请联系管理员");
    34. return "/error";
    35. }
    36. }

    管理员控制器

    1. @Controller
    2. @RequestMapping("/admin")
    3. public class AdminController {
    4. @Resource(name = "roomServiceImpl")
    5. private RoomService roomService;
    6. @Resource(name = "reservationServiceImpl")
    7. private ReservationService reservationService;
    8. @Resource(name = "userServiceImpl")
    9. private UserService userService;
    10. /*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<教室信息管理>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
    11. // 教室信息显示
    12. @RequestMapping("/showRoom")
    13. public String showRoom(Model model, Integer page) throws Exception {
    14. List<Room> list = null;
    15. //页码对象
    16. PagingVO pagingVO = new PagingVO();
    17. //设置总页数
    18. pagingVO.setTotalCount(roomService.roomCount());
    19. if (page == null || page == 0) {
    20. pagingVO.setToPageNo(1);
    21. list = roomService.findByPaging(1);
    22. } else {
    23. pagingVO.setToPageNo(page);
    24. list = roomService.findByPaging(page);
    25. }
    26. model.addAttribute("roomList", list);
    27. model.addAttribute("pagingVO", pagingVO);
    28. return "/admin/showRoom";
    29. }
    30. //搜索教室
    31. @RequestMapping(value = "/queryRoom", method = {RequestMethod.POST})
    32. private String queryRoom(String findByName, Model model) throws Exception {
    33. List<Room> list = roomService.findByName(findByName);
    34. model.addAttribute("roomList", list);
    35. return "/admin/showRoom";
    36. }
    37. //添加教室页面跳转
    38. @RequestMapping(value = "/addRoom", method = {RequestMethod.GET})
    39. public String addRoom(Model model) throws Exception {
    40. return "/admin/addRoom";
    41. }
    42. //添加教室业务实现
    43. @RequestMapping(value = "/addRoom", method = {RequestMethod.POST})
    44. public String addRoom(Room room, Model model) throws Exception {
    45. roomService.add(room);
    46. return "redirect:/admin/showRoom";
    47. }
    48. // 修改教室信息页面显示
    49. @RequestMapping(value = "/editRoom", method = {RequestMethod.GET})
    50. public String editRoomUI(Integer id, Model model) throws Exception {
    51. if (id == null) {
    52. return "redirect:/admin/showRoom";
    53. }
    54. Room room = roomService.findById(id);
    55. model.addAttribute("roomList", room);
    56. return "/admin/editRoom";
    57. }
    58. // 修改教室信息页面处理
    59. @RequestMapping(value = "/editRoom", method = {RequestMethod.POST})
    60. public String editRoom(Room room) throws Exception {
    61. roomService.updateById(room);
    62. //重定向
    63. return "redirect:/admin/showRoom";
    64. }
    65. //个人信息修改
    66. @RequestMapping(value = "/showUser", method = {RequestMethod.GET})
    67. private String showUser(Model model,HttpServletRequest request) throws Exception {
    68. String id = String.valueOf(request.getSession().getAttribute("admin"));
    69. User user = userService.findUserById(id);
    70. model.addAttribute("object", user);
    71. return "/admin/showUser";
    72. }
    73. //个人信息修改
    74. @RequestMapping(value = "/changeUser", method = {RequestMethod.POST})
    75. private String changeUser(String password, String username, Model model,HttpServletRequest request) throws Exception {
    76. String id = String.valueOf(request.getSession().getAttribute("admin"));
    77. User user = userService.findUserById(id);
    78. user.setUsername(username);
    79. user.setPassword(password);
    80. userService.updateUser(user);
    81. model.addAttribute("object", user);
    82. return "/admin/showUser";
    83. }
    84. // 删除教室信息
    85. @RequestMapping("/removeRoom")
    86. public String removeRoom(Integer id) throws Exception {
    87. if (id == null) {
    88. //加入没有带教师id就进来的话就返回教师显示页面
    89. return "/admin/showRoom";
    90. }
    91. roomService.removeById(id);
    92. return "redirect:/admin/showRoom";
    93. }
    94. /*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<教室预约管理>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
    95. //查询所有待审核预约记录
    96. @RequestMapping("/showReservation")
    97. public String findAllReservation(Model model,Integer page) throws Exception {
    98. List<ReservationVo> list = null;
    99. //页码对象
    100. PagingVO pagingVO = new PagingVO();
    101. //设置总页数
    102. pagingVO.setTotalCount(reservationService.reservationCount());
    103. if (page == null || page == 0) {
    104. pagingVO.setToPageNo(1);
    105. list = reservationService.findByPaging(1);
    106. } else {
    107. pagingVO.setToPageNo(page);
    108. list = reservationService.findByPaging(page);
    109. }
    110. model.addAttribute("reservationList", list);
    111. model.addAttribute("pagingVO", pagingVO);
    112. return "/admin/showReservation";
    113. }
    114. //搜索预约人
    115. @RequestMapping(value = "queryUser", method = {RequestMethod.POST})
    116. private String queryUser(String findByName, Model model) throws Exception {
    117. List<Reservation> list = reservationService.findByName(findByName);
    118. model.addAttribute("reservationList", list);
    119. return "/admin/showReservation";
    120. }
    121. //同意教室申请
    122. @RequestMapping("/reviewReservation")
    123. public String reviewReservation(Integer id) throws Exception{
    124. reservationService.reviewReservation(id);
    125. return "redirect:/admin/showReservation";
    126. }
    127. //同意教室申请
    128. @RequestMapping("/rejectReservation")
    129. public String rejectReservation(Integer id) throws Exception{
    130. reservationService.rejectReservation(id);
    131. return "redirect:/admin/showReservation";
    132. }
    133. //查询所有审核通过预约记录
    134. @RequestMapping("/showRecord")
    135. public String findRecord(Model model,Integer page) throws Exception{
    136. List<ReservationVo> list = null;
    137. //页码对象
    138. PagingVO pagingVO = new PagingVO();
    139. //设置总页数
    140. pagingVO.setTotalCount(reservationService.reservationPassCount());
    141. if (page == null || page == 0) {
    142. pagingVO.setToPageNo(1);
    143. list = reservationService.findRecord(1);
    144. } else {
    145. pagingVO.setToPageNo(page);
    146. list = reservationService.findRecord(page);
    147. }
    148. model.addAttribute("recordList", list);
    149. model.addAttribute("pagingVo", pagingVO);
    150. return "/admin/showRecord";
    151. }
    152. //查询所有审核未通过预约记录
    153. @RequestMapping("/showRecordReject")
    154. public String showRecordReject(Model model,Integer page) throws Exception{
    155. List<ReservationVo> list = null;
    156. //页码对象
    157. PagingVO pagingVO = new PagingVO();
    158. //设置总页数
    159. pagingVO.setTotalCount(reservationService.reservationNoPassCount());
    160. if (page == null || page == 0) {
    161. pagingVO.setToPageNo(1);
    162. list = reservationService.findRejectRecord(pagingVO);
    163. } else {
    164. pagingVO.setToPageNo(page);
    165. list = reservationService.findRejectRecord(pagingVO);
    166. }
    167. model.addAttribute("recordList", list);
    168. model.addAttribute("pagingVo", pagingVO);
    169. return "/admin/showRecordReject";
    170. }
    171. /*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<用户信息管理>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
    172. //添加新用户
    173. @RequestMapping(value = "/userRegister", method = {RequestMethod.GET})
    174. public String userRegister(Model model) throws Exception {
    175. return "/admin/userRegister";
    176. }
    177. @RequestMapping(value = "/userRegister",method = RequestMethod.POST)
    178. public String userRegister(User user) throws Exception{
    179. if(user.getId()!=null && user.getId()!="" && user.getPassword()!=null && user.getPassword()!=""){
    180. user.setUsername(user.getId());
    181. userService.addNewUser(user);
    182. }
    183. return "redirect:/admin/userRegister";
    184. }
    185. }

    如果也想学习本系统,下面领取。回复:141ssm

  • 相关阅读:
    接口测试工具详解
    K8s开发环境搭建
    大数据必学Java基础(五十二):集合的深入了解
    基于JavaSwing开发网络QQ聊天程序(Socket Mysql数据库) 大作业 毕业设计项目源码
    [附源码]计算机毕业设计springboot路政管理信息系统
    Python&C++相互混合调用编程全面实战-26完成扩展库PyFFmpeg对象创建、初始化和析构
    html网页制作期末大作业成品:基于HTML+CSS+JavaScript简洁汽车网站(7页)
    矩阵与非齐次线性方程
    SpringMVC知识点总结2(孙哥)
    uni-app使用uView打开弹出层后输入框聚焦时placeholder错位问题
  • 原文地址:https://blog.csdn.net/hanyunlong1989/article/details/125472326