【开源】基于Vue+SpringBoot的假日旅社管理系统

news/2024/7/10 20:10:59 标签: 开源, vue.js, spring boot

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 系统介绍
    • 2.2 QA 问答
  • 三、系统展示
  • 四、核心代码
    • 4.1 查询民宿
    • 4.2 新增民宿评论
    • 4.3 查询民宿新闻
    • 4.4 新建民宿预订单
    • 4.5 查询我的民宿预订单
  • 五、免责说明


一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的假日旅社管理系统,包含了民宿管理模块、民宿订单模块、民宿评论模块和民宿新闻模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,假日旅社管理系统基于角色的访问控制,给旅社管理员、旅客使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

2.1 系统介绍

随着国民生活水平的逐渐提高,每逢假期或空闲时节走出家门游山玩水已渐渐成为人们生活的一部分,那么外出住宿是必然要考虑到的问题。互联网的普及给人们带来的便利不需多说。

因此如果把假日旅社与互联网结合起来,利用 spring boot 框架,mysql 技术建设民宿短租系统,实现假日旅社管理的网络化。则对于进一步提高国民经济发展,丰富人们的精神生活定能起到不少的促进作用。

根据本系统的研究现状和发展趋势,系统从需求分析、结构设计、数据库设计,在到系统实现,分别为前端实现和后端实现。

  1. 主界面,主要显示正在热门假日旅社动态、网站导航
  2. 用户登陆注册和用户管理,用户管理包括用户信息、添加时间、手机号等
  3. 民宿详情,为用户提供民宿的基本信息,用户可以进行评论。
  4. 民宿预定,用户进行预定,确认订单信息,生成用户订单等
  5. 角色管理:对后台管理员账号进行修改和增删。

2.2 QA 问答

假日旅社管理系统的使用对象有两个,分别是宿舍管理员和旅客。

  1. 宿舍管理员可以对旅社的宿舍进行管理维护;对旅社的时政新闻进行管理;监控查询旅客的预约、评论信息;系统权限的配置;旅社组织架构的设计;系统用户的管理

  2. 旅客可以查询旅社的宿舍;查询旅社的新闻;在对旅社的宿舍进行预约;对宿舍进行评论

假日旅社管理系统拥有以下六个功能模块。

  1. 承载旅社的宿舍管理功能。也就是宿舍管理员可以对旅社的宿舍进行增删改查操作。
    宿舍是假日旅社系统的基础数据,所以需要这个模块。

  2. 承载旅客档案管理功能。也就是宿舍管理员可以对旅客的档案进行增删改查操作。比如维护手机号、姓名等。
    旅客也是假日旅社系统的基础数据,所以需要这个模块。

  3. 承载宿舍预约的功能,和模拟付款功能。
    旅客可以查询宿舍管理员发布的宿舍,并且进行预定,支持模拟付款功能,模拟整个预定的过程。

  4. 承载旅社的新闻时政功能。
    一家旅社要能够得到旅客的信赖,新闻时政肯定是必不可少的
    所以需要这个模块,由宿舍管理员维护,开放给旅客查询。

  5. 承载旅社宿舍的留言功能。
    旅客可以对宿舍进行评论,可以被给其他旅客看到,给与决策支持。

  6. 承载可能需要的其他功能。
    在设计这个系统的时候,可能会用到其他功能,比如日志、文件管理
    我会把这些功能封装成独立的模块,利用Vue的组件化优势提供给别的模块调用

这个系统前端采用了国内流行的Vue技术,采用View UI作为组件库;后端采用SpringBoot整合MybatisPlus。采用maven构建项目,采用Mysql数据库,使用Redis缓存加密的用户临时数据。


三、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


四、核心代码

4.1 查询民宿

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询民宿")
public Result<IPage<Dormitory>> getByPage(@ModelAttribute Dormitory dormitory,@ModelAttribute PageVo page){
    QueryWrapper<Dormitory> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(dormitory.getTitle())) {
        qw.like("title",dormitory.getTitle());
    }
    if(!ZwzNullUtils.isNull(dormitory.getType())) {
        qw.eq("type",dormitory.getType());
    }
    if(!ZwzNullUtils.isNull(dormitory.getBreakfast())) {
        qw.eq("breakfast",dormitory.getBreakfast());
    }
    IPage<Dormitory> data = iDormitoryService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Dormitory>>().setData(data);
}

4.2 新增民宿评论

@RequestMapping(value = "/addMyDiscuss", method = RequestMethod.POST)
@ApiOperation(value = "新增民宿评论")
public Result<Object> addMyDiscuss(@RequestParam String id,@RequestParam String reply,@RequestParam String text){
    Dormitory dormitory = iDormitoryService.getById(id);
    if(dormitory == null) {
        return ResultUtil.error("民宿不存在");
    }
    User currUser = securityUtil.getCurrUser();
    DormitoryDiscuss discuss = new DormitoryDiscuss();
    discuss.setUserId(currUser.getId());
    discuss.setUserName(currUser.getNickname());
    discuss.setReply(reply);
    discuss.setDormitoryId(dormitory.getId());
    discuss.setDiscussTime(DateUtil.now());
    discuss.setContent(text);
    iDormitoryDiscussService.saveOrUpdate(discuss);
    return ResultUtil.success();
}

4.3 查询民宿新闻

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询民宿新闻")
public Result<IPage<DormitoryNews>> getByPage(@ModelAttribute DormitoryNews dormitoryNews,@ModelAttribute PageVo page){
    QueryWrapper<DormitoryNews> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(dormitoryNews.getNewTitle())) {
        qw.like("new_title",dormitoryNews.getNewTitle());
    }
    if(!ZwzNullUtils.isNull(dormitoryNews.getNewDescribe())) {
        qw.like("new_describe",dormitoryNews.getNewDescribe());
    }
    if(!ZwzNullUtils.isNull(dormitoryNews.getPeriodTime())) {
        qw.like("period_time",dormitoryNews.getPeriodTime());
    }
    if(!ZwzNullUtils.isNull(dormitoryNews.getIsPublic())) {
        qw.like("is_public",dormitoryNews.getIsPublic());
    }
    if(!ZwzNullUtils.isNull(dormitoryNews.getIsTop())) {
        qw.like("is_top",dormitoryNews.getIsTop());
    }
    IPage<DormitoryNews> data = iDormitoryNewsService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<DormitoryNews>>().setData(data);
}

4.4 新建民宿预订单

@RequestMapping(value = "/addMyOrder", method = RequestMethod.POST)
@ApiOperation(value = "新建民宿预订单")
public Result<Object> addMyOrder(@RequestParam String id,@RequestParam String date){
    Dormitory dormitory = iDormitoryService.getById(id);
    if(dormitory == null) {
        return ResultUtil.error("民宿不存在");
    }
    QueryWrapper<DormitoryOrder> qw = new QueryWrapper<>();
    qw.eq("dormitory_id",id);
    qw.eq("order_date",date);
    long count = iDormitoryOrderService.count(qw);
    if(count > 0) {
        return ResultUtil.error("民宿当日已被预定");
    }
    User currUser = securityUtil.getCurrUser();
    DormitoryOrder order = new DormitoryOrder();
    order.setUserId(currUser.getId());
    order.setUserName(currUser.getNickname());
    order.setOrderTime(DateUtil.now());
    order.setPayFlag("否");
    order.setDormitoryId(dormitory.getId());
    order.setPrice(dormitory.getPrice());
    order.setRemark("");
    order.setDormitoryName(dormitory.getTitle());
    order.setOrderDate(date);
    iDormitoryOrderService.saveOrUpdate(order);
    return ResultUtil.success();
}

4.5 查询我的民宿预订单

@RequestMapping(value = "/getMyPage", method = RequestMethod.GET)
@ApiOperation(value = "查询我的民宿预订单")
public Result<IPage<DormitoryOrder>> getMyPage(@ModelAttribute DormitoryOrder order,@ModelAttribute PageVo page){
    User currUser = securityUtil.getCurrUser();
    QueryWrapper<DormitoryOrder> qw = new QueryWrapper<>();
    qw.eq("user_id",currUser.getId());
    if(!ZwzNullUtils.isNull(order.getDormitoryId())) {
        qw.eq("dormitory_id",order.getDormitoryId());
    }
    if(!ZwzNullUtils.isNull(order.getUserName())) {
        qw.eq("user_name",order.getUserName());
    }
    IPage<DormitoryOrder> data = iDormitoryOrderService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<DormitoryOrder>>().setData(data);
}

五、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述


http://www.niftyadmin.cn/n/5289861.html

相关文章

电影“AI化”已成定局,华为、小米转战入局又将带来什么?

从华为、Pika、小米等联合打造电影工业化实验室、到Pika爆火&#xff0c;再到国内首部AI全流程制作《愚公移山》开机……业内频繁的新动态似乎都在预示着2023年国内电影开始加速进入新的制片阶段&#xff0c;国内AI电影热潮即将来袭。 此时以华为为首的底层技术科技企业加入赛…

cfa一级考生复习经验分享系列(十六)

写在前面&#xff1a;并不鼓励大家在考前一个月才开始复习&#xff0c;不过&#xff0c;既然已经逼到了绝境&#xff0c;灰心丧气也没有用&#xff0c;不如放手一搏&#xff01; 首先说一下我的背景&#xff0c;工作金融机构的it&#xff0c;和cfa基本没关系&#xff0c;本硕计…

学习笔记:数据挖掘与机器学习

文章目录 一、数据挖掘、机器学习、深度学习的区别&#xff08;一&#xff09;数据挖掘&#xff08;二&#xff09;机器学习&#xff08;三&#xff09;深度学习&#xff08;四&#xff09;总结 二、数据挖掘体系三、数据挖掘的流程四、典型的数据挖掘系统 一、数据挖掘、机器学…

2022年全球软件质量效能大会(QECon上海站)-核心PPT资料下载

一、峰会简介 近年来&#xff0c;以云计算、移动互联网、物联网、工业互联网、人工智能、大数据及区块链等新一代信息技术构建的智能化应用和产品出现爆发式增长&#xff0c;突破了对于软件形态的传统认知&#xff0c;正以各种展现方式诠释着对新型智能软件的定义。这也使得对…

科研学习|论文解读——融合类目偏好和数据场聚类的协同过滤推荐算法研究

论文链接&#xff08;中国知网&#xff09;&#xff1a; 融合类目偏好和数据场聚类的协同过滤推荐算法研究 - 中国知网 (cnki.net) 摘要&#xff1a;[目的/意义]基于近邻用户的协同过滤推荐作为推荐系统应用最广泛的算法之一&#xff0c;受数据稀疏和计算可扩展问题影响&#x…

java itext5 生成PDF并填充数据导出

java itext5 生成PDF并填充数据导出 依赖**文本勾选框****页眉**&#xff0c;**页脚****图片**实际图 主要功能有文本勾选框&#xff0c;页眉&#xff0c;页脚&#xff0c;图片等功能。肯定没有专业软件画的好看&#xff0c;只是一点儿方法。仅供参考。 依赖 <!--pdf-->&…

excel 函数技巧

1&#xff1a;模糊查询 LOOKUP(1,0/FIND(F1062,Sheet1!C$2:Sheet1!C$9135),Sheet1!B$2:Sheet1!B$9135) 函数含义&#xff1a;寻找F列1062行和sheet1中的C2行到C9135行进行模糊查询&#xff0c;返回该行对应的B2行到B9135行的结果。未查到返回结果0 函数公式&#xff1a; LO…

中间件系列 - Redis入门到实战(高级篇-多级缓存)

前言 学习视频&#xff1a; 黑马程序员Redis入门到实战教程&#xff0c;深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目 中间件系列 - Redis入门到实战 本内容仅用于个人学习笔记&#xff0c;如有侵扰&#xff0c;联系删除 学习目标 JVM进程缓存Lua语法入…