体育馆场地管理系统1.0-2.0

发布时间:2025-12-10 11:27:58 浏览次数:2

文章目录

    • 前言
      • 1.0版本
        • 1.项目功能简述
        • 2.项目目录结构
        • 3.数据库设计
        • 4.前端逻辑设计
        • 5.后端逻辑设计

前言

去年大二的时候,学校让我们自己做工程实践项目,我和队友选择了做体育馆场地管理系统。那个时候我们在网上找相关的技术博客、开源项目等就发现很少,今年五月份,我们又重构了之前的系统。所以,我准备写一篇文章介绍一下我们的体育馆场地管理系统。

1.0版本

1.项目功能简述

  • 该项目分为和用户交互的部分(前台)和管理员部分(后台)两个部分
  • 前台功能:登录注册部分、首页部分、个人中心部分
  • 后台功能:登录部分、功能查询部分

2.项目目录结构

  • 1.0版本使用原生Javaee+Jsp+Mysql,采用mvc分层方式搭建。
  • 数据库连接工具使用的是Commons,同时用到了封装的一些sql封装操作。
  • 用原生监听器完成定时任务。
  • 原生过滤器实现安全跳转,因为有些地址是在没有登录的情况下不能访问的,这里只是用了两层目录的方式来控制。
  • mvc三层中,admin和user分别对应着管理员和前台的代码实现。
  • baseServlet是使用了反射,来简化原生的servlet。

3.数据库设计

表结构:

  • gms_admin(管理员表):只有一条信息,为管理员的
  • gms_notice(通知表):通知信息,默认写了七条数据,太少前端展示有问题
  • gms_order(订单表):用户下单后订单记录
  • gms_type(场馆类型表):比如篮球场就位类型,篮球场1号…就为具体场地
  • gms_user(用户表):存放用户注册信息
  • gms_venue(场馆表):具体某个场馆,比如乒乓球1号,2号,3号…
  • gms_vdstate(场馆分时状态表):一个场馆gms_venue对应多个分时状态,因为我们要展示最近三天内容,一天中以一小时间隔会有23个时间段,设计23个字符来表示状态以0,1,2分别表示三种颜色,场馆三种颜色(绿色、灰色、白色)表示状态,可以根据0,1,2就可以展示场馆状态。
  • 01表示对应的场馆编号,第二个字段表示哪一天,0表示不可预约(灰色),1表示可预约(白色),2表示已预约(黄色),后面23个字符,比如这里第一个2在第十三个字符位置,所以12:00-13:00位已预约

    4.前端逻辑设计


    以上部分的解释如下:

  • 红点1这里使用的是Bootstrap的标签页,我们点击需要的场馆(红点2),下面就会展示对应的场馆信息(红点3
  • 场馆类型(红点2),通知消息(红点4),页面加载的时候就用ajax加载了所有的场馆类型并且展示,今日日期(红点5)也是页面加载的时候就进来了
  • 红点6是通过红点2红点5场馆类型当前日期去查询数据库查出来的
  • 具体逻辑:首先在页面加载的时候,场馆类型,详细信息,通知信息,当前日期,这些可以直接在ajax中获取并展示出来,然后在场馆类型的每个类型里面设置一个方法,点击这个方法的时候就会获取当前的日期,这样就可以直接请求获取所有场馆信息了。注意: 但是每次点击的时候必须先清除上一次展示的场馆信息,否则就会重叠。还有个问题,当我们点击了这个场馆选择后,变为绿色了,又去另外一个界面点击一下,返回过来绿色消失了,所以必须记录下这个颜色然后在展示列表信息。
  • 5.后端逻辑设计

  • 选择场馆的时候,我们需要生成一张订单表,同时修改数据库分时状态表的状态,告诉前台这个场馆被人预约了,同时要插入一条订单表到数据库,这两个操作是保持一致性的,所以要加事务控制。
  • 订单在个人中心是可以提前取消预约的,那我们还是要修改分时状态表,以及修改订单表的状态为已取消,也要加事务控制。
  • 定时任务是指:前端展示的时候显示了这一天的场馆这状态,比如当前时间是12:00,那么12:00之前的场馆状态就必须被修改为不可预约,避免用户再预约之前的场馆导致问题。同时,订单表也要修改,因为如果有些人预约的是12:00-13:00的场馆,当前时间已经为13:01的时候,这个订单要么被用户使用了,要么超时了,我们都需要将这个订单设置为已完成订单状态,每隔一分钟修改一次。
  • 简单的登录、注册、修改密码、注销登录这里就不提了,还有个导出订单表的操作,是自己写的工具类,会调用就行了。
  • 需要做网站?需要网络推广?欢迎咨询客户经理 13272073477