热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java项目:springboot+vue电影院会员管理系统

作者主页:源码空间站2022简介:Java领域优质创作者、Java项目、学习资料、技术互助文末获取源码项目介绍本项目代码架构设计简单,注

作者主页:源码空间站2022

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码



项目介绍

本项目代码架构设计简单,注释齐全,结构清晰,适合同为java初学者参考。
cinema项目是一套电影院会员管理系统,使用前后端分离架构开发,前端基于Vue.js+Element UI技术,后端使用springboot+mybatis实现,包含管理员、会员管理、会员卡管理、电影票、消费记录、数据统计等模块


环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。

2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 
6.数据库:MySql 5.7版本;


技术栈

1. 后端:springboot+mybatis

2. 前端:vue.js+element-ui


使用说明

* 数据库文件cinema.sql已整合到项目中,使用mysql导入即可生成数据库

* 本项目已经整合了前后端,前端文件经过webpack构建后,生成了static文件夹和index.html放入了webapp下。
* 要对前端页面进行修改,修改完成后同样将生成的文件放到本项目的webapp下。

* 需上交的程序设计文档可参考目录下:电影院会员管理系统说明文档.docx


运行项目

* 方法一: cinema项目中已经整合了vue打包的静态资源,直接启动项目,并在浏览器上输入http://localhost:8081/cinema 即可运行。
1. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,下载所需jar包;
2. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
3. 将项目中db.properties配置文件中的数据库配置改为自己的配置
4. 配置tomcat,然后运行项目,输入http://localhost:8081/cinema  登录
5. 账户:admin  密码:123123

* 方法二: cinema-web项目是cinema项目的vue单页面前端项目,可以在文件夹目录下命令行输入:
`npm run install` 
`npm run dev`

后,修改utils/request.js下baseURL=”/api”,开启node反向代理服务器,解决跨域问题,然后启动cinema后端项目,在浏览器上输入 http://localhost:8080 即可以前后端分离方式运行(也可以npm run build后将dist文件夹放到nginx下运行)


运行截图


代码相关


 会员管理控制器

@CrossOrigin
@RestController
public class CardController {@ResourceCardService cardService;@RequestMapping("getCardData")public CinemaResult getCardData(String memberId, String pageIndex, String pageSize) {//这里使用分页插件pagehelperPageResult pageResult = new PageResult();PageHelper.startPage(Integer.parseInt(pageIndex), Integer.parseInt(pageSize));List lists = cardService.getCardData(memberId);PageInfo pageInfo = new PageInfo<>(lists);pageResult.setList(pageInfo.getList());pageResult.setPageTotal(pageInfo.getTotal());return CinemaResult.ok(pageResult);}/*** //注册会员卡,请求参数无,返回状态* export const registerCard = query=>{* return request({* url:"registerCard",* method:&#39;get&#39;,* params:query* });* };*/@RequestMapping("registerCard")public CinemaResult registerCard(String memberId) {cardService.registerCard(memberId);return CinemaResult.ok();}/*** //补卡,请求参数卡号id,返回新卡id号,并提示会员* export const reissueCard = query=>{* return request({* url:"reissueCard",* method:&#39;post&#39;,* params:query* });* };*/@RequestMapping("reissueCard")public CinemaResult reissueCard(String cardId) {cardId = cardService.reissueCard(cardId);return CinemaResult.ok(cardId);}/*** //挂失会员卡,请求参数id,返回状态* export const loseCard = query=>{* return request({* url:"loseCard",* method:&#39;post&#39;,* params:query* });* };*/@RequestMapping("loseCard")public CinemaResult loseCard(String cardId) {cardService.loseCard(cardId);return CinemaResult.ok();}/*** //解挂会员卡,请求参数卡号,返回状态* export const cancelCard = query=>{* return request({* url:"cancelCard",* method:&#39;post&#39;,* params:query* });* };*/@RequestMapping("cancelCard")public CinemaResult cancelCard(String cardId) {cardService.cancelCard(cardId);return CinemaResult.ok();}/*** //充值会员卡,请求卡号、参数金额,返回状态* export const rechargeCard = query=>{* return request({* url:"rechargeCard",* method:&#39;post&#39;,* params:query* });* };*/@RequestMapping("rechargeCard")public CinemaResult rechargeCard(String cardId, String value) {cardService.rechargeCard(cardId, Integer.parseInt(value));return CinemaResult.ok();}/*** //消费,请求参数卡号、金额、消费类型,返回状态* export const cOnsumeCard= query=>{* return request({* url:"consumeCard",* method:&#39;post&#39;,* params:query* });* };*/@RequestMapping("consumeCard")public CinemaResult consumeCard(String cardId, String price, String integral) {cardService.consumeCard(cardId, Integer.parseInt(price), Integer.parseInt(integral));return CinemaResult.ok();}/*** //积分兑换,请求参数:会员id,积分* //由于是总积分兑换,所以需要将消耗积分分散到所有卡上面* export const exchangeIntegral = query=>{* return request({* url:"exchangeIntegral",* method:&#39;post&#39;,* params:query* });* };*/@RequestMapping("exchangeIntegral")public CinemaResult exchangeIntegral(String memberId, String integral) {cardService.exchangeIntegral(memberId, Integer.parseInt(integral));return CinemaResult.ok();}/*** //通过模糊条件查询到cardId,请求参数memberId,CardId,返回CardId列表* export const getCardIdByFuzzyQuery = query=>{* return request({* url:"getCardIdByFuzzyQuery",* method:&#39;post&#39;,* params:query* });* };*/@RequestMapping("getCardIdByFuzzyQuery")public CinemaResult getCardIdByFuzzyQuery(String memberId,String cardId) {return CinemaResult.ok(cardService.getCardIdByFuzzyQuery(memberId,cardId));}/*** //通过完整cardid来查询card数据,返回Card对象* export const getCardByCardId = query=>{* return request({* url:"getCardByCardId",* method:&#39;post&#39;,* params:query* });* };*/@RequestMapping("getCardByCardId")public CinemaResult getCardByCardId(String cardId) {return CinemaResult.ok(cardService.getCardByCardId(cardId));}
}

统计管理控制器

@CrossOrigin
@RestController
public class StatisticController {@ResourceMemberService memberService;@ResourceCardService cardService;@ResourceRecordService recordService;
/*** //获取统计数字数据,请求参数无* export const statisticData = query=>{* return request({* url:&#39;getStatisticData&#39;,* method:&#39;get&#39;,* params:query* });* };*/@RequestMapping("getStatisticData")public CinemaResult getStatisticData(){StatisticData s = new StatisticData();s.setMemberNum(memberService.getMemberNum());s.setCardNum(cardService.getCardNum());s.setMovieNum(recordService.getMovieNum());return CinemaResult.ok(s);}/*** //获取消费充值等金额数据,请求参数无* export const requestDealData = query=>{* return request({* url:&#39;requestDealData&#39;,* method:&#39;get&#39;,* params:query* });* };*/@RequestMapping("requestDealData")public CinemaResult requestDealData(){DealData dealData = new DealData();dealData.setConsume(recordService.getConsumeCount()*-1);dealData.setIntegral(recordService.getIntegralExchangeCount()*-1);dealData.setRecharge(recordService.getRechargeCount());return CinemaResult.ok(dealData);}/*** //获取充值消费数据的图标数据,请求参数无,返回包含三个整型数组的对象* export const getSchart1Data = query=>{* return request({* url:"getSchart1Data",* method:&#39;post&#39;,* params:query* });* };*/@RequestMapping("getSchart1Data")public CinemaResult getSchart1Data(){return CinemaResult.ok(recordService.getSchart1Data());}
}

电影管理控制器

@CrossOrigin
@RestController
public class MovieController {@ResourceMovieService movieService;/*** //添加电影票数据,需要返回电影票全部数据,因为电影票id需要服务端生成* export const insertMovie = query=>{* return request({* url:&#39;insertMovie&#39;,* method:&#39;post&#39;,* params:query* })* };*/@RequestMapping("insertMovie")public CinemaResult insertMovie(Movie movie){return movieService.insertMovie(movie);}/*** //获取电影票数据,请求参数:pageIndex,pageSize,返回电影列表和总记录数* export const movieData = query =>{* return request({* url:&#39;getMovie&#39;,* method:&#39;get&#39;,* params:query* });* };*/@RequestMapping("getMovie")public CinemaResult getMovie(String pageIndex,String pageSize){//这里使用分页插件pagehelperPageResult 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:&#39;delMovie&#39;,* method:&#39;get&#39;,* 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:&#39;modifyMovie&#39;,* * method:&#39;get&#39;,* * params:query* * });* * };*/@RequestMapping("modifyMovie")public CinemaResult modifyMovie(Movie movie){return movieService.modifyMovie(movie);}
}
/*
*
* //删除电影数据,请求参数:movieId
export const delMovie = query=>{return request({url:&#39;delMovie&#39;,method:&#39;get&#39;,params:query});
};
//修改电影数据,请求参数:movieId、name、price、time
export const modifyMovie = query=>{return request({url:&#39;modifyMovie&#39;,method:&#39;get&#39;,params:query});
};*/

如果也想学习本系统,下面领取。回复:034springboot

 


推荐阅读
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 在使用SSH框架进行项目开发时,经常会遇到一些常见的问题。例如,在Spring配置文件中配置AOP事务声明后,进行单元测试时可能会出现“No Hibernate Session bound to thread”的错误。本文将详细探讨这一问题的原因,并提供有效的解决方案,帮助开发者顺利解决此类问题。 ... [详细]
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
  • 本文详细探讨了几种常用的Java后端开发框架组合及其具体应用场景。通过对比分析Spring Boot、MyBatis、Hibernate等框架的特点和优势,结合实际项目需求,为开发者提供了选择合适框架组合的参考依据。同时,文章还介绍了这些框架在微服务架构中的应用,帮助读者更好地理解和运用这些技术。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • Swoole加密机制的安全性分析与破解可能性探讨
    本文深入分析了Swoole框架的加密机制,探讨了其在实际应用中的安全性,并评估了潜在的破解可能性。研究结果表明,尽管Swoole的加密算法在大多数情况下能够提供有效的安全保护,但在特定场景下仍存在被攻击的风险。文章还提出了一些改进措施,以增强系统的整体安全性。 ... [详细]
  • 在Java项目中,当两个文件进行互相调用时出现了函数错误。具体问题出现在 `MainFrame.java` 文件中,该文件位于 `cn.javass.bookmgr` 包下,并且导入了 `java.awt.BorderLayout` 和 `java.awt.Event` 等相关类。为了确保项目的正常运行,请求提供专业的解决方案,以解决函数调用中的错误。建议从类路径、依赖关系和方法签名等方面入手,进行全面排查和调试。 ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • Vue应用预渲染技术详解与实践 ... [详细]
author-avatar
崔维安
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有