SpringBoot+微信小程序实现的酒店预订小程序系统 附带详细运行指导视频

这篇具有很好参考价值的文章主要介绍了SpringBoot+微信小程序实现的酒店预订小程序系统 附带详细运行指导视频。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、项目演示

项目演示地址:视频地址

二、项目介绍

项目描述:这是一个基于SpringBoot+微信小程序框架开发的酒店预订小程序系统。首先,这是一个前后端分离的项目,代码简洁规范,注释说明详细,易于理解和学习。其次,这项目功能丰富,具有一个酒店预订小程序系统该有的所有功能。

项目功能:此项目分为两个角色:普通用户管理员普通用户有微信授权登录、浏览房间信息、提交房间预订订单、浏览酒店图集和配套设施信息、浏览公告信息、管理个人基本信息、查看个人订单信息、管理个人评价信息、发布评价信息等等功能。管理员有管理所有房间信息、管理所有订单信息、管理所有用户信息、管理所有评价信息、管理所有公告信息、管理所有图集信息、浏览收益图表数据等等功能。

应用技术:SpringBoot + 微信小程序 + MySQL + MyBatis + Redis + ElementUI + Vue + Vant Weapp

运行环境:IntelliJ IDEA2019.3.5 + 微信开发者工具(项目压缩包中自带)+ MySQL5.7(项目压缩包中自带) + Redis5.0.5(项目压缩包中自带) + JDK1.8 + Maven3.6.3(项目压缩包中自带)+ Node14.16.1(项目压缩包中自带)

三、运行截图

酒店预定小程序,项目介绍,小程序,spring boot,微信小程序
酒店预定小程序,项目介绍,小程序,spring boot,微信小程序
酒店预定小程序,项目介绍,小程序,spring boot,微信小程序
酒店预定小程序,项目介绍,小程序,spring boot,微信小程序
酒店预定小程序,项目介绍,小程序,spring boot,微信小程序
酒店预定小程序,项目介绍,小程序,spring boot,微信小程序
酒店预定小程序,项目介绍,小程序,spring boot,微信小程序
酒店预定小程序,项目介绍,小程序,spring boot,微信小程序
酒店预定小程序,项目介绍,小程序,spring boot,微信小程序
酒店预定小程序,项目介绍,小程序,spring boot,微信小程序
酒店预定小程序,项目介绍,小程序,spring boot,微信小程序
酒店预定小程序,项目介绍,小程序,spring boot,微信小程序
酒店预定小程序,项目介绍,小程序,spring boot,微信小程序
酒店预定小程序,项目介绍,小程序,spring boot,微信小程序
酒店预定小程序,项目介绍,小程序,spring boot,微信小程序
酒店预定小程序,项目介绍,小程序,spring boot,微信小程序
酒店预定小程序,项目介绍,小程序,spring boot,微信小程序

四、主要代码

1.提交预订房间订单代码:

/**
 * 提交订单操作
 * @param orderDTO
 * @return
 */
@Override
public ResponseDTO<Boolean> submitOrder(OrderDTO orderDTO) {
    ResponseDTO<UserDTO> loginUserResponse = userService.getLoginUser(orderDTO.getToken());
    if(!CodeMsg.SUCCESS.getCode().equals(loginUserResponse.getCode())) {
        return ResponseDTO.errorByMsg(CodeMsg.USER_SESSION_EXPIRED);
    }
    UserDTO loginUserDTO = loginUserResponse.getData();
    // 进行统一表单验证
    CodeMsg validate = ValidateEntityUtil.validate(orderDTO);
    if(!validate.getCode().equals(CodeMsg.SUCCESS.getCode())){
        return ResponseDTO.errorByMsg(validate);
    }
    Room room = roomMapper.selectByPrimaryKey(orderDTO.getRoomId());
    if(room == null) {
        return ResponseDTO.errorByMsg(CodeMsg.ROOM_NOT_EXIST);
    }
    Order order = CopyUtil.copy(orderDTO, Order.class);
    if(order.getNum() > room.getNum()) {
        return ResponseDTO.errorByMsg(CodeMsg.ROOM_NOT_ENOUGH);
    }
    RoomExample roomExample = new RoomExample();
    // 乐观锁控制更新房间余量  防止超卖
    roomExample.createCriteria().andIdEqualTo(room.getId()).andVersionEqualTo(room.getVersion());
    // 版本号 + 1
    room.setVersion(room.getVersion() + 1);
    room.setNum(room.getNum() - order.getNum());
    if(roomMapper.updateByExampleSelective(room, roomExample) == 0) {
        return ResponseDTO.errorByMsg(CodeMsg.ORDER_BUSY);
    }
    order.setId(UuidUtil.getShortUuid());
    order.setCreateTime(new Date());
    order.setRoomType(room.getType());
    order.setRoomPhoto(room.getPhoto());
    order.setUserId(loginUserDTO.getId());
    order.setRoomPrice(room.getPrice());
    order.setTotalPrice(room.getPrice().multiply(new BigDecimal(order.getNum())));
    // 入队操作,队列已满则阻塞等待
    try {
        blockingQueue.put(order);
    } catch (InterruptedException e) {
        e.printStackTrace();
        return ResponseDTO.errorByMsg(CodeMsg.ORDER_BUSY);
    }
    return ResponseDTO.successByMsg(true, "预订成功!");
}

2.小程序微信授权登录代码:

	/**
     * 小程序授权登录验证
     * @param userDTO
     * @return
     */
    @Override
    public ResponseDTO<UserDTO> appWxLogin(UserDTO userDTO) {
        String url = LOGIN_URL + "?appid=" + APP_ID + "&secret="+ APP_SECRET + "&grant_type=authorization_code&js_code=" + userDTO.getCode();
        HttpClient client = HttpClients.createDefault(); // 创建默认http连接
        HttpGet getRequest = new HttpGet(url);// 创建一个post请求
        LoginDTO loginDTO = new LoginDTO();
        try {
            // 用http连接去执行get请求并且获得http响应
            HttpResponse response = client.execute(getRequest);
            // 从response中取到响实体
            HttpEntity entity = response.getEntity();
            // 把响应实体转成文本
            String html = EntityUtils.toString(entity);
            loginDTO = JSON.parseObject(html, LoginDTO.class);
            if(null == loginDTO.getErrcode()) {
                userDTO.setWxId(loginDTO.getOpenid());
            } else {
                return ResponseDTO.errorByMsg(CodeMsg.USER_WX_LOGIN_ERROR);
            }
        } catch (Exception e) {
            e.printStackTrace();
            return ResponseDTO.errorByMsg(CodeMsg.USER_WX_LOGIN_ERROR);
        }
        // 使用微信openId查询是否有此用户
        UserExample userExample = new UserExample();
        userExample.createCriteria().andWxIdEqualTo(userDTO.getWxId());
        List<User> userList = userMapper.selectByExample(userExample);
        if(null != userList && userList.size() > 0) {
            // 已经存在用户信息,读取数据库中用户信息
            User user = userList.get(0);
            userDTO = CopyUtil.copy(user, UserDTO.class);
        } else {
            // 数据库中不存在,注册用户信息
            User user = CopyUtil.copy(userDTO, User.class);
            user.setId(UuidUtil.getShortUuid());
            user.setUsername(user.getWxUsername());
            user.setHeadPic(user.getWxHeadPic());
            user.setRoleId(RoleEnum.USER.getCode());
            if(userMapper.insertSelective(user) == 0) {
                return ResponseDTO.errorByMsg(CodeMsg.USER_REGISTER_ERROR);
            }
            userDTO = CopyUtil.copy(user, UserDTO.class);
        }
        userDTO.setToken(UuidUtil.getShortUuid());
        stringRedisTemplate.opsForValue().set("USER_" + userDTO.getToken(), JSON.toJSONString(userMapper.selectByPrimaryKey(userDTO.getId())), 3600, TimeUnit.SECONDS);
        return ResponseDTO.successByMsg(userDTO, "登录成功!");
    }

3.提交评价信息代码:文章来源地址https://www.toymoban.com/news/detail-855673.html

	 /**
     * 提交评价信息
     * @param commentDTO
     * @return
     */
    @Override
    public ResponseDTO<Boolean> submitComment(CommentDTO commentDTO) {
        ResponseDTO<UserDTO> loginUserResponse = userService.getLoginUser(commentDTO.getToken());
        if(!CodeMsg.SUCCESS.getCode().equals(loginUserResponse.getCode())) {
            return ResponseDTO.errorByMsg(CodeMsg.USER_SESSION_EXPIRED);
        }
        UserDTO loginUserDTO = loginUserResponse.getData();
        // 进行统一表单验证
        CodeMsg validate = ValidateEntityUtil.validate(commentDTO);
        if(!validate.getCode().equals(CodeMsg.SUCCESS.getCode())){
            return ResponseDTO.errorByMsg(validate);
        }
        Comment comment = CopyUtil.copy(commentDTO, Comment.class);
        comment.setId(UuidUtil.getShortUuid());
        comment.setCreateTime(new Date());
        comment.setUserId(loginUserDTO.getId());
        if(commentMapper.insertSelective(comment) == 0) {
            return ResponseDTO.errorByMsg(CodeMsg.COMMENT_ADD_ERROR);
        }
        return ResponseDTO.successByMsg(true, "评价成功!");
    }

到了这里,关于SpringBoot+微信小程序实现的酒店预订小程序系统 附带详细运行指导视频的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 酒店预订小程序源码 含前后端+搭建教程

    分享一个酒店预订在线订房小程序源码,程序包含前端+后端,详细的搭建教程。 系统特色功能一览: 1、在线订房,在线订餐,在线积分兑换商品,在线购买商品,分享分销功能,返利管理; 2、订阅消息邮件提醒,语音提醒,新增了微信消息提醒(访客在酒店小程序下单后,

    2024年02月12日
    浏览(31)
  • PHP酒店管理系统源码(多酒店)+数据库,酒店管理系统APP+H5+小程序预订

    完整代码下载地址:PHP酒店管理系统源码(多酒店)+数据库 安装手册: 项目配置 项目架构 后台 PC酒店管理前台 App+H5+小程序 内部APP 创建分店 入住办理 酒店预订 内部员工使用 APP管理 管理房间 店内服务 接口管理 语音提示 城市管理 交班丶夜审丶物品租借 软硬件管理 更多

    2024年02月11日
    浏览(77)
  • kaggle—酒店预订需求预测分析

    项目背景:该项目为酒店线上预订业务的研究内容,从酒店运营的角度,分析酒店的房型供给、不同时间段的需求,核心消费群体,影响退订的因素,并建立分类算法模型对酒店订单退订进行预测。 数据来源:kaggle:Hotel booking demand,此项目数据为kaggle上的一个Hotel booking数据

    2024年02月13日
    浏览(72)
  • 44 | 酒店预订及取消的数据分析

    数据集来自Kaggle网站上公开的Hotel booking demand项目 该数据集包含了一家城市酒店和一家度假酒店的预订信息,包括预订时间、入住时间、成人、儿童或婴儿数量、可用停车位数量等信息。 数据集容量约为12万×32 本次数据分析主要包含如下内容: 总览数据,完成对数据的 数据

    2024年02月13日
    浏览(32)
  • 酒店预订订单的分析与建模【决策树、xgboost】

    1.数据处理 2.数据探索性分析 3.网格搜索对决策树、xgboost进行模型参数调优 4.基于五折交叉验证的决策树、xgboost模型预测 👉往期文章可以关注我的专栏 下巴同学的数据加油小站 会不定期分享数据挖掘、机器学习、风控模型、深度学习、NLP等方向的学习项目,关注不一定能

    2024年02月10日
    浏览(48)
  • 【数据分析实战】基于python对酒店预订需求进行分析

    🙋‍♂️作者简介:生鱼同学,大数据科学与技术专业硕士在读👨‍🎓,曾获得华为杯数学建模国家二等奖🏆,MathorCup 数学建模竞赛国家二等奖🏅,亚太数学建模国家二等奖🏅。 ✍️研究方向:复杂网络科学 🏆兴趣方向:利用python进行数据分析与机器学习,数学建模竞

    2023年04月08日
    浏览(69)
  • 【华为OD机试python】预订酒店【 2023 Q1 A卷|100分】

    ■ 题目描述 放暑假了,小明决定到某旅游景点游玩,他在网上搜索到了各种价位的酒店(长度为n的数组A), 他的心理价位是x元,请帮他筛选出k个最接近x元的酒店(n=k0),并由低到高打印酒店的价格。 输入描述 第一行:n, k, x 第二行:A[0] A[1] A[2]…A[n-1] 输出描述 从低到高

    2024年02月03日
    浏览(29)
  • 【旅游度假】Axure酒店在线预订APP原型图 旅游度假子模块原型模板

    页面数量:共 20+ 页 兼容软件:Axure RP 9/10,不支持低版本 应用领域:旅游度假,生活服务 作品申明:页面内容仅用于功能演示,无实际功能 本作品为「酒店在线预订」的移动端原型设计图,主要功能包括:主页、搜索、酒店详情、在线预订、订单管理等模块与功能。 本作

    2024年02月12日
    浏览(29)
  • Springboot+mysql+微信小程序蛋糕店预订及购买-计算机毕业设计源码83646

    目  录 摘要 1 绪论 1.1 课题目的与意义 1.2 国内外研究现状 1.3 论文结构与章节安排 1. 4 小程序框架以及目录结构介绍 2   Springboot蛋糕店预订及购买小程序 系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统流程分析 2.2.1 数据流程

    2024年02月04日
    浏览(24)
  • 微信小程序的民宿客房预订短租系统设计与实现

    近几年,民宿作为新型的住宿方式深受广大民众的喜爱,亲切、自主等特点给人带来家的感觉,因此,民宿已经成为继主流酒店类型之后的新选择,目前正在以快速增长的态势进军酒店业务。民宿在带动地区全域旅游、古村保护、新型城镇化建设、增加就业和农民收入、消化

    2024年01月16日
    浏览(28)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包