springboot vue3密室逃脱管理系统设计与实现

博主介绍:专注于Java(springboot ssm 等开发框架) vue  .net  php phython node.js    uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下阿次找不到哟
我的博客空间发布了2000+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
更多项目地址 介绍 
文末下方有源码获取地址

4.1 系统总体设计

为了更好地梳理本系统总体设计思路,用结构图的方式来表达出系统的总体设计,并对密室逃脱管理系统的功能进行设计与实现。从图中可以看到,系统结构从管理员、用户和统计管理员三种角色进行划分。系统功能模块如图4-1所示。

图4-1 系统功能模块图

在软件工程的应用系统中,数据库设计包含有数据库的规划,需求收集与分析,以及数据库概念模型设计和逻辑模型设计。本密室逃脱管理系统使用 MySQL 作为后台的数据库。以下将分别介绍数据库的概念模型设计和数据库的逻辑模型设计。

4.4.1 数据库E-R图

java密室逃脱管理系统的E-R模型如图4-4所示。

图4-4 系统E-R图

4.4.2 数据库表设计

在上一章节中,对系统中的实体进行总结分析,设计并分析数据库的概念模型,得出本系统的逻辑结构,现将列出各个表的逻辑结构。

  1. 用户信息数据表(yonghu),其主要用来存储所有用户的信息:用户编号,用户名,密码,姓名,权限,联系电话,联系地址等信息字段。表4.1显示了表中各个字段的数据类型、大小以及简短描述。

表4-1 用户信息表

序号

字段名称

数据类型

长度

主键

描述

1

yhid

INTEGER

11

用户编号

2

yhm

VARCHAR

40

用户名

3

mm

VARCHAR

40

密码

4

xm

VARCHAR

40

姓名

5

qx

VARCHAR

40

权限

6

lxdh

VARCHAR

40

联系电话

7

lxdz

VARCHAR

40

联系地址

(2)优惠活动信息数据表(yhhd),其主要用来存储所有优惠活动的信息:优惠活动编号,标题,内容,发布时间等信息字段。表4.2显示了表中各个字段的数据类型、大小以及简短描述。

表4-2 优惠活动信息表

序号

字段名称

数据类型

长度

主键

描述

1

yhhdid

INTEGER

11

优惠活动编号

2

bt

VARCHAR

40

标题

3

nr

VARCHAR

40

内容

4

fbsj

VARCHAR

40

发布时间

(3)时间段信息数据表(sjd),其主要用来存储所有时间段的信息:时间段编号,时间段等信息字段。表4.3显示了表中各个字段的数据类型、大小以及简短描述。

表4-3 时间段信息表

序号

字段名称

数据类型

长度

主键

描述

1

sjdid

INTEGER

11

时间段编号

2

sjd

VARCHAR

40

时间段

(4)房间信息数据表(fangjian),其主要用来存储所有房间的信息:房间编号,房间名称,主题,图片,价格,介绍等信息字段。表4.4显示了表中各个字段的数据类型、大小以及简短描述。

表4-4 用户信息表

序号

字段名称

数据类型

长度

主键

描述

1

fjid

INTEGER

11

房间编号

2

fjmc

VARCHAR

40

房间名称

3

zt

VARCHAR

40

主题

4

tp

VARCHAR

40

图片

5

jg

VARCHAR

40

价格

6

js

VARCHAR

40

介绍

(5)预定信息数据表(yuding),其主要用来存储所有预定的信息:预定编号,预定号,房间,日期,时间段,用户,说明,价格,状态等信息字段。表4.5显示了表中各个字段的数据类型、大小以及简短描述。

表4-5 预定信息表

序号

字段名称

数据类型

长度

主键

描述

1

ydid

INTEGER

11

预定编号

2

ydh

VARCHAR

40

预定号

3

fj

VARCHAR

40

房间

4

rq

VARCHAR

40

日期

5

sjd

VARCHAR

40

时间段

6

yh

VARCHAR

40

用户

7

sm

VARCHAR

40

说明

8

jg

VARCHAR

40

价格

9

zt

VARCHAR

40

状态

(6)留言信息数据表(liuyan),其主要用来存储所有留言的信息:留言编号,留言,用户,时间,状态,回复等信息字段。表4.6显示了表中各个字段的数据类型、大小以及简短描述。

表4-6 留言信息表

序号

字段名称

数据类型

长度

主键

描述

1

lyid

INTEGER

11

留言编号

2

ly

VARCHAR

4000

留言

3

yh

VARCHAR

40

用户

4

sj

VARCHAR

40

时间

5

zt

VARCHAR

40

状态

6

hf

VARCHAR

4000

回复

(7)精彩瞬间信息数据表(jcsj),其主要用来存储所有精彩瞬间的信息:精彩瞬间编号,标题,内容,图片,发布时间等信息字段。表4.7显示了表中各个字段的数据类型、大小以及简短描述。

表4-7 精彩瞬间信息表

序号

字段名称

数据类型

长度

主键

描述

1

jcsjid

INTEGER

11

精彩瞬间编号

2

bt

VARCHAR

40

标题

3

nr

VARCHAR

4000

内容

4

tp

VARCHAR

40

图片

5

fbsj

VARCHAR

40

发布时间


第5章 系统实现

5.1 用户功能实现

用户功能模块是用户访问密室逃脱管理系统后能够进行操作的模块,用户登录成功后可以对首页、剧场以及个人中心进行相应操作。

5.1.1 用户首页功能实现

(1)用户成功登录后进入首页页面,在首页面可以进行优惠活动、精彩瞬间、留言、房间信息浏览、个人信息等操作。如图5-1所示。

图5-1 用户首页界面图

(2)用户在首页信息中可以看到优惠活动、标题、内容、发布时间。如图5-2所示。

图5-2 优惠活动界面图

(3)用户在首页可以看到精彩瞬间相关信息。如图5-3所示。

图5-3 精彩瞬间界面图

5.1.2 用户剧场功能实现

(1)用户在首页选择房间功能,可以查看已经房间信息详情功能。如图5-4所示。

图5-4 房间信息能界面图

主要代码:

package com.main.controller;


import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.main.config.Result;
import com.main.dao.fangjianDao;
import com.main.model.fangjian;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/fangjian")
public class fangjianController {

    @Autowired
    private fangjianDao fangjiandao;

    @GetMapping("/findPage")  //  房间查询列表分页

    public Result findPage(HttpServletRequest req) {
        Map map= new HashMap();
        Integer currentPage =Integer.parseInt((String) req.getParameter("currentPage"));
        Integer pageSize =  Integer.parseInt((String)req.getParameter("pageSize"));;
        if (currentPage == null || currentPage <= 0 || pageSize == null || pageSize < 1) {
            return Result.error("参数错误");
        }
        String fjid = (String)req.getParameter("fjid");//fjid 查询参数
	  if (fjid != null && !fjid .equals("")) {
            map.put("fjid", fjid );//拼接查询参数
        }
        String fjmc = (String)req.getParameter("fjmc");//fjmc 查询参数
	  if (fjmc != null && !fjmc .equals("")) {
            map.put("fjmc", fjmc );//拼接查询参数
        }
        String zt = (String)req.getParameter("zt");//zt 查询参数
	  if (zt != null && !zt .equals("")) {
            map.put("zt", zt );//拼接查询参数
        }
        String tp = (String)req.getParameter("tp");//tp 查询参数
	  if (tp != null && !tp .equals("")) {
            map.put("tp", tp );//拼接查询参数
        }
        String jg = (String)req.getParameter("jg");//jg 查询参数
	  if (jg != null && !jg .equals("")) {
            map.put("jg", jg );//拼接查询参数
        }
        String js = (String)req.getParameter("js");//js 查询参数
	  if (js != null && !js .equals("")) {
            map.put("js", js );//拼接查询参数
        }


        // 使用 pageHelper
        PageHelper.startPage(currentPage, pageSize);
      
        List list = fangjiandao.getAll(map);
        return Result.success(new PageInfo<>(list));
    }


	    @GetMapping("/findAll")  //  房间查询列表

    public Result findAll(HttpServletRequest req) {
        Map map= new HashMap();

        String fjid = (String)req.getParameter("fjid");//fjid 查询参数
	  if (fjid != null && !fjid .equals("")) {
            map.put("fjid", fjid );//拼接查询参数
        }
        String fjmc = (String)req.getParameter("fjmc");//fjmc 查询参数
	  if (fjmc != null && !fjmc .equals("")) {
            map.put("fjmc", fjmc );//拼接查询参数
        }
        String zt = (String)req.getParameter("zt");//zt 查询参数
	  if (zt != null && !zt .equals("")) {
            map.put("zt", zt );//拼接查询参数
        }
        String tp = (String)req.getParameter("tp");//tp 查询参数
	  if (tp != null && !tp .equals("")) {
            map.put("tp", tp );//拼接查询参数
        }
        String jg = (String)req.getParameter("jg");//jg 查询参数
	  if (jg != null && !jg .equals("")) {
            map.put("jg", jg );//拼接查询参数
        }
        String js = (String)req.getParameter("js");//js 查询参数
	  if (js != null && !js .equals("")) {
            map.put("js", js );//拼接查询参数
        }




        List list = fangjiandao.getAll(map);
        return Result.success(list);
    }



    @GetMapping("/findById/{id}") // 房间根据id查询
    public Result findById(@PathVariable Integer id) {
        return Result.success(fangjiandao.getfangjianByID(id));
    }
    @PostMapping(value = "add") // 房间新增
    public Result add(@RequestBody fangjian bean) {
        Map map= new HashMap();
        fangjian fjbean=new fangjian();

        map.put("fjmc", bean.getFjmc());
        fjbean=fangjiandao.getfangjianByMap(map);
        if(fjbean!=null){
            return Result.error("房间名称已存在");
            }else{
            System.out.println("add");





            fangjiandao.add(bean);
            return Result.success("成功");  // 返回
        }

       

    }
    @DeleteMapping("/del/{id}")
    public Result delete(@PathVariable Integer id) {
        if (id == null || id == 0) {
            return Result.error("参数错误");
        }
        fangjiandao.delete(id);
        return Result.success("成功");
    }
    @PostMapping(value = "update")
    public Result update(@RequestBody fangjian bean) {
        System.out.println("update");
      
        fangjiandao.update(bean);
        return Result.success("成功");
    }
}

(2)选择房间 填写预定房间信息。如图5-5所示。

图5-5 填写房间信息界面图

5.1.3 我的预定信息功能实现

查看已经预定的房间信息。如图5-6所示。

图5-6 查看房间预定信息界面图

5.2 统计管理员功能实现

统计管理员功能的实现主要服务于统计经营数据展现功能等。

5.2.1 月度统计功能实现

系统提供对预定信息合计金额进行统计,以柱状图进行展现。如图5-7所示。

图5-7 月度统计界面图

5.2.2 时间段统计功能实现

系统按照时间段进行预定信息数量进行统计,并以饼图进行展现。如图5-8所示。

图5-8 时间段界面图

大家点赞、收藏、关注、评论啦  其他的定制服务 商务合作  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翰文编程

你的鼓励 是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值