基于Spring Boot的酒店管理系统

239 篇文章 3 订阅
213 篇文章 3 订阅

目录

一、前言

二、技术介绍

三、系统实现

四、论文参考

五、核心代码

六、其他案例

七、源码获取​​​​​​​


作者介绍:✌️大厂全栈码农|毕设实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。✌️

作者博客:曾几何时​​​​​​​

🍅获取源码联系方式请查看文末🍅

👇🏻 推荐订阅精彩专栏 👇🏻 避免错过下次更新

微信小程序精选实战《100套》

Springboot项目精选实战案例《100套》

SSM项目精选实战案例《100套》


一、前言

时代的发展带来了巨大的生活改变,很多事务从传统手工管理转变为自动管理。自动管理是利用科技的发展开发的新型管理系统,这类管理系统可以帮助人完成基本的繁琐的反复工作。酒店是出门的必需品,无论出差还是旅游都需要酒店的服务。由于在旺季预定酒店的人数太多,需要提前预定才不会影响行程。使用传统方式来管理酒店需要多人、多时间,开发酒店管理系统则可以有效的提高管理效率。

本酒店管理系统采用SpringBoot框架进行开发,数据库采用MySQL设计,运行环境为Idea。本系统包括前台界面、用户界面和管理员界面、员工界面。在前台界面里游客和用户可以浏览客房信息、公告信息等,用户可以预定客房,在用户中心界面里,用户可以管理预定信息,管理员负责用户预定的审核以及客房的发布、用户的入住等。员工也可以安排用户的入住以及管理客户的预定。本系统实现酒店客房的管理以及用户预定管理,以此来保证酒店的正常运行。


二、技术介绍

语言:Java
 
使用框架:Spring Boot
 
前端技术:JS、Vue 、css3
 
开发工具:IDEA/Eclipse
 
数据库: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所示:

 

四、论文参考


五、核心代码

@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();
    }
}

六、其他案例


七、源码获取

 大家点赞、收藏、关注、评论啦 、👇🏻获取联系方式在文章末尾👇🏻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值