文末获取源码
开发语言:Java
框架:Spring Boot
JDK版本:JDK1.8
数据库:mysql 5.7
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.5.4
框架:uniapp
开发软件:HBuilder X
目录
前言
随着互联网的飞速发展,人民生活水平逐步上升,伴随着的是人们对生活质量的追求不断提高,而旅游就是提高生活质量的一种很好的方式。当旅游人数和旅游景点数同时飞速增加时,旅游相关的数据的管理就变得愈加困难,因此,旅游管理系统的开发也就应运而生。
系统通过采用目前主流的设计理念和技术构架进行搭建,使用高性能的IDEA编写代码。为避开繁琐的客户端维护又使得信息公开,选用B/S模式,采用并发式数据库MySQL、Spring Boot以及MyBatis等框架技术设计并实现了旅游信息管理系统,该文以Spring Boot框架为后台框架,结合前端Layui技术,数据库开发方面选择了MySQL数据库。在文中采用了多种测试实例全方位的对代码进行了模块化测试。通过初步测试结果表明系统内部代码逻辑无误,运行时可靠。
系统展示
系统登录模块主要提供了一个登录按钮、额外的注册按钮、用户账号密码的输入文本框。不同用户的账号在此登录后会被系统内部进行分流,从而跳转到不同的页面。如图3-1所示。
注册模块主要是可以实现非本站用户的账号注册,页面内主要提供了账号、密码、出生日期、性别、手机号、地址等信息的填写。如图3-2所示。
用户登录到系统后开始进行对景点信息的搜索,可以通过关键字来进行模糊匹配和查询,如图3-3所示。
用户搜索到目标景点信息之后点击景点图片即可跳转到景点的详情界面中,具体如图3-4。
用户搜索到景点信息之后就可以进行门票的预定操作,选择好时间,数量然后进行预定操作。如图3-5所示。
用户预定好景点门票信息之后如果想退票,可以通过系统内部提供的退票接口来实现,至于要定位到预定订单信息处点击退订按钮即可实现。如图3-6所示。
用户可以对个人的预定订单信息进行浏览查看,其中记录了下单时间、价格等信息。如图3-7所示。
管理员可以对用户信息进行管理和操作,系统在后台为其提供了基本的增删改查操作,可以帮助管理员高效的管理系统后台内部的用户信息,如图3-8。
管理员可以对景点管理信息进行管理和操作,系统在后台为其提供了基本的增删改查操作,可以帮助管理员高效的管理系统后台内部的景点管理信息,如图3-9。
门票信息管理模块实现了对门票预定信息的管理和维护。在后台可以删除门票信息和修改信息。每当管理员在后台添加一条门票信息的时候,前台就会随之更新一条门票信息。如图3-10所示。
预定信息管理模块实现了对门票预定信息的管理和维护。在后台可以删除门票预定和修改信息。每当管理员在后台添加一条门票预定信息的时候,前台就会随之更新一条门票预定信息。图3-11所示。
代码实现
登录功能实现代码
@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();
}