案例088:基于微信小程序的校车购票平台设计与实现

文末获取源码

开发语言:Java

框架:SSM

JDK版本:JDK1.8

数据库:mysql 5.7

开发软件:eclipse/myeclipse/idea

Maven包:Maven3.5.4

小程序框架:uniapp

小程序开发软件:HBuilder X

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

目录

前言

系统展示

管理员功能实现

学生管理

乘车信息管理

车辆信息管理

座位管理

学生功能实现

车辆信息

我的乘车信息

我的收藏管理

修改个人信息

代码实现

登录功能实现代码

注册功能实现代码

密码重置功能实现代码

修改信息功能实现代码

删除信息功能实现代码

保存信息功能实现代码


前言

由于APP软件在开发以及运营上面所需成本较高,而用户手机需要安装各种APP软件,因此占用用户过多的手机存储空间,导致用户手机运行缓慢,体验度比较差,进而导致用户会卸载非必要的APP,倒逼管理者必须改变运营策略。随着微信小程序的出现,解决了用户非独立APP不可访问内容的痛点,所以很多APP软件都转向微信小程序。本次课题就运用了微信小程序技术开发一个校车购票微信小程序。

校车购票微信小程序借助微信开发者工具开发用户前端,使用SSM框架和Java语言开发管理员后台,使用Mysql创建数据表保存本系统产生的数据。系统可以提供信息显示和相应服务,其管理员管理学生,为学生安排车辆座位,管理车辆和座位以及学生乘车信息。学生查看,收藏,评论车辆,查看乘坐的车辆信息以及收藏的车辆信息。

总之,校车购票微信小程序可以更加方便学生查看车辆以及车辆乘坐信息,也方便了管理员在后台对车辆,车辆座位以及学生乘车信息进行统一管理。


系统展示

管理员功能实现

学生管理

管理员进入指定功能操作区之后可以管理学生信息。其页面见下图。管理员增删改查学生信息,可以为学生进行校车排座操作。

 

乘车信息管理

管理员进入指定功能操作区之后可以管理乘车信息。其页面见下图。管理员查看学生的乘车信息,包括车辆号码,发车时间,到达时间以及学生的座位等信息。管理员可以修改学生乘车信息,也能删除指定的学生乘车信息

 

车辆信息管理

管理员进入指定功能操作区之后可以管理车辆信息。其页面见下图。管理员增删改查车辆信息,在本页面可以查看学生对各个车辆的评论信息。

 

座位管理

管理员进入指定功能操作区之后可以管理座位信息。其页面见下图。管理员在当前页面新增座位信息,修改座位信息,删除指定的座位信息。

 

学生功能实现

车辆信息

学生进入指定功能操作区之后可以查看车辆信息。其页面见下图。学生查看车辆介绍,可以点击红色五角星收藏车辆,也能在本页面对车辆进行评论。

 

我的乘车信息

学生进入指定功能操作区之后可以查看乘车信息。其页面见下图。学生查看乘坐的车辆以及座位信息,查看车辆的发车与到达时间。

 

我的收藏管理

学生管理收藏的车辆信息。其页面见下图。学生收藏车辆之后,需要在本页面查看收藏的车辆,删除指定的车辆收藏信息。

 

修改个人信息

学生进入指定功能操作区之后可以修改个人信息。其页面见下图。学生在当前页面核对个人信息,及时更改登记有误的个人介绍资料,包括联系方式,班级,专业等信息。

 


代码实现

登录功能实现代码

@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/318208.html

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

相关文章

YOLOv8改进 | 主干篇 | EfficientNetV1均衡缩放网络改进特征提取层

一、本文介绍 这次给大家带来的改进机制是EfficientNetV1主干,用其替换我们YOLOv8的特征提取网络,其主要思想是通过均衡地缩放网络的深度、宽度和分辨率,以提高卷积神经网络的性能。这种方法采用了一个简单但有效的复合系数,统一调整所有维度。经过我的实验该主干网络确实…

如何使用内网穿透工具实现远程SSH访问Deepin系统

文章目录 前言1. 开启SSH服务2. Deppin安装Cpolar3. 配置ssh公网地址4. 公网远程SSH连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 前言 Deepin操作系统是一个基于Debian的Linux操作系统&#xff0c;专注于使用者对日常办公、学习、生活和娱乐的操作体验的极致&#xff0…

Allins 官网正式上线,铭文赛道进入 AMM 交易时代

“Allins正在通过全新的AMM方案为BRC20及多链铭文资产拓展DeFi场景&#xff0c;官网的全新上线意味着铭文资产的交易正式进入AMM时代。” 在2023年1月开始&#xff0c;Ordinals协议的推出成为了铭文赛道发展的开端&#xff0c;并为比特币这类非图灵完备的生态&#xff0c;带来了…

IO模型及高性能网络架构分析

IO调用 操作系统一次IO过程&#xff1a; 应用程序发起的一次IO操作包含两个阶段&#xff1a; IO调用&#xff1a;应用程序进程向操作系统内核发起调用。 IO执行&#xff1a;操作系统内核完成IO操作。 操作系统内核完成IO操作还包括两个过程&#xff1a; 准备数据阶段&#…

Vue3 结合typescript 组合式函数(2)

安装axios&#xff1a;npm install axios 1、hooks文件夹下新建useURLLoader 在APP.VUE中使用useURLLoader 使用Dog API 2、使用对象中的属性&#xff0c;必须使用toRefs&#xff0c;否则Reactive响应失效 3、使用泛型 结果&#xff1a;

设计模式篇章(1)——理论基础

设计模式&#xff1a;在软件开发中会面临许多不断重复发生的问题&#xff0c;这些问题可能是代码冗余、反复修改旧代码、重写以前的代码、在旧代码上不断堆新的代码&#xff08;俗称屎山&#xff09;等难以扩展、不好维护的问题。因此1990年有四位大佬&#xff08;GoF组合&…

隐藏层节点数对分类准确率的影响

直线上有9个格子&#xff0c;4个石子&#xff0c; 数量 结构编号 6 0 1 1 1 1 0 0 0 0 0 5 2 1 1 1 0 1 0 0 0 0 5 1 1 0 1 1 1 0 0 0 0 4 3 1 1 0 0 1 1 0 0 0 4 4 1 0 1 0 1 1 0 0 0 3 5 1 0 1 0 1 0 1 0…

data.TensorDataset解析

data.TensorDataset 是 PyTorch 中的一个类&#xff0c;用于创建一个包含多个张量的数据集。这个类的主要作用是将输入的张量组合成一个数据集&#xff0c;使得在训练过程中可以方便地进行数据加载和迭代。 具体来说&#xff0c;TensorDataset 接受一系列的张量作为输入参数&a…

大语言模型LLM微调技术:P-Tuning

1 引言 Bert时代&#xff0c;我们常做预训练模型微调&#xff08;Fine-tuning&#xff09;&#xff0c;即根据不同下游任务&#xff0c;引入各种辅助任务loss和垂直领域数据&#xff0c;将其添加到预训练模型中&#xff0c;以便让模型更加适配下游任务的方式。每个下游任务都存…

优维科技2024战略定位:新一代运维核心系统提供商

01 经济复苏「走远路」 过去几年&#xff0c;全球经济持续低迷&#xff0c;2024会迎来转机吗&#xff1f; 回顾2023年&#xff0c;尽管经济复苏动能式微&#xff0c;但全球经济因有效控制通胀而展现出来的韧性&#xff0c;让包括中国在内的大部分经济体躲过了深度衰退的陷阱&…

深入理解 BEM:前端开发中的命名约定革命

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

熔断、隔离、重试、降级、超时、限流,高可用架构流量治理核心策略全掌握

可用性的定义 在探讨高可用架构之前&#xff0c;让我们以 O2 系统为例&#xff0c;解释一下何谓可用性。O2 是腾讯内部的一个广告投放系统&#xff0c;专注于提升投放效率、分析广告效果&#xff0c;拥有自动化广告投放、AIGC 自动化素材生产等多种功能。 其整体架构概览如下&…