基于Springboot+Vue的Java项目-旅游网站系统(附演示视频+源码+LW)

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

💞当前专栏:Java毕业设计

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

🎀 Python毕业设计
🌎微信小程序毕业设计

开发环境

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

演示视频

springboot013旅游网站录像

源码下载地址:

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

LW目录

【如需全文请按文末获取联系】

目录

  • 开发环境
  • 演示视频
  • 源码下载地址:
  • LW目录
  • 一、项目简介
  • 二、系统设计
    • 2.1软件功能模块设计
    • 2.2数据库设计
  • 三、系统项目部分截图
    • 3.1登录界面
    • 3.2管理员功能模块
    • 3.3用户功能模块
  • 四、部分核心代码
    • 4.1 用户部分
  • 获取源码或论文

一、项目简介

网上旅游网站网络互动实现了个人中心、用户管理、路线分类管理、旅游路线管理、最新路线管理、系统管理、订单管理管理等信息处理和传递、资源信息交流的共享和下载,使得旅游网站效率得到了极大的提高。

二、系统设计

2.1软件功能模块设计

系统的总体功能定义如下图4-1所示。
在这里插入图片描述

2.2数据库设计

(1)用户E-R图
在这里插入图片描述
(2)订单信息信息E-R图
在这里插入图片描述
(3)旅游路线信息E-R图
在这里插入图片描述

三、系统项目部分截图

3.1登录界面

登录窗口,用户通过登录窗口可以进行登录或注册。还没注册的用户可以进行填写用户名、密码进行注册操作,如图5-1所示,
在这里插入图片描述

3.2管理员功能模块

用户登录成功后,可以进行查看个人中心、用户管理、路线分类管理、旅游路线管理、最新路线管理、系统管理、订单管理等功能模块。进行相对应操作。
旅游路线管理:通过列表可以获取路线名称、路线分类、封面图、景点名称、出发地、目的地、交通方式、出行时间、费用包含、价格等信息,进行查看旅游详情或修改、查看评论操作,或新增、删除,如图5-2所示。
在这里插入图片描述
订单管理:管理员通过列表可以进行查看订单编号、商品名称、商品图片、购买数量、价格、折扣价格、总价格、支付类型、地址等信息,进行详情、发货或删除操作,并通过输入进行订单编号、商品名称操作,如图5-4所示。
在这里插入图片描述

3.3用户功能模块

用户登录成功后,可以进行查看旅游路线、最新线路、旅游资讯、个人中心、后台管理、购物车、客服等功能模块。进行相对应操作。如图5-6所示。
在这里插入图片描述
个人中心:通过列表可以进行查看个人中心、我的订单、我的地址、我的收藏等功能,进行相对应操作,个人中心:通过页面可以进行修改用户名、密码、姓名、头像、性别、联系电话、余额等信息,进行更新信息操作,如图5-8所示。我的地址:通过列表可以进行查看联系人、手机号码、默认地址等信息、进行添加地址或重置操作,如图5-9所示。
在这里插入图片描述

购物车:通过列表可以进行查看购买商品、价格、数量、总价等信息、进行查看或删除操作,如图5-10所示。
在这里插入图片描述
我的订单:通过列表可以进行查看订单编号、商品、价格、数量、总价、地址等信息、进行查看订单信息或退款操作,如图5-13所示。
在这里插入图片描述

四、部分核心代码

4.1 用户部分

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.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.DiscusszuixinxianluEntity;
import com.entity.view.DiscusszuixinxianluView;import com.service.DiscusszuixinxianluService;
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-03-03 15:14:00*/
@RestController
@RequestMapping("/discusszuixinxianlu")
public class DiscusszuixinxianluController {@Autowiredprivate DiscusszuixinxianluService discusszuixinxianluService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,DiscusszuixinxianluEntity discusszuixinxianlu, HttpServletRequest request){EntityWrapper<DiscusszuixinxianluEntity> ew = new EntityWrapper<DiscusszuixinxianluEntity>();PageUtils page = discusszuixinxianluService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discusszuixinxianlu), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,DiscusszuixinxianluEntity discusszuixinxianlu, HttpServletRequest request){EntityWrapper<DiscusszuixinxianluEntity> ew = new EntityWrapper<DiscusszuixinxianluEntity>();PageUtils page = discusszuixinxianluService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discusszuixinxianlu), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( DiscusszuixinxianluEntity discusszuixinxianlu){EntityWrapper<DiscusszuixinxianluEntity> ew = new EntityWrapper<DiscusszuixinxianluEntity>();ew.allEq(MPUtil.allEQMapPre( discusszuixinxianlu, "discusszuixinxianlu")); return R.ok().put("data", discusszuixinxianluService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(DiscusszuixinxianluEntity discusszuixinxianlu){EntityWrapper< DiscusszuixinxianluEntity> ew = new EntityWrapper< DiscusszuixinxianluEntity>();ew.allEq(MPUtil.allEQMapPre( discusszuixinxianlu, "discusszuixinxianlu")); DiscusszuixinxianluView discusszuixinxianluView =  discusszuixinxianluService.selectView(ew);return R.ok("查询最新线路评论表成功").put("data", discusszuixinxianluView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){DiscusszuixinxianluEntity discusszuixinxianlu = discusszuixinxianluService.selectById(id);return R.ok().put("data", discusszuixinxianlu);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){DiscusszuixinxianluEntity discusszuixinxianlu = discusszuixinxianluService.selectById(id);return R.ok().put("data", discusszuixinxianlu);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody DiscusszuixinxianluEntity discusszuixinxianlu, HttpServletRequest request){discusszuixinxianlu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(discusszuixinxianlu);discusszuixinxianluService.insert(discusszuixinxianlu);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody DiscusszuixinxianluEntity discusszuixinxianlu, HttpServletRequest request){discusszuixinxianlu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(discusszuixinxianlu);discusszuixinxianluService.insert(discusszuixinxianlu);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody DiscusszuixinxianluEntity discusszuixinxianlu, HttpServletRequest request){//ValidatorUtils.validateEntity(discusszuixinxianlu);discusszuixinxianluService.updateById(discusszuixinxianlu);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){discusszuixinxianluService.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<DiscusszuixinxianluEntity> wrapper = new EntityWrapper<DiscusszuixinxianluEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = discusszuixinxianluService.selectCount(wrapper);return R.ok().put("count", count);}}

获取源码或论文

如需对应的LW或源码,以及其他定制需求,也可以下方V…X撩我wenruo0209。

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

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

相关文章

Redis中的集群(八)

集群 设置从节点 向一个节点发送命令: CLUSTER REPLICATE <node_id>可以让接收命令的节点成为node_id所指定节点的从节点&#xff0c;并开始对主节点进行复制: 1.接收到该命令的节点会首先会在自己的clusterState.nodes字典中找到node_id所对应节点的clusterNode结构,…

Web3 的社会影响:数字社会的新时代

随着科技的不断进步和创新&#xff0c;人类社会正逐步进入数字化时代的新阶段。Web3 技术作为数字社会的重要组成部分&#xff0c;正在以前所未有的方式重塑着我们的社会生活和交往方式。本文将探讨 Web3 技术对社会的影响&#xff0c;以及它所带来的数字社会的新时代。 1. Web…

ClickHouse--16--普通函数

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、日期函数1、时间或日期截取函数&#xff08;返回非日期&#xff09;2、时间或日期截取函数&#xff08;返回日期&#xff09;3、日期或时间日期生成函数 二、类…

SD-WAN企业网络部署模式及适用企业类型

随着企业规模的扩张和数字化转型的推进&#xff0c;SD-WAN作为一种灵活、安全和高效的组网解决方案备受关注。那么&#xff0c;SD-WAN在企业网络部署中有哪些常见模式&#xff1f;又有哪些类型的企业最适合采用SD-WAN呢&#xff1f;让我们一起来了解一下&#xff01; 常见的SD-…

【海思Hi3516CV610】是面向新一代视频编解码标准、网络安全和隐私保护、人工智能行业应用方面的IPC SoC

海思Hi3516CV610是面向新一代视频编解码标准、网络安全和隐私保护、人工智能行业应用方面的IPC SoC&#xff0c;除了开发普通摄像机&#xff0c;还可以打造极具竞争力的枪球一体机、双目长短焦摄像机产品&#xff1b; 处理器内核: 支持ARM Cortex-A7 MP2 时钟速率950MHz 支持…

项目5-博客系统4+加密/加盐

1.加密介绍 在MySQL数据库中, 我们常常需要对密码, ⾝份证号, ⼿机号等敏感信息进⾏加密, 以保证数据的安全性. 如果使⽤明⽂存储, 当⿊客⼊侵了数据库时, 就可以轻松获取到⽤⼾的相关信息, 从⽽对⽤⼾或者企业造成信息泄漏或者财产损失. ⽬前我们⽤⼾的密码还是明⽂设置的, …

表格头部合并,数据和表头中间插入合计和样式合并

在做项目时其中一个页面要求和Excel格式一样的页面 html数据&#xff0c;大概写了几个案例如下 <el-table v-loading"loading" :data"tableList" :span-method"mergeRow">//:span-method"mergeRow" 用于合并第一行<el-table…

常用的几款性能测试软件

Apache JMeter是一款免费、开源的性能测试工具&#xff0c;广泛应用于Web应用程序和服务的性能测试。它支持模拟多种不同类型的负载&#xff0c;可以测试应用程序在不同压力下的性能表现&#xff0c;并提供丰富的图表和报告来分析测试结果。 优点&#xff1a; 免费且开源&…

ActiveMQ介绍及linux下安装ActiveMQ

ActiveMQ介绍 概述 ActiveMQ是Apache软件基金下的一个开源软件&#xff0c;它遵循JMS1.1规范&#xff08;Java Message Service&#xff09;&#xff0c;是消息队列服务&#xff0c;是面向消息中间件&#xff08;MOM&#xff09;的最终实现&#xff0c;它为企业消息传递提供高…

基于SSM+Jsp+Mysql的社区生活超市管理系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

IPv4头部

IPv4头部 互联网协议&#xff08;IP&#xff09;的核心部分&#xff0c;用于在互联网上传输数据包。IPv4头部包含多个字段&#xff0c;这些字段对于正确地路由和传递数据至目的地至关重要。IPv4头部通常是20字节长&#xff0c;但可以因选项字段的存在而更长。以下是IPv4头部各个…

Ubuntu20.04版本命令行设置挂载磁盘,并设置开机自动挂载

最近部署应用 系统是Ubuntu20.4版本的Linux系统&#xff0c;加了数据盘&#xff0c;需要格式化后挂载&#xff0c;记录下&#xff1a; Linux 数据盘挂载(采用 parted 分区工具)-格式化为 ext4 1. 初始化 Linux 数据盘 挂载数据盘后或者随实例创建时一并创建的数据盘&#xff…