基于javaweb+mysql的springboot校园报修管理系统(java+springboot+bootstrap+jsp+maven+mysql)
基于javaweb+mysql的springboot校园报修管理系统(java+springboot+bootstrap+jsp+maven+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的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版本;
技术栈
- 后端:SpringBoot 2. 前端:JSP+CSS+JavaScript+jquery+bootstrap
使用说明
运行项目,输入localhost:8080/ 登录
repair = repairService.getRepairById(maintenance.getRepairId());
// 以下状态的报修单对应的维修记录就没必要显示了
// 1. 被学生删除
// 2. 学生同意取消
// 3. 已经验收
if (repair.getStatus() == RepairEnum.DELETED_BY_STUDENT.getState()
|| repair.getStatus() == RepairEnum.CANCELED_AGREE.getState()
|| repair.getStatus() == RepairEnum.CONFIRM.getState())
{
continue;
}
technician = technicianService.getById(maintenance.getTechnicianId());
maintenanceResults.add(
new MaintenanceResult(
maintenance.getId(),
maintenance.getRepairId(), repair.getDetail(),
maintenance.getTechnicianId(), technician.getName(),
new Timestamp(System.currentTimeMillis())
)
);
}
model.addAttribute("list", maintenanceResults);
return "/admin/arrange";
}
@RequestMapping(value = "/arrange/{maintenanceId}/cancel", method = RequestMethod.GET)
public String cancelArrange(@PathVariable("maintenanceId") int maintenanceId) {
Maintenance maintenance = maintenanceService.getById(maintenanceId);
// 删除检修安排记录
maintenanceService.cancelMaintenance(maintenanceId);
// 同时也修改相应的维修单的状态
repairService.unArrangeRepair(maintenance.getRepairId());
return "redirect:/admin/arrange";
}
return new LoginResult(true);
}
}
/**
* 系统管理员端的控制器
*
*/
@Controller
@RequestMapping(value = "/admin")
public class AdminController {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Resource
private RepairService repairService;
@Resource
private StudentService studentService;
@Resource
LoginResult login(String id, String password, HttpSession httpSession, HttpServletResponse httpServletResponse) {
LoginResult loginResult=null;
String stuName = null;
Student student = studentService.getStudentById(id);
Spider spider = new Spider();
try {
//调用service将数据存入数据库中
if(student==null){
// stuName = spider.getStudentName(id, password);
// student = new Student(id, stuName, password);
// System.out.println(stuName);
// studentService.addStudent(id, stuName, password, 0, "", "");
loginResult = new LoginResult(true);
loginResult.setReason("invalid user");
}else{
stuName = student.getName();
// 密码正确
if (student.getPassword().equals(password)) {
loginResult = new LoginResult(true);
} else {
loginResult = new LoginResult(false);
loginResult.setReason("invalid user");
}
}
} catch (Exception e) {
e.printStackTrace();
}
if(loginResult.isSuccess()){
// 登录成功后,为该学生生成session
httpSession.setAttribute(StudentConst.STUDENT_ID, id);
httpServletResponse.addCookie(new Cookie(StudentConst.STUDENT_ID, id));
System.out.println("StudentName:"+StudentConst.STUDENT_NAME);
httpServletResponse.addCookie(new Cookie(StudentConst.STUDENT_NAME, stuName));
}
logger.info("***************************************************************************");
logger.info("登录: " + String.valueOf(loginResult.isSuccess()) + " id : " + id + " password : " + password);
logger.info("***************************************************************************");
return loginResult;
}
/**
* 退出的控制
}
@RequestMapping(value = "/finish", method = RequestMethod.GET)
public String finish(Model model) {
List<Repair> repairs = repairService.getAllFinish();
Student student;
List<RepairInfoVo> repairInfoVos = new ArrayList<>();
for(Repair repair: repairs){
student = studentService.getStudentById(repair.getStudentId());
RepairInfoVo repairInfoVo = new RepairInfoVo(student, repair);
repairInfoVo.setStatesInfo(RepairEnumCN.stateOf(repair.getStatus()).getStateInfo());
repairInfoVos.add(repairInfoVo);
}
model.addAttribute("repairInfoVos", repairInfoVos);
return "/admin/finish";
}
@RequestMapping(value = "/urgent", method = RequestMethod.GET)
public String urgent(Model model) {
List<UrgentRepair> urgentRepairs = urgentRepairService.getAllUrgentRepair();
List<UrgentRepairResult> urgentRepairResults = new ArrayList<UrgentRepairResult>();
Student student;
Repair repair;
for (UrgentRepair urgentRepair : urgentRepairs) {
repair = repairService.getRepairById(urgentRepair.getRepairId());
student = studentService.getStudentById(urgentRepair.getStudentId());
urgentRepairResults.add(
new UrgentRepairResult
(urgentRepair.getId(),
urgentRepair.getStatus(), UrgentRepairEnum.stateOf(urgentRepair.getStatus()).getStateInfo(),
urgentRepair.getRepairId(), repair.getDetail(),
urgentRepair.getStudentId(), student.getName(),
new Timestamp(System.currentTimeMillis())));
}
model.addAttribute("list", urgentRepairResults);
return "/admin/urgent";
}
* @return
*/
@RequestMapping(value = "/feelist", method = RequestMethod.GET)
public String feelist( Model model, HttpSession httpSession, HttpServletResponse httpServletResponse, HttpServletRequest httpServletRequest) {
String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
Student student = studentService.getStudentById(id);
String doorName = student.getDoor();
Door door = doorDao.queryByName(doorName);
model.addAttribute("fee", door);
return "student/feelist";
}
@RequestMapping(value = "/feeupload", method = RequestMethod.GET)
public String feeupload(Model model,HttpSession httpSession, HttpServletResponse httpServletResponse, HttpServletRequest httpServletRequest) {
String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
Student student = studentService.getStudentById(id);
String doorName = student.getDoor();
Door door = doorDao.queryByName(doorName);
model.addAttribute("feeup", door);
return "student/feeupload";
}
/**
* 缴费
* @param model
* @param httpSession
* @param httpServletResponse
* @param httpServletRequest
* @return
*/
@RequestMapping(value = "/uploadfee", method = RequestMethod.POST)
public String uploadfee(String name, String water, String power,Model model,HttpSession httpSession, HttpServletResponse httpServletResponse, HttpServletRequest httpServletRequest) {
String id = null;
try {
id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
} catch (NullPointerException e1) {
return "student/login";
}
Student student = studentService.getStudentById(id);
String doorName = student.getDoor();
Door door = doorDao.queryByName(doorName);
double waterInput = 0;
double PowerInput = 0;
*/
@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);
}
}
/**
* 用户的web层
*
*/
@Controller
@CrossOrigin(origins = {"http://localhost:18084", "null"})
@RequestMapping("/student")
public class StudentController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Resource
private StudentService studentService;
@Resource
private RepairService repairService;
@Resource
private UrgentRepairService urgentRepairService;
@Resource
private DoorDao doorDao;
@RequestMapping(value = "/introduce", method = RequestMethod.GET)
public String index() {
return "student/introduce";
}
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";
}
/**
* 将报修单标记为催单
*
if (file != null) {
try {
picMD5 = MD5.getMD5(id + String.valueOf(System.currentTimeMillis()) + file.getOriginalFilename());
} catch (Exception e) {
e.printStackTrace();
}
// 往数据库中插入维修单记录
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());
@Resource
private UrgentRepairService urgentRepairService;
@Resource
private DoorDao doorDao;
@RequestMapping(value = "/introduce", method = RequestMethod.GET)
public String index() {
return "student/introduce";
}
/**
* 登录的GET方法
*
* @return
*/
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String login() {
return "student/login";
}
/**
* 登录的POST方法
*
* @param id
* @param password
* @param httpSession
* @return
*/
@RequestMapping(value = "/login", method = RequestMethod.POST)
public
@ResponseBody
LoginResult login(String id, String password, HttpSession httpSession, HttpServletResponse httpServletResponse) {
LoginResult loginResult=null;
String stuName = null;
Student student = studentService.getStudentById(id);
Spider spider = new Spider();
try {
//调用service将数据存入数据库中
if(student==null){
// stuName = spider.getStudentName(id, password);
// student = new Student(id, stuName, password);
// System.out.println(stuName);
// studentService.addStudent(id, stuName, password, 0, "", "");
loginResult = new LoginResult(true);
loginResult.setReason("invalid user");
}else{
/**
* 登录的GET方法
*
* @return
*/
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String login() {
return "student/login";
}
/**
* 登录的POST方法
*
* @param id
* @param password
* @param httpSession
* @return
*/
@RequestMapping(value = "/login", method = RequestMethod.POST)
public
@ResponseBody
LoginResult login(String id, String password, HttpSession httpSession, HttpServletResponse httpServletResponse) {
LoginResult loginResult=null;
String stuName = null;
Student student = studentService.getStudentById(id);
Spider spider = new Spider();
try {
//调用service将数据存入数据库中
if(student==null){
// stuName = spider.getStudentName(id, password);
// student = new Student(id, stuName, password);
// System.out.println(stuName);
// studentService.addStudent(id, stuName, password, 0, "", "");
loginResult = new LoginResult(true);
loginResult.setReason("invalid user");
}else{
stuName = student.getName();
/**
* 用户的web层
*
*/
@Controller
@CrossOrigin(origins = {"http://localhost:18084", "null"})
@RequestMapping("/student")
public class StudentController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Resource
private StudentService studentService;
@Resource
private RepairService repairService;
@Resource
private UrgentRepairService urgentRepairService;
@Resource
*
* @param repairId
* @param model
* @return
*/
@RequestMapping(value = "/repair/{repairId}/detail", method = RequestMethod.GET)
public String detail(@PathVariable("repairId") int repairId, Model model) {
Repair repair = repairService.getRepairById(repairId);
repair.setPicMD5("/" + repair.getPicMD5());
RepairInfoVo repairInfoVo = new RepairInfoVo(repair);
repairInfoVo.setStatesInfo(RepairEnumCN.stateOf(repair.getStatus()).getStateInfo());
model.addAttribute("repairInfoVo", repairInfoVo);
return "student/detail";
}
/**
* 删除报修单
*
* @param repairId
* @return
*/
@RequestMapping(value = "/repair/{repairId}/delete", method = RequestMethod.GET)
public String delete(@PathVariable("repairId") int repairId) {
repairService.deleteRepair(repairId);
return "redirect:/student/dashboard";
}
/**
* 修改报修单
*
* @param repairId
* @param model
* @return
*/
@RequestMapping(value = "/repair/{repairId}/update", method = RequestMethod.GET)
public String update(@PathVariable("repairId") int repairId, Model model) {
Repair repair = repairService.getRepairById(repairId);
model.addAttribute("repair", repair);
}
repairService.arrangeRepair(repairId, Integer.valueOf(technicianId));
return "redirect:/admin/dashboard";
}
@RequestMapping(value = "/finish", method = RequestMethod.GET)
public String finish(Model model) {
List<Repair> repairs = repairService.getAllFinish();
Student student;
List<RepairInfoVo> repairInfoVos = new ArrayList<>();
for(Repair repair: repairs){
student = studentService.getStudentById(repair.getStudentId());
RepairInfoVo repairInfoVo = new RepairInfoVo(student, repair);
repairInfoVo.setStatesInfo(RepairEnumCN.stateOf(repair.getStatus()).getStateInfo());
repairInfoVos.add(repairInfoVo);
}
model.addAttribute("repairInfoVos", repairInfoVos);
return "/admin/finish";
}
@RequestMapping(value = "/urgent", method = RequestMethod.GET)
public String urgent(Model model) {
List<UrgentRepair> urgentRepairs = urgentRepairService.getAllUrgentRepair();
List<UrgentRepairResult> urgentRepairResults = new ArrayList<UrgentRepairResult>();
Student student;
Repair repair;
for (UrgentRepair urgentRepair : urgentRepairs) {
repair = repairService.getRepairById(urgentRepair.getRepairId());
student = studentService.getStudentById(urgentRepair.getStudentId());
urgentRepairResults.add(
new UrgentRepairResult
(urgentRepair.getId(),
urgentRepair.getStatus(), UrgentRepairEnum.stateOf(urgentRepair.getStatus()).getStateInfo(),
urgentRepair.getRepairId(), repair.getDetail(),
urgentRepair.getStudentId(), student.getName(),
new Timestamp(System.currentTimeMillis())));
}
model.addAttribute("list", urgentRepairResults);
return "/admin/urgent";
}
*/
@RequestMapping(value = "/logout", method = RequestMethod.GET)
public String logout(HttpSession httpSession) {
httpSession.removeAttribute(StudentConst.STUDENT_EMAIL);
return "redirect:/student/login";
}
/**
* 提交报修单的POST方法
*
* @param model
* @return
*/
@RequestMapping(value = "/commit", method = RequestMethod.GET)
public String commit(Model model) {
return "/student/commit";
}
@RequestMapping(value = "/commit", method = RequestMethod.POST)
public String commit(@RequestParam("detail") String detail, @RequestParam("place") String place,
@RequestParam("file") MultipartFile file, HttpServletRequest httpServletRequest) {
String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
Student student = studentService.getStudentById(id);
String picMD5 = "";
logger.info(detail);
logger.info(place);
logger.info(picMD5);
try {
logger.info(file.getInputStream().toString());
} catch (IOException e) {
e.printStackTrace();
}
if (file != null) {
try {
@Controller
@CrossOrigin(origins = {"http://localhost:18084", "null"})
@RequestMapping("/student")
public class StudentController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Resource
private StudentService studentService;
@Resource
private RepairService repairService;
@Resource
private UrgentRepairService urgentRepairService;
@Resource
private DoorDao doorDao;
@RequestMapping(value = "/introduce", method = RequestMethod.GET)
public String index() {
return "student/introduce";
}
/**
* 登录的GET方法
*
* @return
*/
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String login() {
return "student/login";
}
/**
* 登录的POST方法
*
* @param id
* @param password
* @param httpSession
* @return
*/
@RequestMapping(value = "/login", method = RequestMethod.POST)
if(admin==null){
logger.info("admin null");
loginResult = new LoginResult(false);
}else{
String psw = admin.getPassword();
logger.info("admin password:"+psw);
//密码正确
if(psw.equals(password)){
loginResult = new LoginResult(true);
httpServletRequest.getSession().setAttribute("ADMIN_ID", id);
httpServletResponse.addCookie(new Cookie("ADMIN_ID", String.valueOf(id)));
}else{
loginResult = new LoginResult(false);
}
}
if(!loginResult.isSuccess()){
loginResult.setReason("invalid user");
}
logger.info("LoginResult:"+loginResult);
return loginResult;
}
@RequestMapping(value = "/logout", method = RequestMethod.GET)
public String logout(HttpSession httpSession) {
logger.info("退出要移除的sessionId是:"+httpSession.getId());
httpSession.removeAttribute("ADMIN_ID");
return "redirect:../student/login";
}
@RequestMapping(value = "/dashboard", method = RequestMethod.GET)
public String dashboard(Model model, HttpServletRequest httpServletRequest) {
List<Repair> repairs = repairService.getAllUnFinish();
Student student;
List<RepairInfoVo> repairInfoVos = new ArrayList<>();
for(Repair repair:repairs){
student = studentService.getStudentById(repair.getStudentId());
RepairInfoVo repairInfoVo = new RepairInfoVo(student, repair);
repairInfoVo.setStatesInfo(RepairEnumCN.stateOf(repair.getStatus()).getStateInfo());
repairInfoVos.add(repairInfoVo);
}
model.addAttribute("repairInfoVos", repairInfoVos);
return "/admin/dashboard";
}
@RequestMapping(value = "/repair/{repairId}/detail", method = RequestMethod.GET)