📅  最后修改于: 2023-12-03 15:41:45.106000             🧑  作者: Mango
本系统是一款电影票预订系统,用户可以通过系统查询电影信息、选择场次并预订电影票。同时,系统管理员可以管理电影信息、场次信息、订单信息等。本系统类似于印度最大的电影票预订网站 Bookmyshow。
本系统的后端采用了Spring Boot作为主要框架,使用Spring MVC进行RESTfulAPI的开发和管理,同时使用了Spring Security对API进行授权管理,使用Spring Data JPA处理与数据库的交互。其中,使用了定时任务对订单状态进行检查,便于系统自动进行订单取消和退款。
前端采用了Vue.js框架,使用Element UI进行UI组件的开发,同时使用了Vue Router实现路由管理和进行路由拦截,使用Vuex进行状态管理,方便前端数据的统一处理和共享。对于静态资源,使用了阿里云OSS进行存储和管理。
部分API的代码实现(仅供参考):
@PostMapping("/register")
public ApiResponse register(@RequestBody UserRegisterRequest request) {
// 检查用户是否已存在
boolean isUserExist = userService.isUserExist(request.getUsername());
if (isUserExist) {
throw new UserExistException("User already exists!");
}
// 添加用户
User user = new User();
user.setUsername(request.getUsername());
user.setPassword(request.getPassword());
user.setPhone(request.getPhone());
userService.addUser(user);
return ApiResponse.success("Register success!");
}
@GetMapping("/movies")
public ApiResponse getAllMovies() {
List<Movie> movies = movieService.getMovies();
return ApiResponse.success(movies);
}
@PostMapping("/movies")
public ApiResponse addMovie(@RequestBody MovieRequest request) {
Movie movie = new Movie();
movie.setName(request.getName());
movie.setDirector(request.getDirector());
movie.setActors(request.getActors());
movie.setDescription(request.getDescription());
movie.setDuration(request.getDuration());
movie.setLanguage(request.getLanguage());
movie.setPoster(request.getPoster());
movie.setShowTime(request.getShowTime());
movieService.addMovie(movie);
return ApiResponse.success("Add movie success!");
}
本系统采用了Spring Boot和Vue.js作为主要框架进行开发,实现了用户注册、登录、退出系统,影院管理、电影管理、场次管理、座位管理、支付和订单管理等功能。系统具有良好的可扩展性和可维护性,预留了大量扩展点,方便后续进行功能升级和迭代。