一、项目简述
环境配置:
Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
项目技术:
JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ 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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
/** * 后台用户管理控制器 * @author yy * */ @RequestMapping ( "/admin/user" ) @Controller public class UserController { @Autowired private UserService userService; @Autowired private RoleService roleService; @Autowired private OperaterLogService operaterLogService; /** * 用户列表页面 * @param model * @param user * @param pageBean * @return */ @RequestMapping (value= "/list" ) public String list(Model model, User user, PageBean<User> pageBean){ model.addAttribute( "title" , "用户列表" ); model.addAttribute( "username" , user.getUsername()); model.addAttribute( "pageBean" , userService.findList(user, pageBean)); return "admin/user/list" ; } /** * 新增用户页面 * @param model * @return */ @RequestMapping (value= "/add" ,method=RequestMethod.GET) public String add(Model model){ model.addAttribute( "roles" , roleService.findAll()); return "admin/user/add" ; } /** * 用户添加表单提交处理 * @param user * @return */ @RequestMapping (value= "/add" ,method=RequestMethod.POST) @ResponseBody public Result<Boolean> add(User user){ //用统一验证实体方法验证是否合法 CodeMsg validate = ValidateEntityUtil.validate(user); if (validate.getCode() != CodeMsg.SUCCESS.getCode()){ return Result.error(validate); } if (user.getRole() == null || user.getRole().getId() == null ){ return Result.error(CodeMsg.ADMIN_USER_ROLE_EMPTY); } //判断用户名是否存在 if (userService.isExistUsername(user.getUsername(), 0l)){ return Result.error(CodeMsg.ADMIN_USERNAME_EXIST); } //到这说明一切符合条件,进行数据库新增 if (userService.save(user) == null ){ return Result.error(CodeMsg.ADMIN_USE_ADD_ERROR); } operaterLogService.add( "添加用户,用户名:" + user.getUsername()); return Result.success( true ); } /** * 用户编辑页面 * @param model * @return */ @RequestMapping (value= "/edit" ,method=RequestMethod.GET) public String edit(Model model, @RequestParam (name= "id" ,required= true )Long id){ model.addAttribute( "roles" , roleService.findAll()); model.addAttribute( "user" , userService.find(id)); return "admin/user/edit" ; } /** * 编辑用户信息表单提交处理 * @param user * @return */ @RequestMapping (value= "/edit" ,method=RequestMethod.POST) @ResponseBody public Result<Boolean> edit(User user){ //用统一验证实体方法验证是否合法 CodeMsg validate = ValidateEntityUtil.validate(user); if (validate.getCode() != CodeMsg.SUCCESS.getCode()){ return Result.error(validate); } if (user.getRole() == null || user.getRole().getId() == null ){ return Result.error(CodeMsg.ADMIN_USER_ROLE_EMPTY); } if (user.getId() == null || user.getId().longValue() <= 0 ){ return Result.error(CodeMsg.ADMIN_USE_NO_EXIST); } if (userService.isExistUsername(user.getUsername(), user.getId())){ return Result.error(CodeMsg.ADMIN_USERNAME_EXIST); } //到这说明一切符合条件,进行数据库保存 User findById = userService.find(user.getId()); //讲提交的用户信息指定字段复制到已存在的user对象中,该方法会覆盖新字段内容 BeanUtils.copyProperties(user, findById, "id" , "createTime" , "updateTime" ); if (userService.save(findById) == null ){ return Result.error(CodeMsg.ADMIN_USE_EDIT_ERROR); } operaterLogService.add( "编辑用户,用户名:" + user.getUsername()); return Result.success( true ); } /** * 删除用户 * @param id * @return */ @RequestMapping (value= "/delete" ,method=RequestMethod.POST) @ResponseBody public Result<Boolean> delete( @RequestParam (name= "id" ,required= true )Long id){ try { userService.delete(id); } catch (Exception e) { return Result.error(CodeMsg.ADMIN_USE_DELETE_ERROR); } operaterLogService.add( "添加用户,用户ID:" + id); return Result.success( true ); } } |
电影管理控制器
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
/** * 电影管理控制器 * @author yy * */ @RequestMapping ( "/admin/movie" ) @Controller public class MovieController { @Autowired private MovieService movieService; @Autowired private MovieCommentService movieCommentService; /** * 电影列表页面 * @param model * @return */ @RequestMapping (value= "/list" ) public String list(Model model, Movie movie, PageBean<Movie> pageBean){ model.addAttribute( "pageBean" , movieService.findPage(movie, pageBean)); model.addAttribute( "name" ,movie.getName()); return "admin/movie/list" ; } /** * 电影添加页面 * @param model * @return */ @RequestMapping (value= "/add" ,method=RequestMethod.GET) public String add(Model model){ model.addAttribute( "movieAreaList" , MovieArea.values()); model.addAttribute( "movieTypeList" , MovieType.values()); model.addAttribute( "movieLangList" , MovieLang.values()); return "admin/movie/add" ; } /** * 电影编辑页面 * @param model * @param id * @return */ @RequestMapping (value= "/edit" ,method=RequestMethod.GET) public String edit(Model model, @RequestParam (name= "id" ,required= true )Long id){ model.addAttribute( "movie" , movieService.findById(id)); model.addAttribute( "movieAreaList" , MovieArea.values()); model.addAttribute( "movieTypeList" , MovieType.values()); model.addAttribute( "movieLangList" , MovieLang.values()); return "admin/movie/edit" ; } /** * 添加电影表单提交 * @param movie * @return */ @RequestMapping (value= "/add" ,method=RequestMethod.POST) @ResponseBody public Result<Boolean> add(Movie movie){ if (movie == null ){ return Result.error(CodeMsg.DATA_ERROR); } CodeMsg validate = ValidateEntityUtil.validate(movie); if (validate.getCode() != CodeMsg.SUCCESS.getCode()){ return Result.error(validate); } //判断是否是编辑 if (movie.getId() != null && movie.getId() > 0 ){ Movie findById = movieService.findById(movie.getId()); movie.setCreateTime(findById.getCreateTime()); movie.setRate(findById.getRate()); movie.setRateCount(findById.getRateCount()); movie.setTotalMoney(findById.getTotalMoney()); } //表示数据合法,可以保存到数据库 if (movieService.save(movie) == null ){ return Result.error(CodeMsg.ADMIN_AREA_SAVE_ERROR); } return Result.success( true ); } /** * 删除 * @param id * @return */ @RequestMapping (value= "/delete" ,method=RequestMethod.POST) @ResponseBody public Result<Boolean> delete( @RequestParam (name= "id" ,required= true )Long id){ try { movieService.delete(id); } catch (Exception e) { return Result.error(CodeMsg.ADMIN_MOVIE_DELETE_ERROR); } return Result.success( true ); } /** * ----------电影评价管理------------- */ /** * 电影评价列表 * @param model * @param movieComment * @param pageBean * @return */ @RequestMapping (value= "/comment_list" ) public String list(Model model,MovieComment movieComment,PageBean<MovieComment> pageBean){ model.addAttribute( "pageBean" , movieCommentService.findPage(movieComment, pageBean)); model.addAttribute( "content" ,movieComment.getContent()); return "admin/movie/comment_list" ; } /** * 删除评价 * @param id * @return */ @RequestMapping (value= "/delete_comment" ,method=RequestMethod.POST) @ResponseBody public Result<Boolean> deleteComment( @RequestParam (name= "id" ,required= true )Long id){ movieCommentService.delete(id); return Result.success( true ); } } |
前台电影控制器
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
/** * 前台电影控制器 * @author yy * */ @RequestMapping ( "/home/movie" ) @Controller public class HomeMovieController { @Autowired private MovieService movieService; @Autowired private MovieCommentService movieCommentService; @Autowired private NewsService newsService; @Autowired private CinemaHallSessionService cinemaHallSessionService; @Autowired private CinemaService cinemaService; @Autowired private CinemaHallSeatService cinemaHallSeatService; @Value ( "${movie.select.seat.max.num}" ) private Integer selectedSeatMax; //最大选座数 @Autowired private OrderService orderService; @Autowired private OrderItemService orderItemService; /** * 电影列表页面 * @param model * @return */ @RequestMapping ( "/list" ) public String list(Model model, @RequestParam (name= "type" ,defaultValue= "0" ) Integer type){ model.addAttribute( "movieList" , type == 0 ? movieService.findShowList() : movieService.findFutureList()); model.addAttribute( "type" , type); model.addAttribute( "topNewsList" , newsService.findTop()); model.addAttribute( "topMoneyMovieList" , movieService.findTopMoneyList()); return "home/movie/list" ; } /** * 电影详情页面 * @param model * @param id * @return */ @RequestMapping ( "/detail" ) public String detail(Model model, @RequestParam (name= "id" ,required= true ) Long id){ model.addAttribute( "movie" , movieService.findById(id)); model.addAttribute( "topMovieList" , movieService.findTopList( 5 )); model.addAttribute( "distinctCinemaHallSessionList" , cinemaHallSessionService.findDistinctCinemaByMovieId(id)); model.addAttribute( "distinctShowDateCinemaHallSessionList" , cinemaHallSessionService.findDistinctShowDateByMovieId(id)); model.addAttribute( "commentList" , movieCommentService.findByMovie(id)); return "home/movie/detail" ; } /** * 选座页面 * @param model * @param id * @return */ @RequestMapping ( "/select_seat" ) public String selectSeat(Model model, @RequestParam (name= "id" ,required= true ) Long id){ CinemaHallSession cinemaHallSession = cinemaHallSessionService.findById(id); model.addAttribute( "cinemaHallSession" , cinemaHallSession); model.addAttribute( "cinemaHallSeatList" , cinemaHallSeatService.findAll(cinemaHallSession.getCinemaHall().getId())); model.addAttribute( "selectedSeatMax" , selectedSeatMax); List<Order> findByCinemaHallSession = orderService.findByCinemaHallSession(id); model.addAttribute( "orderSeatList" , JSONArray.toJSONString(orderItemService.findOrderItemSeatIds(findByCinemaHallSession))); return "home/movie/select_seat" ; } /** * 获取指定电影、指定影院、指定时间下的场次 * @param model * @param mid * @param cid * @param showDate * @return */ @RequestMapping ( "/get_show_session" ) public String getShowSession(Model model, @RequestParam (name= "mid" ,required= true ) Long mid, @RequestParam (name= "cid" ,required= true ) Long cid, @RequestParam (name= "showDate" ,required= true ) String showDate){ model.addAttribute( "cinemaHallSessionList" , cinemaHallSessionService.findByMovieIdAndCinemaIdAndShowDate(mid, cid, showDate)); return "home/movie/get_show_session" ; } /** * 统计电影上映场次 * @param movieId * @return */ @RequestMapping ( "/get_show_stats" ) @ResponseBody public Result<List<Integer>> getShowStats( @RequestParam (name= "mid" ,required= true ) Long movieId) { List<Integer> ret = new ArrayList<Integer>(); List<Integer> showTotal = cinemaHallSessionService.getShowTotal(movieId); if (showTotal == null || showTotal.size() <= 0 ){ ret.add( 0 ); ret.add( 0 ); return Result.success(ret); } ret.add(showTotal.size()); //上映的影院数 //计算场次数 int totalSession = 0 ; for ( int i= 0 ; i< showTotal.size();i++){ totalSession += Integer.parseInt(showTotal.get(i)+ "" ); } ret.add(totalSession); return Result.success(ret); } } |
以上就是Java实战之电影在线观看系统的实现的详细内容,更多关于Java电影观看系统的资料请关注服务器之家其它相关文章!
原文链接:https://blog.csdn.net/m0_59687645/article/details/124099188