• 基于Java+Spring+mybatis+vue+element实现酒店管理系统


    博主介绍全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,CSDN博客之星TOP100、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业设计

     🍅文末获取联系🍅

       精彩专栏推荐👇🏻👇🏻👇🏻👇🏻
    java项目精品实战案例《100套》https://blog.csdn.net/weixin_39709134/category_11128297.html

     前言介绍: 

    以往的酒店管理系统相关信息管理,都是工作人员手工统计。这种方式不但时效性低,而且需要查找和变更的时候很不方便。随着科学的进步,技术的成熟,计算机信息化也日新月异的发展,如今计算机已经进入了人类社会发展的各个领域,并且发挥着十分重要的作用。本系统充分利用网络的便捷,在工作效率上,得到极大地提高,延伸至服务水平也会有好的收获,有了网络,酒店管理系统的各方面的管理更加科学和系统,更加规范和简便。用户提供酒店管理系统,方便管理员及时高效的管理所有的信息,给用户提供简单方便快捷的方式,并且数据准确,用户可以足不出户就可以对酒店管理系统相关信息进行查询等操作,而且还能节省用户查询信息的等待时间,所以开发酒店管理系统给工作人员带来很大的方便,可以大大的提高系统人员工作效率。

    系统设计:

    主要功能模块设计 

    酒店管理系统采用B/S结构、java开发语言、以及Mysql数据库等技术。系统主要分为管理员和用户二部分,管理员:首页、个人中心、用户管理、客房类型管理、客房信息管理客房预订管理、入住登记管理、退房评价管理、系统管理,用户;首页、个人中心、客房预订管理、入住登记管理、点餐管理、退房评价管理、我的收藏管理,前台首页;首页、客房信息、酒店公告、个人中心、后台管理、在线咨询等功能,基本上实现了整个酒店管理系统信息管理的过程。本系统在一般酒店管理系统的基础上增加了最新信息的功能方便用户快速浏览,是一个高效的、动态的、互友好的酒店管理系统

    ​​

    用户登录注册时序图

    前端用户发送登录请求-验证输入的账号虚线-执行数据查询-返回查询结果-判断用户是否存在-前端根据结果集执行不同的操作 

    功能截图:

    登陆注册:

    用户登录、用户注册,在注册页面可以填写用户名、密码、姓名、联系电话、身份证信息进行注册、登录

    系统前端:

    系统首页:

    酒店信息:

    客房信息:

    客房预定:

    餐饮下单:

    酒店餐饮:

    酒店资讯:

    个人中心:

    用户登录、用户注册,在注册页面可以填写用户名、密码、姓名、联系电话、身份证信息进行注册、登录

    客服信息:

     用户后台管理:

    系统后端:

    个人信息:

    客房分类:

    客房类型管理页面可以查看客房类型等信息,并可根据需要进行删除,修改等操作

    酒店信息:

     编辑修改等

    酒店餐饮:

    用户管理:

    客房预订:

    客房续房:

    退房评价:

    餐饮订单:

    餐饮配送:

    轮播图管理:

    酒店资讯:

    数据设计:

    在该系统的信息中,由于数据库的支持,我们可以对数据库进行收集、整理、更新和加工等操作。由于数据库的存储功能强大,所以数据库已经成为了计算机必不可少的一部分,一个数据库的好坏直接影响该系统的质量和效率。一个系统中的数据库是必不可少的,并且起着决定性因素。通过之前的系统分析,可以规划出本系统中使用的主要等,下面设计出这几个关键实体的实体关系图:

    (1)用户信息实体E-R图如图所示:

    ​​(2)客房信息实体E-R图如图所示:

     (3)入住登记信息实体E- R图,如图所示:

    代码实现:

    1. /**
    2. * 酒店餐饮
    3. * 后端接口
    4. * @author
    5. * @email
    6. * @date 2022-01-11 13:23:20
    7. */
    8. @RestController
    9. @RequestMapping("/jiudiancanyin")
    10. public class JiudiancanyinController {
    11. @Autowired
    12. private JiudiancanyinService jiudiancanyinService;
    13. /**
    14. * 后端列表
    15. */
    16. @RequestMapping("/page")
    17. public R page(@RequestParam Map params,JiudiancanyinEntity jiudiancanyin, HttpServletRequest request){
    18. EntityWrapper ew = new EntityWrapper();
    19. PageUtils page = jiudiancanyinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiudiancanyin), params), params));
    20. return R.ok().put("data", page);
    21. }
    22. /**
    23. * 前端列表
    24. */
    25. @IgnoreAuth
    26. @RequestMapping("/list")
    27. public R list(@RequestParam Map params,JiudiancanyinEntity jiudiancanyin, HttpServletRequest request){
    28. EntityWrapper ew = new EntityWrapper();
    29. PageUtils page = jiudiancanyinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiudiancanyin), params), params));
    30. return R.ok().put("data", page);
    31. }
    32. /**
    33. * 列表
    34. */
    35. @RequestMapping("/lists")
    36. public R list( JiudiancanyinEntity jiudiancanyin){
    37. EntityWrapper ew = new EntityWrapper();
    38. ew.allEq(MPUtil.allEQMapPre( jiudiancanyin, "jiudiancanyin"));
    39. return R.ok().put("data", jiudiancanyinService.selectListView(ew));
    40. }
    41. /**
    42. * 查询
    43. */
    44. @RequestMapping("/query")
    45. public R query(JiudiancanyinEntity jiudiancanyin){
    46. EntityWrapper< JiudiancanyinEntity> ew = new EntityWrapper< JiudiancanyinEntity>();
    47. ew.allEq(MPUtil.allEQMapPre( jiudiancanyin, "jiudiancanyin"));
    48. JiudiancanyinView jiudiancanyinView = jiudiancanyinService.selectView(ew);
    49. return R.ok("查询酒店餐饮成功").put("data", jiudiancanyinView);
    50. }
    51. /**
    52. * 后端详情
    53. */
    54. @RequestMapping("/info/{id}")
    55. public R info(@PathVariable("id") String id){
    56. JiudiancanyinEntity jiudiancanyin = jiudiancanyinService.selectById(id);
    57. return R.ok().put("data", jiudiancanyin);
    58. }
    59. /**
    60. * 前端详情
    61. */
    62. @IgnoreAuth
    63. @RequestMapping("/detail/{id}")
    64. public R detail(@PathVariable("id") String id){
    65. JiudiancanyinEntity jiudiancanyin = jiudiancanyinService.selectById(id);
    66. return R.ok().put("data", jiudiancanyin);
    67. }
    68. /**
    69. * 后端保存
    70. */
    71. @RequestMapping("/save")
    72. public R save(@RequestBody JiudiancanyinEntity jiudiancanyin, HttpServletRequest request){
    73. jiudiancanyin.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    74. //ValidatorUtils.validateEntity(jiudiancanyin);
    75. jiudiancanyinService.insert(jiudiancanyin);
    76. return R.ok();
    77. }
    78. /**
    79. * 前端保存
    80. */
    81. @RequestMapping("/add")
    82. public R add(@RequestBody JiudiancanyinEntity jiudiancanyin, HttpServletRequest request){
    83. jiudiancanyin.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    84. //ValidatorUtils.validateEntity(jiudiancanyin);
    85. jiudiancanyinService.insert(jiudiancanyin);
    86. return R.ok();
    87. }
    88. /**
    89. * 修改
    90. */
    91. @RequestMapping("/update")
    92. public R update(@RequestBody JiudiancanyinEntity jiudiancanyin, HttpServletRequest request){
    93. //ValidatorUtils.validateEntity(jiudiancanyin);
    94. jiudiancanyinService.updateById(jiudiancanyin);//全部更新
    95. return R.ok();
    96. }
    97. /**
    98. * 删除
    99. */
    100. @RequestMapping("/delete")
    101. public R delete(@RequestBody Long[] ids){
    102. jiudiancanyinService.deleteBatchIds(Arrays.asList(ids));
    103. return R.ok();
    104. }
    105. /**
    106. * 提醒接口
    107. */
    108. @RequestMapping("/remind/{columnName}/{type}")
    109. public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
    110. @PathVariable("type") String type,@RequestParam Map map) {
    111. map.put("column", columnName);
    112. map.put("type", type);
    113. if(type.equals("2")) {
    114. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    115. Calendar c = Calendar.getInstance();
    116. Date remindStartDate = null;
    117. Date remindEndDate = null;
    118. if(map.get("remindstart")!=null) {
    119. Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
    120. c.setTime(new Date());
    121. c.add(Calendar.DAY_OF_MONTH,remindStart);
    122. remindStartDate = c.getTime();
    123. map.put("remindstart", sdf.format(remindStartDate));
    124. }
    125. if(map.get("remindend")!=null) {
    126. Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
    127. c.setTime(new Date());
    128. c.add(Calendar.DAY_OF_MONTH,remindEnd);
    129. remindEndDate = c.getTime();
    130. map.put("remindend", sdf.format(remindEndDate));
    131. }
    132. }
    133. Wrapper wrapper = new EntityWrapper();
    134. if(map.get("remindstart")!=null) {
    135. wrapper.ge(columnName, map.get("remindstart"));
    136. }
    137. if(map.get("remindend")!=null) {
    138. wrapper.le(columnName, map.get("remindend"));
    139. }
    140. int count = jiudiancanyinService.selectCount(wrapper);
    141. return R.ok().put("count", count);
    142. }
    143. }

    1. @Service("chatService")
    2. public class ChatServiceImpl extends ServiceImpl implements ChatService {
    3. @Override
    4. public PageUtils queryPage(Map params) {
    5. Page page = this.selectPage(
    6. new Query(params).getPage(),
    7. new EntityWrapper()
    8. );
    9. return new PageUtils(page);
    10. }
    11. @Override
    12. public PageUtils queryPage(Map params, Wrapper wrapper) {
    13. Page page =new Query(params).getPage();
    14. page.setRecords(baseMapper.selectListView(page,wrapper));
    15. PageUtils pageUtil = new PageUtils(page);
    16. return pageUtil;
    17. }
    18. @Override
    19. public List selectListVO(Wrapper wrapper) {
    20. return baseMapper.selectListVO(wrapper);
    21. }
    22. @Override
    23. public ChatVO selectVO(Wrapper wrapper) {
    24. return baseMapper.selectVO(wrapper);
    25. }
    26. @Override
    27. public List selectListView(Wrapper wrapper) {
    28. return baseMapper.selectListView(wrapper);
    29. }
    30. @Override
    31. public ChatView selectView(Wrapper wrapper) {
    32. return baseMapper.selectView(wrapper);
    33. }
    34. }

    论文参考:

    ​​

    源码获取:

    大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻

    打卡 文章 更新 298/  365天

     精彩专栏推荐订阅:下方专栏👇🏻👇🏻👇🏻👇🏻

    Java项目精品实战案例《100套》

    web前端期末大作业网页实战《100套》

  • 相关阅读:
    NetCore配置详解(2)
    Linux——多线程(三)
    Python使用PyMongo4.x操作MongoDB总结
    python 进程 (概念+示例代码)
    [C++]为什么invertmap运用到map的每个循环需要check?
    基于SSM+MySQL的高校寝室管理系统
    消费品的「轻重」权衡术
    基于python的停车场管理系统的设计与实现/智能停车管理系统
    地推团队怎么接一手app拉新项目?这几个接单平台可以试试看
    理解 CNN
  • 原文地址:https://blog.csdn.net/weixin_39709134/article/details/125990684