基于javaweb+mysql的ssm+maven驾校预约管理系统(java+ssm+html+layui+bootstrap+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SSM+Maven驾校预约管理系统(java+ssm+html+layui+bootstrap+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项目:是;
技术栈
- 后端:Spring+SpringMVC+Mybatis 2. 前端:HTML+LayUI+bootstrap+jQuery
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中spring-database.xml配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入http://localhost:8080/ 登录
* 保存日志
* @param map
* @return
*/
public Map<String, Object> save(Map map) {
Map<String, Object> mapjson = new HashMap<>();
Orders orders=ordersMapper.selectById(Integer.parseInt(map.get("orderId").toString()));
orders.setGrade(Integer.parseInt(map.get("grade").toString()));
orders.setLog(map.get("log").toString());
orders.setLogdate(new Timestamp(System.currentTimeMillis()));
if(ordersMapper.update(orders)>0){
mapjson.put("code",200);
}
return mapjson;
}
/**
* 获得评分
* @param map
* @return
*/
public Map<String, Object> getGreadList(Map map){
Map<String, Object> mapjson = new HashMap<>();
List<Map> greadList=ordersMapper.getGreadList(map);
System.out.println(">>>>>>>>>>>>>>>>>>>>>."+greadList);
if (greadList.size()>0){
mapjson.put("code",200);
mapjson.put("data",greadList);
}else {
mapjson.put("code",201);
}
return mapjson;
}
}
}
}
return mapjson;
}
}
/**
* Created with IntelliJ IDEA.
* User: lishuai
* Description:
* Version: V1.0
*/
@Controller
@RequestMapping("/student")
public class StudentController {
private StudentService studentService;
@Autowired
public StudentController(StudentService studentService) {
this.studentService = studentService;
}
/**
* 添加学员
* @param student
* @return
*/
@RequestMapping(value = "/addStudent")
@ResponseBody
public Map<String,Object> addStudent(@RequestBody Student student){
return studentService.insert(student);
}
/**
* 信息修改
* @param student
* @return
*/
//用户没有登录挑转到登录页面
response.sendRedirect("/index.html");
return false;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
}
}
/**
* Created with IntelliJ IDEA.
* User: lishuai
* Description:
* Version: V1.0
*/
@Controller
@RequestMapping("/driver")
public class DriverController {
private DriverService driverService;
}
/**
* 获得评分
* @param map
* @return
*/
public Map<String, Object> getGreadList(Map map){
Map<String, Object> mapjson = new HashMap<>();
List<Map> greadList=ordersMapper.getGreadList(map);
System.out.println(">>>>>>>>>>>>>>>>>>>>>."+greadList);
if (greadList.size()>0){
mapjson.put("code",200);
mapjson.put("data",greadList);
}else {
mapjson.put("code",201);
}
return mapjson;
}
}
/**
* Created with IntelliJ IDEA.
* User: lishuai
/**
* Created with IntelliJ IDEA.
* User: lishuai
* Description:
* Version: V1.0
*/
@Controller
@RequestMapping("/detail")
public class DetailController {
private DetailService detailService;
@Autowired
public DetailController(DetailService detailService) {
this.detailService = detailService;
}
/**
* 学员获得教练发布的课程列表
* courseDate courseClass teacherName carNumber stuid
* @param map
* @return
*/
@RequestMapping("/getsaveCourse")
@ResponseBody
public Map<String, Object> getSaveDetail(@RequestBody Map map, HttpServletRequest request){
return detailService.getSaveDetail(map,request);
}
/**
* 预定课程
action = teacherService.updatePassword(phone, password, 1);
break;
case "teacher":
action = teacherService.updatePassword(phone, password, 0);
break;
}
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)
@ResponseBody
public Map<String, Object> updatePasswordTeacher(@RequestBody Map map, HttpServletRequest request) {
Map<String, Object> mapjson = new HashMap<>();
Teacher teacher = (Teacher) request.getSession().getAttribute("user");
//判断原密码是否正确
Teacher teacherTmp=teacherService.selectByPone(teacher);
System.out.println(teacherTmp.getTeapwd());
if(map.get("oldpassword").toString().equals(teacherTmp.getTeapwd())){
//修改session的的密码
teacherTmp.setTeapwd(map.get("newpassword").toString());
request.getSession().setAttribute("user",teacherTmp);
//修改数据库中的
return teacherService.updateTeacher(teacherTmp);
}
else{
mapjson.put("code",201);
mapjson.put("msg","原密码错误");
return mapjson;
}
}
/**
* 修改密码 学生
* @param map
* @param request
* @return
*/
@RequestMapping(value = "/updatePasswordStudent", method = RequestMethod.POST)
@ResponseBody
public Map<String, Object> updatePasswordStudent(@RequestBody Map map, HttpServletRequest request) {
@Autowired
public CourseController(CourseService courseService, DetailService detailService
) {
this.courseService = courseService;
this.detailService=detailService;
}
/**
* 获取课程表时间
* @return
*/
@RequestMapping(value = "/getCourses")
@ResponseBody
public Map<String,Object> getCourse(){
return courseService.getCourse();
}
/**
* 出传入日期 判断当前日期发布的课程
* courseDate
* @param map
* @return
*/
@RequestMapping(value = "/courseDetail")
@ResponseBody
public Map<String,Object> getDeatil(@RequestBody (required=false) Map<String, Object> map, HttpServletRequest request){
return detailService.getDeatail(map,request);
}
/**
* 添加课程,传入课程时间id 课程类型
* @param map
* @param request
* @return
*/
@RequestMapping(value = "/addCourseDetail")
@ResponseBody
public Map<String,Object> addCOurseDetail(@RequestBody (required=false) Map map, HttpServletRequest request){
return detailService.addDetail(map,request);
}
/**
* 批量移除课程
* @param map
* @return
*/
@RequestMapping(value = "/removeDetail")
@ResponseBody
public Map<String,Object> removeCOurseDetail(@RequestBody Map map){
return detailService.removeDetail(map);
}
*
* @param map
* @param request
* @return
*/
public Map<String, Object> addDetail(Map map, HttpServletRequest request) {
Teacher teacher = (Teacher) request.getSession().getAttribute("user");
Map<String, Object> mapjson = new HashMap<>();
//判断当前是否有车
Map<String, Object> maprela = new HashMap<>();
maprela.put("teacherId", teacher.getTeaid());
Relationship relationship = relationshipMapper.contant(maprela).get(0);
if (relationship == null) {
mapjson.put("code", 201);
mapjson.put("msg", "当前无车辆,请联系管理员分配车辆");
return mapjson;
}
if (map == null) {
map = new HashMap();
}
List<Detail> detailList = new ArrayList<>();
Date courseDate = null;
// 课程时间转换
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
courseDate = new Date(sdf.parse(map.get("courseDate").toString()).getTime());
} catch (ParseException e) {
e.printStackTrace();
}
List courseList = (List) map.get("courseList");
Detail detail;
for (int i = 0; i < courseList.size(); i++) {
detail = new Detail();
detail.setCourseid(Integer.parseInt(courseList.get(i).toString()));
detail.setCourseDate(courseDate);
detail.setRelationshipid(relationship.getRelationshipid());
detail.setStusta("0");
detail.setExtend1(map.get("courseType").toString());
detail.setExtend2("0");
detailList.add(detail);
}
// 对象组装完成
System.out.println(detailMapper.inserList(detailList));
mapjson.put("code", 200);
if(list.size()>0){
mapjson.put("code",200);
mapjson.put("data",list);
}
else {
mapjson.put("code",201);
mapjson.put("msg","没有空余的课程");
}
return mapjson;
}
/**
* 课程预定
* @param
* @param request
* @return
*/
public Map<String, Object> orderCourse(Detail detail,HttpServletRequest request){
Map<String, Object> mapjson = new HashMap<>();
// 先检查课程是否被预定
Detail detailTmp=detailMapper.selectById(detail.getDetailid());
Student student= (Student) request.getSession().getAttribute("user");
Map map=new HashMap();
map.put("studentId",student.getStuid());
map.put("courseDate",detailTmp.getCourseDate().toString());
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>"+map);
if(ordersMapper.getMyOrderDate(map).size()>0){
mapjson.put("code",201);
mapjson.put("msg","当前日期已有预约请选择其他时间");
return mapjson;
}
if(detailTmp.getStusta().equals("1")){
mapjson.put("code",201);
mapjson.put("msg","此课程已被预约");
return mapjson;
}
// 检查预定课程时间有没有预定的课程
detailTmp.setStusta("1");
if(detailMapper.updateById(detailTmp)>0){
//添加数据
Orders orders=new Orders();
orders.setStuid(student.getStuid());
* @param phone
* @param password
* @return
*/
public boolean updatePassword(String phone,String password){
Student student =new Student();
student.setStuphone(phone);
student.setStupwd(password);
return studentMapper.updatePassword(student)>0;
}
/**
* 添加
* @param student
* @return
*/
public Map<String,Object> insert(Student student){
Map<String,Object> map=new HashMap<>();
if(getByPhone(student.getStuphone())!=null){
map.put("code",201);
map.put("msg","手机号已存在");
return map;
}
if (studentMapper.insert(student)>0){
map.put("code",200);
map.put("msg","添加成功");
}
else {
map.put("code",201);
map.put("msg","添加失败");
}
return map;
}
/**
* var json={name:name,driverclassId:driverclass,studentStute:studyStute,finshStau:finsh}
* @param map
* @return
*/
@ResponseBody
public 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)
@ResponseBody
public Map<String, Object> getCode(@RequestBody Map<String, String> map, HttpServletRequest request) {
String phone = map.get("phone");
String role = map.get("role");
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 (role.equals("student")) {
if (studentService.getByPhone(phone) != null) {
flag = true;
}
} else {
Integer roleTmp = role.equals("admin") ? 1 : 0;
teacher.setTearole(roleTmp);
if (teacherService.selectByPone(teacher) != null) {
flag = true;
}
}
/**
* 获得当前车辆
* @return
*/
@RequestMapping(value = "/getlocalCart")
@ResponseBody
public Map<String,Object> getloaclCart(@RequestBody (required = false) Map map,HttpServletRequest request){
return repairService.getloaclCar(request);
}
/**
* 获得关联历史
* @param map
* @return
*/
@RequestMapping(value = "/getHistory")
@ResponseBody
public Map<String,Object> getHistory(@RequestBody (required = false) Map map,HttpServletRequest request){
return repairService.getHistory(map, request);
}
/**
* 获得空闲车辆
* @param map
* @param request
* @return
*/
@RequestMapping(value = "/getNullCart")
@ResponseBody
public Map<String,Object> getNullCart(@RequestBody (required = false) Map map,HttpServletRequest request){
return repairService.getNullCart(request);
}
/**
*添加维修记录并重新分配车辆 carId: $("#carId").val(), cause:cause,newCarId:newCarNumber
* @param map
* @param request
* @return
*/
@RequestMapping(value = "/addrepair")
@ResponseBody
public Map<String,Object> addRepair(@RequestBody Map map,HttpServletRequest request){
return repairService.addReparir(map,request);
}
@RequestMapping(value = "/repairFinish")
@ResponseBody
@ResponseBody
public 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)
@ResponseBody
public 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);
}
/**
* Created with IntelliJ IDEA.
* User: lishuai
* Description:
* Version: V1.0
*/
@Controller
@RequestMapping("/cart")
public class CartController {
private CartService cartService;
@Autowired
public CartController(CartService cartService) {
this.cartService = cartService;
}
/**
* 添加车辆
* @param cart
* @return
*/
@RequestMapping(value = "/addCart")
@ResponseBody
public Map<String,Object> addcart(@RequestBody Cart cart){
return cartService.addCart(cart);
}
/**
* 多条件查询车辆
* @param cart
* @return
*/
@RequestMapping(value = "/getCartList")
@ResponseBody
public Map<String,Object> getCartList(@RequestBody(required = false) Cart cart){
return cartService.selectbyCondiction(cart);
}
System.out.println(detailList);
Iterator iterator = detailList.iterator();
SimpleDateFormat timeForm = new SimpleDateFormat("HH:mm:ss");
SimpleDateFormat dateForm = new SimpleDateFormat("yyyy-MM-dd");
Map<String, Object> mapRelation = new HashMap<>();
List<String> detailIdlist = new ArrayList();
while (iterator.hasNext()) {
tmpMap = (Map<String, Object>) iterator.next();
try {
if (timeForm.parse(tmpMap.get("courseBegin").toString()).getTime() + dateForm.parse(tmpMap.get("courseDate").toString()).getTime() > System.currentTimeMillis()) {
detailIdlist.add(tmpMap.get("detailId").toString());
}
} catch (ParseException e) {
e.printStackTrace();
}
}
mapRelation.put("relationshipId", newrelationship.getRelationshipid());
mapRelation.put("detailIdlist", detailIdlist);
System.out.println(detailIdlist);
detailMapper.updateRelaList(mapRelation);
//添加维修表
Repair repair = new Repair();
repair.setCartid(Integer.parseInt(map.get("carId").toString()));
repair.setCause(map.get("cause").toString());
repair.setTeacherid(teacher.getTeaid());
repair.setExtend1("维修中");
repair.setRepairtime(new Date(System.currentTimeMillis()));
repairMapper.insert(repair);
//修改两个车的状态
Cart cartold = new Cart();
cartold.setStaute("维修");
cartold.setCarid(Integer.parseInt(map.get("carId").toString()));
cartMapper.updateStute(cartold);
Cart cartNew = new Cart();
cartNew.setStaute("正常");
cartNew.setCarid(Integer.parseInt(map.get("newCarId").toString()));
cartMapper.updateStute(cartNew);
/**
* Created with IntelliJ IDEA.
* User: lishuai
* Description:
* Version: V1.0
*/
@Controller
@RequestMapping("/driver")
public class DriverController {
private DriverService driverService;
@Autowired
public DriverController(DriverService driverService) {
this.driverService = driverService;
}
@ResponseBody
@RequestMapping(value = "getDriverList")
public Map<String,Object> getDriverList(){
Map<String,Object> mapjson=new HashMap<>();
List<Driver> driverList=driverService.getDirverList();
if(driverList.size()>0){
mapjson.put("code",200);
mapjson.put("data",driverList);
}
else {
mapjson.put("code",201);
mapjson.put("data","数据不存在");
}
return mapjson;
* 查看我的学生 分页
* @param map
* @param request
* @return
*/
@RequestMapping(value = "/getMystudent")
@ResponseBody
public Map<String,Object> getMyStu(@RequestBody Map map, HttpServletRequest request){
return studentService.getMyStudent(map,request);
}
/**
*修改学生状态 {studentId:$("#studentId").val(),courseType:$("#courseType").val()}
* @param map
* @return
*/
@RequestMapping(value = "/updateStaute")
@ResponseBody
public Map<String,Object> updateStaute(@RequestBody Map map){
return studentService.updateStudentStaute(map);
}
@RequestMapping(value = "/end")
@ResponseBody
public Map<String,Object> studentEnd(@RequestBody Map map){
return studentService.endStudent(map);
}
}
}
}
/**
* Created with IntelliJ IDEA.
* User: lishuai
* Description:
* Version: V1.0
*/
@Service
public class OrdersService {
final private OrdersMapper ordersMapper;
final private DetailMapper detailMapper;
@Autowired
public OrdersService(OrdersMapper ordersMapper, DetailMapper detailMapper) {
this.ordersMapper = ordersMapper;
this.detailMapper = detailMapper;
}
/**
* 查询当前预约的课程 学员
* courseClass courseDate studentId stautes(0 预约 1 取消 不限)
*
* @param map
* @param request
* @return
*/
public Map<String, Object> getMyOrder(Map map, HttpServletRequest request) {
Map<String, Object> mapjson = new HashMap<>();
if (map == null) {
map = new HashMap();
}
Student student = (Student) request.getSession().getAttribute("user");
map.put("studentId", student.getStuid());
List<Map<String, Object>> listOder = ordersMapper.getMyOrder(map);