• Java项目: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 8.0版本;

    6.是否Maven项目:是;

    技术栈

    1. 后端:Spring+SpringMVC+Mybatis

    2. 前端:freemarker+bootstrap

    使用说明

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

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

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

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

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

    运行截图

     

     

     

     

     

     

     

     

     

    相关代码

    用户登录控制器

    1. package com.qtummatrix.controller;
    2. import com.qtummatrix.entity.User;
    3. import com.qtummatrix.service.UserLoginService;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.stereotype.Controller;
    6. import org.springframework.web.bind.annotation.RequestMapping;
    7. import org.springframework.web.bind.annotation.ResponseBody;
    8. import org.springframework.web.servlet.ModelAndView;
    9. import javax.servlet.http.HttpServletRequest;
    10. import javax.servlet.http.HttpSession;
    11. import java.util.HashMap;
    12. import java.util.List;
    13. import java.util.Map;
    14. /**
    15. * create by Gongshiyong 2020-01-20 9:54
    16. */
    17. @Controller
    18. @RequestMapping("login")
    19. public class UserLoginController {
    20. private Map map = new HashMap<>();
    21. @Autowired
    22. private UserLoginService userLoginService;
    23. @RequestMapping("login")
    24. public ModelAndView toLoginPage() {
    25. ModelAndView modelAndView = new ModelAndView();
    26. modelAndView.setViewName("login");
    27. return modelAndView;
    28. }
    29. /**
    30. * 验证账号和密码是否正确
    31. *
    32. * @param userAccount
    33. * @param userPassword
    34. * @return
    35. */
    36. @ResponseBody
    37. @RequestMapping("verify")
    38. public Map verify(String userAccount, String userPassword, HttpServletRequest request) {
    39. List userList = userLoginService.validateLogin(userAccount, userPassword);
    40. if (userList.size() == 0) {
    41. map.put("resultCode", "201");
    42. map.put("resultMessage", "手机号或密码错误!");
    43. } else {
    44. if (userList.get(0).getIscheck() == 0) {
    45. map.put("resultCode", "202");
    46. map.put("resultMessage", "账号未通过审核,请联系管理员审核!");
    47. } else {
    48. map.put("resultCode", "200");
    49. map.put("data", userList.get(0));
    50. map.put("resultMessage", "登录成功!");
    51. HttpSession session = request.getSession();
    52. session.setAttribute("LOGIN_USER", userList.get(0));
    53. }
    54. }
    55. return map;
    56. }
    57. /**
    58. * 登录成功跳转到主页
    59. *
    60. * @return
    61. */
    62. @RequestMapping("main")
    63. public ModelAndView toMain() {
    64. ModelAndView modelAndView = new ModelAndView();
    65. modelAndView.setViewName("main");
    66. return modelAndView;
    67. }
    68. }

    用户列表控制器

    1. package com.qtummatrix.controller;
    2. import com.qtummatrix.entity.UserXO;
    3. import com.qtummatrix.service.UserService;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.stereotype.Controller;
    6. import org.springframework.web.bind.annotation.*;
    7. import org.springframework.web.servlet.ModelAndView;
    8. import java.util.HashMap;
    9. import java.util.Map;
    10. /**
    11. * create by Gongshiyong 2020-01-21 15:44
    12. */
    13. @Controller
    14. @RequestMapping("userList")
    15. public class UserListController {
    16. @Autowired
    17. private UserService userService;
    18. private Map map = new HashMap<>();
    19. /**
    20. * 跳转到普通用户列表页面
    21. *
    22. * @return
    23. */
    24. @GetMapping("toUserList")
    25. public ModelAndView toUserList() {
    26. ModelAndView modelAndView = new ModelAndView();
    27. modelAndView.setViewName("userList");
    28. return modelAndView;
    29. }
    30. /**
    31. * 跳转到管理员列表页面
    32. *
    33. * @return
    34. */
    35. @GetMapping("toAdminList")
    36. public ModelAndView toAdminList() {
    37. ModelAndView modelAndView = new ModelAndView();
    38. modelAndView.setViewName("adminList");
    39. return modelAndView;
    40. }
    41. /**
    42. * 显示所有的普通用户信息
    43. *
    44. * @param pageNo
    45. * @param pageSize
    46. * @param stunumber
    47. * @param phone
    48. * @param classs
    49. * @param realname
    50. * @return
    51. */
    52. @ResponseBody
    53. @GetMapping("selectAllUserList")
    54. public Object selectAllUserList(Integer pageNo, Integer pageSize, String stunumber, String phone, String classs,
    55. String realname, Integer userId) {
    56. return userService.selectAllUserList(pageNo, pageSize, stunumber, phone, classs, realname, userId);
    57. }
    58. /**
    59. * 显示所有的管理员信息
    60. *
    61. * @param pageNo
    62. * @param pageSize
    63. * @param stunumber
    64. * @param phone
    65. * @param classs
    66. * @param realname
    67. * @return
    68. */
    69. @ResponseBody
    70. @GetMapping("selectAllAdminList")
    71. public Object selectAllAdminList(Integer pageNo, Integer pageSize, String stunumber, String phone, String classs,
    72. String realname, Integer userId) {
    73. return userService.selectAllAdminList(pageNo, pageSize, stunumber, phone, classs, realname, userId);
    74. }
    75. /**
    76. * 根据主键查询所有的用户信息
    77. *
    78. * @param id
    79. * @return
    80. */
    81. @ResponseBody
    82. @GetMapping("selectAllUserListByPrimaryKey")
    83. public Object selectAllUserListByPrimaryKey(Integer id) {
    84. return userService.selectAllUserListByPrimaryKey(id);
    85. }
    86. /**
    87. * 保存编辑后信息
    88. *
    89. * @param userXO
    90. * @return
    91. */
    92. @ResponseBody
    93. @PutMapping("updateByPrimaryKeySelective")
    94. public Object updateByPrimaryKeySelective(UserXO userXO) {
    95. int i = userService.updateByPrimaryKeySelective(userXO);
    96. if (i > 0) {
    97. map.put("resultCode", "200");
    98. map.put("resultMessage", "信息修改成功");
    99. } else {
    100. map.put("resuleCode", "201");
    101. map.put("resultMessage", "信息修改失败");
    102. }
    103. return map;
    104. }
    105. /**
    106. * 跳转添加用户页面
    107. *
    108. * @return
    109. */
    110. @GetMapping("skipToUserAdd")
    111. public ModelAndView skipToUserAdd() {
    112. ModelAndView modelAndView = new ModelAndView();
    113. modelAndView.setViewName("userAdd");
    114. return modelAndView;
    115. }
    116. /**
    117. * 跳转添加管理员页面
    118. *
    119. * @return
    120. */
    121. @GetMapping("skipToAdminAdd")
    122. public ModelAndView skipToAdminAdd() {
    123. ModelAndView modelAndView = new ModelAndView();
    124. modelAndView.setViewName("adminAdd");
    125. return modelAndView;
    126. }
    127. /**
    128. * 返回到用户信息页面
    129. *
    130. * @return
    131. */
    132. @GetMapping("skipToUserList")
    133. public ModelAndView skipToUserList() {
    134. ModelAndView modelAndView = new ModelAndView();
    135. modelAndView.setViewName("userList");
    136. return modelAndView;
    137. }
    138. /**
    139. * 返回到管理员信息页面
    140. *
    141. * @return
    142. */
    143. @GetMapping("skipToAdminList")
    144. public ModelAndView skipToAdminList() {
    145. ModelAndView modelAndView = new ModelAndView();
    146. modelAndView.setViewName("adminList");
    147. return modelAndView;
    148. }
    149. /**
    150. * 添加用户信息
    151. *
    152. * @param userXO
    153. * @return
    154. */
    155. @ResponseBody
    156. @PostMapping("addUser")
    157. public Object addUser(UserXO userXO) {
    158. if (userXO.getRolename().equals("管理员")) {
    159. userXO.setRolename("1");
    160. userXO.setIssh(1);
    161. }
    162. int i = userService.insertSelective(userXO);
    163. if (i > 0) {
    164. map.put("resultCode", "200");
    165. } else {
    166. map.put("resultCode", "201");
    167. }
    168. return map;
    169. }
    170. /**
    171. * 验证手机号是否存在
    172. *
    173. * @param phone
    174. * @return
    175. */
    176. @ResponseBody
    177. @GetMapping("validatePhone")
    178. public Object validatePhone(String phone) {
    179. int i = userService.validatePhone(phone);
    180. if (i == 1) {
    181. map.put("resultCode", "200");
    182. } else {
    183. map.put("resultCode", "201");
    184. }
    185. return map;
    186. }
    187. /**
    188. * 根据id删除用户信息
    189. *
    190. * @param id
    191. * @return
    192. */
    193. @ResponseBody
    194. @DeleteMapping("deleteByPrimaryKey")
    195. public Object deleteByPrimaryKey(Integer id) {
    196. int i = userService.deleteByPrimaryKey(id);
    197. if (i > 0) {
    198. map.put("resultCode", "200");
    199. } else {
    200. map.put("resultCode", "201");
    201. }
    202. return map;
    203. }
    204. /**
    205. * 修改密码
    206. *
    207. * @return
    208. */
    209. @ResponseBody
    210. @PutMapping("changePassword")
    211. public Object changePassword(Integer id, String oldPassword, String password) {
    212. int i = userService.changePassword(id, oldPassword, password);
    213. if (i > 0) {
    214. map.put("resultCode", "200");
    215. map.put("resultMessage", "密码修改成功!");
    216. } else {
    217. map.put("resultCode", "201");
    218. map.put("resultMessage", "原密码错误,修改失败!");
    219. }
    220. return map;
    221. }
    222. /**
    223. * 管理员审核用户
    224. *
    225. * @param id
    226. * @return
    227. */
    228. @ResponseBody
    229. @PutMapping("checkUser")
    230. public Map checkUser(Integer id) {
    231. int i = userService.checkUser(id);
    232. if (i > 0) {
    233. map.put("resultCode", "200");
    234. } else {
    235. map.put("resultCode", "201");
    236. }
    237. return map;
    238. }
    239. /**
    240. * 管理员审核用户
    241. *
    242. * @param id
    243. * @return
    244. */
    245. @ResponseBody
    246. @PutMapping("resetPassWord")
    247. public Map resetPassWord(Integer id) {
    248. int i = userService.resetPassWord(id);
    249. if (i > 0) {
    250. map.put("resultCode", "200");
    251. } else {
    252. map.put("resultCode", "201");
    253. }
    254. return map;
    255. }
    256. }

    实验室预约Controller

    1. package com.qtummatrix.controller;
    2. import com.qtummatrix.service.LabAppointmentService;
    3. import org.springframework.beans.factory.annotation.Autowired;
    4. import org.springframework.stereotype.Controller;
    5. import org.springframework.web.bind.annotation.GetMapping;
    6. import org.springframework.web.bind.annotation.PutMapping;
    7. import org.springframework.web.bind.annotation.RequestMapping;
    8. import org.springframework.web.bind.annotation.ResponseBody;
    9. import org.springframework.web.servlet.ModelAndView;
    10. import java.util.HashMap;
    11. import java.util.Map;
    12. /**
    13. * 实验室预约Controller
    14. * create by Gongshiyong 2020-01-22 12:24
    15. */
    16. @Controller
    17. @RequestMapping("labAppointment")
    18. public class LabAppointmentController {
    19. @Autowired
    20. private LabAppointmentService labAppointmentService;
    21. private Map map = new HashMap<>();
    22. /**
    23. * 跳转到实验室预约页面
    24. *
    25. * @return
    26. */
    27. @RequestMapping("toLaboratoryAppointment")
    28. public ModelAndView toLaboratoryAppointment() {
    29. ModelAndView modelAndView = new ModelAndView();
    30. modelAndView.setViewName("laboratoryAppointment");
    31. return modelAndView;
    32. }
    33. /**
    34. * 查询实验室预约信息
    35. *
    36. * @param pageNo 页码
    37. * @param pageSize 一页显示多少条数据
    38. * @param name 实验室名称
    39. * @param fzr 负责人
    40. * @return
    41. */
    42. @ResponseBody
    43. @GetMapping("getAllLabList")
    44. public Object getAllLabList(Integer pageNo, Integer pageSize, String name, String fzr, Integer isYy) {
    45. return labAppointmentService.selectAllLabInfo(pageNo, pageSize, name, fzr, isYy);
    46. }
    47. /**
    48. * 预约实验室
    49. *
    50. * @param id 实验室id
    51. * @param userId 预约人id
    52. * @return
    53. */
    54. @ResponseBody
    55. @PutMapping("appointment")
    56. public Object appointment(Integer id, Integer userId) {
    57. int i = labAppointmentService.appointment(id, userId);
    58. if (i > 0) {
    59. map.put("resultCode", "200");
    60. map.put("resultMessage", "操作成功!");
    61. } else if (i == -1) {
    62. map.put("resultCode", "201");
    63. map.put("resultMessage", "请预约人操作!");
    64. }
    65. return map;
    66. }
    67. }

    如果也想学习本系统,下面领取。关注并回复:177ssm 

  • 相关阅读:
    rpm安装postgresql12
    B_QuRT_User_Guide(31)
    Android之getSystemService方法实现详解
    十九、三大范式(干货版)
    最短路径算法总结
    Hazelcast系列(五):Multicast发现机制
    Unity中UI组件对Shader调色
    NextJs 与 Tailwind 入门开发笔记
    web阶段javascript
    SQL Server 2019安装错误0x80004005 服务没有及时响应启动或控制请求详细解决方法
  • 原文地址:https://blog.csdn.net/hanyunlong1989/article/details/126398002