目录
末尾获取源码
作者介绍:大厂全栈码农|毕设实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。更多项目:CSDN主页曾几何时
我欲乘风归去 又恐琼楼玉宇 高处不胜寒 -苏轼
项目简介
随着旅游业的迅速发展,传统的旅游信息查询方式,已经无法满足用户需求,因此,结合计算机技术的优势和普及,针对安康旅游,特开发了本基于JSP的安康旅游网站。
本论文首先对安康旅游网站进行需求分析,从系统开发环境、系统目标、设计流程、功能设计等几个方面进行系统的总体设计,开发出本基于JSP的安康旅游网站,主要实现了游客功能模块和管理员功能模块两大部分,游客可查看景点信息、旅游线路、特产信息、酒店信息等,注册登录后可进行景点购票、酒店预订、特产购买等操作,同时管理员可进入系统后台对系统进行全面管理操作。通过对系统的功能进行测试,测试结果证明该系统界面友好、功能完善,有着较高的使用价值,具有庞大的潜在用户群体和较广阔的应用前景。
本安康旅游网站基于Springboot框架、Vue技术、Java编程语言、MYSQL数据库开发完成,“操作简单,功能实用”这是本软件设计的核心理念,本系统力求创造最好的用户体验。
技术详情
语言:Java
使用框架:Spring Boot
前端技术:JS、Vue 、css3
开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code
数据库:MySQL 5.7/8.0
数据库管理工具:phpstudy/Navicat
JDK版本:jdk1.8
Maven: apache-maven 3.8.1-bin
前端环境:Node.Js 12\14\16
效果图
登录模块的实现
用户要想进入本系统,必须通过正确的用户名和密码,选择登录类型进行登录操作,在登录时系统会以用户名、密码和登录类型为参数进行登录信息的验证,信息正确则登录进入对应用户功能界面可进行功能处理,反之登录失败,系统登录界面展示如图5.1所示。
管理员功能模块的实现
景点信息管理界面
管理员可添加、修改和删除景点信息信息,景点信息管理界面展示如图5.2所示,添加景点信息信息界面展示如图5.3所示。
酒店信息管理界面
管理员可增删改查酒店信息,酒店信息管理界面展示如图5.4所示。
特产管理界面
管理员可增删改查特产信息,特产管理界面展示如图5.5所示。
游客管理界面
管理员可查看、添加、修改和删除游客信息,游客管理界面展示如图5.6所示。
景点购票订单管理界面
管理员可查看景点购票订单信息,并可对其进行审核、修改和删除操作,景点购票订单管理界面展示如图5.7所示。
游客功能模块的实现
系统主界面
游客进入本系统可查看系统信息,系统主界面展示如图5.8所示。
游客注册界面
未有账号的游客可进入注册界面进行注册操作,游客注册界面展示如图5.9所示。
景点信息详情界面
游客可选择景点信息查看景点信息详情信息,登录后可进行购票操作,景点信息详情界面展示如图5.10所示。
酒店详情界面
游客可选择酒店查看详情信息,登录后可进行预订下单操作,酒店详情界面展示如图5.11所示。
特产详情界面
游客可选择特产查看详情信息,登录后可进行购买操作,特产详情界面展示如图5.12所示。
文档内容展示
核心代码
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@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();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
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("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 保存
*/
@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();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
其他案例
源码获取
大家点赞、收藏、关注、评论啦 、👇🏻获取联系方式在文章末尾👇🏻