基于Java+SSM实现电影院购票系统
项目介绍
基于Spring,SpringMVC,Mybatis开发实现。
数据库用的是MySQL5.5。
开发工具用的Eclipse + Tomcat7,JDK1.7-1.8皆可。
效果图展示
首页

电影详情页

购票

登录注册页面

后台管理页面

电影信息列表

添加电影信息

电影票管理

订单管理

热点新闻管理


实现逻辑代码
抽出一些核心代码,如有BUG和问题,欢迎指出。
MovieController
package com.app.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.app.bean.Movies;
import com.app.bean.Orders;
import com.app.bean.Ticket;
import com.app.service.MovieService;
import com.app.util.StringUtilsEx;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import static com.app.util.StringUtilsEx.*;
@Controller
@RequestMapping("/movie")
public class MovieController {
@Autowired
private MovieService ms;
@RequestMapping("/listOrder")
@ResponseBody
public Map<String,Object> listOrder(Integer page,Integer rows){
Map<String,Object> result = new HashMap<>();
List<Orders> list = null;
try {
if(isEmpty(page) || isEmpty(rows)) {
page = 1;
rows = 5;
}
PageHelper.startPage(page, rows);
list = ms.listOrder();
result.put("rows", list);
PageInfo<Orders> pageInfo = new PageInfo<Orders>(list);
result.put("total", pageInfo.getTotal());
} catch (Exception e) {
e.printStackTrace();
return null;
}
return result;
}
//根据电影票ID生成订单
@RequestMapping("/addOrder")
@ResponseBody
public Map<String,Object> addOrder(String id){
Map<String,Object> returnVo = new HashMap<String, Object>();
returnVo.put("code", 0);
try{
ms.addOrder(id);
}catch(Exception e){
returnVo.put("code", -1);
}
return returnVo;
}
@RequestMapping("/getById")
@ResponseBody
public Movies getById(String id){
return ms.getById(id);
}
@RequestMapping("/createTickets")
@ResponseBody
public Map<String,Object> createTickets(String id){
Map<String,Object> returnVo = new HashMap<String, Object>();
returnVo.put("code", 0);
//先检查这个id的电影是否已经生成了电影票
List<Ticket> tickets = ms.getTicketsByMovieId(id);
if(tickets != null && !tickets.isEmpty()){
returnVo.put("code", 2);
return returnVo;
}
try{
ms.createTickets(id);
}catch(Exception e){
returnVo.put("code", -1);
}
return returnVo;
}
@RequestMapping("/update")
@ResponseBody
public Map<String,Object> update(String id,String column){
Map<String,Object> returnVo = new HashMap<String, Object>();
returnVo.put("code", 0);
try{
ms.update(id,column);
}catch(Exception e){
returnVo.put("code", -1);
}
return returnVo;
}
@RequestMapping("/delete")
@ResponseBody
public Map<String,Object> delete(String id){
Map<String,Object> returnVo = new HashMap<String, Object>();
returnVo.put("code", 0);
try{
ms.delete(id);
}catch(Exception e){
returnVo.put("code", -1);
}
return returnVo;
}
@RequestMapping("/add")
@ResponseBody
public Map<String,Object> add(Movies movie){
Map<String,Object> returnVo = new HashMap<String, Object>();
returnVo.put("code", 0);
try{
if(StringUtilsEx.isNotEmpty(movie.getId())){
ms.update(movie);
}else{
ms.add(movie);
}
}catch(Exception e){
e.printStackTrace();
returnVo.put("code", -1);
}
return returnVo;
}
@RequestMapping("/list")
@ResponseBody
public Map<String,Object> list(String moviename,Integer page,Integer rows){
Map<String,Object> result = new HashMap<>();
List<Movies> list = null;
try {
if(isEmpty(page) || isEmpty(rows)) {
page = 1;
rows = 5;
}
PageHelper.startPage(page, rows);
list = ms.list(moviename);
result.put("rows", list);
PageInfo<Movies> pageInfo = new PageInfo<Movies>(list);
result.put("total", pageInfo.getTotal());
} catch (Exception e) {
e.printStackTrace();
return null;
}
return result;
}
}NewsController
package com.app.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.app.bean.Movies;
import com.app.bean.News;
import com.app.service.MovieService;
import com.app.service.NewsService;
import com.app.util.StringUtilsEx;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import static com.app.util.StringUtilsEx.*;
@Controller
@RequestMapping("/news")
public class NewsController {
@Autowired
private NewsService service;
@RequestMapping("/getById")
@ResponseBody
public News getById(String id){
return service.getById(id);
}
@RequestMapping("/delete")
@ResponseBody
public Map<String,Object> delete(String id){
Map<String,Object> returnVo = new HashMap<String, Object>();
returnVo.put("code", 0);
try{
service.delete(id);
}catch(Exception e){
returnVo.put("code", -1);
}
return returnVo;
}
@RequestMapping("/add")
@ResponseBody
public Map<String,Object> add(News news){
Map<String,Object> returnVo = new HashMap<String, Object>();
returnVo.put("code", 0);
try{
if(StringUtilsEx.isNotEmpty(news.getId())){
service.update(news);
}else{
service.add(news);
}
}catch(Exception e){
e.printStackTrace();
returnVo.put("code", -1);
}
return returnVo;
}
@RequestMapping("/list")
@ResponseBody
public Map<String,Object> list(String newsname,Integer page,Integer rows){
Map<String,Object> result = new HashMap<>();
List<News> list = null;
try {
if(isEmpty(page) || isEmpty(rows)) {
page = 1;
rows = 5;
}
PageHelper.startPage(page, rows);
list = service.list(newsname);
result.put("rows", list);
PageInfo<News> pageInfo = new PageInfo<News>(list);
result.put("total", pageInfo.getTotal());
} catch (Exception e) {
e.printStackTrace();
return null;
}
return result;
}
}IndexController
package com.app.controller;
import static com.app.util.StringUtilsEx.isEmpty;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.app.bean.Movies;
import com.app.bean.News;
import com.app.bean.Ticket;
import com.app.mapper.NewsMapper;
import com.app.service.MovieService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@Controller
public class IndexController {
@Autowired
private MovieService ms;
@Autowired
private NewsMapper newsMapper;
@RequestMapping("front/index")
public ModelAndView index(String moviename){
ModelAndView mav = new ModelAndView();
PageHelper.startPage(1, 10);
List<Movies> list = ms.list(moviename);
//电影
mav.addObject("movieList",list);
mav.addObject("jrpf",ms.queryList("jrpf"));
mav.addObject("zsqd",ms.queryList("zsqd"));
mav.addObject("hprc",ms.queryList("hprc"));
mav.addObject("newsList",ms.queryList("news"));
mav.setViewName("front/index.jsp");
return mav;
}
@RequestMapping("front/detail")
public ModelAndView detail(String id){
ModelAndView mav = new ModelAndView();
//根据id获取电影的所有信息
Movies movie = ms.getById(id);
//根据id获取所有的电影票
List<Ticket> tickets = ms.getTicketsByMovieId(id);
mav.addObject("movie", movie);
mav.addObject("tickets", tickets);
mav.addObject("jrpf",ms.queryList("jrpf"));
mav.addObject("zsqd",ms.queryList("zsqd"));
mav.addObject("hprc",ms.queryList("hprc"));
mav.addObject("newsList",ms.queryList("news"));
mav.setViewName("front/detail.jsp");
return mav;
}
@RequestMapping("front/detailNews")
public ModelAndView detailNews(String id){
ModelAndView mav = new ModelAndView();
//根据id获取电影的所有信息
News news = newsMapper.selectByPrimaryKey(Integer.parseInt(id));
mav.addObject("news", news);
mav.addObject("jrpf",ms.queryList("jrpf"));
mav.addObject("zsqd",ms.queryList("zsqd"));
mav.addObject("hprc",ms.queryList("hprc"));
mav.addObject("newsList",ms.queryList("news"));
mav.setViewName("front/detailNews.jsp");
return mav;
}
@RequestMapping("front/result")
public ModelAndView result(String moviename,Integer page,Integer rows){
ModelAndView mav = new ModelAndView();
if(isEmpty(page) || isEmpty(rows)) {
page = 1;
rows = 5;
}
PageHelper.startPage(page, rows);
//根据id获取所有的电影票
List list = ms.list(moviename);
mav.addObject("rows",list);
PageInfo<Movies> pageInfo = new PageInfo<Movies>(list);
mav.addObject("total",pageInfo.getTotal());
mav.addObject("page",page);
mav.addObject("jrpf",ms.queryList("jrpf"));
mav.addObject("zsqd",ms.queryList("zsqd"));
mav.addObject("hprc",ms.queryList("hprc"));
mav.addObject("newsList",ms.queryList("news"));
mav.setViewName("front/result.jsp");
return mav;
}
}UserController
package com.app.controller;
import static com.app.util.StringUtilsEx.isEmpty;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.app.bean.Movies;
import com.app.bean.Users;
import com.app.bean.UsersExample;
import com.app.bean.UsersExample.Criteria;
import com.app.core.ReturnVoCommon;
import com.app.mapper.UsersMapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UsersMapper userMapper;
@RequestMapping("/list")
@ResponseBody
public Map<String,Object> list(Integer page,Integer rows){
Map<String,Object> result = new HashMap<>();
List<Users> list = null;
try {
if(isEmpty(page) || isEmpty(rows)) {
page = 1;
rows = 5;
}
PageHelper.startPage(page, rows);
list = userMapper.selectByExample(new UsersExample());
result.put("rows", list);
PageInfo<Users> pageInfo = new PageInfo<Users>(list);
result.put("total", pageInfo.getTotal());
} catch (Exception e) {
e.printStackTrace();
return null;
}
return result;
}
@RequestMapping("/delete")
@ResponseBody
public Map<String,Object> delete(String id){
Map<String,Object> returnVo = new HashMap<String, Object>();
returnVo.put("code", 0);
try{
userMapper.deleteByPrimaryKey(Integer.parseInt(id));
}catch(Exception e){
returnVo.put("code", -1);
}
return returnVo;
}
@RequestMapping("/reg")
@ResponseBody
public ReturnVoCommon reg(Users user,HttpServletRequest request){
ReturnVoCommon vo = new ReturnVoCommon();
UsersExample example = new UsersExample();
Criteria createCriteria = example.createCriteria();
createCriteria.andNameEqualTo(user.getName());
List<Users> list = userMapper.selectByExample(example);
if(list.size() == 1){
vo.setCode(-1);
vo.setErrMsg("用户名存在!");
return vo;
}
user.setAuth("注册用户");
userMapper.insert(user);
return vo;
}
@RequestMapping("/login")
@ResponseBody
public ReturnVoCommon login(Users user,HttpServletRequest request){
ReturnVoCommon vo = new ReturnVoCommon();
UsersExample example = new UsersExample();
Criteria createCriteria = example.createCriteria();
createCriteria.andNameEqualTo(user.getName());
createCriteria.andPasswordEqualTo(user.getPassword());
createCriteria.andAuthEqualTo(user.getAuth());
List<Users> list = userMapper.selectByExample(example);
if(list.size() < 1){
vo.setCode(-1);
vo.setErrMsg("用户名或者密码错误!");
return vo;
}
if(user.getAuth().equals("注册用户")){
vo.setCode(1);
request.getSession().setAttribute("currentUser", list.get(0));
}else{
vo.setCode(2);
request.getSession().setAttribute("adminUser", list.get(0));
}
return vo;
}
}
到此这篇关于基于Java+SSM实现电影院购票系统的文章就介绍到这了,更多相关Java SSM电影院购票系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
在已经使用mybatis的项目里引入mybatis-plus,结果不能共存的解决
这篇文章主要介绍了在已经使用mybatis的项目里引入mybatis-plus,结果不能共存的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-03-03
SpringBoot FailureAnalyzer实例使用教程
FailureAnalyzer是一种在启动时拦截exception并将其转换为human-readable消息的好方法,包含在故障分析中。SpringBoot为application context相关的exceptions,JSR-303验证等提供了这样的分析器,实际上很容易创建自己的2022-12-12
Springboot整合zookeeper实现对节点的创建、监听与判断的案例详解
这篇文章主要介绍了基于Springboot整合zookeeper实现对节点的创建、监听与判断,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-06-06
FactoryBean BeanFactory方法使用示例详解讲解
这篇文章主要为大家介绍了FactoryBean BeanFactory方法使用示例详解讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-12-12
如何修改logback.xml配置文件在resource以外的位置
这篇文章主要介绍了如何修改logback.xml配置文件在resource以外的位置,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-02-02
Java通过Timer与TimerTask实现定时任务调度方式
本文介绍了如何在Java中使用`Timer`和`TimerTask`类来实现定时任务调度,`Timer`类用于创建计时器并安排任务,而`TimerTask`类用于定义具体的任务,文章详细介绍了这两个类的方法和使用示例,包括创建任务、安排任务、取消任务等操作,通过一个简单的例子2024-12-12
详解Spring Cloud Gateway 数据库存储路由信息的扩展方案
这篇文章主要介绍了详解Spring Cloud Gateway 数据库存储路由信息的扩展方案,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-11-11


最新评论