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/ 登录

 

 

 

 

系统管理员端的控制器: 

/**
 * 系统管理员端的控制器
 *
 */

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

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

        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 = "/urgent/{repairId}/delete", method = RequestMethod.GET)
    public String deleteUrgent(@PathVariable("repairId") int repairId) {
        urgentRepairService.checkUrgentRepair(repairId);
        return "redirect:/admin/urgent";
    }

    @RequestMapping(value = "/arrange", method = RequestMethod.GET)
    public String arrange(Model model) {
        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 "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";
    }

    @RequestMapping(value = "/addstudent", method = RequestMethod.POST)
    public String addStudent(@RequestParam("name") String name, @RequestParam("email") String email,
                             @RequestParam("password") String password, @RequestParam("sexual") String sexual,
                             @RequestParam("phone") String phone,@RequestParam("door") String door, Model model, HttpServletRequest httpServletRequest) {

        int sex = sexual.equals("男") ? 0 : 1;

        studentService.addStudent(System.currentTimeMillis()+"", name, password, sex, email, phone, door);
        Door door2 = doorDao.queryByName(door);
        if (door2==null) {
        	 Door doorObject = new Door();
             doorObject.setDate(new Date(System.currentTimeMillis()));
             doorObject.setId(System.currentTimeMillis()+"");
             doorObject.setName(door);
             doorObject.setPower("100");
             doorObject.setWater("100");
             doorDao.add(doorObject);
        }
       
        return "redirect:/admin/student";
    }

    @RequestMapping(value = "/technician", method = RequestMethod.GET)
    public String technician(Model model) {

        List<Technician> techniciens = technicianService.getAllTechnician();

        model.addAttribute("techniciens", techniciens);

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

用户的web层:

/**
 * 用户的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";
    }

    /**
     * 登录的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();

                // 密码正确
                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;
    }

    /**
     * 退出的控制
     *
     * @param httpSession
     * @return
     */
    @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 {
                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());
            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);
        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();

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

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

    /**
     * 将报修单标记为催单
     *
     * @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);

        return "student/urgent";
    }

    /**
     * 删除某条催单
     *
     * @param repairId
     * @param httpServletRequest
     * @return
     */
    @RequestMapping(value = "/urgent/{repairId}/delete", method = RequestMethod.GET)
    public String deleteUrgent(@PathVariable("repairId") int repairId, HttpServletRequest httpServletRequest) {
        String id = httpServletRequest.getSession().getAttribute(StudentConst.STUDENT_ID).toString();

        Student student = studentService.getStudentById(id);

        urgentRepairService.deleteUrgentRepair(repairId);

        return "redirect:/student/urgent";
    }

    /**
     * 重新提交某条催单
     *
     * @param repairId
     * @return
     */
    @RequestMapping(value = "/urgent/{repairId}/resubmit", method = RequestMethod.GET)
    public String reSubmitUrgent(@PathVariable("repairId") int repairId) {

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

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

        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";
    }
    
    @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;
        double waterDB = 0;
        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("男"))
        {
            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);
    }
}

学生登录验证的拦截器: 

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

}

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

猜你喜欢

转载自blog.csdn.net/yuyecsdn/article/details/125385245