基于javaweb的校园报修管理系统(java+springboot+bootstrap+jsp+mysql)
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的校园报修管理系统(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项目:是;
技术栈
- 后端:SpringBoot 2. 前端:JSP+CSS+JavaScript+jquery+bootstrap
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录
系统管理员端的控制器:
/**
- 系统管理员端的控制器
*/
@Controller
@RequestMapping(value = “/admin”)
public class AdminController {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Resource
private RepairService repairService;
@Resource
private StudentService studentService;
@Resource
private AdminService adminService;
@Resource
private UrgentRepairService urgentRepairService;
@Resource
private MaintenanceService maintenanceService;
@Resource
private TechnicianService technicianService;
@Resource
private DoorDao doorDao;
@RequestMapping(value = “/login”, method = RequestMethod.GET)
public String login(Model model) {
return “redirect:…/student/login”;
@RequestMapping(value = “/login”, method = RequestMethod.POST)
@ResponseBody
public LoginResult login(int id, String password, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
logger.info(“admin login===”);
logger.info("admin id: "+id);
logger.info("admin password: "+password);
logger.info(“admin login===”);
Admin admin = adminService.getAdminById(id);
LoginResult loginResult = null;
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 repairs = repairService.getAllUnFinish();
Student student;
List 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)
public String detailRepair(@PathVariable(“repairId”) int repairId, Model model) {
Repair 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 “admin/detail”;
@RequestMapping(value = “/repair/{repairId}/cancel”, method = RequestMethod.GET)
public String cancelRepair(@PathVariable(“repairId”) int repairId) {
repairService.cancelRepair(repairId);
return “redirect:/admin/dashboard”;
@RequestMapping(value = “/repair/{repairId}/confirm”, method = RequestMethod.GET)
public String confirmRepair(@PathVariable(“repairId”) int repairId) {
repairService.confirmRepair(repairId);
return “redirect:/admin/dashboard”;
@RequestMapping(value = “/repair/{repairId}/arrange”, method = RequestMethod.GET)
public String arrangeRepair(@PathVariable(“repairId”) int repairId, Model model) {
Repair repair = repairService.getRepairById(repairId);
if (repair.getStatus() == RepairEnum.REPAIR_ARRANGED.getState())
return “redirect:/admin/repair/” + String.valueOf(repairId) + “/detail”;
List techniciens = technicianService.getAllTechnician();
model.addAttribute(“repair”, repair);
model.addAttribute(“techniciens”, techniciens);
return “/admin/addArrange”;
@RequestMapping(value = “/maintenance/{repairId}/add”, method = RequestMethod.POST)
public String submitArrange(@PathVariable(“repairId”) int repairId, @RequestParam(“technicianId”) String technicianId) {
// 解决表单提交时乱码的问题(JSP在表单提交时默认采用ISO-8859-1编码)
try {
technicianId = new String(technicianId.getBytes(“ISO-885