• 基于springboot+vue+MySQL的电影院会员管理系统


    电影院会员管理系统说明文档

    目录
    电影院会员管理系统说明文档 1
    一、项目技术方案 1
    二、项目设计概要 1
    三、模块设计及实现 1

    1. 会员模块 2
    2. 会员卡模块 2
    3. 电影票模块 2
    4. 会员关怀 2
    5. 数据统计 3
      四、运行项目 3
      五、项目截图 3
    6. 登录页面 3
    7. 系统首页 4
    8. 会员页面 4
    9. 会员卡管理 5
    10. 积分管理 6
    11. 会员关怀 6

    一、项目技术方案
    本作业后端使用springboot+mybatis,持久数据库使用mysql,前端使用vue.js+element-ui技术。使用前后端分离架构,前端项目使用vue-cli脚手架创建单页面应用。
    三、模块设计及实现

    1. 会员模块
      a)会员列表:显示出当前系统中所有已注册的会员信息
      b)查询:会员列表上方文本框可输入会员姓名或性别或id号进行查询
      c)登录:点击按钮进入会员卡界面,显示出会员卡列表
      d)注册:点击注册按钮进入注册页面,提交表单后,判断是否曾经注册过,在服务端写入数据库
      e)修改:点击列表中某一个会员项左侧修改按钮,可弹出一个模态窗口进行修改
      f)删除:点击列表中某一个会员项左侧删除按钮,在弹出确认对话框后,发送请求到服务端内删除数据
      注: 数据表包含字段:username、password、name、sex、birthday
    2. 会员卡模块
      a)会员卡列表:显示出当前用户所持有的所有的会员卡信息及状态
      b)会员卡查询:根据ID号查询到当前需要操作的会员卡
      c)注册:用户可以点击注册,每个用户可注册多个会员卡
      d)充值:在会员卡界面中,通过充值入口可以对会员卡余额进行充值,输入框中输入金额,提交表单后在服务端修改数据库,同时将消费记录记录交易数据库中
      e)消费:在会员卡界面中,通过充值后的余额购买,在购买方式单选框中选择人民币,用户点击购买后,在服务端将相应金额从数据库中减去,同时将消费记录记录交易数据库中
      f)挂失:在会员卡界面中,可以通过挂失入口来对会员卡进行冻结,发起请求后,在服务端将数据库中的冻结字段设为1
      g)解挂:在会员卡界面中,如果当前正处于挂失状态,则显示出解挂入口,用户点击此入口后,发出请求,将冻结字段设为0
      h)补卡:在会员卡界面中,如果当前正处于挂失状态,则显示出补卡入口,重新进行注册会员卡,服务端查询出与会员信息对应的会员卡数据,将数据导入到新会员卡中
      i)积分兑换:电影票可以通过积分购买,弹出电影票购买窗口,在单选框中选择积分
      j)交易记录查询:本文转载自http://www.biyezuopin.vip/onews.asp?id=15078在会员卡界面中,通过点击消费记录查询按钮,可以以表格形式显示出当前用户所有记录
      注:
      会员卡数据表包含字段:cardid、username、balance、integral、lose
      交易记录表字段:id、cardid、value、time、spendtype
    3. 电影票模块
      a)商品信息列表:在会员卡列表中会员卡项左侧点击购买弹出电影票模态窗口,显示当前所有电影票的商品信息
      b)购买:有两种购买选择方式:积分与余额,选择不同方式时,表单提交不同的type,服务端对其进行判断,调用相应的业务逻辑
      注: 电影票表字段:mobieid、name、price、integral、time
    4. 会员关怀
      a)会员生日提醒:进入系统后,即判断当前时期是否是用户生日,如果是,则在会员名称前显示生日祝福
      b)会员生日查询:可查询未来7天的哪些会员过生日,或者指定未来的某一天
      c) 距离生日天数显示: 根据距离天数对列表进行正序排列
    package com.zrkworld.cinema.controller;
    
    import com.github.pagehelper.Page;
    import com.github.pagehelper.PageHelper;
    import com.github.pagehelper.PageInfo;
    import com.zrkworld.cinema.pojo.*;
    import com.zrkworld.cinema.service.MovieService;
    import org.apache.commons.lang3.StringUtils;
    import org.springframework.web.bind.annotation.CrossOrigin;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.annotation.Resource;
    import java.util.List;
    
    /**
     * @author zrk
     * @version 1.0
     * @date 2020/5/1 0001 11:45
     */
    @CrossOrigin
    @RestController
    public class MovieController {
        @Resource
        MovieService movieService;
        /**
         * //添加电影票数据,需要返回电影票全部数据,因为电影票id需要服务端生成
         * export const insertMovie = query=>{
         *     return request({
         *         url:'insertMovie',
         *         method:'post',
         *         params:query
         *     })
         * };
         */
        @RequestMapping("insertMovie")
        public CinemaResult insertMovie(Movie movie){
            return movieService.insertMovie(movie);
    
        }
        /**
         *  //获取电影票数据,请求参数:pageIndex,pageSize,返回电影列表和总记录数
         * export const movieData = query =>{
         *     return request({
         *         url:'getMovie',
         *         method:'get',
         *         params:query
         *     });
         * };
         */
        @RequestMapping("getMovie")
        public CinemaResult getMovie(String pageIndex,String pageSize){
            //这里使用分页插件pagehelper
            PageResult pageResult = new PageResult();
            PageHelper.startPage(Integer.parseInt(pageIndex),Integer.parseInt(pageSize));
            List lists = movieService.getMovieData();
            PageInfo pageInfo = new PageInfo<>(lists);
            pageResult.setList(pageInfo.getList());
            pageResult.setPageTotal(pageInfo.getTotal());
            return CinemaResult.ok(pageResult);
        }
        /**
         * //删除电影数据,请求参数:movieId
         * export const delMovie = query=>{
         *     return request({
         *         url:'delMovie',
         *         method:'get',
         *         params:query
         *     });
         * };
    
         */
        @RequestMapping("delMovie")
        public CinemaResult delMovie(String movieId){
            movieService.delMovie(movieId);
            return CinemaResult.ok();
        }
        /**
         *      * //修改电影数据,请求参数:movieId、name、price、time
         *      * export const modifyMovie = query=>{
         *      *     return request({
         *      *         url:'modifyMovie',
         *      *         method:'get',
         *      *         params:query
         *      *     });
         *      * };
         */
        @RequestMapping("modifyMovie")
        public CinemaResult modifyMovie(Movie movie){
            return movieService.modifyMovie(movie);
        }
    }
    /*
    *
    * //删除电影数据,请求参数:movieId
    export const delMovie = query=>{
        return request({
            url:'delMovie',
            method:'get',
            params:query
        });
    };
    //修改电影数据,请求参数:movieId、name、price、time
    export const modifyMovie = query=>{
        return request({
            url:'modifyMovie',
            method:'get',
            params:query
        });
    };*/
    
    • 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

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    云原生—运行时环境
    OAuth2的定义和运行流程
    获取QTextedit文本宽度
    java.io.IOException: Server returned HTTP response code: 403 for URL
    Mysql在ubuntu22.04上安装配置
    Magisk搞机器记录(小米Mix3)
    SpringBoot详解(二)
    【毕业设计】27-基于单片机的家庭监控及防盗报警_热释电报警_人体系统工程设计(原理图+源代码+仿真+实物照片+答辩论文)
    VL系列 Exchanging-based Multimodal Fusion with Transformer 论文阅读笔记
    融合之力:数字孪生、人工智能和数据分析的创新驱动
  • 原文地址:https://blog.csdn.net/sheziqiong/article/details/126902334