Java 基于 SpringBoot 的酒店管理系统,附源码和数据库

这篇具有很好参考价值的文章主要介绍了Java 基于 SpringBoot 的酒店管理系统,附源码和数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W+,Csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌

Java 基于 SpringBoot 的酒店管理系统,附源码和数据库,计算机软件项目分享,java,spring boot,数据库

一、前言介绍

随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了酒店客房管理系统的开发全过程。通过分析酒店客房管理系统管理的不足,创建了一个计算机管理酒店客房管理系统的方案。文章介绍了酒店客房管理系统的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计。

本酒店客房管理系统有管理员,用户,会员,清洁人员。管理员功能有个人中心,用户管理,会员管理,清洁人员管理,客房信息管理,用户预约管理,会员预约管理,用户取消管理,会员取消管理,用户入住管理,会员入住管理,用户退房管理,会员退房管理,清扫房间管理,留言板管理,系统管理等。因而具有一定的实用性。

本站是一个B/S模式系统,后台采用 Spring
Boot框架,前台采用VUE框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得酒店客房管理系统管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高酒店客房管理系统管理效率。

Java 基于 SpringBoot 的酒店管理系统,附源码和数据库,计算机软件项目分享,java,spring boot,数据库

二、系统结构

开发语言:Java

框架:springboot

JDK版本:JDK1.8

服务器:tomcat7

数据库:mysql 5.7/8.0

数据库工具:Navicat11

开发软件:eclipse/myeclipse/idea

Maven包:Maven3.3.9

浏览器:谷歌浏览器

本系统是基于B/S 架构的网站系统,设计的功能结构图如下图所示:

Java 基于 SpringBoot 的酒店管理系统,附源码和数据库,计算机软件项目分享,java,spring boot,数据库

三、系统详细实现

3.1用户信息管理

酒店客房管理系统的系统管理员可以管理用户信息,可以对用户信息信息添加修改删除以及查询操作,具体界面的展示如图所示

Java 基于 SpringBoot 的酒店管理系统,附源码和数据库,计算机软件项目分享,java,spring boot,数据库

3.2会员信息管理

系统管理员可以查看对会员信息信息进行添加,修改,删除以及查询操作。具体界面如图所示。

Java 基于 SpringBoot 的酒店管理系统,附源码和数据库,计算机软件项目分享,java,spring boot,数据库

3.3客房信息管理

管理员可以对客房信息信息进行修改,删除以及查询操作。界面如下图所示:

Java 基于 SpringBoot 的酒店管理系统,附源码和数据库,计算机软件项目分享,java,spring boot,数据库

3.4收藏客房管理

用户登录后可以对客房信息进行收藏,预定。界面如下图所示:

Java 基于 SpringBoot 的酒店管理系统,附源码和数据库,计算机软件项目分享,java,spring boot,数据库

3.5用户入住管理

管理员可以对用户入住信息进行管理,可以添加,修改,删除以及清扫。界面如下图所示:

Java 基于 SpringBoot 的酒店管理系统,附源码和数据库,计算机软件项目分享,java,spring boot,数据库

3.6客房清扫管理

清洁人员登录可以对用户入住的客房进行清扫。界面如下图所示:

Java 基于 SpringBoot 的酒店管理系统,附源码和数据库,计算机软件项目分享,java,spring boot,数据库文章来源地址https://www.toymoban.com/news/detail-704190.html

四、部分核心代码

    
    /**
     * 上传文件映射表
     */
    @RestController
    @RequestMapping("file")
    @SuppressWarnings({"unchecked","rawtypes"})
    public class FileController{
    	@Autowired
        private ConfigService configService;
    	/**
    	 * 上传文件
    	 */
    	@RequestMapping("/upload")
    	public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
    		if (file.isEmpty()) {
    			throw new EIException("上传文件不能为空");
    		}
    		String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
    		File path = new File(ResourceUtils.getURL("classpath:static").getPath());
    		if(!path.exists()) {
    		    path = new File("");
    		}
    		File upload = new File(path.getAbsolutePath(),"/upload/");
    		if(!upload.exists()) {
    		    upload.mkdirs();
    		}
    		String fileName = new Date().getTime()+"."+fileExt;
    		File dest = new File(upload.getAbsolutePath()+"/"+fileName);
    		file.transferTo(dest);
    		/**
      		 * 如果使用idea或者eclipse重启项目,发现之前上传的图片或者文件丢失,将下面一行代码注释打开
       		 * 请将以下的"D:\\springbootq33sd\\src\\main\\resources\\static\\upload"替换成你本地项目的upload路径,
     		 * 并且项目路径不能存在中文、空格等特殊字符
     		 */
    //		FileUtils.copyFile(dest, new File("D:\\springbootq33sd\\src\\main\\resources\\static\\upload"+"/"+fileName)); /**修改了路径以后请将该行最前面的//注释去掉**/
    		if(StringUtils.isNotBlank(type) && type.equals("1")) {
    			ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
    			if(configEntity==null) {
    				configEntity = new ConfigEntity();
    				configEntity.setName("faceFile");
    				configEntity.setValue(fileName);
    			} else {
    				configEntity.setValue(fileName);
    			}
    			configService.insertOrUpdate(configEntity);
    		}
    		return R.ok().put("file", fileName);
    	}
    	
    	/**
    	 * 下载文件
    	 */
    	@IgnoreAuth
    	@RequestMapping("/download")
    	public ResponseEntity<byte[]> download(@RequestParam String fileName) {
    		try {
    			File path = new File(ResourceUtils.getURL("classpath:static").getPath());
    			if(!path.exists()) {
    			    path = new File("");
    			}
    			File upload = new File(path.getAbsolutePath(),"/upload/");
    			if(!upload.exists()) {
    			    upload.mkdirs();
    			}
    			File file = new File(upload.getAbsolutePath()+"/"+fileName);
    			if(file.exists()){
    				/*if(!fileService.canRead(file, SessionManager.getSessionUser())){
    					getResponse().sendError(403);
    				}*/
    				HttpHeaders headers = new HttpHeaders();
    			    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);    
    			    headers.setContentDispositionFormData("attachment", fileName);    
    			    return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
    			}
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR);
    	}
    	
    }
    
    
    
    RestController
    @RequestMapping("/kechengchengji")
    public class KechengchengjiController {
        @Autowired
        private KechengchengjiService kechengchengjiService;
    
    
        
    
    
        /**
         * 后端列表
         */
        @RequestMapping("/page")
        public R page(@RequestParam Map<String, Object> params,KechengchengjiEntity kechengchengji,
    		HttpServletRequest request){
    		String tableName = request.getSession().getAttribute("tableName").toString();
    		if(tableName.equals("jiaoshi")) {
    			kechengchengji.setJiaoshizhanghao((String)request.getSession().getAttribute("username"));
    		}
    		if(tableName.equals("xuesheng")) {
    			kechengchengji.setXuehao((String)request.getSession().getAttribute("username"));
    		}
            EntityWrapper<KechengchengjiEntity> ew = new EntityWrapper<KechengchengjiEntity>();
    		PageUtils page = kechengchengjiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kechengchengji), params), params));
    
            return R.ok().put("data", page);
        }
        
        /**
         * 前端列表
         */
    	@IgnoreAuth
        @RequestMapping("/list")
        public R list(@RequestParam Map<String, Object> params,KechengchengjiEntity kechengchengji, 
    		HttpServletRequest request){
            EntityWrapper<KechengchengjiEntity> ew = new EntityWrapper<KechengchengjiEntity>();
    		PageUtils page = kechengchengjiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kechengchengji), params), params));
            return R.ok().put("data", page);
        }
    
    	/**
         * 列表
         */
        @RequestMapping("/lists")
        public R list( KechengchengjiEntity kechengchengji){
           	EntityWrapper<KechengchengjiEntity> ew = new EntityWrapper<KechengchengjiEntity>();
          	ew.allEq(MPUtil.allEQMapPre( kechengchengji, "kechengchengji")); 
            return R.ok().put("data", kechengchengjiService.selectListView(ew));
        }
    
    	 /**
         * 查询
         */
        @RequestMapping("/query")
        public R query(KechengchengjiEntity kechengchengji){
            EntityWrapper< KechengchengjiEntity> ew = new EntityWrapper< KechengchengjiEntity>();
     		ew.allEq(MPUtil.allEQMapPre( kechengchengji, "kechengchengji")); 
    		KechengchengjiView kechengchengjiView =  kechengchengjiService.selectView(ew);
    		return R.ok("查询课程成绩成功").put("data", kechengchengjiView);
        }
    	
        /**
         * 后端详情
         */
        @RequestMapping("/info/{id}")
        public R info(@PathVariable("id") Long id){
            KechengchengjiEntity kechengchengji = kechengchengjiService.selectById(id);
            return R.ok().put("data", kechengchengji);
        }
    
        /**
         * 前端详情
         */
    	@IgnoreAuth
        @RequestMapping("/detail/{id}")
        public R detail(@PathVariable("id") Long id){
            KechengchengjiEntity kechengchengji = kechengchengjiService.selectById(id);
            return R.ok().put("data", kechengchengji);
        }
        
    
    
    
        /**
         * 后端保存
         */
        @RequestMapping("/save")
        public R save(@RequestBody KechengchengjiEntity kechengchengji, HttpServletRequest request){
        	kechengchengji.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
        	//ValidatorUtils.validateEntity(kechengchengji);
            kechengchengjiService.insert(kechengchengji);
            return R.ok();
        }
        
        /**
         * 前端保存
         */
        @RequestMapping("/add")
        public R add(@RequestBody KechengchengjiEntity kechengchengji, HttpServletRequest request){
        	kechengchengji.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
        	//ValidatorUtils.validateEntity(kechengchengji);
            kechengchengjiService.insert(kechengchengji);
            return R.ok();
        }
    
        /**
         * 修改
         */
        @RequestMapping("/update")
        public R update(@RequestBody KechengchengjiEntity kechengchengji, HttpServletRequest request){
            //ValidatorUtils.validateEntity(kechengchengji);
            kechengchengjiService.updateById(kechengchengji);//全部更新
            return R.ok();
        }
        
    
        /**
         * 删除
         */
        @RequestMapping("/delete")
        public R delete(@RequestBody Long[] ids){
            kechengchengjiService.deleteBatchIds(Arrays.asList(ids));
            return R.ok();
        }
        
        /**
         * 提醒接口
         */
    	@RequestMapping("/remind/{columnName}/{type}")
    	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
    						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
    		map.put("column", columnName);
    		map.put("type", type);
    		
    		if(type.equals("2")) {
    			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    			Calendar c = Calendar.getInstance();
    			Date remindStartDate = null;
    			Date remindEndDate = null;
    			if(map.get("remindstart")!=null) {
    				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
    				c.setTime(new Date()); 
    				c.add(Calendar.DAY_OF_MONTH,remindStart);
    				remindStartDate = c.getTime();
    				map.put("remindstart", sdf.format(remindStartDate));
    			}
    			if(map.get("remindend")!=null) {
    				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
    				c.setTime(new Date());
    				c.add(Calendar.DAY_OF_MONTH,remindEnd);
    				remindEndDate = c.getTime();
    				map.put("remindend", sdf.format(remindEndDate));
    			}
    		}
    		
    		Wrapper<KechengchengjiEntity> wrapper = new EntityWrapper<KechengchengjiEntity>();
    		if(map.get("remindstart")!=null) {
    			wrapper.ge(columnName, map.get("remindstart"));
    		}
    		if(map.get("remindend")!=null) {
    			wrapper.le(columnName, map.get("remindend"));
    		}
    
    		String tableName = request.getSession().getAttribute("tableName").toString();
    		if(tableName.equals("jiaoshi")) {
    			wrapper.eq("jiaoshizhanghao", (String)request.getSession().getAttribute("username"));
    		}
    		if(tableName.equals("xuesheng")) {
    			wrapper.eq("xuehao", (String)request.getSession().getAttribute("username"));
    		}
    
    		int count = kechengchengjiService.selectCount(wrapper);
    		return R.ok().put("count", count);
    	}
    	
    
    
    
    
    
    
    
    }
    

五、源码咨询

到了这里,关于Java 基于 SpringBoot 的酒店管理系统,附源码和数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于javaSwing、MySQL的酒店客房管理系统(附源码)

    由于近期询要的人过多,自行加群769119544领取源码 目录 一、功能需求 二、数据字典 1.数据流条目 2.文件条目 三、用例图 四、数据流图 五、E-R图 六、系统框架  七、数据库设计 八、界面设计 九、代码展示 1、数据表对象层(domain层) 1.1、房间对象初始化 1.2、旅客对象初始

    2024年02月03日
    浏览(51)
  • 酒店管理小程序|基于微信小程序的酒店管理系统设计与实现(源码+数据库+文档)

    酒店管理小程序目录 目录 基于微信小程序的酒店管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员模块的实现 (1)用户信息管理 (2)酒店管理员管理 (3) 房间信息管理 2、小程序序会员模块的实现 (1)系统首页 (2)我的菜单 (3)房间预定 四

    2024年02月20日
    浏览(52)
  • 基于springboot + vue实现的前后端分离-酒店管理系统

    项目介绍         基于springboot + vue实现的酒店管理系统一共有酒店管理员和用户这两种角色。 管理员功能 登录:管理员可以通过登录功能进入系统,确保只有授权人员可以访问系统。 用户管理:管理员可以添加、编辑和删除酒店的用户,包括前台员工、服务员等。他们

    2024年02月22日
    浏览(42)
  • 基于PHP的原生酒店预定管理系统(源码 调试 文档)

    摘要 本文介绍了一种基于PHP的原生酒店预定管理系统的设计与实现。该系统分为管理员和注册会员两种用户角色,分别具有不同的功能。管理员主要负责会员管理、房型管理、房间管理和系统管理等;注册会员则可以进行注册登录、分类筛选、房型搜索、房型查看、在线预定

    2024年02月05日
    浏览(48)
  • 基于SSM酒店大数据资源管理系统-计算机毕设 附源码02029

    信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对酒店大数据资源管理系统等问题,对酒店大数据资源管理系统进行研究分析,然后

    2024年01月18日
    浏览(62)
  • 30基于java的酒店管理系统设计与实现

    本章节给给大家介绍一个简单的基于java的酒店管理系统设计与实现。 以往的酒店管理系统相关信息管理,都是工作人员手工统计。这种方式不但时效性低,而且需要查找和变更的时候很不方便。随着科学的进步,技术的成熟,计算机信息化也日新月异的发展,如今计算机已

    2024年02月03日
    浏览(64)
  • 39基于java的酒店管理系统设计与实现

    本章节给大家带来一个基于java的酒店管理系统设计与实现,可用于酒店订票系统,酒店预订系统,酒店信息管理系统,app订房系统设计与实现; 随着现在网络的快速发展,网上管理系统也逐渐快速发展起来,网上管理模式很快融入到了许多企业的眼球之中,随之就产生了“

    2024年02月07日
    浏览(48)
  • 基于微信小程序的酒店管理系统的设计与开发(源码+lw+部署文档+讲解等)

    💗 博主介绍 :✌新人博主,工作经验两年+、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码+数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人 基于微信小程序的酒店管理系统

    2024年01月17日
    浏览(52)
  • 基于Java+Spring+mybatis+vue+element实现酒店管理系统

    博主介绍 : ✌ 全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,CSDN博客之星TOP100、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业设计 ✌  🍅 文末获取联系 🍅    精彩专栏推荐👇🏻👇🏻👇🏻👇🏻 java项目精品实战案例

    2024年04月13日
    浏览(75)
  • 基于PHP的酒店预约管理系统+92767(免费领源码)可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、大数据、全套文案

    随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,酒店预约管理系统当然也不能排除在外。酒店预约管理系统是以实际运用为开发背景,运用软件工程开发方法,采用Thinkphp技术构建的一个管理系统。整

    2024年02月22日
    浏览(95)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包