Java项目:122SpringBoot驾校预约管理系统

2024-01-17 19:04

本文主要是介绍Java项目:122SpringBoot驾校预约管理系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

博主主页:Java旅途
简介:分享计算机知识、学习路线、系统源码及教程
文末获取源码

一、项目介绍

驾校预约管理系统使用SpringBoot+Mybatis进行开发,系统提供三种角色,功能如下:

管理员:

  • 学员管理
  • 教练管理
  • 车辆管理
  • 教练车辆绑定
  • 车辆维修

教练:

  • 我的课程
  • 我的学员
  • 车辆报修

学员:

  • 预约练车
  • 我的预约
  • 取消预约
  • 练车记录

二、技术框架

  • 后端:SpringBoot,Mybatis
  • 前端:layui

三、安装教程

  1. 用idea打开项目
  2. 在idea中配置jdk环境
  3. 配置maven环境并下载依赖
  4. 新建数据库,导入数据库文件
  5. 在application.yml文件中将数据库账号密码改成自己本地的
  6. 启动运行。管理员账号密码 18811111111/123456,教练账号密码 15712345678/123456,学员账号密码 18888888888/123456

四、项目截图

image-20230720151747612

image-20230720151716684

image-20230720151804573

image-20230720152328820

五、相关代码

LoginController

package com.singulee.carschool.controller;import com.singulee.carschool.pojo.Student;
import com.singulee.carschool.pojo.Teacher;
import com.singulee.carschool.pojo.User;
import com.singulee.carschool.service.StudentService;
import com.singulee.carschool.service.TeacherService;
import com.singulee.carschool.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;/*** Created with IntelliJ IDEA.* User: lishuai* Date: 2019/03/19* Description:* Version: V1.0*/
@Controller
@RequestMapping("/login")
public class LoginController {final private StudentService studentService;final private TeacherService teacherService;final private UserService userService;@Autowiredpublic LoginController(StudentService studentService, TeacherService teacherService, UserService userService) {this.studentService = studentService;this.teacherService = teacherService;this.userService = userService;}/*** 登录  返回格式** @param map* @param request* @return*/@RequestMapping(value = "/login", method = RequestMethod.POST)@ResponseBodypublic Map<String, Object> login(@RequestBody Map<String, String> map, HttpServletRequest request) {boolean flag = false;String phone = map.get("phone");String password = map.get("password");User user = userService.findByUsername(phone);if (null != user && user.getPassword().equals(password)) {Integer userType = user.getUserType();if (userType == 1) {Student student = studentService.getByPhone(phone);if (student != null) {flag = true;student.setStupwd(user.getPassword());request.getSession().setAttribute("user", student);}} else {Teacher teacher = new Teacher();teacher.setTeaphone(phone);Integer roleTmp = user.getUserType() == 3 ? 1 : 0;teacher.setTearole(roleTmp);Teacher teacherRe = teacherService.selectByPone(teacher);if (teacherRe != null) {flag = true;teacher.setTeapwd(user.getPassword());request.getSession().setAttribute("user", teacherRe);}}}Map<String, Object> mapjson = new HashMap<>();if (flag) {mapjson.put("code", 200);mapjson.put("role", user.getUserType());} else {mapjson.put("code", 201);}return mapjson;}/*** 教练 管理员的修改用户信息** @param request* @return*/@RequestMapping(value = "/teacherInfo", method = RequestMethod.POST)@ResponseBodypublic Map<String, Object> teacherInfo(HttpServletRequest request) {Map<String, Object> mapjson = new HashMap<>();Teacher teacher = (Teacher) request.getSession().getAttribute("user");teacher.setTeapwd("");mapjson.put("code", 200);mapjson.put("data", teacher);return mapjson;}/*** 注销登录** @param request* @return*/@RequestMapping(value = "/logout")public String loginOut(HttpServletRequest request) {request.getSession().removeAttribute("user");return "/login.html";}/*** @param request* @return*/@RequestMapping(value = "/getStudentInfo", method = RequestMethod.POST)@ResponseBodypublic Map<String, Object> getStudentInfo(HttpServletRequest request) {Map<String, Object> mapjson = new HashMap<>();Student student = (Student) request.getSession().getAttribute("user");student.setStupwd("");mapjson.put("code", 200);mapjson.put("data", student);return mapjson;}/*** 获得验证码** @param map* @param request* @return*/@RequestMapping(value = "/getCode", method = RequestMethod.POST)@ResponseBodypublic Map<String, Object> getCode(@RequestBody Map<String, String> map, HttpServletRequest request) {String phone = map.get("phone");Map<String, Object> mapCode = new HashMap<>();Map<String, Object> mapjson = new HashMap<>();int mobileCode = (int) ((Math.random() * 9 + 1) * 100000);mapCode.put("number", mobileCode + "");mapCode.put("phone", phone);boolean flag = false;User user = userService.findByUsername(phone);if (user != null) {flag = true;}
//        if (flag&& Send.sendCode(mobileCode,phone)){if (flag) {//发送手机号到手机mapjson.put("code", 200);mapjson.put("number", mobileCode);mapCode.put("time", System.currentTimeMillis());System.out.println(mobileCode);request.getSession().setAttribute("smscode", mapCode);} else {mapjson.put("code", 201);mapjson.put("msg", "手机号不存在,请查证");}return mapjson;}/*** 获得验证码 公用** @param map* @param request* @return*/@RequestMapping(value = "/getPhoneCode", method = RequestMethod.POST)@ResponseBodypublic Map<String, Object> getPhoneCode(@RequestBody Map<String, String> map, HttpServletRequest request) {String phone = map.get("phone");Teacher teacher = new Teacher();teacher.setTeaphone(phone);Map<String, Object> mapCode = new HashMap<>();Map<String, Object> mapjson = new HashMap<>();int mobileCode = (int) ((Math.random() * 9 + 1) * 100000);mapCode.put("number", mobileCode + "");mapCode.put("phone", phone);boolean flag = false;
//        if (flag&& Send.sendCode(mobileCode,phone)){mapCode.put("time", System.currentTimeMillis() + "");mapjson.put("code", 200);mapjson.put("number", mobileCode + "");request.getSession().setAttribute("smscode", mapCode);
//    }return mapjson;}@RequestMapping(value = "/updatePhone", method = RequestMethod.POST)@ResponseBodypublic Map<String, Object> updatePhone(@RequestBody Map<String, String> map, HttpServletRequest request) {String phone = map.get("phone");String number = map.get("number");Map<String, Object> mapjson = new HashMap<>();Object object = request.getSession().getAttribute("user");//判断验证码手机是否合法Map<String, Object> mapSession = (Map<String, Object>) request.getSession().getAttribute("smscode");System.out.println(mapSession);System.out.println(map);if (mapSession.get("phone").toString().equals(phone) && mapSession.get("number").toString().equals(number) &&System.currentTimeMillis() - Long.parseLong(mapSession.get("time").toString()) < 60 * 1000) {if (object instanceof Student) {Student student = (Student) object;Student studenttmp = studentService.getByPhone(student.getStuphone());studenttmp.setStuphone(phone);request.getSession().setAttribute("user", studenttmp);return studentService.updateStudent(studenttmp);} else {Teacher teacher = (Teacher) object;Teacher teachertmp = teacherService.selectByPone(teacher);teachertmp.setTeaphone(phone);request.getSession().setAttribute("user", teachertmp);return teacherService.updateTeacher(teachertmp);}} else {mapjson.put("code", 201);mapjson.put("msg", "时间超时重新发送");}return mapjson;}/*** 获得用户的信息** @param request* @return*/@RequestMapping(value = "/getUserInfo", method = RequestMethod.POST)@ResponseBodypublic Map<String, Object> updatePhone(HttpServletRequest request) {Map<String, Object> mapjson = new HashMap<>();Object object = request.getSession().getAttribute("user");//判断验证码手机是否合法if (object instanceof Student) {Student student = (Student) object;mapjson.put("img", student.getStuimg());mapjson.put("name", student.getStuname());} else {Teacher teacher = (Teacher) object;mapjson.put("img", teacher.getTeaimg());mapjson.put("name", teacher.getTeaname());}return mapjson;}/*** 验证手机号和验证码** @param map* @param request* @return*/@RequestMapping(value = "/resetPassword", method = RequestMethod.POST)@ResponseBodypublic Map<String, Object> checkCode(@RequestBody Map<String, String> map, HttpServletRequest request) {Map<String, Object> mapjson = new HashMap<>();String phone = map.get("phone");String number = map.get("number");String password = map.get("password");Map<String, Object> mapSession = (Map<String, Object>) request.getSession().getAttribute("smscode");if (mapSession.get("phone").equals(phone) && mapSession.get("number").equals(number) &&System.currentTimeMillis() - Long.parseLong(mapSession.get("time").toString()) < 60 * 1000) {boolean action;action = userService.updatePassword(phone, password);if (action) {mapjson.put("code", 200);} else {mapjson.put("code", 202);}} else {request.getSession().removeAttribute("smscode");mapjson.put("code", 201);}return mapjson;}@RequestMapping(value = "/updatePasswordTeacher", method = RequestMethod.POST)@ResponseBodypublic Map<String, Object> updatePasswordTeacher(@RequestBody Map map, HttpServletRequest request) {Map<String, Object> mapjson = new HashMap<>();Teacher teacher = (Teacher) request.getSession().getAttribute("user");//判断原密码是否正确User user = userService.findByUsername(teacher.getTeaphone());System.out.println(user.getPassword());if (map.get("oldpassword").toString().equals(user.getPassword())) {//修改session的的密码teacher.setTeapwd(map.get("newpassword").toString());request.getSession().setAttribute("user", teacher);//修改数据库中的boolean flag = userService.updatePassword(user.getUsername(), teacher.getTeapwd());if (flag) {mapjson.put("code", 200);mapjson.put("msg", "修改成功!");return mapjson;} else {mapjson.put("code", 201);mapjson.put("msg", "修改失败!");return mapjson;}} else {mapjson.put("code", 201);mapjson.put("msg", "原密码错误");return mapjson;}}/*** 修改密码 学生** @param map* @param request* @return*/@RequestMapping(value = "/updatePasswordStudent", method = RequestMethod.POST)@ResponseBodypublic Map<String, Object> updatePasswordStudent(@RequestBody Map map, HttpServletRequest request) {Map<String, Object> mapjson = new HashMap<>();Student student = (Student) request.getSession().getAttribute("user");//判断原密码是否正确User user = userService.findByUsername(student.getStuphone());System.out.println(user.getPassword());if (map.get("oldpassword").toString().equals(user.getPassword())) {//修改session的的密码student.setStupwd(map.get("newpassword").toString());request.getSession().setAttribute("user", student);//修改数据库中的//修改数据库中的boolean flag = userService.updatePassword(user.getUsername(), student.getStupwd());if (flag) {mapjson.put("code", 200);mapjson.put("msg", "修改成功!");return mapjson;} else {mapjson.put("code", 201);mapjson.put("msg", "修改失败!");return mapjson;}} else {mapjson.put("code", 201);mapjson.put("msg", "原密码错误");return mapjson;}}@ResponseBody@RequestMapping(value = "/upload", method = RequestMethod.POST)public Map<String, Object> upload(HttpServletRequest request, @RequestParam("file") MultipartFile file) {Map<String, Object> map = new HashMap<>();//        String path=request.getSession().getServletContext().getRealPath("/");String path = request.getSession().getServletContext().getRealPath("/img");System.out.println(path);String fileName = UUID.randomUUID().toString().replaceAll("-", "") + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));System.out.println(fileName);System.out.println(path);File targetFile = new File(path, fileName);if (!targetFile.exists()) {targetFile.mkdirs();}// 保存try {file.transferTo(targetFile);map.put("code", 200);map.put("data", fileName);} catch (Exception e) {e.printStackTrace();map.put("code", 201);}return map;}
}

大家点赞、收藏、关注、评论啦 、👇🏻点开下方卡片👇🏻关注后回复 105

这篇关于Java项目:122SpringBoot驾校预约管理系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/616909

相关文章

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

java中long的一些常见用法

《java中long的一些常见用法》在Java中,long是一种基本数据类型,用于表示长整型数值,接下来通过本文给大家介绍java中long的一些常见用法,感兴趣的朋友一起看看吧... 在Java中,long是一种基本数据类型,用于表示长整型数值。它的取值范围比int更大,从-922337203685477

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过