微信小程序毕业设计-校车购票系统项目开发实战(附源码+论文)

news2024/11/25 8:46:14

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。

💞当前专栏:微信小程序毕业设计

精彩专栏推荐👇🏻👇🏻👇🏻

🎀 Python毕业设计
🌎Java毕业设计

开发运行环境

①前端:微信小程序开发工具

② 后端:Java
框架:ssm
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql 5.7
数据库工具:Navicat12
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.3.9
浏览器:谷歌浏览器

演示视频

前端:

weixin088校车购票微信小程序-微信端

后端:

weixin088校车购票微信小程序-服务端

原版高清演示视频-编号:088
https://pan.quark.cn/s/c0c9519df9d4

源码下载地址:

https://download.csdn.net/download/2301_76953549/89090142

论文目录

【如需全文请按文末获取联系】
在这里插入图片描述
在这里插入图片描述

一、项目简介

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

二、系统设计

2.1软件功能模块设计

在前面分析的管理员功能的基础上,进行接下来的设计工作,最终展示设计的管理员结构图(见下图)。管理员管理学生,为学生安排车辆座位,管理车辆和座位以及学生乘车信息。

在这里插入图片描述
在前面分析的学生功能的基础上,进行接下来的设计工作,最终展示设计的学生结构图(见下图)。学生查看,收藏,评论车辆,查看乘坐的车辆信息以及收藏的车辆信息。
在这里插入图片描述

2.2数据库设计

(1)下图是车辆实体和其具备的属性。
在这里插入图片描述
(2)下图是乘车信息实体和其具备的属性。
在这里插入图片描述
(3)下图是学生实体和其具备的属性。
在这里插入图片描述
(4)下图是管理员实体和其具备的属性。
在这里插入图片描述
(5)下图为上述各实体间相互之间的关系。
在这里插入图片描述

三、系统项目部分截图

3.1管理员功能实现

学生管理
管理员进入指定功能操作区之后可以管理学生信息。其页面见下图。管理员增删改查学生信息,可以为学生进行校车排座操作。
在这里插入图片描述
乘车信息管理
管理员进入指定功能操作区之后可以管理乘车信息。其页面见下图。管理员查看学生的乘车信息,包括车辆号码,发车时间,到达时间以及学生的座位等信息。管理员可以修改学生乘车信息,也能删除指定的学生乘车信息。
在这里插入图片描述
车辆信息管理
管理员进入指定功能操作区之后可以管理车辆信息。其页面见下图。管理员增删改查车辆信息,在本页面可以查看学生对各个车辆的评论信息。
在这里插入图片描述

3.2学生功能实现

车辆信息
学生进入指定功能操作区之后可以查看车辆信息。其页面见下图。学生查看车辆介绍,可以点击红色五角星收藏车辆,也能在本页面对车辆进行评论。
在这里插入图片描述
我的乘车信息
学生进入指定功能操作区之后可以查看乘车信息。其页面见下图。学生查看乘坐的车辆以及座位信息,查看车辆的发车与到达时间。
在这里插入图片描述
我的收藏管理
学生管理收藏的车辆信息。其页面见下图。学生收藏车辆之后,需要在本页面查看收藏的车辆,删除指定的车辆收藏信息。
在这里插入图片描述

四、部分核心代码

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.ZuoweiguanliEntity;
import com.entity.view.ZuoweiguanliView;

import com.service.ZuoweiguanliService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 座位管理
 * 后端接口
 * @author 
 * @email 
 * @date 2021-05-12 21:06:40
 */
@RestController
@RequestMapping("/zuoweiguanli")
public class ZuoweiguanliController {
    @Autowired
    private ZuoweiguanliService zuoweiguanliService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,ZuoweiguanliEntity zuoweiguanli, 
		HttpServletRequest request){

        EntityWrapper<ZuoweiguanliEntity> ew = new EntityWrapper<ZuoweiguanliEntity>();
		PageUtils page = zuoweiguanliService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, zuoweiguanli), params), params));
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,ZuoweiguanliEntity zuoweiguanli, 
		HttpServletRequest request){
        EntityWrapper<ZuoweiguanliEntity> ew = new EntityWrapper<ZuoweiguanliEntity>();
		PageUtils page = zuoweiguanliService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, zuoweiguanli), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( ZuoweiguanliEntity zuoweiguanli){
       	EntityWrapper<ZuoweiguanliEntity> ew = new EntityWrapper<ZuoweiguanliEntity>();
      	ew.allEq(MPUtil.allEQMapPre( zuoweiguanli, "zuoweiguanli")); 
        return R.ok().put("data", zuoweiguanliService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(ZuoweiguanliEntity zuoweiguanli){
        EntityWrapper< ZuoweiguanliEntity> ew = new EntityWrapper< ZuoweiguanliEntity>();
 		ew.allEq(MPUtil.allEQMapPre( zuoweiguanli, "zuoweiguanli")); 
		ZuoweiguanliView zuoweiguanliView =  zuoweiguanliService.selectView(ew);
		return R.ok("查询座位管理成功").put("data", zuoweiguanliView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        ZuoweiguanliEntity zuoweiguanli = zuoweiguanliService.selectById(id);
        return R.ok().put("data", zuoweiguanli);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        ZuoweiguanliEntity zuoweiguanli = zuoweiguanliService.selectById(id);
        return R.ok().put("data", zuoweiguanli);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody ZuoweiguanliEntity zuoweiguanli, HttpServletRequest request){
    	zuoweiguanli.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(zuoweiguanli);

        zuoweiguanliService.insert(zuoweiguanli);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody ZuoweiguanliEntity zuoweiguanli, HttpServletRequest request){
    	zuoweiguanli.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(zuoweiguanli);

        zuoweiguanliService.insert(zuoweiguanli);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody ZuoweiguanliEntity zuoweiguanli, HttpServletRequest request){
        //ValidatorUtils.validateEntity(zuoweiguanli);
        zuoweiguanliService.updateById(zuoweiguanli);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        zuoweiguanliService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<ZuoweiguanliEntity> wrapper = new EntityWrapper<ZuoweiguanliEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = zuoweiguanliService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

五、获取源码或论文

如需对应的论文或源码,以及其他定制需求,也可以点我头像查看个人简介联系。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高中生是否需要上电子阅览室

高中生是否需要上电子阅览室&#xff0c;取决于学生的学习需求和个人喜好。以下是一些考虑因素&#xff1a; 1. 便利性&#xff1a;电子阅览室通常提供电脑设备和网络连接&#xff0c;方便学生在线获取学习资源。对于家中没有电脑或者网络不稳定的学生&#xff0c;上电子阅览室…

“一带一路”六国国际拳王冠军赛特克斯站新闻发布会顺利举行

实习记者&#xff1a;喀兰姆罕 5月24日&#xff0c;“一带一路”六国国际拳王冠军赛特克斯站新闻发布会在特克斯县阿克塔斯姑娘峰景区举行。这次拳王冠军赛事由新疆广播电视台、特克斯镇人民政府&#xff0c;特克斯县文化体育广播电视和旅游局主办&#xff0c;将于6月15日在特…

mysql 01 linux 上安装mysql服务端

01.linux安装 MySQL的大部分安装包都包含了服务器程序和客户端程序&#xff0c;不过在Linux下使用RPM包时会有单独的服 务器RPM包和客户端RPM包&#xff0c;需要分别安装。 1.查看是否已经安装了MySQL rpm -qa | grep mysql如果什么都没有&#xff0c;就是还没有装过MySQL …

分支机构多,如何确保文件跨域传输安全可控?

随着企业全球化发展&#xff0c;分支机构的分布越来越广泛&#xff0c;跨域文件传输需求也随之增加。然而&#xff0c;跨域文件传输面临的数据安全和传输效率问题&#xff0c;使得构建一个安全、可控的文件交换系统成为迫切需求。FileLink跨网文件交换系统通过综合的技术手段和…

Jenkins常用插件与应用详解

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 Jenkins是一个平台我们通过安装插件来解决我们想要完成的任务 1、Jenkins常用插件 Allure&#…

香橙派 AIpro初体验

香橙派&#xff08;Orange Pi&#xff09;AI Pro开发板是一款高性能的AI开发板&#xff0c;由香橙派联合华为精心打造。香橙派&#xff08;Orange Pi&#xff09;&#xff0c;作为深圳市迅龙软件有限公司倾力打造的开源产品品牌&#xff0c;致力于向全球个人及企业用户提供卓越…

QT学习(20):QStyle和自定义样式

QStyle 样式&#xff08;继承自QStyle类&#xff09;代表控件的绘制并封装GUI的外观。QStyle是一个封装了GUI外观的抽象基类。Qt使用QStyle去执行几乎所有的内置控件的绘制&#xff0c;确保控件外观和原生控件风格风格相同。 class Q_WIDGETS_EXPORT QStyle : public QObject{…

HBase分布式数据库入门到精通

文章目录 HBase分布式数据库入门到精通 一、简单介绍 二、HBase数据模型 三、HBase的架构 四、HBase写操作流程 五、HBase读操作流程 六、HBase minor小合并和major大合并 七、HBase目标表meta表 八、HBase特点 九、HBase的使用场景 HBase分布式数据库入门到精通 一、…

stream-流的效率

背景 使用流批量处理数据的时候&#xff0c;我们最关注的肯定是效率问题数据批量处理分为4类 原始的for循环处理基本类型基本类型包装流原始的for循环处理包装类型原始的依稀那个流Stream.of(1,2,3,4) 对比&#xff08;单线程&#xff09; 任何是时候&#xff0c;原始的for循环…

go select

select 是与 switch 相似的控制结构&#xff0c;与 switch 不同的是&#xff0c;select 中虽然也有多个 case&#xff0c;但是这些 case 中的表达式必须都是 channel 的收发操作。 select 能够让 goroutine 同时等待多个 channel 可读或者可写&#xff0c;在多个 channel 状态改…

Swift 属性

属性 一、存储属性1、常量结构体实例的存储属性2、延时加载存储属性3、存储属性和实例变量 二、计算属性1、简化 Setter 声明2、简化 Getter 声明3、只读计算属性 三、属性观察器四、属性包装器1、设置被包装属性的初始值2、从属性包装器中呈现一个值 五、全局变量和局部变量六…

离大模型落地应用最近的工程化技术(RAG)

虽然大规模语言模型&#xff08;LLM&#xff09;在自然语言处理&#xff08;NLP&#xff09;方面表现出了其强大的文本生成和理解能力&#xff0c;但是它们在实际应用中仍然面临一些挑战&#xff0c;如处理大规模知识库和实时获取最新信息的能力&#xff0c;并且会产生幻觉。为…

新书速览|Golang+Vue.js商城项目实战

架构师一步一步教你做项目&#xff0c;从架构设计到技术实现完整解析 本书内容 《GolangVue.js商城项目实战》以Gin和Vue.js为核心框架&#xff0c;以全栈商城项目开发为主线&#xff0c;详尽介绍前后端分离架构开发Web网站项目的关键阶段和技术细节。全书共9章&#xff0c;第…

四川景源畅信:新人做抖店的成本很高吗?

随着社交媒体的兴起&#xff0c;抖音成为了一个新兴的电商平台——抖店。不少创业者和商家看中了其庞大的用户基础&#xff0c;想要通过开设抖店来拓展销路。然而&#xff0c;对于刚入行的新手来说&#xff0c;成本问题总是让人犹豫不决。究竟新人做抖店的成本高不高?本文将围…

Qt项目使用pato mqtt C

一,下载pato mqtt C 源码 git 地址:https://github.com/eclipse/paho.mqtt.c.git git 地址可能下载不下来,提供我的gitee地址 gitee地址:https://gitee.com/chaojidahuaidan2021/paho.mqtt.c.git 二,编译共享库 clone下来后,将项目导入到Qt工程中,此时这是一个cmke工程…

java.lang.NumberFormatException: For input string:

创建SpringBoot&#xff0c;Mybatis的项目时候&#xff0c;Service层调用Mapper层时候爆出了一个错误 发现报错是一个类型转换错误&#xff0c;经过排查后发现是因为mapper接收的实体类中没有写空参构造

Debug-011-ES6中的链判断运算符(?.)

这个问题的来源是&#xff1a; 前端在请求后端接口&#xff0c;拿到的数据&#xff0c;有可能是这样的&#xff1a; data:{a:{b:{c:{d:""}}} } 我们前端小伙伴联调时需要取到d的值&#xff0c;我以前是这样写的&#xff1a; // 错误的写法 const value data.a.b.c…

抖音小程序如何生成二维码

1.页面结构 <image src{{imgUrl}}></image>2.代码结构 onLoad(options) {if (options.param) {var qrCode 13246897451257 //传入生成二维码的字符串this.generateQRCode(qrCode);}},//调起第三方库qrCodegenerateQRCode(text) {//调用了qrCode里面的apiconst api…

达梦数据库查看字符集、页大小

1.查看字符集select UNICODE (); 0 表示 GB18030&#xff0c;1 表示 UTF-8&#xff0c;2 表示 EUC-KR 2.查看页大小select SF_GET_PAGE_SIZE(); 也可以通过管理工具去查看

PHP对接百度语音识别技术

PHP对接百度语音识别技术 引言 在目前的各种应用场景中&#xff0c;语音识别技术已经越来越常用&#xff0c;并且其应用场景正在不断扩大。 百度提供的语音识别服务允许用户通过简单的接口调用&#xff0c;将语音内容转换为文本。 本文将通过PHP语言集成百度的语音识别服务…