JAVA毕业设计176—基于Java+Springboot+vue3的交通旅游订票管理系统(源代码+数据库)

毕设所有选题:
https://blog.csdn.net/2303_76227485/article/details/131104075

基于Java+Springboot+vue3的交通旅游订票管理系统(源代码+数据库)176

一、系统介绍

本项目前后端分离(可以改为ssm版本),分为用户、管理员两种角色

1、用户:

  • 注册、登录、景点搜索、火车票预订、飞机票预定、汽车票预定、订票管理、个人信息、密码修改、我的收藏

2、管理员:

  • 管理员管理、用户管理、火车票管理、飞机票管理、汽车票管理、订票管理、景点管理、轮播图管理

二、所用技术

后端技术栈:

  • Springboot
  • mybatisPlus
  • Mysql
  • Maven

前端技术栈:

  • Vue3
  • Vue-router
  • axios
  • elementPlus

三、环境介绍

基础环境 :IDEA/eclipse, JDK1.8, Mysql5.7及以上, Maven3.6, node14, navicat

所有项目以及源代码本人均调试运行无问题 可支持远程调试运行

四、页面截图

1、用户:






















2、管理员:











五、浏览地址

前台地址:http://localhost:8082

用户账号密码:用户账号1/123456

后台地址:http://localhost:8081

管理员账户密码:admin/admin

六、部署教程

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并执行项目的sql文件

  2. 使用IDEA/Eclipse导入server_code项目,若为maven项目请选择maven,等待依赖下载完成

  3. 修改application.yml里面的数据库配置,src/main/java/com/SpringbootSchemaApplication.java启动后端项目

  4. vscode或idea打开client_code后台项目

  5. 在编译器中打开terminal,执行npm install 依赖下载完成后执行 npm run serve,执行成功后会显示访问地址

  6. vscode或idea打开manage_code后台项目

  7. 在编译器中打开terminal,执行npm install 依赖下载完成后执行 npm run serve,执行成功后会显示访问地址

七、核心代码

bash 复制代码
@RestController
@RequestMapping("/huochexinxi")
public class HuochexinxiController {
    @Autowired
    private HuochexinxiService huochexinxiService;

    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,HuochexinxiEntity huochexinxi,
		HttpServletRequest request){
        EntityWrapper<HuochexinxiEntity> ew = new EntityWrapper<HuochexinxiEntity>();

		PageUtils page = huochexinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, huochexinxi), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,HuochexinxiEntity huochexinxi, 
		HttpServletRequest request){
        EntityWrapper<HuochexinxiEntity> ew = new EntityWrapper<HuochexinxiEntity>();

		PageUtils page = huochexinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, huochexinxi), params), params));
        return R.ok().put("data", page);
    }

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

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(HuochexinxiEntity huochexinxi){
        EntityWrapper< HuochexinxiEntity> ew = new EntityWrapper< HuochexinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( huochexinxi, "huochexinxi")); 
		HuochexinxiView huochexinxiView =  huochexinxiService.selectView(ew);
		return R.ok("查询火车信息成功").put("data", huochexinxiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        HuochexinxiEntity huochexinxi = huochexinxiService.selectById(id);
		huochexinxi = huochexinxiService.selectView(new EntityWrapper<HuochexinxiEntity>().eq("id", id));
        return R.ok().put("data", huochexinxi);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        HuochexinxiEntity huochexinxi = huochexinxiService.selectById(id);
		huochexinxi = huochexinxiService.selectView(new EntityWrapper<HuochexinxiEntity>().eq("id", id));
        return R.ok().put("data", huochexinxi);
    }
    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody HuochexinxiEntity huochexinxi, HttpServletRequest request){
    	huochexinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(huochexinxi);
        huochexinxiService.insert(huochexinxi);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody HuochexinxiEntity huochexinxi, HttpServletRequest request){
    	huochexinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(huochexinxi);
        huochexinxiService.insert(huochexinxi);
        return R.ok();
    }

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

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        huochexinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
   
}
相关推荐
奶油话梅糖40 分钟前
打开项目 0.9 秒、内存只有 IDEA 的 1/12:OpenIDEA 用 Rust 把 IntelliJ IDEA 重造了一遍
java·rust·github·intellij-idea
vipxieliang1 小时前
语言对比卡:PHP vs Go vs Java 的优缺点、适用场景与「为什么选 PHP」
java·go·php
Rain的Java大神之路1 小时前
公交App上“还有2站,约5分钟”怎么实现?90%的人答错这道大厂面试题:GPS漂移、ETA不准、10万QPS热点读全拆透(附完整代码)
java·后端·面试
golang学习记1 小时前
IDEA 2026.3 远程开发迎来重磅升级
java·ide·intellij-idea·远程开发
天天被压力1 小时前
【A股分钟级高频数据完全手册 #04】指数分钟级行情数据接口:沪深指数Pro版最新分时取数
java·人工智能·python
敲代码的小小酥1 小时前
谈SpringMVC与Spring WebFlux的区别与适用场景
java·后端·spring
天天被压力2 小时前
【A股分钟级高频数据完全手册 #03】股票历史1分钟K线数据接口怎么用:Pro版批量拉取与本地缓存
java·人工智能·python
apcipot_rain2 小时前
C++转Java日记(02)
java·开发语言·c++
nice_lcj5202 小时前
【从零理解 Spring AI · 03】Spring AI 在 Spring 生态里的位置
java·spring boot·大模型·spring ai·ai应用开发
码农小河6612 小时前
基于SSM+JSP的高校专业信息管理系统【附源码+数据库】
java·开发语言·数据库