基于javaweb的SpringBoot教室预订管理系统(java+springboot+maven+vue+mysql)

运行环境

Java≥8、MySQL≥5.7、Node.js≥14

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可

❗没学过node.js的不要搞前后端分离项目

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

540123032402

550123032402

560123032402

570123032402

590123032402

000123042402

基于javaweb的SpringBoot教室预订管理系统(java+springboot+maven+vue+mysql)

一、项目运行 环境配置:

Jdk1.8 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。

项目技术:

Spring + SpringBoot+ mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

@RequestMapping(value = "/schedule",method = RequestMethod.GET)
public Msg getALLSchedules(){
List<Schedule> schedules=scheduleService.getAllSchedules();
return Msg.success().data("schedule",schedules);
}
}
package com.issunjh.ClassManagement.Controller;




/**
* @Description
*/
@RestController
@RequestMapping(value = "/room")
public class RoomController {
@Autowired
RoomService roomService;

@RequestMapping(value = "/allRoom",method = RequestMethod.GET)
public Msg getALLBlogs(){
List<Room> rooms=roomService.getAllRooms();
return Msg.success().data("room",rooms);
}
}
package com.issunjh.ClassManagement.Controller;



/**
* @Description
*/
@Controller
@CrossOrigin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

}

}
package com.issunjh.ClassManagement.utils;



/**
* @Description
*/
public class LoginInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
// 1.通过request对象获取Session对象
HttpSession session=request.getSession();
// 2.尝试从Session域中User对象
Admin admin = (Admin) session.getAttribute(CrowdConstant.ATTR_NAME_LOGIN_ADMIN);
// 3.判断User对象是否为空
if (admin==null){
// 4.抛出异常
throw new LoginFailException(CrowdConstant.MESSAGE_ACCESS_FORBIDEN);
}
return true;
}
}
package com.issunjh.ClassManagement.Controller;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 */

@RestController
public class ClassUseController {

@Autowired
ClassUseService classUseService;

@RequestMapping(value = "/setClassUse", method = RequestMethod.POST)
public Msg setClassUse(@RequestBody ClassUse classUse) {
String beginTime = classUse.getBeginTime(); // 开始时间
String endTime = classUse.getEndTime(); // 结束时间
String remark = classUse.getRemark(); // 结束时间
int rid = classUse.getRid();
int tid = classUse.getTid();
System.out.println(classUse.toString());
if (tid==0){return Msg.fail().msg("您不是老师,没有权限申请");}
// 1. 比较两者时间的大小是否符合实际情况
if (beginTime.compareTo(endTime) >= 0) {
return Msg.fail().msg("您输入的时间不正确");
} else {
// 2. 从集合中取出日期数据
List<Date> days = classUse.getDayTime();
// 2.1 判断list是否为空
if (days.isEmpty()) {
// 2.2 为空,返回失败消息
return Msg.fail().msg("您未输入日期");
} else {
for (Date dayTime : days
) {


try {
// 3. 将此时的教室编号、日期数据和时间数据传入数据库,
System.out.println(dayTime);
// 与当前时间相比较
String applyTime=dayTime+" "+beginTime;
String currentTime= LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//注意月份是MM
// simpleDateFormat.parse(applyTime);
int res=applyTime.compareTo(currentTime);
java.sql.Time time = new java.sql.Time(simpleDateFormat.parse(applyTime).getTime());
System.out.println(new java.sql.Time(simpleDateFormat.parse(applyTime).getTime()));
if(res>0) {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    }

}
package com.issunjh.ClassManagement.configuration;



/**
* 解决跨域设置
* (可把此设置放在 nginx 中,但只能设置一处)
*
*/
@Configuration
@WebFilter(filterName = "requestFilter", urlPatterns = {"/*"})
public class RequestFilter implements Filter {

@Override
public void init(FilterConfig filterConfig) throws ServletException {
}

@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

HttpServletResponse response = (HttpServletResponse) servletResponse;
HttpServletRequest request = (HttpServletRequest) servletRequest;

// 此处 setHeader、addHeader 方法都可用。但 addHeader时写多个会报错:“...,but only one is allowed”
//response.setHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Origin", request.getHeader("origin"));
// 解决预请求(发送2次请求),此问题也可在 nginx 中作相似设置解决。
response.setHeader("Access-Control-Allow-Headers", "x-requested-with,Cache-Control,Pragma,Content-Type,Token, Content-Type");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE,PUT");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
            // 2. 从集合中取出日期数据
List<Date> days = classUse.getDayTime();
// 2.1 判断list是否为空
if (days.isEmpty()) {
// 2.2 为空,返回失败消息
return Msg.fail().msg("您未输入日期");
} else {
for (Date dayTime : days
) {


try {
// 3. 将此时的教室编号、日期数据和时间数据传入数据库,
System.out.println(dayTime);
// 与当前时间相比较
String applyTime=dayTime+" "+beginTime;
String currentTime= LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//注意月份是MM
// simpleDateFormat.parse(applyTime);
int res=applyTime.compareTo(currentTime);
java.sql.Time time = new java.sql.Time(simpleDateFormat.parse(applyTime).getTime());
System.out.println(new java.sql.Time(simpleDateFormat.parse(applyTime).getTime()));
if(res>0) {
System.out.println("applyTime>currentTime");
List<Integer> currentState = classUseService.selectClassState(rid, beginTime, endTime, dayTime);
for (int states : currentState) {
// 3.1 看是否有值且state的值为1或2
if ((states == 1) || (states == 2))
return Msg.fail().msg("抱歉!" + dayTime + " " + beginTime + "-" + endTime + " 该机房已被选择");
}
int result = classUseService.addClassUse(rid, tid, beginTime , endTime, dayTime, classUse.setState(1),remark);
}
else { return Msg.fail().msg("您申请的日期有已过的日期");}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

/**
* @Description
*/

@RestController
public class ClassUseController {

@Autowired
ClassUseService classUseService;

@RequestMapping(value = "/setClassUse", method = RequestMethod.POST)
public Msg setClassUse(@RequestBody ClassUse classUse) {
String beginTime = classUse.getBeginTime(); // 开始时间
String endTime = classUse.getEndTime(); // 结束时间
String remark = classUse.getRemark(); // 结束时间
int rid = classUse.getRid();
int tid = classUse.getTid();
System.out.println(classUse.toString());
if (tid==0){return Msg.fail().msg("您不是老师,没有权限申请");}
// 1. 比较两者时间的大小是否符合实际情况
if (beginTime.compareTo(endTime) >= 0) {
return Msg.fail().msg("您输入的时间不正确");
} else {
// 2. 从集合中取出日期数据
List<Date> days = classUse.getDayTime();
// 2.1 判断list是否为空
if (days.isEmpty()) {
// 2.2 为空,返回失败消息
return Msg.fail().msg("您未输入日期");
} else {
for (Date dayTime : days
) {


try {
// 3. 将此时的教室编号、日期数据和时间数据传入数据库,
System.out.println(dayTime);
// 与当前时间相比较
String applyTime=dayTime+" "+beginTime;
String currentTime= LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//注意月份是MM
// simpleDateFormat.parse(applyTime);


项目链接:
https://javayms.github.io?id=131222062008200wm
https://javayms.pages.dev?id=131222062008200wm