案例173:基于微信小程序的电影院订票选座系统

文末获取源码

开发语言:Java

框架:SSM

JDK版本:JDK1.8

数据库:mysql 5.7

开发软件:eclipse/myeclipse/idea

Maven包:Maven3.5.4

小程序框架:uniapp

小程序开发软件:HBuilder X

小程序运行软件:微信开发者

目录

前言

系统展示

管理员功能实现

电影信息管理

影院信息管理

已完成订单

用户管理

电影资讯

用户功能实现

影院信息

电影信息

我的订单

 修改个人信息

代码实现

登录功能实现代码

注册功能实现代码

密码重置功能实现代码

修改信息功能实现代码

删除信息功能实现代码

保存信息功能实现代码


前言

通过移动互联网这几年的发展,单独的开发某些APP已经到了日暮西山的地步,原因不在于单个的APP功能丰富与否,而是因为用户生态体系的问题。使用智能手机的用户经过多年的使用习惯,已经越来越不喜欢安装各种的APP,除了正常生活和工作所必须的APP,不喜欢因为喜欢某些内容而被强制安装APP软件了。最近几年,随着微信生态的布局,通过开发微信小程序接口,让广大用户可以通过微信直接访问小程序,不需要去专门安装那些APP,这一点让很多用户喜爱,基本上只要能转向微信生态的业务,许多企业都已经开始拥抱微信小程序。本课题就是研究和实现一款基于微信小程序的电影院订票选座系统。

基于微信小程序的电影院订票选座系统按照操作主体分为管理员后台与用户小程序前台。管理员的功能包括对用户信息的管理,对影院,电影,订单,电影资讯等信息的管理。用户的功能包括预定电影,查看影院,在线充值,管理预定电影的订单等。该系统采用了SSM框架,Mysql数据库,Java语言等技术实现管理员后台,采用微信开发者工具来对用户小程序端进行了开发。

基于微信小程序的电影院订票选座系统让电影相关信息集中在后台让管理员管理,让用户在小程序端预定电影,管理个人订单,该系统让信息管理变得高效,也让用户预定电影票变得越来越方便。


系统展示

管理员功能实现

电影信息管理

图5.1 即为编码实现的电影信息管理界面,管理员在该界面中查看电影的播放场次,价格,座位总数,上映日期等信息,可以查看用户对电影提交的评论,能够在本界面新增电影,更改电影信息,删除电影信息等。

 

影院信息管理

图5.2 即为编码实现的影院信息管理界面,管理员在该界面中具备修改,删除影院信息的权限,可以在本界面新增影院信息,查询影院信息等。

 

已完成订单

图5.3 即为编码实现的已完成订单界面,管理员在该界面中提供电影名称,或者提供订单编号信息可以获取指定订单信息,本界面展示的订单属于已经完成状态的订单信息,管理员能够查看其详情信息。

 

用户管理

图5.4 即为编码实现的用户管理界面,管理员在该界面中具备更改,删除,查询小程序端已经注册的用户资料的权限。

 

电影资讯

图5.5 即为编码实现的电影资讯界面,管理员在该界面中具备发布,更改,删除电影资讯信息的权限,该电影资讯信息显示在小程序的首页界面。

用户功能实现

影院信息

图5.6 即为编码实现的影院信息界面,用户在该界面中点击影院名称即可查看影院介绍信息,用户也能在搜索框中编辑影院名称来查询影院。

 

电影信息

图5.7 即为编码实现的电影信息界面,用户在该界面中除了查看电影介绍信息外,可以收藏本界面的电影,可以选择观影座位进行电影票的预定,可以发布电影的评论信息。

 

我的订单

图5.8 即为编码实现的我的订单界面,用户在该界面中能够查看已支付订单,已完成订单等信息,可以对各个订单进行相应操作,包括订单评价,订单退款,订单兑换等操作。

 

 修改个人信息

图5.9 即为编码实现的修改个人信息界面,用户在该界面中更改头像,更改手机,邮箱等已经产生变化的信息。

 


代码实现

登录功能实现代码

@IgnoreAuth@PostMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null || !user.getPassword().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());return R.ok().put("token", token);}

注册功能实现代码

@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}

密码重置功能实现代码

@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null) {return R.error("账号不存在");}user.setPassword("123456");userService.update(user,null);return R.ok("密码已重置为:123456");}

修改信息功能实现代码

 @RequestMapping("/update")public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {return R.error("用户名已存在。");}userService.updateById(user);//全部更新return R.ok();}

删除信息功能实现代码

@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){userService.deleteBatchIds(Arrays.asList(ids));return R.ok();}

保存信息功能实现代码

@PostMapping("/save")public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/303501.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像编码中的正交变换:优化压缩与重建

在数字图像处理领域&#xff0c;图像编码旨在通过数学变换和压缩算法将原始图像数据转化为更紧凑的表示形式&#xff0c;从而实现高效的存储和传输。正交变换作为一种重要的数学工具&#xff0c;在图像编码中发挥着重要作用。本文将介绍正交变换在图像编码中的应用&#xff0c;…

【C++高阶(九)】C++类型转换以及IO流

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习C   &#x1f51d;&#x1f51d; C高阶 1. 前言2. C语言类型转换的方式3. C的强制…

柯桥学会计,专业会计培训,会计人年底常用工作清单

01 盘点现金和核对银行存款 1️⃣ 库存现金 现金账上不能出现负数&#xff1b;核对现金账面余额是否与库存现金相符&#xff1b;库存现金是否超过限额规定。 2️⃣ 银行存款#15857575376 核对银行存款日记账与银行对账单是否相符&#xff1b;检查银行账户是否有未达账项&#x…

除法计算器 C语言xdoj48

问题描述 小明的弟弟刚开始学习除法&#xff0c;为了检查弟弟的计算结果是否正确&#xff0c;小明决定设计一个简单计算器程序来验算。 输入说明 输入数据由四个整数m&#xff0c;n&#xff0c;q&#xff0c;r构成&#xff0c;m为被除数&#xff0c;n为除数&#xff0c…

Pandas教程(三)—— 数据清洗与准备

1.处理缺失值 1.1 数据删除函数 作用&#xff1a;删除Dataframe某行或某列的数据 语法&#xff1a;df.drop&#xff08; labels [ ] &#xff09; drop函数的几个参数&#xff1a; labels &#xff1a;接收一个列表&#xff0c;内含删除行 / 列的索引编号或索引名 axis &…

扫码看视频时能加封面图吗?设置封面的视频码做法

制作视频二维码时&#xff0c;能给视频加入一个封面图吗&#xff1f;为了让视频展示的更加美观&#xff0c;很多人会想要给视频加上一个封面图&#xff0c;但是很多的二维码生成器无法实现这个功能&#xff0c;那么如何制作可添加封面图的视频二维码呢&#xff1f;本文将给大家…

【基础篇】六、自定义类加载器打破双亲委派机制

文章目录 1、ClassLoader抽象类的方法源码2、打破双亲委派机制&#xff1a;自定义类加载器重写loadclass方法3、自定义类加载器默认的父类加载器4、两个自定义类加载器加载相同限定名的类&#xff0c;不会冲突吗&#xff1f;5、一点思考 1、ClassLoader抽象类的方法源码 ClassL…

【量化】蜘蛛网策略复现

文章目录 蜘蛛网策略研报概述持仓数据整理三大商品交易所的数据统一筛选共有会员清洗数据计算研报要求数据全部代码 策略结果分析无参数策略有参数策略正做反做 MSD技术指标化 蜘蛛网策略 策略来自《东方证券-股指期货趋势交易之蜘蛛网策略——从成交持仓表中捕捉知情投资者行为…

Python - 深夜数据结构与算法之 Divide Conquer Backtrack

目录 一.引言 二.分治与回溯简介 1.Divide & Conquer 分治 2.BackTrack 回溯 三.经典算法实战 1.Combination-Of-Phone [17] 2.Permutations [46] 3.Permutations-2 [47] 4.Pow-X [50] 5.N-Queen [51] 6.Combinations [78] 7.Sub-Sets [78] 8.Majority-Elemen…

系列八、VMWare无法启动CentOS7问题排查 解决

一、VMWare无法启动CentOS7 1.1、问题描述 今天在测试代码的时候&#xff0c;需要用到Linux&#xff0c;然后就打开VMWare进行启动&#xff0c;但是启动的时候发现无法启动起来&#xff0c;报了一个如下的错误&#xff1a; 出现了问题那就要解决问题&#xff0c;然后想起来前几…

Kruskal(克鲁斯卡尔)算法总结

知识概览 克鲁斯卡尔算法适用于稀疏图求最小生成树&#xff0c;时间复杂度为O(mlogm)。 例题展示 题目链接 Kruskal算法求最小生成树 859. Kruskal算法求最小生成树 - AcWing题库https://www.acwing.com/problem/content/861/ 代码 #include <iostream> #include &l…

C语言实验1:C程序的运行环境和运行C程序的方法

一、算法原理 这是学C语言的入门&#xff0c;并不需要很高深的知识&#xff0c;一个hello world 或者一个简单的加法即可 二、实验要求 了解所用的计算机系统的基本操作方法&#xff0c;学会独立使用该系统。 了解在该系统上如何编辑、编译、连接和运行一个C程序。 通过运…