好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Java实战之电影在线观看系统的实现

一、项目简述

环境配置:

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

查看更多关于Java实战之电影在线观看系统的实现的详细内容...

  阅读:12次