旅游管理系统设计图; 毕业论文概述

本文档详细介绍了旅游管理系统的前后台设计、功能模块、技术选型和实现过程。系统分为管理员和用户模块,支持景点、美食、酒店、交通等信息管理,采用SSM+MySQL+IDEA技术栈。此外,还涉及到了权限管理、日志记录、页面设计及数据库优化等方面,具备分页查询、角色管理、订单管理等功能,并对密码加密、单元测试进行了阐述。系统测试确保了功能的正确性,为进一步迭代开发打下基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

旅游管理系统设计图

在这里插入图片描述
在这里插入图片描述

旅游管理系统的设计与实现
	前台(用户)
		首页
		景点
		美食
		酒店
		交通
	后台(管理员)
		首页
		用户管理
		景点信息管理
		美食信息管理
		酒店信息管理
		交通信息管理
	旅游攻略
	行
		去旅行
	住
	乐
		服务
	玩
	喝
	吃
	SSM+MySQL+IDEA
	=================
	智慧旅游在线平台的设计与实现
	技术选型
		前端
			CSS
			HTML
			JSP
			总结:BootStrap+adminLTE+JSP
		数据库
			MySQL
		后端
			Java
				Spring+SpringMVC+MyBatis+Spring-Security
	工具
		项目开发管理工具,如IDEA
		web管理
			Tomcat
		数据库管理工具,如Navicat Premium
	内容模块
		管理系统
			管理员用户
				用户管理
					增加用户
					查看用户
					添加角色
					查看用户详情
				订单管理
					查看所有订单
					查看订单详情
					增加订单
				角色管理
					新建角色
					删除角色
				日志管理
					查看日志
				景点管理
					增加景点
					修改景点
					购买门票
					删除景点
			公共模块
				首页
				登录
			普通用户
				个人信息
					查看个人信息
					修改个人信息
				景点
					查询景点
					购买门票
				订单
					查询个人订单

毕业论文概述

智慧旅游在线平台的设计与实现。
下面将有六大部分来讲解:引言、需求分析、系统设计、系统实现、系统测试和研究结论

第一部分是引言

互联网的高速发展,与传统旅游行业进行碰撞,用户对于旅游管理系统的需求越来越强烈。

接下来,第二部分是需求分析

首先我讲的是系统开发工具:
这里我想重点说一下为什么选择idea2017,一方面我对idea2017版本比较熟悉,另一个方面,新版本如idea2020。可能有的时候出现bug是idea版本原因,而不是程序问题,这样排查bug的时间会大大增加。
以下我在选择版本的时候,都是基于这些因素来考虑的,比如tomcat7,MySQL5.7,mysql可视化工具,maven3.5.3,jdk1.8等等,
最后一个谷歌浏览器主要用来访问前端界面,里面可以打开无痕窗口也是非常好用的。

然后是需求分析,需求分析分为可行性分析、需求分析和业务流程分析
可行性分析,该系统是我的毕业设计项目,对于大学四年知识的总结。开发只需要一台笔记本电脑,安装各类开发软件即可。
需求分析,该系统本身是一个管理系统,分为管理员与普通用户两个角色,实现不同功能。
业务流程分析,该系统主要功能就是浏览景点,购买并下单的过程,用户在登录后就可以进入到系统主页,然后可以对景点查看,购买,查看订单,查看和修改个人信息进行一些基本操作。

第三部分,系统设计

我的旅游管理系统总共分为管理员模块、用户模块和公用模块,其中管理员模块下面有用户管理,包括增加用户、查看用户信息、添加角色、查看用户详情、编辑用户和删除用户这些功能。第二个是订单管理,包括查看所有的订单、查看订单详情和增加订单。第三个是角色管理,包括新建角色和删除角色。第四个是日志管理,有查看日志,日志这块只需要查看即可。第五个是景点管理,包括增加景点、修改景点、购买门票和删除景点。

首先看到的是左边的图普通用户流程图,普通用户在登录中,会验证角色是否普通用户,如果是则进入景点中心、我的订单和个人信息,如右图所示。最后可以安全退出,退回到登录界面。
然后看到的是左边的图管理员流程图,管理员在登录中,会验证角色是否管理员,如果是则进入用户信息管理、订单信息管理、角色信息管理、日志信息管理和景点管理,如右图所示。最后也可以安全退出,退回到登录界面。

然后第四部分,系统实现

第五部分,系统测试

系统测试是程序开发必不可少的一个过程,系统测试是输入一些条件,预期输出的结果与实际结果是否一致的过程。系统测试测试主要功能是否实现。

最后一部分是研究结论

指导老师在任务书上写的三个功能模块:用户管理模块,景点信息管理模块和订单管理模块都已经实现了,然后在完成这些功能模块的基础上我也加了一些其他功能,比如说增加了日志信息等。该项目可以先上线,后续进行迭代开发,不断完善一些功能,根据后期新需求进行迭代开发。
该项目用户友好方面可以去优化,比如点击删除按钮可以添加一个提示的友好弹框,并有操作成功和操作失败的提示弹框。以及删除的时候让用户等待2秒后再删除。

RoleDao.java
@Select(“SELECT * from Role where id in (select roleId from users_role where userId = #{userId})”)
public Role findRoleByUser(int userId);
该项目数据库和性能方面可以去优化,比如数据库加载,当系统部署在测试服数据量少的时候没有多大问题,但是部署到正式服中,数据量过多,查询的效率会显著降低,甚至宕机。未来优化方法可以先把符合条件的id查询出来,封装到set集合,再查询,体现单表封装查询的思想。

密码加密的实现?

Spring Security
提供了BCryptPasswordEncoder类,实现Spring的PasswordEncoder接口使用BCrypt强
哈希方法来加密密码。BCrypt强哈希方法 每次加密的结果都不一样。
管理员添加用户密码----存储数据库:明文—》密文
登录校验:取到数据库的密文----》明文 与输入密码进行校验,前后一致则登录成功,否则登录失败。

Pagehelp怎么实现分页?

第一步、导包(或者导入坐标)
第二步、配置到spring 和mybait 整合的配置文件中
第三步、方法调用
使用PageHelper.startPage 静态方法调用startPage :
特点:

  1. 静态方法,传递两个参数(当前页码,每页查询条数)
  2. 使用pageHelper 分页的时候,不再关注分页语句,查询全部的语句
  3. 自动的对PageHelper.startPage 方法下的第一个sql 查询进行分页
    PageHelper.startPage(1,5);
    第四步、在Controller中的使用是将Service层返回来的PageInfo对象放入request域中

单元测试

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
怎么实现的系统?

本系统技术选型:

Spring+SpringMVC+MyBatis+Spring-Security+BootStrap+adminLTE+IDEA+Tomcat+MySQL
使用MVC思想,经典MVC模式中,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。其中,View的定义比较清晰,就是用户界面。
从输入了哪些条件到输出预期结果
Controller----》service----》dao
表结构怎么设计的?
景点与订单的关系,一对多的关系。 外键
用户与角色的关系,即是多对多的关系。 中间表+外键
用户与订单的关系,一对多的关系 外键

Spring 之 AOP:

要理解切面编程,就需要先理解什么是切面。用刀把一个西瓜分成两瓣,切开的切口就是切面;炒菜,锅与炉子共同来完成炒菜,锅与炉子就是切面。web层级设计中,web层->网关层->服务层->数据层,每一层之间也是一个切面。编程中,对象与对象之间,方法与方法之间,模块与模块之间都是一个个切面。

Spring AOP 实现日志记录功能

定义注解
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
定义拦截器
1.拦截方法,判断是否有注解loginterceptor
2. 如果有判断是否执行成功,成功则记录log,失败不记录
3. 获取注解中配置的generator类,利用反射调用generateContent方法,生成个性化日志内容
4在日志中添加其他公共属性,比如用户id,创建时间等等。所有个性化定制的日志信息都是在generator类中产生。
3 Generator类
继承统一的ContentGenerator类,便于共享一些常量。根据当前操作类型,生成对应的日志内容就可以了。如果需要新增模块, 先定义自己的日志generator类,然后添加注解到对应模块就可以。
4. 注解应用
@PutMapping(value = “roles/{roleId}”)
@RequiredLogInterceptor(targetGenerator = “ContentGeneratorForRoleMgt”,operateType= OperateType.UPDATE)
@ApiOperation(value = “修改角色”, httpMethod = “PUT”, response = Response.class, notes = “修改角色”)
5. Configuration
class SpringMvcConfig extends WebMvcConfigurerAdapter 写相关配置类

事务

原子性、一致性、隔离性、持久性

旅游管理系统
https://blog.csdn.net/weixin_43206161/article/details/120477777

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习微站公众平台

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值