基于 springboot vue停车场管理系统 设计与实现

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

第4章 系统设计

4.1 总体功能设计

一般个人用户和管理员都需要登录才能进入停车场管理系统,使用者登录时会在后台判断使用的权限类型包括一般使用者和管理者,一般使用者只能对停车场信息提供查阅和个别使用信息内容的查看而管理者则能对多个信息内容提供使用。

整体系统的主要功能模块如图4-1:

图4-1 停车场管理系统功能图

4.2 系统登录模块设计

用户在启动操作系统时会调用的一个模块。该模型通过用户输入的账号、密码来确定应用的类别切换到该类应用的页面。

本模块的功能点包括

1)确定账号与密码是否一致

2)完全按照系统所规定使用权限的权限类型直接通过登陆进入到系统权限的制定管理页面中即可进行授权使用。

登录模块流程图如图4-2:

         

图4-2 登录模块流程图

4.3 数据库设计

管理静止网站时是由WEB客户端向Web传送静态页面而Web客户端直接对所传送的静态页面进行管理。

实现动态网页数据库信息查询请求的最基本处理流程概括为当一个WEB用户成功向动态网页服务器数据库发送信息请求成功后对其动态页面库的一种主要的处理实现方法之一是屏蔽掉其中所有动态HTML代码只须使用一个动态的动态网页文件由动态Web浏览器程序直接地在该数据库服务器上进行传递动态信息然后再通过该数据库服务器的处理程序返回到信息集由该Web应用服务器处理程序再一次将包含动态程序代码在内的动态页面转化为一个静态页面信息并自动返回到网页浏览器。也就是网站在这个动态页里对网页信息自动进行检索并最终把这些信息自动返回传递到网站用户处的这个全自动化过程

数据库查询示意图如4-3

4-3 数据库查询示意图

数据库设计阶段目标表见表4-4

4-4 数据库设计阶段目标表

阶段

目标

概念设计

了解功能需求,通过分析系统功能定义出系统有哪些实体联系图(即E-R图)

逻辑设计

把E-R图转换成能处理的逻辑模型,检查是否满足第三范式的要求

物理设计

基于基本数据模型,生成适用于应用系统的物理结构

4.3.1 E-R图设计

根据以上分析,本系统中包含个实体,根据他们以及他们的关系绘制出E-R图如下:

  1. 用户信息实体如下图4-5

4-5用户信息实体示例图

  1. 停车场信息实体如下图4-6

4-6停车场信息实体示例图

  1. 车位预约实体如下图4-7

4-7车位预约实体示例图

4.3.2  数据库关系表设计

数据库关系表如下:

4-1停车公告

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

biaoti

varchar

200

标题

gonggaoneirong

longtext

4294967295

公告内容

fengmian

longtext

4294967295

封面

faburen

varchar

200

发布人

fabushijian

datetime

发布时间

4-2停车场

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

chechangbianhao

varchar

200

车场编号

chechangmingcheng

varchar

200

车场名称

chechangleixing

varchar

200

车场类型

tupian

longtext

4294967295

图片

cheweixiangqing

longtext

4294967295

车位详情

cheweishuliang

int

车位数量

cheweizhuangtai

varchar

200

车位状态

xiaoshijiage

int

小时价格

baoyuejiage

int

包月价格

weizhi

varchar

200

位置

zixundianhua

varchar

200

咨询电话

beizhu

longtext

4294967295

备注

4-3配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

4-4车位预约

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yuyuebianhao

varchar

200

预约编号

chechangbianhao

varchar

200

车场编号

chechangmingcheng

varchar

200

车场名称

tupian

longtext

4294967295

图片

weizhi

varchar

200

位置

xiaoshijiage

int

小时价格

yuyueshijian

datetime

预约时间

yuyueshizhang

float

预约时长

zongfeiyong

float

总费用

zhanghao

varchar

200

账号

nicheng

varchar

200

昵称

chepaihao

varchar

200

车牌号

ispay

varchar

200

是否支付

未支付

4-5用户

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhanghao

varchar

200

账号

mima

varchar

200

密码

nicheng

varchar

200

昵称

xingbie

varchar

200

性别

touxiang

longtext

4294967295

头像

lianxidianhua

varchar

200

联系电话

chepaihao

varchar

200

车牌号

4-6用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

4-7token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

  1. 系统实现

5.1管理员功能模块实现

本模块主要是使用者可以停车场管理系统的首页进入该系统。用户输入正确的账号名和密码,一旦输入信息有错,将在系统显示错误提示,同时严禁系统用户做出其他动作。如果注册信息正确无误,系统就会按照使用者的身份信息做出有关权利的判定,用户进入系统,管理者则进入系统。管理员登录主页面如图5-1所示:

5-1管理员登录主页面

管理员进入系统主页面,主要功能包括对系统首页、个人中心、用户管理、停车场管理、停车公告管理、车位预约管理、管理员管理等进行操作。管理员主页面如图5-2所示:

图5-2管理员主界面

管理员点击用户管理,在用户管理页面对账号、昵称、性别、头像、联系电话、车牌号等信息,可以查询,新增或删除用户信息等操作。如图5-3所示:

图5-3用户管理界面

管理员点击停车场管理,在停车场管理页面对车场编号、车场名称、车场类型、图片、车位数量、车位状态、小时价格、包月价格、位置、咨询电话等信息,可以查询,新增或删除停车场信息等操作。如图5-4所示:

图5-4停车场管理界面

管理员点击停车公告管理,在停车公告管理页面对标题、封面、发布人、发布时间等信息,可以查询或者新增、删除停车公告等操作。如图5-5所示:

图5-5停车公告管理界面

管理员点击车位预约管理,在车位预约管理页面对预约编号、车场编号、车场名称、图片、位置、小时价格、预约时间、预约时长、总费用、账号、昵称、车牌号、是否支付等信息,可以查询或删除车位预约等操作。如图5-6所示:

图5-6车位预约管理界面

管理员点击管理员管理,在管理员管理页面用户名、密码、角色等信息,可以查询或删除管理员信息等操作。如图5-7所示:

图5-7管理员管理界面

5.2 用户功能模块实现

用户注册界面第一次使用本系统的使用者,首先是要进行注册,点击“注册”,然后就会进入到注册的页面里面,将用户信息录入注册表,确认信息正确后,系统才会进入登录界面,用户登录成功后可使用本系统所提供的所有功能如图5-8所示。

5-8用户注册界面

用户登录界面首先双击打开系统,连上网络之后会显示出本系统的登录界面,这是进入系统的第初始页面“登录”,能成功进入到该登录界面则代表系统的开启是成功的,接下来就可以操作本系统所带有的其他所有的功能如图5-9所示。

 5-9用户登录界面

用户登录到系统后,用户可以对系统首页、个人中心、停车场管理、停车公告管理、车位预约管理进行相应操作,如图5-10所示:

     图5-10用户功能界面

用户点击停车场管理在停车场管理页面对车场编号、车场名称、车场类型、图片、车位数量、车位状态、小时价格、包月价格、位置、咨询电话等信息,可以查询或删除停车场信息等操作。如图5-11所示:

图5-11停车场管理界面

主要代码

package com.controller;

import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
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 java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.format.annotation.DateTimeFormat;
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.TingchechangEntity;
import com.entity.view.TingchechangView;

import com.service.TingchechangService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;

/**
 * 停车场
 * 后端接口
 * @author 
 * @email 
 * @date 2023-02-17 17:06:48
 */
@RestController
@RequestMapping("/tingchechang")
public class TingchechangController {
    @Autowired
    private TingchechangService tingchechangService;


    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,TingchechangEntity tingchechang,
		HttpServletRequest request){
        EntityWrapper<TingchechangEntity> ew = new EntityWrapper<TingchechangEntity>();

		PageUtils page = tingchechangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, tingchechang), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,TingchechangEntity tingchechang, 
		HttpServletRequest request){
        EntityWrapper<TingchechangEntity> ew = new EntityWrapper<TingchechangEntity>();

		PageUtils page = tingchechangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, tingchechang), params), params));
        return R.ok().put("data", page);
    }

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

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(TingchechangEntity tingchechang){
        EntityWrapper< TingchechangEntity> ew = new EntityWrapper< TingchechangEntity>();
 		ew.allEq(MPUtil.allEQMapPre( tingchechang, "tingchechang")); 
		TingchechangView tingchechangView =  tingchechangService.selectView(ew);
		return R.ok("查询停车场成功").put("data", tingchechangView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        TingchechangEntity tingchechang = tingchechangService.selectById(id);
        return R.ok().put("data", tingchechang);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        TingchechangEntity tingchechang = tingchechangService.selectById(id);
        return R.ok().put("data", tingchechang);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody TingchechangEntity tingchechang, HttpServletRequest request){
    	tingchechang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(tingchechang);
        tingchechangService.insert(tingchechang);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody TingchechangEntity tingchechang, HttpServletRequest request){
    	tingchechang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(tingchechang);
        tingchechangService.insert(tingchechang);
        return R.ok();
    }



    /**
     * 修改
     */
    @RequestMapping("/update")
    @Transactional
    public R update(@RequestBody TingchechangEntity tingchechang, HttpServletRequest request){
        //ValidatorUtils.validateEntity(tingchechang);
        tingchechangService.updateById(tingchechang);//全部更新
        return R.ok();
    }


    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        tingchechangService.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<TingchechangEntity> wrapper = new EntityWrapper<TingchechangEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = tingchechangService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	









}

代码论文下载地址

【计算机程序设计项目源码】springboot017停车场管理系统.zip资源-CSDN文库


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

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

翰文编程

你的鼓励 是我最大的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值