基于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.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/ 登录
        String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

        List<Repair> repairs = repairService.getAllToBeCanceledById(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);
        }
        model.addAttribute("repairInfoVos", repairInfoVos);

        return "student/tobecanceled";

    }

    /**
     * 同意取消报修单
     *
     * @param repairId
     * @param httpServletRequest
     * @return
     */
    @RequestMapping(value = "/tobecanceled/{repairId}/agree", method = RequestMethod.GET)
    public String agreeCanceled(@PathVariable("repairId") int repairId, HttpServletRequest httpServletRequest) {
        String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

        Student student = studentService.getStudentByEmail(id);

        repairService.agreeToBeCanceled(repairId);

        return "redirect:/student/tobecanceled";
    }

    /**
     * 拒绝取消报修单
     *
     * @param repairId
     * @param httpServletRequest
     * @return
     */
    @RequestMapping(value = "/tobecanceled/{repairId}/reject", method = RequestMethod.GET)
    public String rejectCanceled(@PathVariable("repairId") int repairId, HttpServletRequest httpServletRequest) {
        String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

        repairService.rejectToBeCanceled(repairId);

        return "redirect:/student/tobecanceled";
    }
        urgentRepairService.reSubmit(repairId);

        return "redirect:/student/urgent";
    }

    /**
     * 获取所有待取消的报修单
     *
     * @param httpServletRequest
     * @param model
     * @return
     */
    @RequestMapping(value = "/tobecanceled", method = RequestMethod.GET)
    public String toBeCanceled(HttpServletRequest httpServletRequest, Model model) {
        String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

        List<Repair> repairs = repairService.getAllToBeCanceledById(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);
        }
        model.addAttribute("repairInfoVos", repairInfoVos);

        return "student/tobecanceled";

    }

    /**
     * 同意取消报修单
     *
     * @param repairId
     * @param httpServletRequest
     * @return
     */
    @RequestMapping(value = "/tobecanceled/{repairId}/agree", method = RequestMethod.GET)
    public String agreeCanceled(@PathVariable("repairId") int repairId, HttpServletRequest httpServletRequest) {
        String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

        String sno = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

        int id = repairId;

        String picMD5 = "";

        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";
    }

    /**
     * 验收报修单
        try {
            logger.info(file.getInputStream().toString());
        } catch (IOException e) {
            e.printStackTrace();
        }

        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);


/**
 * 学生登录验证的拦截器
 *
 */
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;
        }
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest hsr, HttpServletResponse hsr1, Object o, ModelAndView mav) throws Exception {
    }

    @Override
    public void afterCompletion(HttpServletRequest hsr, HttpServletResponse hsr1, Object o, Exception excptn) throws Exception {
    }

}
package com.ilovecl.demo.interceptor;

/**
 * 系统管理员登录验证拦截器
 *
 */
public class AdminSessionInterceptor 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("ADMIN_EMAIL");
        if (email == null) {
            logger.info("管理员尚未登录,将其重定向至登录页面");
            httpServletResponse.sendRedirect("/admin/login");
            return false;
        }

        Student student = studentService.getStudentByEmail(id);

        studentService.changePassword(student.getId(), password);

        return new LoginResult(true);
    }
    
    
    /**
     * 修改其它资料
     *
     * @param name
     * @param phone
     * @param sexual
     * @param httpSession
     * @param httpServletResponse
     * @param httpServletRequest
     * @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)
    @RequestMapping(value = "/tobecanceled", method = RequestMethod.GET)
    public String toBeCanceled(HttpServletRequest httpServletRequest, Model model) {
        String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

        List<Repair> repairs = repairService.getAllToBeCanceledById(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);
        }
        model.addAttribute("repairInfoVos", repairInfoVos);

        return "student/tobecanceled";

    }

    /**
     * 同意取消报修单
     *
     * @param repairId
     * @param httpServletRequest
     * @return
     */
    @RequestMapping(value = "/tobecanceled/{repairId}/agree", method = RequestMethod.GET)
    public String agreeCanceled(@PathVariable("repairId") int repairId, HttpServletRequest httpServletRequest) {
        String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

        Student student = studentService.getStudentByEmail(id);

        repairService.agreeToBeCanceled(repairId);

        return "redirect:/student/tobecanceled";
    }

    /**
     * 拒绝取消报修单
     *
     * @param repairId
     * @param httpServletRequest
     * @return
     */
    @RequestMapping(value = "/tobecanceled/{repairId}/reject", method = RequestMethod.GET)
    public String rejectCanceled(@PathVariable("repairId") int repairId, HttpServletRequest httpServletRequest) {
        String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

        repairService.rejectToBeCanceled(repairId);

        return "redirect:/student/tobecanceled";
    }
     * 获取所有待取消的报修单
     *
     * @param httpServletRequest
     * @param model
     * @return
     */
    @RequestMapping(value = "/tobecanceled", method = RequestMethod.GET)
    public String toBeCanceled(HttpServletRequest httpServletRequest, Model model) {
        String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

        List<Repair> repairs = repairService.getAllToBeCanceledById(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);
        }
        model.addAttribute("repairInfoVos", repairInfoVos);

        return "student/tobecanceled";

    }

    /**
     * 同意取消报修单
     *
     * @param repairId
     * @param httpServletRequest
     * @return
     */
    @RequestMapping(value = "/tobecanceled/{repairId}/agree", method = RequestMethod.GET)
    public String agreeCanceled(@PathVariable("repairId") int repairId, HttpServletRequest httpServletRequest) {
        String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

        Student student = studentService.getStudentByEmail(id);

        repairService.agreeToBeCanceled(repairId);

        return "redirect:/student/tobecanceled";
    }

    /**
     * 拒绝取消报修单
     *
     * @param repairId
     * @param httpServletRequest
     * @return

        Student student = studentService.getStudentByEmail(id);

        repairService.agreeToBeCanceled(repairId);

        return "redirect:/student/tobecanceled";
    }

    /**
     * 拒绝取消报修单
     *
     * @param repairId
     * @param httpServletRequest
     * @return
     */
    @RequestMapping(value = "/tobecanceled/{repairId}/reject", method = RequestMethod.GET)
    public String rejectCanceled(@PathVariable("repairId") int repairId, HttpServletRequest httpServletRequest) {
        String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

        repairService.rejectToBeCanceled(repairId);

        return "redirect:/student/tobecanceled";
    }

    /**
     * 获取个人信息的控制器
     *
     * @param httpServletRequest
     * @param model
     * @return
     */
    @RequestMapping(value = "/info", method = RequestMethod.GET)
    public String infomation(HttpServletRequest httpServletRequest, Model model) {
        String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

        Student student = studentService.getStudentById(id);

        StudentResult studentResult = new StudentResult(
                student.getId(), student.getName(), student.getPassword(),
                student.getSexual(), student.getSexual() == 0 ? "男" : "女",
                student.getEmail(), student.getPhone(), student.getDoor());
        model.addAttribute("student", studentResult);

                student.getEmail(), student.getPhone(), student.getDoor());
        model.addAttribute("student", studentResult);

        return "student/info";
    }

    /**
     * 修改密码的控制器
     *
     * @param password
     * @param httpSession
     * @param httpServletResponse
     * @param httpServletRequest
     * @return
     */
    @RequestMapping(value = "/changepassword", method = RequestMethod.POST)
    public
    @ResponseBody
    LoginResult changePassword(String password, HttpSession httpSession, HttpServletResponse httpServletResponse, HttpServletRequest httpServletRequest) {
        String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

        Student student = studentService.getStudentByEmail(id);

        studentService.changePassword(student.getId(), password);

        return new LoginResult(true);
    }
    
    
    /**
     * 修改其它资料
     *
     * @param name
     * @param phone
     * @param sexual
     * @param httpSession
     * @param httpServletResponse
     * @param httpServletRequest
     * @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";
    }
        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<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);
        }
     * @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);

        return "student/urgent";
    }

    /**
     * 删除某条催单
     *
     * @param repairId
     * @param httpServletRequest
     * @return
     */
    @RequestMapping(value = "/urgent/{repairId}/delete", method = RequestMethod.GET)
     * @param httpServletRequest
     * @return
     */
    @RequestMapping(value = "/changepassword", method = RequestMethod.POST)
    public
    @ResponseBody
    LoginResult changePassword(String password, HttpSession httpSession, HttpServletResponse httpServletResponse, HttpServletRequest httpServletRequest) {
        String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

        Student student = studentService.getStudentByEmail(id);

        studentService.changePassword(student.getId(), password);

        return new LoginResult(true);
    }
    
    
    /**
     * 修改其它资料
     *
     * @param name
     * @param phone
     * @param sexual
     * @param httpSession
     * @param httpServletResponse
     * @param httpServletRequest
     * @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
        double powerDB = 0;
        try {
        	waterInput = Double.parseDouble(water);
		} catch (NumberFormatException e) {
			waterInput = 0;
		}
        try {
        	PowerInput = Double.parseDouble(power);
		} catch (NumberFormatException e) {
			PowerInput = 0;
		}
        try {
        	waterDB = Double.parseDouble(door.getWater());
		} catch (NumberFormatException e) {
			waterDB = 0;
		}
        try {
        	powerDB = Double.parseDouble(door.getPower());
		} catch (NumberFormatException e) {
			powerDB = 0;
		}
        
        door.setWater( waterDB+waterInput+"");
        door.setPower( powerDB+PowerInput+"");
        door.setDate(new Date(System.currentTimeMillis()));
        doorDao.update(door);
        model.addAttribute("fee", door);
    	return "student/feelist";
    }
    

    /**
     * 修改其它资料
     *
     * @param name
     * @param phone
     * @param sexual
     * @param httpSession
     * @param httpServletResponse
     * @param httpServletRequest
     * @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("男"))
        {
    }

    @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<Technician> 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-8859-1"), "utf8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

        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);

                            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";
    }

    @RequestMapping(value = "/student", method = RequestMethod.GET)
    public String student(Model model) {
        List<Student> students = studentService.getAll();

        List<StudentResult> studentResults = new ArrayList<StudentResult>();

        for (Student student : students) {
            studentResults.add(new StudentResult(
                    student.getId(), student.getName(), student.getPassword(),
                    student.getSexual(), student.getSexual() == 0 ? "男" : "女",
                    student.getEmail(), student.getPhone(), student.getDoor())
            );
        }
        model.addAttribute("students", studentResults);

        return "admin/student";
    }

    @RequestMapping(value = "/addstudent", method = RequestMethod.GET)
    public String addStudent(Model model) {
        return "/admin/addStudent";
    }

            RepairInfoVo repairInfoVo = new RepairInfoVo(repair);
            repairInfoVo.setStatesInfo(RepairEnumCN.stateOf(repair.getStatus()).getStateInfo());
            repairInfoVos.add(repairInfoVo);
        }
        model.addAttribute("repairInfoVos", repairInfoVos);

        return "/student/dashboard";
    }

    /**
     * 报修单详情
     *
     * @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";
    }

    /**
     * 修改报修单
     *
        List<Maintenance> maintenances = maintenanceService.getAll();

        List<MaintenanceResult> maintenanceResults = new ArrayList<MaintenanceResult>();

        Repair repair;
        Technician technician;

        for (Maintenance maintenance : maintenances) {

            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 "/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 {
                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) {
            repairInfoVo.setStatesInfo(RepairEnumCN.stateOf(repair.getStatus()).getStateInfo());
            repairInfoVos.add(repairInfoVo);
        }
        model.addAttribute("repairInfoVos", repairInfoVos);

        return "/student/dashboard";
    }

    /**
     * 报修单详情
     *
     * @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);

        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<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}/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<Technician> 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-8859-1"), "utf8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

        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){
        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);
        return "/student/update";
    }

    /**
     * 修改报修单
     *
     * @return
     */
    @RequestMapping(value = "/repair/{repairId}/update", method = RequestMethod.POST)
    public String update(@PathVariable("repairId") int repairId, @RequestParam("detail") String detail, @RequestParam("place") String place,
                         @RequestParam("file") MultipartFile file, HttpServletRequest httpServletRequest) {

        String sno = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();
                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)
    public String detailRepair(@PathVariable("repairId") int repairId, Model model) {
        Repair repair;

        repair = repairService.getRepairById(repairId);
        repair.setPicMD5("/" + repair.getPicMD5());
        try {
        	PowerInput = Double.parseDouble(power);
		} catch (NumberFormatException e) {
			PowerInput = 0;
		}
        try {
        	waterDB = Double.parseDouble(door.getWater());
		} catch (NumberFormatException e) {
			waterDB = 0;
		}
        try {
        	powerDB = Double.parseDouble(door.getPower());
		} catch (NumberFormatException e) {
			powerDB = 0;
		}
        
        door.setWater( waterDB+waterInput+"");
        door.setPower( powerDB+PowerInput+"");
        door.setDate(new Date(System.currentTimeMillis()));
        doorDao.update(door);
        model.addAttribute("fee", door);
    	return "student/feelist";
    }
    

    /**
     * 修改其它资料
     *
     * @param name
     * @param phone
     * @param sexual
     * @param httpSession
     * @param httpServletResponse
     * @param httpServletRequest
     * @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";

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: javaweb大作业管理系统是一种基于Java语言和Web技术开发的项目管理系统。它的主要功能是帮助教师或项目经理对大作业进行管理和监督,提高工作效率和组织管理能力。 该系统主要包括以下几个模块: 1. 用户管理模块:用于管理系统中的用户,包括教师、学生和管理员。教师可以创建和管理大作业,学生可以参与和提交作业,管理员具有对系统进行管理和维护的权限。 2. 项目管理模块:教师可以创建和管理各个大作业项目,包括设置截止日期、分配任务、查看进度等。学生可以获取相关任务和进度,并进行作业提交。该模块可以帮助教师对项目进行全面监督和控制。 3. 文件管理模块:学生可以在该模块中上传和下载与大作业相关的文件,如参考资料、实验数据等。教师可以对文件进行管理和审核,确保作业的完整性和规范性。 4. 通知管理模块:教师可以通过系统向学生发送通知和提醒,包括作业要求、评分标准等。学生也可以在该模块中跟教师进行沟通和交流。 5. 成绩管理模块:该模块用于统计和管理学生的大作业成绩,包括评分、排名、成绩分布等。教师可以根据不同的评分标准进行评分,学生可以及时查看自己的成绩和排名情况。 综上所述,javaweb大作业管理系统是一个功能齐全、操作简便的项目管理工具。通过该系统,教师和学生可以方便地进行作业管理和交流,提高项目的管理效率和质量。该系统还具备良好的扩展性和灵活性,可以根据实际需求进行定制和升级,满足不同学校和项目组的需求。 ### 回答2: JavaWeb大作业管理系统是一种基于JavaWeb技术开发的系统,旨在提供一个高效、方便的管理作业、指导学生的平台。该系统可以分为管理员和学生两个角色,具有以下功能: 1. 管理员功能: - 用户管理:管理员可以添加、编辑和删除用户信息,包括学生和教师用户。 - 课程管理:管理员可以添加、编辑和删除课程信息,包括课程名称、课程编号等。 - 作业管理:管理员可以发布作业信息,并设定截止日期和提交方式。 - 成绩管理:管理员可以录入学生成绩,并通过系统生成报表。 2. 学生功能: - 查看作业:学生可以查看已发布的作业信息,并了解作业要求和截止日期。 - 提交作业:学生可以在线提交作业文件,系统会自动记录提交时间。 - 查看成绩:学生可以查看自己的作业成绩和评语。 该系统的特点包括: - 用户友好:采用了直观的界面设计,易于使用,并提供了操作提示。 - 安全性:用户登录时需要验证身份,确保系统数据的安全。 - 实时反馈:管理员可以即时了解到学生的作业情况,及时指导和提醒学生。 - 数据管理:系统使用数据库来存储用户信息、课程信息和作业信息,提供数据的有效管理。 总之,JavaWeb大作业管理系统是一个方便高效的作业管理平台,能够满足管理员对作业管理的需求,同时提供学生查看作业、提交作业和查看成绩的功能。该系统通过采用JavaWeb技术和数据库来实现,具有良好的用户体验和数据管理能力。 ### 回答3: javaweb大作业管理系统是一种基于Java语言和Web技术开发的管理系统,用于帮助教师和学生管理大作业的信息和进度。 该系统首先提供了用户账户的注册和登录功能,分为教师账户和学生账户。教师账户可以创建课程和布置大作业,学生账户可以选择并加入课程。 在课程管理功能中,教师可以创建和编辑课程信息,包括课程名称、课程介绍、授课教师等,并可以将学生添加到课程中。学生可以浏览可加入的课程并选择加入,获取对应的课程信息。 在大作业管理功能中,教师可以为每个课程布置大作业,包括作业名称、截止日期、作业要求等,并可以上传相关资料和参考文献。教师还可以监控学生提交作业的进度,并给予评价和反馈。学生可以在规定的时间内提交作业,并可以查看教师的评价和反馈意见。 除了大作业管理外,该系统还提供了教学资源管理功能,教师可以在系统中上传教学资源,如课件、实验指导书等,供学生在线学习和下载。 此外,该系统还提供了讨论区功能,学生和教师可以在课程讨论区中发布问题、讨论课程内容,提供解答和意见,促进学习和交流。 总结来说,javaweb大作业管理系统通过账户管理、课程管理、大作业管理、教学资源管理和讨论区功能,有效地帮助教师和学生管理大作业的信息和进度,提升教学效率和学习质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值