SSM+Vue酒店管理系统

news2024/11/23 14:50:35

SSM+Vue酒店管理系统,JavaWeb酒店管理系统,项目由maven工具管理依赖,数据库Mysql,一共19张表,前端用Vue写的管理端,功能丰富,需要可在最后位置联系我,可加购调试,讲解,项目带文档。

功能如下:

个人中心

客房分类管理

酒店信息管理

房客信息管理

酒店餐饮管理

用户管理

客房预订管理

客房续订管理

退房评价管理

餐饮订单管理

餐饮配送管理

跟管理员管理

系统公告,轮播图,客服管理

图示:

部分数据库设计:

kefangxinxi表

列名

数据类型

长度

约束

id

bigint

20

NOT NULL

addtime

timestamp

0

NOT NULL

kefangmingcheng

varchar

200

NOT NULL

kefangleixing

varchar

200

NOT NULL

kefangtupian

varchar

200

NOT NULL

kefangsheshi

varchar

200

NOT NULL

kefangjiage

int

11

NOT NULL

kefangzhuangtai

varchar

200

NOT NULL

jiudianmingcheng

varchar

200

NOT NULL

leibie

varchar

200

NOT NULL

xingji

varchar

200

NOT NULL

jiudiandizhi

varchar

200

NOT NULL

zixundianhua

varchar

200

NOT NULL

kefangjieshao

longtext

0

NOT NULL

clicktime

datetime

0

NOT NULL

clicknum

int

11

NOT NULL

                                                    kefangyuding表

列名

数据类型

长度

约束

id

 int

11

NOT NULL

addtime

varchar

50

default NULL

dingdanbianhao

varchar

50

default NULL

fangjianhao

varchar

50

default NULL

kefangmingcheng

varchar

50

default NULL

kefangleixing

varchar

50

default NULL

kefangzhuangtai

varchar

50

default NULL

kefangjiage

varchar

50

default NULL

yudingtianshu

varchar

50

default NULL

zongjiage

varchar

50

default NULL

xiadanshijian

varchar

50

default NULL

ruzhushijian

varchar

50

default NULL

yonghuming

varchar

50

default NULL

lianxidianhua

varchar

50

default NULL

shenfenzheng

varchar

50

default NULL

sfsh

varchar

50

default NULL

shhf

varchar

50

default NULL

                                                        ruzhudengji表

列名

数据类型

长度

约束

id

bigint

20

NOT NULL

addtime

timestamp

0

NOT NULL

dingdanbianhao

varchar

200

NOT NULL

kefangmingcheng

varchar

200

NOT NULL

kefangleixing

varchar

200

NOT NULL

kefangtupian

varchar

200

NOT NULL

kefangzhuangtai

varchar

200

NOT NULL

jiudianmingcheng

varchar

200

NOT NULL

jiudiandizhi

varchar

200

NOT NULL

zixundianhua

varchar

200

NOT NULL

kefangjiage

int

11

NOT NULL

ruzhutianshu

int

11

NOT NULL

zongjiage

int

11

NOT NULL

ruzhurenshu

int

11

NOT NULL

xiadanshijian

datetime

0

NOT NULL

ruzhushijian

datetime

0

NOT NULL

liuyanbeizhu

varchar

200

NOT NULL

yonghuming

varchar

200

NOT NULL

xingming

varchar

200

NOT NULL

shouji

varchar

200

NOT NULL

shenfenzheng

varchar

200

NOT NULL

sfsh

varchar

200

NOT NULL

shhf

longtext

0

NOT NULL

ispay

varchar

200

NOT NULL

部分代码设计:

1.客房信息后端接口

import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.KefangxinxiEntity;
import com.entity.view.KefangxinxiView;

import com.service.KefangxinxiService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MPUtil;


/**
 * 客房信息后端接口
 */
@RestController
@RequestMapping("/kefangxinxi")
public class KefangxinxiController {
    @Autowired
    private KefangxinxiService kefangxinxiService;


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params, KefangxinxiEntity kefangxinxi, HttpServletRequest request) {

        EntityWrapper<KefangxinxiEntity> ew = new EntityWrapper<KefangxinxiEntity>();
        PageUtils page = kefangxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kefangxinxi), params), params));
        return R.ok().put("data", page);
    }

    /**
     * 前端列表
     */
    @IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params, KefangxinxiEntity kefangxinxi, HttpServletRequest request) {
        EntityWrapper<KefangxinxiEntity> ew = new EntityWrapper<KefangxinxiEntity>();
        PageUtils page = kefangxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kefangxinxi), params), params));
        return R.ok().put("data", page);
    }

    /**
     * 列表
     */
    @RequestMapping("/lists")
    public R list(KefangxinxiEntity kefangxinxi) {
        EntityWrapper<KefangxinxiEntity> ew = new EntityWrapper<KefangxinxiEntity>();
        ew.allEq(MPUtil.allEQMapPre(kefangxinxi, "kefangxinxi"));
        return R.ok().put("data", kefangxinxiService.selectListView(ew));
    }

    /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(KefangxinxiEntity kefangxinxi) {
        EntityWrapper<KefangxinxiEntity> ew = new EntityWrapper<KefangxinxiEntity>();
        ew.allEq(MPUtil.allEQMapPre(kefangxinxi, "kefangxinxi"));
        KefangxinxiView kefangxinxiView = kefangxinxiService.selectView(ew);
        return R.ok("查询客房信息成功").put("data", kefangxinxiView);
    }

    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id) {
        KefangxinxiEntity kefangxinxi = kefangxinxiService.selectById(id);
        kefangxinxi.setClicknum(kefangxinxi.getClicknum() + 1);
        kefangxinxi.setClicktime(new Date());
        kefangxinxiService.updateById(kefangxinxi);
        return R.ok().put("data", kefangxinxi);
    }

    /**
     * 前端详情
     */
    @IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") String id) {
        KefangxinxiEntity kefangxinxi = kefangxinxiService.selectById(id);
        kefangxinxi.setClicknum(kefangxinxi.getClicknum() + 1);
        kefangxinxi.setClicktime(new Date());
        kefangxinxiService.updateById(kefangxinxi);
        return R.ok().put("data", kefangxinxi);
    }

    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody KefangxinxiEntity kefangxinxi, HttpServletRequest request) {
        kefangxinxi.setId(new Date().getTime() + new Double(Math.floor(Math.random() * 1000)).longValue());
        kefangxinxiService.insert(kefangxinxi);
        return R.ok();
    }

    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody KefangxinxiEntity kefangxinxi, HttpServletRequest request) {
        kefangxinxi.setId(new Date().getTime() + new Double(Math.floor(Math.random() * 1000)).longValue());
        kefangxinxiService.insert(kefangxinxi);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody KefangxinxiEntity kefangxinxi, HttpServletRequest request) {
        kefangxinxiService.updateById(kefangxinxi);//全部更新
        return R.ok();
    }
	
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids) {
        kefangxinxiService.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<KefangxinxiEntity> wrapper = new EntityWrapper<KefangxinxiEntity>();
        if (map.get("remindstart") != null) {
            wrapper.ge(columnName, map.get("remindstart"));
        }
        if (map.get("remindend") != null) {
            wrapper.le(columnName, map.get("remindend"));
        }
        int count = kefangxinxiService.selectCount(wrapper);
        return R.ok().put("count", count);
    }

    /**
     * 前端智能排序
     */
    @IgnoreAuth
    @RequestMapping("/autoSort")
    public R autoSort(@RequestParam Map<String, Object> params, KefangxinxiEntity kefangxinxi, HttpServletRequest request, String pre) {
        EntityWrapper<KefangxinxiEntity> ew = new EntityWrapper<KefangxinxiEntity>();
        Map<String, Object> newMap = new HashMap<String, Object>();
        Map<String, Object> param = new HashMap<String, Object>();
        Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry<String, Object> entry = it.next();
            String newKey = entry.getKey();
            if (pre.endsWith(".")) {
                newMap.put(pre + newKey, entry.getValue());
            } else if (StringUtils.isEmpty(pre)) {
                newMap.put(newKey, entry.getValue());
            } else {
                newMap.put(pre + "." + newKey, entry.getValue());
            }
        }
        params.put("sort", "clicknum");

        params.put("order", "desc");
        PageUtils page = kefangxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kefangxinxi), params), params));
        return R.ok().put("data", page);
    }
}


客房信息实体类

import com.entity.KefangxinxiEntity;

import com.baomidou.mybatisplus.annotations.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;


/**
 * 客房信息
 * 手机端接口返回实体辅助类
 * (主要作用去除一些不必要的字段)
 */
public class KefangxinxiVO implements Serializable {
    private static final long serialVersionUID = 1L;
	
    /**
     * 客房类型
     */

    private String kefangleixing;

    /**
     * 客房图片
     */
    private String kefangtupian;

    /**
     * 客房设施
     */
    private String kefangsheshi;

    /**
     * 客房价格
     */

    private Integer kefangjiage;

    /**
     * 客房状态
     */
    private String kefangzhuangtai;

    /**
     * 酒店名称
     */
    private String jiudianmingcheng;

    /**
     * 类别
     */
    private String leibie;

    /**
     * 星级
     */
    private String xingji;

    /**
     * 酒店地址
     */
    private String jiudiandizhi;

    /**
     * 咨询电话
     */
    private String zixundianhua;

    /**
     * 客房介绍
     */
    private String kefangjieshao;

    /**
     * 最近点击时间
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat
    private Date clicktime;

    /**
     * 点击次数
     */
    private Integer clicknum;
	
    /**
     * 设置:客房类型
     */
    public void setKefangleixing(String kefangleixing) {
        this.kefangleixing = kefangleixing;
    }

    /**
     * 获取:客房类型
     */
    public String getKefangleixing() {
        return kefangleixing;
    }
	
    /**
     * 设置:客房图片
     */
    public void setKefangtupian(String kefangtupian) {
        this.kefangtupian = kefangtupian;
    }

    /**
     * 获取:客房图片
     */
    public String getKefangtupian() {
        return kefangtupian;
    }
	
    /**
     * 设置:客房设施
     */
    public void setKefangsheshi(String kefangsheshi) {
        this.kefangsheshi = kefangsheshi;
    }

    /**
     * 获取:客房设施
     */
    public String getKefangsheshi() {
        return kefangsheshi;
    }


    /**
     * 设置:客房价格
     */
    public void setKefangjiage(Integer kefangjiage) {
        this.kefangjiage = kefangjiage;
    }

    /**
     * 获取:客房价格
     */
    public Integer getKefangjiage() {
        return kefangjiage;
    }


    /**
     * 设置:客房状态
     */
    public void setKefangzhuangtai(String kefangzhuangtai) {
        this.kefangzhuangtai = kefangzhuangtai;
    }

    /**
     * 获取:客房状态
     */
    public String getKefangzhuangtai() {
        return kefangzhuangtai;
    }


    /**
     * 设置:酒店名称
     */
    public void setJiudianmingcheng(String jiudianmingcheng) {
        this.jiudianmingcheng = jiudianmingcheng;
    }

    /**
     * 获取:酒店名称
     */
    public String getJiudianmingcheng() {
        return jiudianmingcheng;
    }


    /**
     * 设置:类别
     */
    public void setLeibie(String leibie) {
        this.leibie = leibie;
    }

    /**
     * 获取:类别
     */
    public String getLeibie() {
        return leibie;
    }


    /**
     * 设置:星级
     */
    public void setXingji(String xingji) {
        this.xingji = xingji;
    }

    /**
     * 获取:星级
     */
    public String getXingji() {
        return xingji;
    }


    /**
     * 设置:酒店地址
     */
    public void setJiudiandizhi(String jiudiandizhi) {
        this.jiudiandizhi = jiudiandizhi;
    }

    /**
     * 获取:酒店地址
     */
    public String getJiudiandizhi() {
        return jiudiandizhi;
    }


    /**
     * 设置:咨询电话
     */
    public void setZixundianhua(String zixundianhua) {
        this.zixundianhua = zixundianhua;
    }

    /**
     * 获取:咨询电话
     */
    public String getZixundianhua() {
        return zixundianhua;
    }


    /**
     * 设置:客房介绍
     */
    public void setKefangjieshao(String kefangjieshao) {
        this.kefangjieshao = kefangjieshao;
    }

    /**
     * 获取:客房介绍
     */
    public String getKefangjieshao() {
        return kefangjieshao;
    }


    /**
     * 设置:最近点击时间
     */
    public void setClicktime(Date clicktime) {
        this.clicktime = clicktime;
    }

    /**
     * 获取:最近点击时间
     */
    public Date getClicktime() {
        return clicktime;
    }


    /**
     * 设置:点击次数
     */
    public void setClicknum(Integer clicknum) {
        this.clicknum = clicknum;
    }

    /**
     * 获取:点击次数
     */
    public Integer getClicknum() {
        return clicknum;
    }
}

需要可以联系我:

                                     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1644301.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

苍穹外卖,接入redis cache后,新增套餐有问题

终端报错&#xff1a; java.lang.IllegalArgumentException: Null key returned for cache operation (maybe you are using named params on classes without debug info?) Builder[public com.sky.result.Result com.sky.controller.admin.SetmealController.save(com.sky.d…

用树莓派2B当web服务器

树莓派2&#xff0c;卡片大小&#xff0c;arm 32位cpu&#xff0c;512G内存。我找了一下购买记录&#xff0c;2013年12月15日买的。带网线接头。属于树莓派2B。以前下载的操作系统还在。是2014年的操作系统&#xff0c;文件名是&#xff1a;2014-09-09-wheezy-raspbian_shumeip…

工作问题记录React(持续更新中)

一、backdrop-filter:blur(20px); 毛玻璃效果&#xff0c;在安卓机上有兼容问题&#xff0c;添加兼容前缀也无效&#xff1b; 解决方案&#xff1a;让设计师调整渐变&#xff0c;不要使用该属性! 复制代码 background: radial-gradient(33% 33% at 100% 5%, #e9e5e5 0%, rgba…

[贪心] 带期限的作业调度问题

照学校ppt上写&#xff1a; #include<iostream> #include<algorithm> using namespace std;int n;struct Job {int D;int P;bool operator<(Job& j){if(Pj.P)return D<j.D;return P > j.P;} };Job Jobs[1000005]; int J[1000005];int main() {scanf(…

Fourier 测试时间自适应与多级一致性用于鲁棒分类

文章目录 Fourier Test-Time Adaptation with Multi-level Consistency for Robust Classification摘要方法实验结果 Fourier Test-Time Adaptation with Multi-level Consistency for Robust Classification 摘要 该研究提出了一种名为 Fourier 测试时间适应&#xff08;FTT…

目标检测正负样本区分和平衡

1、正负样本定义 rpn和rcnn的正负样本定义都是基于MaxIoUAssigner&#xff0c;只不过定义阈值不一样而已。 MaxIoUAssigner的操作包括4个步骤&#xff1a; 首先初始化时候假设每个anchor的mask都是-1&#xff0c;表示都是忽略anchor 将每个anchor和所有gt的iou的最大Iou小于…

【iOS】KVO

文章目录 前言一、KVO使用1.基本使用2.context使用3.移除KVO通知的必要性4.KVO观察可变数组 二、代码调试探索1.KVO对属性观察2.中间类3.中间类的方法3.dealloc中移除观察者后&#xff0c;isa指向是谁&#xff0c;以及中间类是否会销毁&#xff1f;总结 三、KVO本质GNUStep窥探…

Rust语言系统编程实战(小北学习笔记)

前言 进入大学以来&#xff08;计算机应用技术——大数据方向&#xff09;&#xff0c;就像很多程序猿&#x1f412;一样&#xff0c;小北开始每学期学习一种新的编程语言。通过学习另一个编程语言&#xff0c;可以了解很多规范和规则&#xff0c;并得到了一些想法&#xff0c;…

【Linux】目录和文件相关的命令,补充:centos7系统目录结构

【Linux】Linux操作系统的设计理念之一就是“一切皆文件”&#xff08;Everything is a file&#xff09;&#xff0c;即将设备、文件等都当作“文件”处理。 “文件”主要类型有&#xff1a;目录&#xff08;即文件夹&#xff09;&#xff0c;链接文档&#xff08;即快捷方式…

物联网小demo

机智云生成代码 具体参考之前的文章 初始化 ADC用来使用光敏电阻 连续采样开启 采样的周期调高 定时器 定时器1用来实现延时 为了只用温湿度模块DHT11 定时器4用来和51进行交互 实现定时的发送和检测心跳信号 IIC 用来使用oled屏幕 USART 串口1和串口2是机智云自己…

第二代增强-创建采购申请时的增强

文章目录 第二代增强-创建采购申请时的增强业务要求实现过程创建项目编写代码激活增强 维护消息类运行效果断点关键点另一种形式的错误提示-出口函数EXIT_SAPLMEREQ_005运行结果 第二代增强-创建采购申请时的增强 业务要求 实现过程 创建项目 编写代码 "AFNAM&#xff0c…

Flutter笔记:Widgets Easier组件库(11)- 使用提示吐丝

Flutter笔记 Widgets Easier组件库&#xff08;11&#xff09;使用提示吐丝 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this …

C#核心之面向对象-多态

面向对象-多态 文章目录 1、Vob1、多态的概念2、多态的实现 2、抽象类和抽象方法1、抽象类2、抽象方法 3、接口1、接口的概念2、接口的声明3、接口的使用4、接口可以继承接口5、显示实现接口总结思考 电脑使用USB接口读取数据 4、密封方法 1、Vob 1、多态的概念 多态&#xf…

libmodbus使用

安装可以看这个博客&#xff1a; https://blog.csdn.net/hanhui22/article/details/105786762 它的安装可以&#xff0c;但是编译测试看不太懂&#xff0c;我没跟着它的编译&#xff0c;完了后把/lib下的 放到开发板的/usr/lib下 编写代码: #include <stdio.h> #inclu…

研究论文的蓝图:精通论文大纲的编写技巧

研究论文大纲是一个补充文件&#xff0c;描述了按计划顺序纳入论文的所有主题&#xff0c;通常按段落分割。正常的研究论文大纲包括额外的细节&#xff0c;例如子主题和证据来源&#xff0c;以帮助作者保持结构。本文讨论了研究论文大纲的内容以及如何撰写。 研究论文大纲的含…

【AI】指定python3.10安装Jupyter Lab

家里电脑 13900K, bash 不识别pythoncmd可以,但是cmd似乎默认是python2.7这个是webrtc构建需要的.python3 则可以识别到但是版本是python3.12*多个版本如何通过制定的python3.10 的pip来安装软件,例如Jupyter Lab安装3.10 C:\Users\zhangbin\AppData\Roaming\Microsoft\Windo…

中国各地级市城投债详细数据(2006年-2023年2月)

01、数据简介 城投债又称为准市政债&#xff0c;发行主体是地方ZF投资平台&#xff0c;公开发行企业债和中期票据&#xff0c;其业主一般是地方基础设施建设&#xff0c;或者公益性项目主体&#xff0c;参与债券发行环节的当地ZF发债。 数据整理中国各地级市的城投债详细数据…

Inflate动态Huffman解压缩

上个已经实现GZIP压缩文件格式的Inflate静态Huffman解压&#xff0c;这个实现Inflate的无压缩输出和动态Huffman解压。 Java语言实现&#xff0c;Eclipse下编写。 范式Huffman解码实现&#xff0c;输入huffman编码&#xff0c;输出原始数据 // 范式huffman解码static class C…

推荐一个开源的MES系统

软件介绍 HM-MES是一款旨在帮助工厂实现生产计划、工艺管理和质量控制的工业生产管理软件。该软件基于Java Web技术和MySql数据库开发&#xff0c;拥有简洁、易用、安全和稳定等特点&#xff0c;适用于广泛的生产管理场景。 功能描述 1.产品和原材料双向溯源&#xff0c;支持二…

练习题(2024/5/3)

1对称二叉树 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false提示&#xff1a; 树中…