基于SSM的电影院购票系统的设计与实现

简介: 大家好,今天给大家带来一款SSM的电影院售票系统,非常不错的一个项目,学习​javaweb编程必备。

项目介绍

基于Spring,SpringMVC,Mybatis开发实现。

数据库用的是MySQL5.5。

开发工具用的Eclipse + Tomcat7,JDK1.7-1.8皆可。

首页


21.png


电影详情页


22.png


购票


23.png


登录注册页面


24.png


后台管理页面


25.png


电影信息列表


26.png


添加电影信息


27.png


电影票管理


28.png


订单管理


29.png


热点新闻管理


30.png


31.png



实现逻辑代码


抽出一些核心代码,如有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;
  }
}
相关文章
|
5月前
|
Java 数据库连接 Maven
手把手教你如何搭建SSM框架、图书商城系统案例
这篇文章是关于如何搭建SSM框架以及实现一个图书商城系统的详细教程,包括了项目的配置文件整合、依赖管理、项目结构和运行效果展示,并提供了GitHub源码链接。
手把手教你如何搭建SSM框架、图书商城系统案例
|
4月前
|
Java 应用服务中间件 数据库连接
ssm项目整合,简单的用户管理系统
文章介绍了一个使用SSM框架(Spring、SpringMVC、MyBatis)构建的简单用户管理系统的整合过程,包括项目搭建、数据库配置、各层代码实现以及视图展示。
ssm项目整合,简单的用户管理系统
|
4月前
|
XML Java 数据库连接
如何搭建SSM框架、图书商城系统
这是一份详尽的《Spring + SpringMVC + Mybatis 整合指南》,作者耗时良久整理出约五万字的内容,现已经全部笔记公开。此文档详细地介绍了如何搭建与整合SSM框架,具体步骤包括创建Maven项目、添加web骨架、配置pom文件以及整合Spring、SpringMVC和Mybatis等。无论是对初学者还是有一定基础的开发者来说,都是很好的学习资源。此外,作者还提供了项目源码的GitHub链接,方便读者实践。虽然当前主流推荐学习SpringBoot,但了解SSM框架仍然是不可或缺的基础。
64 0
|
5月前
|
SQL Java 应用服务中间件
使用SSM搭建图书商城管理系统(完整过程介绍、售后服务哈哈哈)
这篇文章是关于如何使用SSM框架搭建图书商城管理系统的教程,包括完整过程介绍、常见问题解答和售后服务,提供了项目地址、运行环境配置、效果图展示以及运行代码的步骤。
使用SSM搭建图书商城管理系统(完整过程介绍、售后服务哈哈哈)
|
6月前
|
存储 关系型数据库 测试技术
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)(2)
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)
105 1
|
7月前
|
前端开发
杨校老师之基于SSM开发的校园点餐配送系统
杨校老师之基于SSM开发的校园点餐配送系统
70 0
杨校老师之基于SSM开发的校园点餐配送系统
|
6月前
|
安全 数据挖掘 测试技术
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)(2)
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)
86 0
|
6月前
|
Java 关系型数据库 MySQL
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)(1)
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)
81 0
|
6月前
|
Java 关系型数据库 测试技术
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)(1)
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)
78 0
|
7月前
|
前端开发 Java 关系型数据库
杨校老师项目之基于SSM企业物流快递配送管理系统
杨校老师项目之基于SSM企业物流快递配送管理系统
60 0