博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下阿次找不到哟
我的博客空间发布了2000+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
更多项目地址 介绍
文末下方有源码获取地址
为了更好地梳理本系统总体设计思路,用结构图的方式来表达出系统的总体设计,并对密室逃脱管理系统的功能进行设计与实现。从图中可以看到,系统结构从管理员、用户和统计管理员三种角色进行划分。系统功能模块如图4-1所示。
图4-1 系统功能模块图
在软件工程的应用系统中,数据库设计包含有数据库的规划,需求收集与分析,以及数据库概念模型设计和逻辑模型设计。本密室逃脱管理系统使用 MySQL 作为后台的数据库。以下将分别介绍数据库的概念模型设计和数据库的逻辑模型设计。
4.4.1 数据库E-R图
基java的密室逃脱管理系统的E-R模型如图4-4所示。
图4-4 系统E-R图
4.4.2 数据库表设计
在上一章节中,对系统中的实体进行总结分析,设计并分析数据库的概念模型,得出本系统的逻辑结构,现将列出各个表的逻辑结构。
- 用户信息数据表(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.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.1 月度统计功能实现
系统提供对预定信息合计金额进行统计,以柱状图进行展现。如图5-7所示。
图5-7 月度统计界面图
5.2.2 时间段统计功能实现
系统按照时间段进行预定信息数量进行统计,并以饼图进行展现。如图5-8所示。
图5-8 时间段界面图
大家点赞、收藏、关注、评论啦 其他的定制服务 商务合作 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者