基于javaweb的SpringBoot校园报修管理系统(java+springboot+bootstrap+jsp+maven+mysql)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

160023462402

170023462402

180023462402

190023462402

200023462402

210023462402

基于javaweb的SpringBoot校园报修管理系统(java+springboot+bootstrap+jsp+maven+mysql)

项目介绍

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

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

环境需要

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

技术栈

  1. 后端:SpringBoot 2. 前端:JSP+CSS+JavaScript+jquery+bootstrap

使用说明
运行项目,输入localhost:8080/ 登录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

logger.info(detail);
logger.info(place);
logger.info(picMD5);

if (file != null) {
try {
picMD5 = MD5.getMD5(sno + String.valueOf(System.currentTimeMillis()) + file.getOriginalFilename());
} catch (Exception e) {
e.printStackTrace();
System.out.println("*************************************************");
}

// 保存现场照片
String path = httpServletRequest.getSession().getServletContext().getRealPath("/");
System.out.println("图片路径:" + path);
String fileName = picMD5;
File targetFile = new File(path, fileName);
try {
OutputStream outputStream = new FileOutputStream(targetFile);
InputStream inputStream = file.getInputStream();
byte[] buffer = new byte[2048];
int len = 0;
while ((len = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, len);
}
inputStream.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}

// 调用修改报修单接口
repairService.changeRepair(id, detail, place, picMD5);

return "redirect:/student/repair/" + String.valueOf(id) + "/detail";
}

/**
* 验收报修单
*
* @param repairId
* @return
*/
@RequestMapping(value = "/repair/{repairId}/acceptance", method = RequestMethod.GET)
public String acceptance(@PathVariable("repairId") int repairId) {
repairService.Acceptance(repairId);
return "redirect:/student/dashboard";
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
        // 保存现场照片
String path = httpServletRequest.getSession().getServletContext().getRealPath("/");
System.out.println("图片路径:" + path);
String fileName = picMD5;
File targetFile = new File(path, fileName);
try {
InputStream inputStream = file.getInputStream();
OutputStream outputStream = new FileOutputStream(targetFile);
byte[] buffer = new byte[2048];
int len = 0;
while ((len = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, len);
}
inputStream.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
} else {
// 往数据库中插入维修单记录
repairService.submitRepair(detail, place, picMD5, student.getId());
}

return "redirect:/student/dashboard";
}

/**
* 获取显示的主页面
*
* @param model
* @return
*/
@RequestMapping(value = "/dashboard", method = RequestMethod.GET)
public String board(Model model, HttpServletRequest httpServletRequest) {
String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

List<Repair> repairs = repairService.getRepqirByStudentId(id);

List<RepairInfoVo> repairInfoVos = new ArrayList<>();
for(Repair repair: repairs){
repair.setPicMD5("/"+repair.getPicMD5());
RepairInfoVo repairInfoVo = new RepairInfoVo(repair);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
     * @return
*/
@RequestMapping(value = "/changeinfo", method = RequestMethod.POST)
public
@ResponseBody
LoginResult changeInfo(String name, String phone, String sexual, HttpSession httpSession, HttpServletResponse httpServletResponse, HttpServletRequest httpServletRequest) {
String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
System.out.println("name:"+name+";phone:"+phone+";sexual:"+sexual);
Student student = studentService.getStudentByEmail(id);

if(sexual.equals("男"))
{
sexual="0";
}else{
sexual="1";
}
studentService.changeOtherInfo(student.getId(), Integer.valueOf(sexual), name, phone);

httpServletResponse.addCookie(new Cookie(StudentConst.STUDENT_NAME, student.getName()));

return new LoginResult(true);
}
}
package com.ilovecl.demo.web;


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

return "admin/technician";
}

/**
* 添加维修人员 GET方法
* @param model
* @return
*/
@RequestMapping(value = "/addtechnician", method = RequestMethod.GET)
public String addTechnician(Model model) {
return "/admin/addTechnician";
}

/**
* 添加维修人员 POST方法
* @param model
* @return
*/
@RequestMapping(value = "/addtechnician", method = RequestMethod.POST)
public String addTechnician(@RequestParam("name") String name,@RequestParam("number") String number,@RequestParam("phone") String phone, Model model, HttpServletRequest httpServletRequest) {

technicianService.addTechnician(name,number,phone);

return "redirect:/admin/technician";
}
}
package com.ilovecl.demo.interceptor;



/**
* 学生登录验证的拦截器
*
*/
public class StudentSessionInterceptor implements HandlerInterceptor {
private Logger logger = LoggerFactory.getLogger(this.getClass());

@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
Object email = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_EMAIL);
if (email == null) {
logger.info("用户尚未登录,将其重定向至登录页面");
httpServletResponse.sendRedirect("/student/login");
return false;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
        // 往数据库中插入维修单记录
repairService.submitRepair(detail, place, picMD5, student.getId());

// 保存现场照片
String path = httpServletRequest.getSession().getServletContext().getRealPath("/");
System.out.println("图片路径:" + path);
String fileName = picMD5;
File targetFile = new File(path, fileName);
try {
InputStream inputStream = file.getInputStream();
OutputStream outputStream = new FileOutputStream(targetFile);
byte[] buffer = new byte[2048];
int len = 0;
while ((len = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, len);
}
inputStream.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
} else {
// 往数据库中插入维修单记录
repairService.submitRepair(detail, place, picMD5, student.getId());
}

return "redirect:/student/dashboard";
}

/**
* 获取显示的主页面
*
* @param model
* @return
*/
@RequestMapping(value = "/dashboard", method = RequestMethod.GET)
public String board(Model model, HttpServletRequest httpServletRequest) {
String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

List<Repair> repairs = repairService.getRepqirByStudentId(id);

List<RepairInfoVo> repairInfoVos = new ArrayList<>();
for(Repair repair: repairs){
repair.setPicMD5("/"+repair.getPicMD5());
RepairInfoVo repairInfoVo = new RepairInfoVo(repair);
repairInfoVo.setStatesInfo(RepairEnumCN.stateOf(repair.getStatus()).getStateInfo());
repairInfoVos.add(repairInfoVo);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
public String acceptance(@PathVariable("repairId") int repairId) {
repairService.Acceptance(repairId);
return "redirect:/student/dashboard";
}

/**
* 将报修单标记为催单
*
* @param repairId
* @param httpServletRequest
* @return
*/
@RequestMapping(value = "/repair/{repairId}/urgent", method = RequestMethod.GET)
public String urgent(@PathVariable("repairId") int repairId, HttpServletRequest httpServletRequest) {
String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

Student student = studentService.getStudentById(id);

urgentRepairService.submitUrgentRepair(repairId, student.getId());

return "redirect:/student/urgent";
}

/**
* 查看所有的催单
*
* @param httpServletRequest
* @param model
* @return
*/
@RequestMapping(value = "/urgent", method = RequestMethod.GET)
public String showUrgent(HttpServletRequest httpServletRequest, Model model) {
String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

Student student = studentService.getStudentById(id);

List<UrgentRepair> urgentRepairs = urgentRepairService.getAllUrgentRepairByStudentId(student.getId());

List<StudentUrgentResult> studentUrgentResults = new ArrayList<StudentUrgentResult>();

String detail = "";
for (UrgentRepair urgentRepair : urgentRepairs) {
detail = repairService.getRepairById(urgentRepair.getRepairId()).getDetail();
studentUrgentResults.add(new StudentUrgentResult(
urgentRepair.getId(), urgentRepair.getStatus(), UrgentRepairEnum.stateOf(urgentRepair.getStatus()).getStateInfo(),
urgentRepair.getRepairId(), detail, urgentRepair.getStudentId(), urgentRepair.getCreateTime()));
}
model.addAttribute("studentUrgentResults", studentUrgentResults);


项目链接:
https://javayms.github.io?id=201122532008200qh
https://javayms.pages.dev?id=201122532008200qh