基于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版本;

技术栈

  1. 后端: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)

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java毕业

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值