当前位置:   article > 正文

Java项目:校园报修管理系统(java+Springboot+bootstrap+JSP+maven+Mysql)_校园报修管理系统项目介绍

校园报修管理系统项目介绍

源码获取:俺的博客首页 "资源" 里下载!

项目介绍

本项目为后台管理系统,包括管理员与学生两种角色;
学生包含以下功能:
学生提交报修,添加维修,催单,水电缴费,登录页面等功能。

管理员包含以下功能:
查看所有报修单,催单,维修安排,学生管理,添加学生,维修人员管理等功能。

环境需要

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. 后端:SpringBoot
2. 前端:JSP+CSS+JavaScript+jquery+bootstrap


使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,输入localhost:8080/ 登录

 

 

 

 

系统管理员端的控制器: 

  1. /**
  2. * 系统管理员端的控制器
  3. *
  4. */
  5. @Controller
  6. @RequestMapping(value = "/admin")
  7. public class AdminController {
  8. private Logger logger = LoggerFactory.getLogger(this.getClass());
  9. @Resource
  10. private RepairService repairService;
  11. @Resource
  12. private StudentService studentService;
  13. @Resource
  14. private AdminService adminService;
  15. @Resource
  16. private UrgentRepairService urgentRepairService;
  17. @Resource
  18. private MaintenanceService maintenanceService;
  19. @Resource
  20. private TechnicianService technicianService;
  21. @Resource
  22. private DoorDao doorDao;
  23. @RequestMapping(value = "/login", method = RequestMethod.GET)
  24. public String login(Model model) {
  25. return "redirect:../student/login";
  26. }
  27. @RequestMapping(value = "/login", method = RequestMethod.POST)
  28. @ResponseBody
  29. public LoginResult login(int id, String password, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
  30. logger.info("================admin login===================");
  31. logger.info("admin id: "+id);
  32. logger.info("admin password: "+password);
  33. logger.info("================admin login===================");
  34. Admin admin = adminService.getAdminById(id);
  35. LoginResult loginResult = null;
  36. if(admin==null){
  37. logger.info("admin null");
  38. loginResult = new LoginResult(false);
  39. }else{
  40. String psw = admin.getPassword();
  41. logger.info("admin password:"+psw);
  42. //密码正确
  43. if(psw.equals(password)){
  44. loginResult = new LoginResult(true);
  45. httpServletRequest.getSession().setAttribute("ADMIN_ID", id);
  46. httpServletResponse.addCookie(new Cookie("ADMIN_ID", String.valueOf(id)));
  47. }else{
  48. loginResult = new LoginResult(false);
  49. }
  50. }
  51. if(!loginResult.isSuccess()){
  52. loginResult.setReason("invalid user");
  53. }
  54. logger.info("LoginResult:"+loginResult);
  55. return loginResult;
  56. }
  57. @RequestMapping(value = "/logout", method = RequestMethod.GET)
  58. public String logout(HttpSession httpSession) {
  59. logger.info("退出要移除的sessionId是:"+httpSession.getId());
  60. httpSession.removeAttribute("ADMIN_ID");
  61. return "redirect:../student/login";
  62. }
  63. @RequestMapping(value = "/dashboard", method = RequestMethod.GET)
  64. public String dashboard(Model model, HttpServletRequest httpServletRequest) {
  65. List<Repair> repairs = repairService.getAllUnFinish();
  66. Student student;
  67. List<RepairInfoVo> repairInfoVos = new ArrayList<>();
  68. for(Repair repair:repairs){
  69. student = studentService.getStudentById(repair.getStudentId());
  70. RepairInfoVo repairInfoVo = new RepairInfoVo(student, repair);
  71. repairInfoVo.setStatesInfo(RepairEnumCN.stateOf(repair.getStatus()).getStateInfo());
  72. repairInfoVos.add(repairInfoVo);
  73. }
  74. model.addAttribute("repairInfoVos", repairInfoVos);
  75. return "/admin/dashboard";
  76. }
  77. @RequestMapping(value = "/repair/{repairId}/detail", method = RequestMethod.GET)
  78. public String detailRepair(@PathVariable("repairId") int repairId, Model model) {
  79. Repair repair;
  80. repair = repairService.getRepairById(repairId);
  81. repair.setPicMD5("/" + repair.getPicMD5());
  82. RepairInfoVo repairInfoVo = new RepairInfoVo(repair);
  83. repairInfoVo.setStatesInfo(RepairEnumCN.stateOf(repair.getStatus()).getStateInfo());
  84. model.addAttribute("repairInfoVo", repairInfoVo);
  85. return "admin/detail";
  86. }
  87. @RequestMapping(value = "/repair/{repairId}/cancel", method = RequestMethod.GET)
  88. public String cancelRepair(@PathVariable("repairId") int repairId) {
  89. repairService.cancelRepair(repairId);
  90. return "redirect:/admin/dashboard";
  91. }
  92. @RequestMapping(value = "/repair/{repairId}/confirm", method = RequestMethod.GET)
  93. public String confirmRepair(@PathVariable("repairId") int repairId) {
  94. repairService.confirmRepair(repairId);
  95. return "redirect:/admin/dashboard";
  96. }
  97. @RequestMapping(value = "/repair/{repairId}/arrange", method = RequestMethod.GET)
  98. public String arrangeRepair(@PathVariable("repairId") int repairId, Model model) {
  99. Repair repair = repairService.getRepairById(repairId);
  100. if (repair.getStatus() == RepairEnum.REPAIR_ARRANGED.getState())
  101. {
  102. return "redirect:/admin/repair/" + String.valueOf(repairId) + "/detail";
  103. }
  104. List<Technician> techniciens = technicianService.getAllTechnician();
  105. model.addAttribute("repair", repair);
  106. model.addAttribute("techniciens", techniciens);
  107. return "/admin/addArrange";
  108. }
  109. @RequestMapping(value = "/maintenance/{repairId}/add", method = RequestMethod.POST)
  110. public String submitArrange(@PathVariable("repairId") int repairId, @RequestParam("technicianId") String technicianId) {
  111. // 解决表单提交时乱码的问题(JSP在表单提交时默认采用ISO-8859-1编码)
  112. try {
  113. technicianId = new String(technicianId.getBytes("ISO-8859-1"), "utf8");
  114. } catch (UnsupportedEncodingException e) {
  115. e.printStackTrace();
  116. }
  117. repairService.arrangeRepair(repairId, Integer.valueOf(technicianId));
  118. return "redirect:/admin/dashboard";
  119. }
  120. @RequestMapping(value = "/finish", method = RequestMethod.GET)
  121. public String finish(Model model) {
  122. List<Repair> repairs = repairService.getAllFinish();
  123. Student student;
  124. List<RepairInfoVo> repairInfoVos = new ArrayList<>();
  125. for(Repair repair: repairs){
  126. student = studentService.getStudentById(repair.getStudentId());
  127. RepairInfoVo repairInfoVo = new RepairInfoVo(student, repair);
  128. repairInfoVo.setStatesInfo(RepairEnumCN.stateOf(repair.getStatus()).getStateInfo());
  129. repairInfoVos.add(repairInfoVo);
  130. }
  131. model.addAttribute("repairInfoVos", repairInfoVos);
  132. return "/admin/finish";
  133. }
  134. @RequestMapping(value = "/urgent", method = RequestMethod.GET)
  135. public String urgent(Model model) {
  136. List<UrgentRepair> urgentRepairs = urgentRepairService.getAllUrgentRepair();
  137. List<UrgentRepairResult> urgentRepairResults = new ArrayList<UrgentRepairResult>();
  138. Student student;
  139. Repair repair;
  140. for (UrgentRepair urgentRepair : urgentRepairs) {
  141. repair = repairService.getRepairById(urgentRepair.getRepairId());
  142. student = studentService.getStudentById(urgentRepair.getStudentId());
  143. urgentRepairResults.add(
  144. new UrgentRepairResult
  145. (urgentRepair.getId(),
  146. urgentRepair.getStatus(), UrgentRepairEnum.stateOf(urgentRepair.getStatus()).getStateInfo(),
  147. urgentRepair.getRepairId(), repair.getDetail(),
  148. urgentRepair.getStudentId(), student.getName(),
  149. new Timestamp(System.currentTimeMillis())));
  150. }
  151. model.addAttribute("list", urgentRepairResults);
  152. return "/admin/urgent";
  153. }
  154. @RequestMapping(value = "/urgent/{repairId}/delete", method = RequestMethod.GET)
  155. public String deleteUrgent(@PathVariable("repairId") int repairId) {
  156. urgentRepairService.checkUrgentRepair(repairId);
  157. return "redirect:/admin/urgent";
  158. }
  159. @RequestMapping(value = "/arrange", method = RequestMethod.GET)
  160. public String arrange(Model model) {
  161. List<Maintenance> maintenances = maintenanceService.getAll();
  162. List<MaintenanceResult> maintenanceResults = new ArrayList<MaintenanceResult>();
  163. Repair repair;
  164. Technician technician;
  165. for (Maintenance maintenance : maintenances) {
  166. repair = repairService.getRepairById(maintenance.getRepairId());
  167. // 以下状态的报修单对应的维修记录就没必要显示了
  168. // 1. 被学生删除
  169. // 2. 学生同意取消
  170. // 3. 已经验收
  171. if (repair.getStatus() == RepairEnum.DELETED_BY_STUDENT.getState()
  172. || repair.getStatus() == RepairEnum.CANCELED_AGREE.getState()
  173. || repair.getStatus() == RepairEnum.CONFIRM.getState())
  174. {
  175. continue;
  176. }
  177. technician = technicianService.getById(maintenance.getTechnicianId());
  178. maintenanceResults.add(
  179. new MaintenanceResult(
  180. maintenance.getId(),
  181. maintenance.getRepairId(), repair.getDetail(),
  182. maintenance.getTechnicianId(), technician.getName(),
  183. new Timestamp(System.currentTimeMillis())
  184. )
  185. );
  186. }
  187. model.addAttribute("list", maintenanceResults);
  188. return "/admin/arrange";
  189. }
  190. @RequestMapping(value = "/arrange/{maintenanceId}/cancel", method = RequestMethod.GET)
  191. public String cancelArrange(@PathVariable("maintenanceId") int maintenanceId) {
  192. Maintenance maintenance = maintenanceService.getById(maintenanceId);
  193. // 删除检修安排记录
  194. maintenanceService.cancelMaintenance(maintenanceId);
  195. // 同时也修改相应的维修单的状态
  196. repairService.unArrangeRepair(maintenance.getRepairId());
  197. return "redirect:/admin/arrange";
  198. }
  199. @RequestMapping(value = "/student", method = RequestMethod.GET)
  200. public String student(Model model) {
  201. List<Student> students = studentService.getAll();
  202. List<StudentResult> studentResults = new ArrayList<StudentResult>();
  203. for (Student student : students) {
  204. studentResults.add(new StudentResult(
  205. student.getId(), student.getName(), student.getPassword(),
  206. student.getSexual(), student.getSexual() == 0 ? "男" : "女",
  207. student.getEmail(), student.getPhone(), student.getDoor())
  208. );
  209. }
  210. model.addAttribute("students", studentResults);
  211. return "admin/student";
  212. }
  213. @RequestMapping(value = "/addstudent", method = RequestMethod.GET)
  214. public String addStudent(Model model) {
  215. return "/admin/addStudent";
  216. }
  217. @RequestMapping(value = "/addstudent", method = RequestMethod.POST)
  218. public String addStudent(@RequestParam("name") String name, @RequestParam("email") String email,
  219. @RequestParam("password") String password, @RequestParam("sexual") String sexual,
  220. @RequestParam("phone") String phone,@RequestParam("door") String door, Model model, HttpServletRequest httpServletRequest) {
  221. int sex = sexual.equals("男") ? 0 : 1;
  222. studentService.addStudent(System.currentTimeMillis()+"", name, password, sex, email, phone, door);
  223. Door door2 = doorDao.queryByName(door);
  224. if (door2==null) {
  225. Door doorObject = new Door();
  226. doorObject.setDate(new Date(System.currentTimeMillis()));
  227. doorObject.setId(System.currentTimeMillis()+"");
  228. doorObject.setName(door);
  229. doorObject.setPower("100");
  230. doorObject.setWater("100");
  231. doorDao.add(doorObject);
  232. }
  233. return "redirect:/admin/student";
  234. }
  235. @RequestMapping(value = "/technician", method = RequestMethod.GET)
  236. public String technician(Model model) {
  237. List<Technician> techniciens = technicianService.getAllTechnician();
  238. model.addAttribute("techniciens", techniciens);
  239. return "admin/technician";
  240. }
  241. /**
  242. * 添加维修人员 GET方法
  243. * @param model
  244. * @return
  245. */
  246. @RequestMapping(value = "/addtechnician", method = RequestMethod.GET)
  247. public String addTechnician(Model model) {
  248. return "/admin/addTechnician";
  249. }
  250. /**
  251. * 添加维修人员 POST方法
  252. * @param model
  253. * @return
  254. */
  255. @RequestMapping(value = "/addtechnician", method = RequestMethod.POST)
  256. public String addTechnician(@RequestParam("name") String name,@RequestParam("number") String number,@RequestParam("phone") String phone, Model model, HttpServletRequest httpServletRequest) {
  257. technicianService.addTechnician(name,number,phone);
  258. return "redirect:/admin/technician";
  259. }
  260. }

用户的web层:

  1. /**
  2. * 用户的web层
  3. *
  4. */
  5. @Controller
  6. @CrossOrigin(origins = {"http://localhost:18084", "null"})
  7. @RequestMapping("/student")
  8. public class StudentController {
  9. private final Logger logger = LoggerFactory.getLogger(this.getClass());
  10. @Resource
  11. private StudentService studentService;
  12. @Resource
  13. private RepairService repairService;
  14. @Resource
  15. private UrgentRepairService urgentRepairService;
  16. @Resource
  17. private DoorDao doorDao;
  18. @RequestMapping(value = "/introduce", method = RequestMethod.GET)
  19. public String index() {
  20. return "student/introduce";
  21. }
  22. /**
  23. * 登录的GET方法
  24. *
  25. * @return
  26. */
  27. @RequestMapping(value = "/login", method = RequestMethod.GET)
  28. public String login() {
  29. return "student/login";
  30. }
  31. /**
  32. * 登录的POST方法
  33. *
  34. * @param id
  35. * @param password
  36. * @param httpSession
  37. * @return
  38. */
  39. @RequestMapping(value = "/login", method = RequestMethod.POST)
  40. public
  41. @ResponseBody
  42. LoginResult login(String id, String password, HttpSession httpSession, HttpServletResponse httpServletResponse) {
  43. LoginResult loginResult=null;
  44. String stuName = null;
  45. Student student = studentService.getStudentById(id);
  46. Spider spider = new Spider();
  47. try {
  48. //调用service将数据存入数据库中
  49. if(student==null){
  50. // stuName = spider.getStudentName(id, password);
  51. // student = new Student(id, stuName, password);
  52. // System.out.println(stuName);
  53. // studentService.addStudent(id, stuName, password, 0, "", "");
  54. loginResult = new LoginResult(true);
  55. loginResult.setReason("invalid user");
  56. }else{
  57. stuName = student.getName();
  58. // 密码正确
  59. if (student.getPassword().equals(password)) {
  60. loginResult = new LoginResult(true);
  61. } else {
  62. loginResult = new LoginResult(false);
  63. loginResult.setReason("invalid user");
  64. }
  65. }
  66. } catch (Exception e) {
  67. e.printStackTrace();
  68. }
  69. if(loginResult.isSuccess()){
  70. // 登录成功后,为该学生生成session
  71. httpSession.setAttribute(StudentConst.STUDENT_ID, id);
  72. httpServletResponse.addCookie(new Cookie(StudentConst.STUDENT_ID, id));
  73. System.out.println("StudentName:"+StudentConst.STUDENT_NAME);
  74. httpServletResponse.addCookie(new Cookie(StudentConst.STUDENT_NAME, stuName));
  75. }
  76. logger.info("***************************************************************************");
  77. logger.info("登录: " + String.valueOf(loginResult.isSuccess()) + " id : " + id + " password : " + password);
  78. logger.info("***************************************************************************");
  79. return loginResult;
  80. }
  81. /**
  82. * 退出的控制
  83. *
  84. * @param httpSession
  85. * @return
  86. */
  87. @RequestMapping(value = "/logout", method = RequestMethod.GET)
  88. public String logout(HttpSession httpSession) {
  89. httpSession.removeAttribute(StudentConst.STUDENT_EMAIL);
  90. return "redirect:/student/login";
  91. }
  92. /**
  93. * 提交报修单的POST方法
  94. *
  95. * @param model
  96. * @return
  97. */
  98. @RequestMapping(value = "/commit", method = RequestMethod.GET)
  99. public String commit(Model model) {
  100. return "/student/commit";
  101. }
  102. @RequestMapping(value = "/commit", method = RequestMethod.POST)
  103. public String commit(@RequestParam("detail") String detail, @RequestParam("place") String place,
  104. @RequestParam("file") MultipartFile file, HttpServletRequest httpServletRequest) {
  105. String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
  106. Student student = studentService.getStudentById(id);
  107. String picMD5 = "";
  108. logger.info(detail);
  109. logger.info(place);
  110. logger.info(picMD5);
  111. try {
  112. logger.info(file.getInputStream().toString());
  113. } catch (IOException e) {
  114. e.printStackTrace();
  115. }
  116. if (file != null) {
  117. try {
  118. picMD5 = MD5.getMD5(id + String.valueOf(System.currentTimeMillis()) + file.getOriginalFilename());
  119. } catch (Exception e) {
  120. e.printStackTrace();
  121. }
  122. // 往数据库中插入维修单记录
  123. repairService.submitRepair(detail, place, picMD5, student.getId());
  124. // 保存现场照片
  125. String path = httpServletRequest.getSession().getServletContext().getRealPath("/");
  126. System.out.println("图片路径:" + path);
  127. String fileName = picMD5;
  128. File targetFile = new File(path, fileName);
  129. try {
  130. InputStream inputStream = file.getInputStream();
  131. OutputStream outputStream = new FileOutputStream(targetFile);
  132. byte[] buffer = new byte[2048];
  133. int len = 0;
  134. while ((len = inputStream.read(buffer)) != -1) {
  135. outputStream.write(buffer, 0, len);
  136. }
  137. inputStream.close();
  138. outputStream.close();
  139. } catch (IOException e) {
  140. e.printStackTrace();
  141. }
  142. } else {
  143. // 往数据库中插入维修单记录
  144. repairService.submitRepair(detail, place, picMD5, student.getId());
  145. }
  146. return "redirect:/student/dashboard";
  147. }
  148. /**
  149. * 获取显示的主页面
  150. *
  151. * @param model
  152. * @return
  153. */
  154. @RequestMapping(value = "/dashboard", method = RequestMethod.GET)
  155. public String board(Model model, HttpServletRequest httpServletRequest) {
  156. String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
  157. List<Repair> repairs = repairService.getRepqirByStudentId(id);
  158. List<RepairInfoVo> repairInfoVos = new ArrayList<>();
  159. for(Repair repair: repairs){
  160. repair.setPicMD5("/"+repair.getPicMD5());
  161. RepairInfoVo repairInfoVo = new RepairInfoVo(repair);
  162. repairInfoVo.setStatesInfo(RepairEnumCN.stateOf(repair.getStatus()).getStateInfo());
  163. repairInfoVos.add(repairInfoVo);
  164. }
  165. model.addAttribute("repairInfoVos", repairInfoVos);
  166. return "/student/dashboard";
  167. }
  168. /**
  169. * 报修单详情
  170. *
  171. * @param repairId
  172. * @param model
  173. * @return
  174. */
  175. @RequestMapping(value = "/repair/{repairId}/detail", method = RequestMethod.GET)
  176. public String detail(@PathVariable("repairId") int repairId, Model model) {
  177. Repair repair = repairService.getRepairById(repairId);
  178. repair.setPicMD5("/" + repair.getPicMD5());
  179. RepairInfoVo repairInfoVo = new RepairInfoVo(repair);
  180. repairInfoVo.setStatesInfo(RepairEnumCN.stateOf(repair.getStatus()).getStateInfo());
  181. model.addAttribute("repairInfoVo", repairInfoVo);
  182. return "student/detail";
  183. }
  184. /**
  185. * 删除报修单
  186. *
  187. * @param repairId
  188. * @return
  189. */
  190. @RequestMapping(value = "/repair/{repairId}/delete", method = RequestMethod.GET)
  191. public String delete(@PathVariable("repairId") int repairId) {
  192. repairService.deleteRepair(repairId);
  193. return "redirect:/student/dashboard";
  194. }
  195. /**
  196. * 修改报修单
  197. *
  198. * @param repairId
  199. * @param model
  200. * @return
  201. */
  202. @RequestMapping(value = "/repair/{repairId}/update", method = RequestMethod.GET)
  203. public String update(@PathVariable("repairId") int repairId, Model model) {
  204. Repair repair = repairService.getRepairById(repairId);
  205. model.addAttribute("repair", repair);
  206. return "/student/update";
  207. }
  208. /**
  209. * 修改报修单
  210. *
  211. * @return
  212. */
  213. @RequestMapping(value = "/repair/{repairId}/update", method = RequestMethod.POST)
  214. public String update(@PathVariable("repairId") int repairId, @RequestParam("detail") String detail, @RequestParam("place") String place,
  215. @RequestParam("file") MultipartFile file, HttpServletRequest httpServletRequest) {
  216. String sno = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
  217. int id = repairId;
  218. String picMD5 = "";
  219. logger.info(detail);
  220. logger.info(place);
  221. logger.info(picMD5);
  222. if (file != null) {
  223. try {
  224. picMD5 = MD5.getMD5(sno + String.valueOf(System.currentTimeMillis()) + file.getOriginalFilename());
  225. } catch (Exception e) {
  226. e.printStackTrace();
  227. System.out.println("*************************************************");
  228. }
  229. // 保存现场照片
  230. String path = httpServletRequest.getSession().getServletContext().getRealPath("/");
  231. System.out.println("图片路径:" + path);
  232. String fileName = picMD5;
  233. File targetFile = new File(path, fileName);
  234. try {
  235. OutputStream outputStream = new FileOutputStream(targetFile);
  236. InputStream inputStream = file.getInputStream();
  237. byte[] buffer = new byte[2048];
  238. int len = 0;
  239. while ((len = inputStream.read(buffer)) != -1) {
  240. outputStream.write(buffer, 0, len);
  241. }
  242. inputStream.close();
  243. outputStream.close();
  244. } catch (IOException e) {
  245. e.printStackTrace();
  246. }
  247. }
  248. // 调用修改报修单接口
  249. repairService.changeRepair(id, detail, place, picMD5);
  250. return "redirect:/student/repair/" + String.valueOf(id) + "/detail";
  251. }
  252. /**
  253. * 验收报修单
  254. *
  255. * @param repairId
  256. * @return
  257. */
  258. @RequestMapping(value = "/repair/{repairId}/acceptance", method = RequestMethod.GET)
  259. public String acceptance(@PathVariable("repairId") int repairId) {
  260. repairService.Acceptance(repairId);
  261. return "redirect:/student/dashboard";
  262. }
  263. /**
  264. * 将报修单标记为催单
  265. *
  266. * @param repairId
  267. * @param httpServletRequest
  268. * @return
  269. */
  270. @RequestMapping(value = "/repair/{repairId}/urgent", method = RequestMethod.GET)
  271. public String urgent(@PathVariable("repairId") int repairId, HttpServletRequest httpServletRequest) {
  272. String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
  273. Student student = studentService.getStudentById(id);
  274. urgentRepairService.submitUrgentRepair(repairId, student.getId());
  275. return "redirect:/student/urgent";
  276. }
  277. /**
  278. * 查看所有的催单
  279. *
  280. * @param httpServletRequest
  281. * @param model
  282. * @return
  283. */
  284. @RequestMapping(value = "/urgent", method = RequestMethod.GET)
  285. public String showUrgent(HttpServletRequest httpServletRequest, Model model) {
  286. String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
  287. Student student = studentService.getStudentById(id);
  288. List<UrgentRepair> urgentRepairs = urgentRepairService.getAllUrgentRepairByStudentId(student.getId());
  289. List<StudentUrgentResult> studentUrgentResults = new ArrayList<StudentUrgentResult>();
  290. String detail = "";
  291. for (UrgentRepair urgentRepair : urgentRepairs) {
  292. detail = repairService.getRepairById(urgentRepair.getRepairId()).getDetail();
  293. studentUrgentResults.add(new StudentUrgentResult(
  294. urgentRepair.getId(), urgentRepair.getStatus(), UrgentRepairEnum.stateOf(urgentRepair.getStatus()).getStateInfo(),
  295. urgentRepair.getRepairId(), detail, urgentRepair.getStudentId(), urgentRepair.getCreateTime()));
  296. }
  297. model.addAttribute("studentUrgentResults", studentUrgentResults);
  298. return "student/urgent";
  299. }
  300. /**
  301. * 删除某条催单
  302. *
  303. * @param repairId
  304. * @param httpServletRequest
  305. * @return
  306. */
  307. @RequestMapping(value = "/urgent/{repairId}/delete", method = RequestMethod.GET)
  308. public String deleteUrgent(@PathVariable("repairId") int repairId, HttpServletRequest httpServletRequest) {
  309. String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
  310. Student student = studentService.getStudentById(id);
  311. urgentRepairService.deleteUrgentRepair(repairId);
  312. return "redirect:/student/urgent";
  313. }
  314. /**
  315. * 重新提交某条催单
  316. *
  317. * @param repairId
  318. * @return
  319. */
  320. @RequestMapping(value = "/urgent/{repairId}/resubmit", method = RequestMethod.GET)
  321. public String reSubmitUrgent(@PathVariable("repairId") int repairId) {
  322. urgentRepairService.reSubmit(repairId);
  323. return "redirect:/student/urgent";
  324. }
  325. /**
  326. * 获取所有待取消的报修单
  327. *
  328. * @param httpServletRequest
  329. * @param model
  330. * @return
  331. */
  332. @RequestMapping(value = "/tobecanceled", method = RequestMethod.GET)
  333. public String toBeCanceled(HttpServletRequest httpServletRequest, Model model) {
  334. String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
  335. List<Repair> repairs = repairService.getAllToBeCanceledById(id);
  336. List<RepairInfoVo> repairInfoVos = new ArrayList<>();
  337. for(Repair repair:repairs){
  338. repair.setPicMD5("/"+repair.getPicMD5());
  339. RepairInfoVo repairInfoVo = new RepairInfoVo(repair);
  340. repairInfoVo.setStatesInfo(RepairEnumCN.stateOf(repair.getStatus()).getStateInfo());
  341. repairInfoVos.add(repairInfoVo);
  342. }
  343. model.addAttribute("repairInfoVos", repairInfoVos);
  344. return "student/tobecanceled";
  345. }
  346. /**
  347. * 同意取消报修单
  348. *
  349. * @param repairId
  350. * @param httpServletRequest
  351. * @return
  352. */
  353. @RequestMapping(value = "/tobecanceled/{repairId}/agree", method = RequestMethod.GET)
  354. public String agreeCanceled(@PathVariable("repairId") int repairId, HttpServletRequest httpServletRequest) {
  355. String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
  356. Student student = studentService.getStudentByEmail(id);
  357. repairService.agreeToBeCanceled(repairId);
  358. return "redirect:/student/tobecanceled";
  359. }
  360. /**
  361. * 拒绝取消报修单
  362. *
  363. * @param repairId
  364. * @param httpServletRequest
  365. * @return
  366. */
  367. @RequestMapping(value = "/tobecanceled/{repairId}/reject", method = RequestMethod.GET)
  368. public String rejectCanceled(@PathVariable("repairId") int repairId, HttpServletRequest httpServletRequest) {
  369. String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
  370. repairService.rejectToBeCanceled(repairId);
  371. return "redirect:/student/tobecanceled";
  372. }
  373. /**
  374. * 获取个人信息的控制器
  375. *
  376. * @param httpServletRequest
  377. * @param model
  378. * @return
  379. */
  380. @RequestMapping(value = "/info", method = RequestMethod.GET)
  381. public String infomation(HttpServletRequest httpServletRequest, Model model) {
  382. String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
  383. Student student = studentService.getStudentById(id);
  384. StudentResult studentResult = new StudentResult(
  385. student.getId(), student.getName(), student.getPassword(),
  386. student.getSexual(), student.getSexual() == 0 ? "男" : "女",
  387. student.getEmail(), student.getPhone(), student.getDoor());
  388. model.addAttribute("student", studentResult);
  389. return "student/info";
  390. }
  391. /**
  392. * 修改密码的控制器
  393. *
  394. * @param password
  395. * @param httpSession
  396. * @param httpServletResponse
  397. * @param httpServletRequest
  398. * @return
  399. */
  400. @RequestMapping(value = "/changepassword", method = RequestMethod.POST)
  401. public
  402. @ResponseBody
  403. LoginResult changePassword(String password, HttpSession httpSession, HttpServletResponse httpServletResponse, HttpServletRequest httpServletRequest) {
  404. String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
  405. Student student = studentService.getStudentByEmail(id);
  406. studentService.changePassword(student.getId(), password);
  407. return new LoginResult(true);
  408. }
  409. /**
  410. * 修改其它资料
  411. *
  412. * @param name
  413. * @param phone
  414. * @param sexual
  415. * @param httpSession
  416. * @param httpServletResponse
  417. * @param httpServletRequest
  418. * @return
  419. */
  420. @RequestMapping(value = "/feelist", method = RequestMethod.GET)
  421. public String feelist( Model model, HttpSession httpSession, HttpServletResponse httpServletResponse, HttpServletRequest httpServletRequest) {
  422. String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
  423. Student student = studentService.getStudentById(id);
  424. String doorName = student.getDoor();
  425. Door door = doorDao.queryByName(doorName);
  426. model.addAttribute("fee", door);
  427. return "student/feelist";
  428. }
  429. @RequestMapping(value = "/feeupload", method = RequestMethod.GET)
  430. public String feeupload(Model model,HttpSession httpSession, HttpServletResponse httpServletResponse, HttpServletRequest httpServletRequest) {
  431. String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
  432. Student student = studentService.getStudentById(id);
  433. String doorName = student.getDoor();
  434. Door door = doorDao.queryByName(doorName);
  435. model.addAttribute("feeup", door);
  436. return "student/feeupload";
  437. }
  438. /**
  439. * 缴费
  440. * @param model
  441. * @param httpSession
  442. * @param httpServletResponse
  443. * @param httpServletRequest
  444. * @return
  445. */
  446. @RequestMapping(value = "/uploadfee", method = RequestMethod.POST)
  447. public String uploadfee(String name, String water, String power,Model model,HttpSession httpSession, HttpServletResponse httpServletResponse, HttpServletRequest httpServletRequest) {
  448. String id = null;
  449. try {
  450. id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
  451. } catch (NullPointerException e1) {
  452. return "student/login";
  453. }
  454. Student student = studentService.getStudentById(id);
  455. String doorName = student.getDoor();
  456. Door door = doorDao.queryByName(doorName);
  457. double waterInput = 0;
  458. double PowerInput = 0;
  459. double waterDB = 0;
  460. double powerDB = 0;
  461. try {
  462. waterInput = Double.parseDouble(water);
  463. } catch (NumberFormatException e) {
  464. waterInput = 0;
  465. }
  466. try {
  467. PowerInput = Double.parseDouble(power);
  468. } catch (NumberFormatException e) {
  469. PowerInput = 0;
  470. }
  471. try {
  472. waterDB = Double.parseDouble(door.getWater());
  473. } catch (NumberFormatException e) {
  474. waterDB = 0;
  475. }
  476. try {
  477. powerDB = Double.parseDouble(door.getPower());
  478. } catch (NumberFormatException e) {
  479. powerDB = 0;
  480. }
  481. door.setWater( waterDB+waterInput+"");
  482. door.setPower( powerDB+PowerInput+"");
  483. door.setDate(new Date(System.currentTimeMillis()));
  484. doorDao.update(door);
  485. model.addAttribute("fee", door);
  486. return "student/feelist";
  487. }
  488. /**
  489. * 修改其它资料
  490. *
  491. * @param name
  492. * @param phone
  493. * @param sexual
  494. * @param httpSession
  495. * @param httpServletResponse
  496. * @param httpServletRequest
  497. * @return
  498. */
  499. @RequestMapping(value = "/changeinfo", method = RequestMethod.POST)
  500. public
  501. @ResponseBody
  502. LoginResult changeInfo(String name, String phone, String sexual, HttpSession httpSession, HttpServletResponse httpServletResponse, HttpServletRequest httpServletRequest) {
  503. String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
  504. System.out.println("name:"+name+";phone:"+phone+";sexual:"+sexual);
  505. Student student = studentService.getStudentByEmail(id);
  506. if(sexual.equals("男"))
  507. {
  508. sexual="0";
  509. }else{
  510. sexual="1";
  511. }
  512. studentService.changeOtherInfo(student.getId(), Integer.valueOf(sexual), name, phone);
  513. httpServletResponse.addCookie(new Cookie(StudentConst.STUDENT_NAME, student.getName()));
  514. return new LoginResult(true);
  515. }
  516. }

学生登录验证的拦截器: 

  1. /**
  2. * 学生登录验证的拦截器
  3. *
  4. */
  5. public class StudentSessionInterceptor implements HandlerInterceptor {
  6. private Logger logger = LoggerFactory.getLogger(this.getClass());
  7. @Override
  8. public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
  9. Object email = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_EMAIL);
  10. if (email == null) {
  11. logger.info("用户尚未登录,将其重定向至登录页面");
  12. httpServletResponse.sendRedirect("/student/login");
  13. return false;
  14. }
  15. return true;
  16. }
  17. @Override
  18. public void postHandle(HttpServletRequest hsr, HttpServletResponse hsr1, Object o, ModelAndView mav) throws Exception {
  19. }
  20. @Override
  21. public void afterCompletion(HttpServletRequest hsr, HttpServletResponse hsr1, Object o, Exception excptn) throws Exception {
  22. }
  23. }

源码获取:俺的博客首页 "资源" 里下载!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/224274
推荐阅读
相关标签
  

闽ICP备14008679号