基于java+SpringBoot+MySql的酒店管理系统设计与实现
- 开发语言:Java
- 数据库:MySQL
- 技术:SpringBoot+MyBatis
- 工具:IDEA/Ecilpse、Navicat、Maven
系统展示
前台展示
后台展示
系统简介
本酒店管理系统采用SpringBoot框架进行开发,数据库采用MySQL设计,运行环境为Idea。本系统包括前台界面、用户界面和管理员界面、员工界面。在前台界面里游客和用户可以浏览客房信息、公告信息等,用户可以预定客房,在用户中心界面里,用户可以管理预定信息,管理员负责用户预定的审核以及客房的发布、用户的入住等。员工也可以安排用户的入住以及管理客户的预定。本系统实现酒店客房的管理以及用户预定管理,以此来保证酒店的正常运行。
内容
1.1课题背景与问题来源
计算机类的管理系统可以帮助人们的工作管理以及生活管理,目前各种管理系统已布满人们的整个生活。计算机类的管理系统还需要网络的支持,近年来,网络发展非常成熟,网速可以达到5G。无论街边小贩还是高档商场都布置了无线网络,网络可以实现信息接收、传递。管理系统和网络相辅相成,减少了工作量,实现了信息的自动化管理。但现在,还有很多事务采用传统的人工手段进行办公管理,有些行业离不开传统方式,比如对于重要事务还需要面对面商讨,所以现在企业中大部分采用传统方式+新型方式的办公手段。
酒店为生活中最常见的设施,来预定酒店的人为全世界各地人世,酒店做为东道主更需要严格管理酒店的所有事项,保证来入住用户的人身安全以及带给他们享受。由于酒店的工作非常多,固定的管理方式根本满足不了需求,需要引入新的管理方式来协助,为了保证安全,对入住人员管控也需要严格把关。大量的入住人员如何才能保证有序安排,如何才能快速审核用户的预定信息是负责酒店管理人员的最大的问题。
1.2课题现状和研究意义
现在管理工作的方式一般为一层分给一层的方式,也就是由第一级的负责人员把工作分配给下一级的人员,再由下一级人员分配给下下一级的人员,实现把工作细分给不同的工作人员,责任到人,一旦出现问题就可以快速的追究到根源。这种方式虽然可以把大的工作量简化成小的工作量,但对于高级管理人员来说信息统计、信息分析以及统管安排还是不好把控。
我国计算机技术和网络技术已发展非常先进,计算机类的管理系统可以帮助人们的工作,提供更专业的办公服务。计算机类的管理系统可以快速收集信息、根据用户命令快速完成要求,并且正确率高。把计算机技术应用到酒店的日常管理工作中去,可以实现用户自主预定酒店,本系统可以快速把预定信息传送到负责人手中,负责人只需要浏览信息完成审核就可以登记用户的入住。解决用户预定的问题,解决用户选择客房的问题,本系统的开发非常有意义。
1.3课题研究内容
本酒店管理系统使用用户为用户、游客和管理员、员工。用户为游客注册后产生的,管理员为负责酒店管理的领导,游客为非注册人员。员工为酒店的工作人员。游客可以在系统的前台通过填写资料注册成用户,用户可以浏览客房信息、公告信息,实现在线预定。预定后可以管理客房预定信息。管理员在后台可以管理用户信息、审核客房预定、发布公告信息、客房信息以及安排用户的入住等。员工同样可以安排用户的入住以及管理客房的预定。本系统的内容涉及到酒店管理工作中的方方面面,提高用户预定酒店速度以及审核预定的速度。
代码
/**
* 登录相关
*/
@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("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@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));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@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);
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();
}
}
总结
本系统经过分析、设计、实现、测试后最终完成目标,在本系统中可以完整展示客房信息、客房类型信息、公告信息,用户可以顺利预定客房,管理员可以随时审核客房预定信息,用户也可以实现在线评价。员工和管理员可以对用户安排入住。本系统提高了酒店管理的效率以及客房预定审核、管理,可以为酒店的管理工作提供帮助。同时也为用户提供客房预定服务的平台。