服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java实战之电影在线观看系统的实现

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

2022-11-10 11:491334611189 Java教程

这篇文章主要介绍了如何利用Java实现电影在线观看系统,文中用到的技术有:JSP、Spring、SpringMVC、MyBatis等,感兴趣的可以了解一下

一、项目简述

环境配置:

Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)

项目技术:

JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等。

二、效果图展示

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

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

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

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

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

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

三、核心代码

后台用户管理控制器

?
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教程Java网络编程TCP实现文件上传功能

    Java网络编程TCP实现文件上传功能

    这篇文章主要为大家详细介绍了Java网络编程TCP实现文件上传功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    跑起来要带风!5852021-09-26
  • Java教程Java学习基础之安装JDK/配置JDK环境&IEDA工具安装

    Java学习基础之安装JDK/配置JDK环境&IEDA工具安装

    这篇文章主要介绍了Java学习基础系列文章的第一篇,主要内容是安装JDK/配置JDK环境&IEDA工具安装的相关资料,需要的朋友可以参考下...

    漫路h4522021-10-07
  • Java教程分析ZooKeeper分布式锁的实现

    分析ZooKeeper分布式锁的实现

    在分布式的情况下,sychornized 和 Lock 已经不能满足我们的要求了,那么就需要使用第三方的锁了,这里我们就使用 ZooKeeper 来实现一个分布式锁...

    IT王小二11392021-09-23
  • Java教程java注解的类型知识点总结

    java注解的类型知识点总结

    在本篇文章里小编给大家整理了一篇关于java注解的类型知识点总结内容,有兴趣的朋友们可以学习下。...

    小妮浅浅7012021-08-19
  • Java教程浅谈Java锁机制

    浅谈Java锁机制

    在多线程环境下,程序往往会出现一些线程安全问题,为此,Java提供了一些线程的同步机制来解决安全问题,比如:synchronized锁和Lock锁都能解决线程安全...

    随身电源10812022-01-25
  • Java教程图解Java排序算法之堆排序

    图解Java排序算法之堆排序

    这篇文章主要为大家详细介绍了Java经典排序算法之堆排序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    dreamcatcher-cx7442022-03-11
  • Java教程SpringBoot集成redis的示例代码

    SpringBoot集成redis的示例代码

    redis想必小伙伴们即使没有用过,也是经常听到的,在工作中,redis用到的频率非常高,本文主要介绍了SpringBoot集成redis,感兴趣的可以参考一下...

    JavaGieGie9652022-02-27
  • Java教程Java实现简单的分页功能

    Java实现简单的分页功能

    这篇文章主要为大家详细介绍了Java实现简单的分页功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    LandiYax4802020-12-12