26基于java的电影院售票管理系统设计

项目背景

随着互联网和电子商务的快速发展,开发一个电影院订票系统来帮助电影院对电影信息,售票信息进行统一化的信息管理;

项目简短介绍

项目首先分为俩个用户端,一个是管理员后台,手机APP端,管理后端负责对系统功能上面的管理;app端负责查询影片,然后评论,购买影片等等;

项目环境

前端:html, css, js, vue, jquery,h5等;
后端:java, spring,maven等
开发工具:mysql,
支持eclipse或idea
更多内容可查看:项目帮

部分核心代码

import org.springframework.stereotype.Service;
import xyz.shiguangliang.mybatis.dao.UserMapper;

import xyz.shiguangliang.mybatis.domain.User;
import xyz.shiguangliang.service.UserService;
import xyz.shiguangliang.util.query.QueryInfo;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Objects;

@Service
public class UserServiceImpl implements UserService {
    @Resource
    private UserMapper userMapper;

    //登录
    @Override
    public User login(String username, String password) {
        User user = userMapper.selectLogin(username,password);
        if (user != null) {
            //登录次数加一
            if (user.getIntimes() !=  null) {
                user.setIntimes(user.getIntimes() + 1);
            }else {
                user.setIntimes(1);
            }
            //更新登录时间
            user.setLastlogin(new Date());
            return user;
        }
        return null;
    }

    //注册
    @Override
    public boolean register(User user) {
        int i = 0;
        //检测用户是否存在
        User user1 = userMapper.selectUsername(user.getUsername());
        if (user1 == null) {
            i = userMapper.insert(user);
        }
        return i > 0;
    }

    //用户列表
    @Override
    public QueryInfo getUserList(String query, Integer pagenum,Integer pagesize) {
        QueryInfo queryInfo = new QueryInfo();
        int start;
        int end;
        if (pagenum == null||pagesize == null){
            pagenum =0;
            pagesize = 3;
        }
        start = (pagenum-1)*pagesize;
        end = pagesize;
        int userSize = userMapper.selectUserListLimitSize(query,start,end);
        List<User> users = userMapper.selectUserListLimit(query,start,end);
        queryInfo.setList(users);
        queryInfo.setTotal(userSize);
        return queryInfo;
    }

    //删除用户
    @Override
    public int deleteUser(Integer tid) {
        return userMapper.deleteByPrimaryKey(tid);
    }

    //通过id查找用户
    @Override
    public User findById(Integer tid) {
        return userMapper.selectByPrimaryKey(tid);
    }



    //更新用户
    @Override
    public int updateUser(User user) {
        if (user.getPassword()==null|| Objects.equals(user.getPassword(), "")){
            user.setPassword(userMapper.selectByPrimaryKey(user.getTid()).getPassword());
        }
        return userMapper.updateByPrimaryKey(user);
    }

    //通过用户名查找用户
    @Override
    public User findByUsername(String username) {
        return userMapper.selectUsername(username);
    }

    //获取用户权限
    @Override
    public int getPower(String username) {
        return userMapper.selectUsername(username).getPower();
    }
}

useMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="xyz.shiguangliang.mybatis.dao.UserMapper">
  <resultMap id="BaseResultMap" type="xyz.shiguangliang.mybatis.domain.User">
    <id column="tid" jdbcType="INTEGER" property="tid" />
    <result column="username" jdbcType="VARCHAR" property="username" />
    <result column="password" jdbcType="VARCHAR" property="password" />
    <result column="teachername" jdbcType="VARCHAR" property="teachername" />
    <result column="dno" jdbcType="INTEGER" property="dno" />
    <result column="power" jdbcType="INTEGER" property="power" />
    <result column="intimes" jdbcType="INTEGER" property="intimes" />
    <result column="lastlogin" jdbcType="TIMESTAMP" property="lastlogin" />
  </resultMap>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
    delete from teacher
    where tid = #{tid,jdbcType=INTEGER}
  </delete>
  <insert id="insert" parameterType="xyz.shiguangliang.mybatis.domain.User">
    insert into teacher (tid, username, password, 
      teachername, dno, power, 
      intimes, lastlogin)
    values (#{tid,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, 
      #{teachername,jdbcType=VARCHAR}, #{dno,jdbcType=INTEGER}, #{power,jdbcType=INTEGER}, 
      #{intimes,jdbcType=INTEGER}, #{lastlogin,jdbcType=TIMESTAMP})
  </insert>
  <update id="updateByPrimaryKey" parameterType="xyz.shiguangliang.mybatis.domain.User">
    update teacher
    set username = #{username,jdbcType=VARCHAR},
      password = #{password,jdbcType=VARCHAR},
      teachername = #{teachername,jdbcType=VARCHAR},
      dno = #{dno,jdbcType=INTEGER},
      power = #{power,jdbcType=INTEGER},
      intimes = #{intimes,jdbcType=INTEGER},
      lastlogin = #{lastlogin,jdbcType=TIMESTAMP}
    where tid = #{tid,jdbcType=INTEGER}
  </update>
  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    select tid, username, password, teachername, dno, power, intimes, lastlogin
    from teacher
    where tid = #{tid,jdbcType=INTEGER}
  </select>
  <select id="selectAll" resultMap="BaseResultMap">
    select tid, username, password, teachername, dno, power, intimes, lastlogin
    from teacher
  </select>
    <select id="selectLogin" resultType="xyz.shiguangliang.mybatis.domain.User">
        select tid, username, password, teachername, dno, power, intimes, lastlogin
        from teacher
        where username = #{username} and password = #{password}
    </select>
  <select id="selectUsername" resultType="xyz.shiguangliang.mybatis.domain.User">
    select tid, username, password, teachername, dno, power, intimes, lastlogin
        from teacher
        where username = #{username}
  </select>
  <select id="selectUserListLimit" resultType="xyz.shiguangliang.mybatis.domain.User">
    select tid, username, password, teachername, dno, power, intimes, lastlogin
    from teacher
    where
    /*条件判断*/
    <if test="#{query} != null and #{query} != ''">
      /*模糊查询*/
      <bind name="query2" value="'%' + query + '%'"/>
      username like #{query2}
    </if>
    LIMIT #{start},#{end}
  </select>
  <select id="selectUserListLimitSize" resultType="java.lang.Integer">
    select count(*)
    from teacher
    where
    /*条件判断*/
    <if test="#{query} != null and #{query} != ''">
      /*模糊查询*/
      <bind name="query2" value="'%' + query + '%'"/>
      username like #{query2}
    </if>
  </select>
</mapper>

项目展示

管理后台

  • 登录
    在这里插入图片描述

  • 数据显示
    在这里插入图片描述

  • 用户管理
    在这里插入图片描述

  • 电影管理
    在这里插入图片描述

  • 影院管理
    在这里插入图片描述

  • 影厅管理
    在这里插入图片描述

  • 电影排片
    在这里插入图片描述

  • 评论管理
    在这里插入图片描述

  • 订单管理
    在这里插入图片描述

APP端

  • 登录
    在这里插入图片描述

  • 个人详情页
    在这里插入图片描述

  • 修改信息
    在这里插入图片描述

  • 首页
    在这里插入图片描述

  • 电影详情页面
    在这里插入图片描述

  • 正在热映和即将上映
    在这里插入图片描述

  • 影院查看
    在这里插入图片描述

  • 我的订单
    在这里插入图片描述

系统完整

在这里插入图片描述

原文链接:https://www.cnblogs.com/projecthelp/p/17376512.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:26基于java的电影院售票管理系统设计 - Python技术站

(0)
上一篇 2023年5月6日
下一篇 2023年5月6日

相关文章

  • springmvc如何进行异常处理

    Spring MVC可以通过统一的异常处理机制来处理应用程序中遇到的异常,统一处理异常可以使应用程序更加健壮,并且在开发过程中可以统计异常信息,方便排查错误。 Spring MVC框架中异常处理是通过HandlerExceptionResolver接口来处理的,在这个接口中我们可以自定义异常处理的方式,这个接口中有两个非常重要的方法:resolveExcep…

    Java 2023年5月27日
    00
  • 详解Jvm中时区设置方式

    我来详细讲解一下“详解Jvm中时区设置方式”的完整攻略。 什么是Jvm中的时区 Jvm是一种Java虚拟机,它是运行Java程序的基础。在Java程序中,时间是一个非常重要的概念,因此时区是一个必不可少的因素。Jvm中的时区设置可以控制Java程序使用的时间和日期格式。 Jvm中的时区设置方式 Jvm中的时区设置有三种方式,分别为: 1. 系统默认时区 Jv…

    Java 2023年5月20日
    00
  • Java 运算符 动力节点Java学院整理

    Java 运算符完整攻略 Java 运算符是可以用来执行各种算术、比较、逻辑和位运算的符号,常用的运算符包括算术运算符、赋值运算符、比较运算符、逻辑运算符和位运算符。在编写 Java 代码时,熟练掌握各类运算符的用法是非常重要的。 算术运算符 Java 中的算术运算符包括加、减、乘、除、求余和自增自减等运算。 加号(+):用于相加两个数; 减号(-):用于减…

    Java 2023年5月30日
    00
  • 你知道将Bean交给Spring容器管理有几种方式(推荐)

    将Bean交给Spring容器管理的方式 在Spring中,我们可以将Bean交给Spring容器管理,从而实现依赖注入和控制反转。下面是将Bean交给Spring容器管理的几种方式。 1. 使用@Component注解 @Component是Spring中最常用的注解之一,用于将一个类声明为Bean,并交给Spring容器管理。下面是一个简单的示例: @C…

    Java 2023年5月18日
    00
  • Java8新特性之lambda(动力节点Java学院整理)

    Java8新特性之lambda——完整攻略 什么是lambda表达式 lambda表达式是一种能够传递行为的对象,是一个匿名函数,它没有名称、修饰符和返回类型,但是它可以像方法一样接受参数和返回值,并且可以被赋值给一个变量,它是Java8中一个非常重要的特性。 lambda表达式的语法 lambda表达式的语法如下: (parameter) -> ex…

    Java 2023年5月26日
    00
  • Java并行执行任务的几种方案小结

    Java并行执行任务的几种方案小结 在Java领域,多线程是一种非常常见的处理并发任务的方式。但是,多线程在并发处理能力以及代码设计方式上存在一些限制和挑战。近年来,随着Java语言的发展和并发编程框架的增多,人们有了许多新的方法来在Java中并行执行任务。本文将讲述Java并行执行任务的几种方案,以及在实际使用中的注意事项。 传统的多线程 在Java中使用…

    Java 2023年5月18日
    00
  • Java内存模型可见性问题相关解析

    Java内存模型可见性问题相关解析 Java是一门高级程序设计语言,应用广泛,但是在并发编程时,由于内存可见性问题可能会导致程序出现一些奇怪的行为。本文将详细讲解Java内存模型可见性问题及相关解析。 什么是Java内存模型可见性问题? Java内存模型中存在着共享变量被多个线程同时访问的情况。然而,由于JVM使用CPU缓存等优化策略,可能会将某些共享变量的…

    Java 2023年5月26日
    00
  • Spring MVC—数据绑定和表单标签详解

    SpringMVC 数据绑定和表单标签详解 SpringMVC是一个非常流行的Java Web框架。它通过模型-视图-控制器(MVC)架构,实现了对Web应用程序的易于扩展和维护的分层设计。在实际开发中,数据绑定和表单标签是SpringMVC中最重要的两个特性之一。 数据绑定 数据绑定指的是将请求参数(如表单提交的数据)自动绑定到JavaBean对象上。Sp…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部