智能停车计费系统设计与实现_urqs9

news/2024/9/17 15:19:04/ 标签: springboot, 后端, java

@TOC

springboot552智能停车计费系统设计与实现-urqs9--论文">springboot552智能停车计费系统设计与实现_urqs9--论文

绪 论

1.1 研究背景

在新世纪的今天,计算机已经发展到一定的规模,带动了国内经济和科学技术的快速发展,科学技术的发展大大提高了生产效率,使人们的物质生活需求得到了很大的满足。现在各种类型的网站系统都很流行,将传统的管理模式转移到线上来实现,可以大大提高管理效率。基于以上情况,智能停车计费系统逐渐出现在人们的视野中,也将成为未来发展的一个潜在增长点。

1.2 研究意义

在日新月异的21世纪,全球进入快速运转的科技时代,我国也在各位科学家不懈努力下实现了科技社会化、信息技术底层化、网络运用全民化。我们处在一个“互联网+”的时代,信息化的建设成为了当代的发展基石以及重要组成部分。随着智能停车计费管理的常态化,同时也出现了多样化的人员管理方式。而智能停车计费系统就可以实现管理人员及用户的日常管理,实现进行更高效的信息互换、让用户的动态变得透明公开,让管理人员更好地实现对智能停车计费的动态监管、真正的实现快速、便捷、高效的管理以降低管理成本、减轻管理人员的负担,保证管理技术以及运用互联网技术的能力的快速提升,提高综合管理和竞争能力。在保证人们的安全的同时,真正达到更好的为国家经济建设和社会安全做贡献的目的。

1.3 系统主要功能

因我国智能停车计费的数量也逐步增加。如果智能停车计费管理还是沿用传统的、人工的操作,那管理难度是十分巨大的、效率也会不尽人意;而如今我国的信息科学技术已趋于成熟,我们的生活、工作、学习已离不开互联网,为了更好的提升智能停车计费管理,并且在保证用户的安全前提下使人们生活有序、有效开展,需要一套操作简单、能高效导出并录入数据、安全性高、可用性强的智能停车计费系统。

此篇论文中包括管理员和用户两个不同的角色,根据不同的身份以及工作机制,赋予不同的权限。该智能停车计费系统的功能如下列所示:

  1. 用户之间的使用权限设定:根据业务管理的需求以及智能停车计费管理体系,在使用前将每个角色的固定标签设定好,明晰每个角色权限,并将状态控制功能添加到用户状态上,最终达到本系统角色控制基础形成的目标。
  2. 用户登录功能:用户可以根据自己的角色选择相应的账号进行登录,在输入合法的账号和密码后就可进入系统,根据自己的权限选择想要进行的操作。
  3. 查看个人资料功能:用户登录系统之后可以点击右上角头像查看自己的个人资料,在核查发现错误之后还可以进行修改,用户还可在该模块进行密码的修改。
  4. 系统管理功能:在模块的功能又可以细化成以下几个部分
  5. 用户管理:管理员和用户可以在该模块进行用户信息的管理与修改。
  6. 角色管理:管理员和用户可以在该模块对用户进行权限的修改与设置。

1.4 拟解决的主要问题

  1. 与智能停车计费管理工作契合的工作流结构

目前,智能停车计费的人员管理工作中,一般采用纸质表单结合手工传递的方式或者Word、Excel填写在线发放的方式[3],进行信息的收集,在信息收集完成之后再交由各级管理人员进行审批、签字,存在工作耗时较长、难以全面收集所需信息、工作步骤冗杂繁琐、中间环节易出错等缺点,因此采用与网络系统结合的工作流模式,让用户在固定时间进行信息的填写,之后按照已经设定好的规则进行工作流程的运行,自动在完成上一级任务后执行下一步指令,这样的操作方式比较灵活,而且减少了管理者手动完成操作信息的步骤,提高了工作效率,缩减了工作完成所需要的时间,并且可以保证任务完成的精确性与科学性。

  1. 科学、有效的信息收集机制

在保证信息的全面收集的同时还需要兼顾所收集信息的科学性与适用性。使用互联网固然可以提高收集信息的效率,但如果所收集的信息只是为了表面上数据的增加那就造成了极大的资源浪费,虚假的形式主义会造成用户精力的大量流失、并且降低信誉值,因此在确定信息收集内容的时候要着重筛选对智能停车计费管理起到促进作用的信息。例如本系统所收集的智能停车计费信息就可以很好的掌控智能停车计费的日常动态,为智能停车计费管理工作的成功打下了基础。

  1. 准确、可行的效果评价标准

当前对我国的智能停车计费管理效果的评价已有一定的标准,例如用户人数的多少、智能停车计费管理所花费的物资及钱财数量,而作为智能停车计费系统,其效果体现在以下几个方面:

  1. 使用网络收集用户基础信息减少了填写信息的步骤,用户可在重合的时间分别进行信息的填写,缩短了信息收集所需的时间;
  2. 使用网络进行信息记录,减少了虚假信息的产生,使结果更加真实有效;
  3. 通过系统进行记录,并且更好的留痕,为以后的检查工作提供了可靠地证明。

2 相关概念和技术介绍

java技术介绍">2.1 JAVA技术介绍

Java语言擅长开发互联网类应用和企业级应用,现在已经相当的成熟,而且也是目前使用最多的编程语言之一。Java语言具有很好的面向对象性,可以符合人的思维模式进行设计,封装是将对象的属性和方法尽可能地隐藏起来,使得外界并不知道是如何实现的,外界能通过接口进行访问,继承是指每个类都会有一个父类,所有的子类都有父类的方法,可以进行继承,但是只有final修饰的类不能被继承,通过继承可以使得代码得到重新利用,能够提高软件的开发效率,也是多态的前提。

Java就像C语言、C#语言等,也是一种程序开发语言,而它的特点就是面向对象。作为一种程序开发与设计的语言,它有很多特性,主要特性就是面向对象、夸平台以及可以分布式运行。Java语言项目不但安全性高、稳定性强,而且可以并发运行。

为了提高开发的速度及效率,必须做到代码的重复使用和简化程序的复杂度,要达到上述的要求java语言通过封装、继承与多态等方式实现,这样可以很大程度上达到信息的封装,提高代码复用率,减少冗余度,提高效率。在Java中难能可贵的一点就是它的垃圾回收机制,它使得以往程序中大量存在的内存泄漏的问题得到了较好的缓解。所谓的内存泄漏就是程序向操作系统申请了一块存储空间,比如定义了一个变量,但是由于某种原因,这个变量一直没有使用,但是仍然占用着系统的内存空间,可能一两个这样的变量对程序和操作系统造不成什么大的影响,但是试想如果这样的变量定义的多了系统的内存空间就会一步步减少,从而造成机器的性能降低甚至宕机。但是在Java中有垃圾回收机制的存在,这种机制极大地避免了内存泄漏的出现,在Java虚拟机中,垃圾回收机制会对长时间没有引用变量指向的对象实施垃圾回收,简单的说就是将这个对象销毁,以避免内存泄漏的情况出现。

springboot框架">2.2 SpringBoot框架

Spring Boot是由Pivotal的开发团队在2013年开发的一个免费、轻量级、开源的系统框架。SpringBoot的主要设计思想是约定大于配置,因此SpringBoot在设计时几乎达到零配置。SpringBoot集成了业界的开源框架。

SpringBoot是一个非常强大的后台框架,因为SpringBoot的开发基本上不需要写配置文件,所以利用SpringBoot来构建网站的后台环境,在SpringBoot的YML配置文件中写项目启动端口,项目就可以启动了。项目的Java和静态文件由SpringBoot管理。

2.3B/S架构

B/S(Browser/Server,浏览器/服务器)模式,是一种架构模式,属于WEB发展后的所出现的一种网络构造,而WEB又是主要的浏览器应用商品软件。B/S架构模式不仅将系统的重新开发、维修及利用等简单化,更将其重点放到了服务器上[8]。它使客户端得到了统一,服务器上集中了系统功能的最关键部分。

B/S架构的工作模式是浏览器发出请求后服务器进行相应的响应。Internet上文本、图片、动画等信息主要由Web服务器产生,而用户主要是通过浏览器访问这些信息。在Web服务器上下载程序时,如果在下载过程中遇到某些与数据库相关的指令,可以将这些指令交给数据库服务器来解释、进行执行。B/S架构工作流程图如2-1所示:

图2-1 B/S架构工作流程图

2.4 MySQL数据库

MySQL是一个关系型数据库管理系统,具有体积小、速度快、成本低等特点。MySQL数据库的功能强大,是可以处理存储着成千上万条记录的大型数据库;并且它是可以定制的,因为它采用了GPL协议,使用者可以通过修改源代码来开发自己的MySQL系统;MySQL支持多种操作系统,包括AIX、FreeBSD、Linux、Solaris等;它还可以提供用于管理、检索、升级数据库操作的处理工具;最重要的是MySQL是一个开源的、不收取任何费用的、适用范围较广产品,使用者可以直接在互联网上下载然后使用。MySQL工作架构图如图2-2所示:

https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimage.mamicode.com%2Finfo%2F201805%2F20180517104608720994.png&refer=http%3A%2F%2Fimage.mamicode.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1655298240&t=aa98023f57b87539e4e4d2fa9f4042f4

图2-2 MySQL工作架构图

3 系统需求分析

在对一个软件进行设计与开发之前,需要对该系统进行深层次的调查、分析、研究。良好的需求分析不仅能使开发人员快速、准确地理解开发任务,还能提高开发效率,还能好地完成工作[6]。对系统进行需求分析是必不可少的,这是软件生存周期上一个很重要的部分,在这个阶段需要确定该系统需要实现什么功能,然后做成一个数据规范、图表清晰的文档,为接下来的系统设计工作提供一定的基础。

3.1 问题定义

问题定义也是软件开发中一个重要的环节,在这个阶段我们要清楚的找到以下问题的答案:开发这个系统的原因是什么,开发这个系统所需要的具备什么样的技术支持,需要获得什么样的物资基础,取得哪个方面的国家政策支持等。所采用的智能停车计费系统就可以很好的促进智能停车计费管理工作的完成、而且可以使得整体管理水平得到有效的提升。因为使用该系统的主要是管理员和用户,所以要准确的进行角色的定位,然后对不同的角色给予不同的使用权限,表现如下:

1.使用角色的明晰

智能停车计费是一个人数众多、规模庞大、工作机制复杂的机构,需要对管理范围内的人员进行清楚的角色定位。

2.使用角色的权限赋予

角色权限分配应灵活,尽量满足用户对于权限的使用需求以及适应工作变动[3]。管理权限级别由下往上的增加,上一级的管理人员可以对下一级管理人员进行部分权限的限制与赋予,不同级别的管理者也可能拥有相同的管理权限。

3.系统所需要达到的性能要求

1 实用性:可以满足同一时间不同人员的登录,系统操作简单,界面明了干净。 1 可操作性:对每个角色在进行操作权限之后,后期还可以对其权限进行修改,可以增加或删除使用角色、部门等。 1 及时性:在对系统进行修改之后可以实时的系统的同步变化。 1 安全性:在系统出现故障之时可以在较短时间内进行修复,并且保证用户信息的绝密性,防止信息泄露的发生。 1 效率:可以满足各大使用群体的需求,解决使用者的问题

3.2 可行性分析

可行性分析是需求分析中一个关键的部分,在进行可行性分析之后可以了解到系统实现所具备的条件,以此来判断系统实现的难度。本篇论文主要进行以下几个方面的分析:

  1. 经济切实性

该系统并没有独特、十分创新的地方,所需要的硬件设备可以从学校已经在使用或者目前闲置的存量里面选取;系统的后期维护和升级也比较容易,学校从事这个专业的老师或者学生就可完成,而学校所派发的日常经费就可满足需求;在系统开发完成之后还可将系统进行出租或者售卖,也可产生一定的经济效益;并且该系统所使用的MySQL数据库是免费的。

  1. 使用可行性

该系统在的开发,从设计的功能以及使用者的角度出发进行设计,可以更有针对性的对智能停车计费进行有效的监管,也符合智能停车计费管理工作的需要,并且操作简单,覆盖范围广,这就提高了使用者主动适应并使用该系统的几率。

  1. 技术可行性

该系统的设计所选用的都是经过时间筛选、比较成熟的技术,Spring boot都是当前使用率较高、可靠性和安全性有一定保障的开发框架,MySQL数据库是拥有强大服务器支撑的系统,这就让系统开发的效率、质量得到了一定的保障。

3.3系统用例分析

在设计系统的过程中,用例图是系统设计过程中必不可少的模型,用例图可以更为细致的,结合系统中人员的有关分配,能够从细节上描绘出系统中有关功能所完成的具体事件,确切的反映出某个操作以及它们相互之间的内部联系。

其中参与者就是和系统能够发生交互的外在实体,一般可以指系统的某个用户。一个用例图就能对应出系统中的一个功能过程,系统中完整的功能都是由不同的用例图所组成的。系统用例图下所示。

图3-1 管理员用例图

图3-2 用户用例图

3.4 系统流程分析

3.4.1 登录流程

每个用户都有专属的密码和账号,在输入合法的账号、密码以及验证之后即可进入系统。登录流程如图3-3所示:

登录流程图

图3-3 登录流程图

3.4.2 添加信息流程

用户和管理员可以添加信息,内容没有问题之后按下确定键就添加成功了。添加信息的流程图如图3-4所示:

C:\Users\lenovo\AppData\Local\Temp\WeChat Files\da8dfc62fa46238fbebe4d324ba8419.jpg

图3-4 添加信息流程图

3.4.3 删除信息流程

用户可以选择把自己发布的信息删掉,选择要删除的信息确认之后,删除信息的操作就完成了。删除信息流程图如图3-5所示:

C:\Users\lenovo\AppData\Local\Temp\WeChat Files\da8dfc62fa46238fbebe4d324ba8419.jpg

图3-5删除信息流程图

4 系统功能的设计与实现

4.1 总体设计思路

该系统采用了B/S架构,对使用网络没有特别的要求,使用者可以随时访问该系统。该系统运行原理如图4-1所示:

系统工作原理图

图4-1 系统工作原理图

4.2 系统功能结构设计

完成了设计思路的构想,接下来就是按照实际要求完成所需功能。该系统功能结构图如图4-2所示:

图4-2 系统功能结构图

4.3 数据库设计

4.3.1 数据库E-R图设计

E-R图即实体-联系图,主要作用是提供了解显示数据类型存在的联系的途径,是藐视现实世界的概念模型,其关键要素是实体型、属性、联系。以下是本系统主要的实体图,如下图所示。

(1)车位信息实体图

图4-3车位信息实体图

(2)用户实体图

图4-4用户实体图

(3)违规处罚实体图

图4-5违规处罚实体图

(4)在线交流实体图

图4-6在线交流实体图

(5)系统公告实体图

图4-7系统公告实体图

4.3.2 数据库表结构设计

该系统采用的数据库是MySQL,根据该系统的数据存储特点进行数据库关系表的设计。下面是该系统中关键部分关系表的详细信息。

表4-1:车位信息

字段名称类型长度字段说明主键默认值
idbigint主键主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
tingchechangmingchengvarchar200停车场名称
quyuvarchar200区域
cheweibianhaovarchar200车位编号
cheweimingchengvarchar200车位名称
cheweileixingvarchar200车位类型
cheweitupianlongtext4294967295车位图片
cheweiweizhivarchar200车位位置
cheweizhuangtaivarchar200车位状态
xiaoshidanjiaint小时单价
cheweixiangqinglongtext4294967295车位详情

表4-2:用户

字段名称类型长度字段说明主键默认值
idbigint主键主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
yonghuzhanghaovarchar200用户账号
xingmingvarchar200姓名
mimavarchar200密码
xingbievarchar200性别
shoujivarchar200手机
touxianglongtext4294967295头像

表4-3:车位分类

字段名称类型长度字段说明主键默认值
idbigint主键主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
cheweileixingvarchar200车位类型

表4-4:违规处罚

字段名称类型长度字段说明主键默认值
idbigint主键主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
weiguishixiangvarchar200违规事项
weiguibeizhuvarchar200违规备注
chufajineint处罚金额
chufashijiandatetime处罚时间
yonghuzhanghaovarchar200用户账号
xingmingvarchar200姓名
shoujivarchar200手机
touxianglongtext4294967295头像
ispayvarchar200是否支付未支付

表4-5:在线交流

字段名称类型长度字段说明主键默认值
idbigint主键主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
useridbigint用户id
adminidbigint管理员id
asklongtext4294967295提问
replylongtext4294967295回复
isreplyint是否回复

表4-6:用户表

字段名称类型长度字段说明主键默认值
idbigint主键主键
usernamevarchar100用户名
passwordvarchar100密码
rolevarchar100角色管理员
addtimetimestamp新增时间CURRENT_TIMESTAMP

表4-7:token表

字段名称类型长度字段说明主键默认值
idbigint主键主键
useridbigint用户id
usernamevarchar100用户名
tablenamevarchar100表名
rolevarchar100角色
tokenvarchar200密码
addtimetimestamp新增时间CURRENT_TIMESTAMP
expiratedtimetimestamp过期时间CURRENT_TIMESTAMP

表4-8:系统公告

字段名称类型长度字段说明主键默认值
idbigint主键主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
titlevarchar200标题
introductionlongtext4294967295简介
picturelongtext4294967295图片
contentlongtext4294967295内容

表4-9:投诉建议

字段名称类型长度字段说明主键默认值
idbigint主键主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
useridbigint留言人id
usernamevarchar200用户名
avatarurllongtext4294967295头像
contentlongtext4294967295留言内容
cpicturelongtext4294967295留言图片
replylongtext4294967295回复内容
rpicturelongtext4294967295回复图片

表4-10:论坛交流

字段名称类型长度字段说明主键默认值
idbigint主键主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
titlevarchar200帖子标题
contentlongtext4294967295帖子内容
parentidbigint父节点id
useridbigint用户id
usernamevarchar200用户名
avatarurllongtext4294967295头像
isdonevarchar200状态

表4-11:配置文件

字段名称类型长度字段说明主键默认值
idbigint主键主键
namevarchar100配置参数名称
valuevarchar100配置参数值

表4-12:车子离场

字段名称类型长度字段说明主键默认值
idbigint主键主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
tingchechangmingchengvarchar200停车场名称
quyuvarchar200区域
cheweibianhaovarchar200车位编号
cheweimingchengvarchar200车位名称
cheweileixingvarchar200车位类型
cheweiweizhivarchar200车位位置
xiaoshidanjiaint小时单价
yonghuzhanghaovarchar200用户账号
xingmingvarchar200姓名
shoujivarchar200手机
touxianglongtext4294967295头像
chepaihaovarchar200车牌号
jinchangshijianvarchar200进场时间
lichangshijiandatetime离场时间
tingcheshizhangfloat停车时长
tingchefeiyongfloat停车费用
sfshvarchar200是否审核待审核
shhflongtext4294967295审核回复
ispayvarchar200是否支付未支付

表4-13:车子进场

字段名称类型长度字段说明主键默认值
idbigint主键主键
addtimetimestamp创建时间CURRENT_TIMESTAMP
tingchechangmingchengvarchar200停车场名称
quyuvarchar200区域
cheweibianhaovarchar200车位编号
cheweimingchengvarchar200车位名称
cheweileixingvarchar200车位类型
cheweiweizhivarchar200车位位置
xiaoshidanjiaint小时单价
yonghuzhanghaovarchar200用户账号
xingmingvarchar200姓名
shoujivarchar200手机
touxianglongtext4294967295头像
chepaihaovarchar200车牌号
jinchangshijiandatetime进场时间

5 系统详细功能的实现

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.2管理员模块实现

管理员登录,在登录页面正确输入用户名和密码后,点击登录进入操作系统进行操作;如图5-7所示。

图5-7 管理员登录界面

管理员进入主页面,主要功能包括对系统首页,个人中心,用户管理,车位分类管理,车位信息管理,车子进场管理,车子离场管理,违规处罚管理,投诉建议,交流论坛,系统管理等进行操作。管理员主页面如图5-8所示:

图5-8 管理员主界面

管理员点击用户管理。在用户页面输入用户账号和姓名进行查询、新增或删除用户列表,并根据需要对用户详情信息进行详情、修改或删除操作;如图5-9所示:

图5-9用户管理界面

管理员点击车位分类管理。在车位分类页面输入车位类型进行查询、新增或删除车位分类列表,并根据需要对车位分类详情信息进行详情、修改或删除操作;如图5-10所示:

图5-10车位分类管理界面

管理员点击车子进场管理。在车子进场页面输入停车场名称进行查询或删除车子进场列表,并根据需要对车子进场详情信息进行详情或删除操作;如图5-11所示:

图5-11车子进场管理界面

管理员点击车子离场管理。在车子离场页面输入停车场名称和选择是否通过进行查询或删除车子离场列表,并根据需要对车子离场详情信息进行详情、修改或删除操作;如图5-12所示:

图5-12车子离场管理界面

管理员点击系统管理。进入系统公告页面输入标题可以查询,新增或删除系统公告列表,并根据需要对系统公告详细信息进行详情,修改或删除操作。还可对在线交流,轮播图管理进行详细操作。如图5-13所示:

图5-13系统管理界面

5.3用户后台模块实现

用户进入主页面,主要功能包括对系统首页,个人中心,车子进场管理,车子离场管理,违规处罚管理等进行操作。用户主页面如图5-14所示:

图5-14 用户后台主界面

java">CheweifenleiController.java
package com.controller;import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.text.ParseException;
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.CheweifenleiEntity;
import com.entity.view.CheweifenleiView;import com.service.CheweifenleiService;
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-05-17 16:29:22*/
@RestController
@RequestMapping("/cheweifenlei")
public class CheweifenleiController {@Autowiredprivate CheweifenleiService cheweifenleiService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,CheweifenleiEntity cheweifenlei,HttpServletRequest request){EntityWrapper<CheweifenleiEntity> ew = new EntityWrapper<CheweifenleiEntity>();PageUtils page = cheweifenleiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, cheweifenlei), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,CheweifenleiEntity cheweifenlei, HttpServletRequest request){EntityWrapper<CheweifenleiEntity> ew = new EntityWrapper<CheweifenleiEntity>();PageUtils page = cheweifenleiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, cheweifenlei), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( CheweifenleiEntity cheweifenlei){EntityWrapper<CheweifenleiEntity> ew = new EntityWrapper<CheweifenleiEntity>();ew.allEq(MPUtil.allEQMapPre( cheweifenlei, "cheweifenlei")); return R.ok().put("data", cheweifenleiService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(CheweifenleiEntity cheweifenlei){EntityWrapper< CheweifenleiEntity> ew = new EntityWrapper< CheweifenleiEntity>();ew.allEq(MPUtil.allEQMapPre( cheweifenlei, "cheweifenlei")); CheweifenleiView cheweifenleiView =  cheweifenleiService.selectView(ew);return R.ok("查询车位分类成功").put("data", cheweifenleiView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){CheweifenleiEntity cheweifenlei = cheweifenleiService.selectById(id);return R.ok().put("data", cheweifenlei);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){CheweifenleiEntity cheweifenlei = cheweifenleiService.selectById(id);return R.ok().put("data", cheweifenlei);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody CheweifenleiEntity cheweifenlei, HttpServletRequest request){cheweifenlei.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(cheweifenlei);cheweifenleiService.insert(cheweifenlei);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody CheweifenleiEntity cheweifenlei, HttpServletRequest request){cheweifenlei.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(cheweifenlei);cheweifenleiService.insert(cheweifenlei);return R.ok();}/*** 修改*/@RequestMapping("/update")@Transactionalpublic R update(@RequestBody CheweifenleiEntity cheweifenlei, HttpServletRequest request){//ValidatorUtils.validateEntity(cheweifenlei);cheweifenleiService.updateById(cheweifenlei);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){cheweifenleiService.deleteBatchIds(Arrays.asList(ids));return R.ok();}}
java">MD5Util.java
package com.utils;import cn.hutool.crypto.digest.DigestUtil;public class MD5Util {/*** @param text明文* @param key密钥* @return 密文*/// 带秘钥加密public static String md5(String text) {// 加密后的字符串String md5str = DigestUtil.md5Hex(text);return md5str;}}
java">ChezijinchangServiceImpl.java
package com.service.impl;import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.List;import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.utils.PageUtils;
import com.utils.Query;import com.dao.ChezijinchangDao;
import com.entity.ChezijinchangEntity;
import com.service.ChezijinchangService;
import com.entity.vo.ChezijinchangVO;
import com.entity.view.ChezijinchangView;@Service("chezijinchangService")
public class ChezijinchangServiceImpl extends ServiceImpl<ChezijinchangDao, ChezijinchangEntity> implements ChezijinchangService {@Overridepublic PageUtils queryPage(Map<String, Object> params) {Page<ChezijinchangEntity> page = this.selectPage(new Query<ChezijinchangEntity>(params).getPage(),new EntityWrapper<ChezijinchangEntity>());return new PageUtils(page);}@Overridepublic PageUtils queryPage(Map<String, Object> params, Wrapper<ChezijinchangEntity> wrapper) {Page<ChezijinchangView> page =new Query<ChezijinchangView>(params).getPage();page.setRecords(baseMapper.selectListView(page,wrapper));PageUtils pageUtil = new PageUtils(page);return pageUtil;}@Overridepublic List<ChezijinchangVO> selectListVO(Wrapper<ChezijinchangEntity> wrapper) {return baseMapper.selectListVO(wrapper);}@Overridepublic ChezijinchangVO selectVO(Wrapper<ChezijinchangEntity> wrapper) {return baseMapper.selectVO(wrapper);}@Overridepublic List<ChezijinchangView> selectListView(Wrapper<ChezijinchangEntity> wrapper) {return baseMapper.selectListView(wrapper);}@Overridepublic ChezijinchangView selectView(Wrapper<ChezijinchangEntity> wrapper) {return baseMapper.selectView(wrapper);}}
IndexMain.vue
<template><div style="height: 100%;"><index-aside v-if="'vertical' == 'vertical'" :style='{"boxShadow":"0px 4px 10px 0px rgba(0,0,0,0.3020)","padding":"0 0 100px","overflow":"hidden","top":"0","left":"0","background":"rgba(255, 255, 255, 1)","bottom":"0","width":"190px","fontSize":"0px","position":"fixed","height":"100%","zIndex":"1001"}'></index-aside><el-main :style='"vertical" == "vertical" ? {"minHeight":"100%","padding":"0","margin":"0 0 0 190px","backgroundImage":"url(http://codegen.caihongy.cn/20220804/febccfdcc12347f0afccab7938e90a2e.png)","display":"block","backgroundSize":"100% 100%","position":"relative"} : {"minHeight":"100%","margin":"0","position":"relative"}'><index-header :style='{"padding":"8px 20px","alignItems":"center","top":"0","left":"0","background":"linear-gradient(360deg, #3CB5AF 0%, #3CB5AF 13%, #FFFFFF 13%, #FFFFFF 86%, #3CB5AF 86%, #3CB5AF 99%)","display":"flex","width":"100%","position":"fixed","justifyContent":"center","fontWeight":"550","zIndex":"1004"}'></index-header><index-aside v-if="'vertical' == 'horizontal'" :style='{"width":"100%","borderColor":"#efefef","borderStyle":"solid","background":"#304156","borderWidth":"0 0 1px 0","height":"auto"}'></index-aside><bread-crumbs :title="title" :style='{"padding":"10px 20px","margin":"85px auto 0","borderColor":"#eee","borderRadius":"20px","borderWidth":"0 0 1px 0","background":"rgba(27, 167, 166, 1)","width":"calc(100% - 40px)","borderStyle":"solid"}' class="bread-crumbs"></bread-crumbs><router-view class="router-view"></router-view></el-main></div>
</template><script>import IndexAside from '@/components/index/IndexAsideStatic'import IndexHeader from '@/components/index/IndexHeader'import menu from "@/utils/menu";export default {components: {IndexAside,IndexHeader},data() {return {menuList: [],role: "",currentIndex: -2,itemMenu: [],title: ''};},mounted() {let menus = menu.list();this.menuList = menus;this.role = this.$storage.get("role");},created() {this.init();console.log(console.log(this.$route.path))},methods: {init(){this.$nextTick(()=>{})},menuHandler(menu) {this.$router.push({name: menu.tableName});this.title = menu.menu;},titleChange(index, menus) {this.currentIndex = indexthis.itemMenu = menus;console.log(menus);},homeChange(index) {this.itemMenu = [];this.title = ""this.currentIndex = indexthis.$router.push({name: 'home'});},centerChange(index) {this.itemMenu = [{"buttons": ["新增", "查看", "修改", "删除"],"menu": "修改密码","tableName": "updatePassword"}, {"buttons": ["新增", "查看", "修改", "删除"],"menu": "个人信息","tableName": "center"}];this.title = ""this.currentIndex = indexthis.$router.push({name: 'home'});}}};
</script>
<style lang="scss" scoped>a {text-decoration: none;color: #555;}a:hover {background: #00c292;}.el-main {padding: 0;display: block;}.nav-list {width: 100%;margin: 0 auto;text-align: left;margin-top: 20px;.nav-title {display: inline-block;font-size: 15px;color: #333;padding: 15px 25px;border: none;}.nav-title.active {color: #555;cursor: default;background-color: #fff;}}.nav-item {margin-top: 20px;background: #FFFFFF;padding: 15px 0;.menu {padding: 15px 25px;}}.detail-form-content {background: transparent;}
</style>

声明

本博客适用于广泛的学术和教育用途,包括但不限于个人学习、开发设计,产品设计。仅供学习参考,旨在为读者提供深入理解和学术研究的材料。


http://www.ppmy.cn/news/1515843.html

相关文章

DOM的重要核心

目录 DOM的创建 1.document.write 2.innerHTML 3.createElement 2.增加 3.删除 4.改 5.查 6.属性操作 7.事件操作 8.注册事件 8.1传统注册方式 8.2addEventListener事件监听方式 基本语法 监听点击事件 监听多个事件 移除事件监听器 DOM的创建 1.document.wri…

深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)

目录 &#x1f354; RNN 概述 1.1 循环神经网络 1.2 自然语言处理 &#x1f354; 词嵌入层 2.1 词嵌入层的使用 2.2 关于词嵌入层的思考 2.3 小节 &#x1f354; 循环网络层 3.1 RNN 网络原理 3.1.1 RNN计算过程 3.1.2 如何计算神经元内部 3.2 PyTorch RNN 层的使用…

虚拟机安装centos7-桥接模式

1、打开虚拟机&#xff0c;点击文件&#xff0c;选择新建虚拟机 2、选择典型&#xff0c;点击下一步 3、选择稍后安装操作系统&#xff0c;点击下一步 4、选择系统类型及版本&#xff0c;点击下一步&#xff0c;因centos7是Linux操作系统&#xff0c;且是64位的&#xff0c;所以…

唯大数据(大模型)论阻碍智能领域的创新吗?

唯大数据&#xff0c;即将大数据视为智能领域创新的唯一或主要驱动力&#xff0c;可能会带来一些挑战和限制。尽管大数据在智能系统中提供了丰富的信息和洞察&#xff0c;但过度依赖大数据也可能导致以下几个问题&#xff1a; 1、数据质量和偏差&#xff1a;大数据往往包含大量…

SpringMVC核心机制环境搭建

文章目录 1.SpringMVC执行流程1.基础流程图2.详细流程图 2.安装Tomcat1.下载2.解压到任意目录即可3.IDEA配置Tomcat1.配置Deloyment2.配置Server 3.创建maven项目1.创建sun-springmvc模块&#xff08;webapp&#xff09;2.查看是否被父模块管理3.pom.xml引入依赖4.目录5.SunDis…

Xshell链接本地20.04Ubuntu虚拟机

一、打开虚拟机设置选择自定义-net8 二、打开虚拟网络编辑器&#xff0c;点击更改设置 三、打开网络设置&#xff0c;如图操作 四。打开虚拟机&#xff0c;进入终端&#xff0c;输入ifconfig 五、su root进入root模式&#xff0c;配置静态网卡 # 备份配置文件 cd /etc/netpla…

大数据背景下基于Python的牛油果销售数据可视化分析

注&#xff1a;源码在最后&#xff0c;只是一次实验记录&#xff0c;不合理的地方自行修改。 一 研究背景及意义 21世纪以来&#xff0c;随着科学技术的进步&#xff0c;人们的生活水平也随之大幅提升提高。在科技和经济快速发展下&#xff0c;全球已经进入了大数据时代。大数…

Excel地址

题目描述 Excel 单元格的地址表示很有趣&#xff0c;它使用字母来表示列号。 比如&#xff0c; A 表示第 1 列&#xff0c; B 表示第 2 列&#xff0c; Z 表示第 26 列&#xff0c; AA 表示第 27 列&#xff0c; AB 表示第 28 列&#xff0c; BA 表示第 53 列&#xff…

如何从单点到集群配置Eureka:最佳实践与配置详解

如何从单点到集群配置Eureka&#xff1a;最佳实践与配置详解 1. 引言 什么是Eureka&#xff1f; Eureka是Netflix开源的服务发现和注册中心&#xff0c;广泛应用于微服务架构中。它允许各个服务实例在启动时注册到Eureka Server&#xff0c;并通过Eureka Client获取其他服务…

MySQL面试常问问题

MySQL为什么默认存储引擎是InnoDB&#xff1f; 从存储数据角度来讲&#xff0c;innodb采取的是在一个文件中用B树结构存储索引和完整数据&#xff08;即聚集索引&#xff09;&#xff0c;减少了拿着索引去另一个文件寻找完整数据的过程&#xff0c;提高了查询的效率。 支持事…

基于Android Studio 多功能记事本-MySQL版

目录 一、项目演示 二、开发环境 三、项目详情 四、项目完整源码 一、项目演示 基于Android Studio 多功能记事本--MySQL版 二、开发环境 三、项目详情 1.启动页 这段代码主要实现了以下功能&#xff1a; 1. **延迟跳转**&#xff1a;在 StartActivity 中&#xff0c;使用…

GStreamer 简明教程(五):Pad 相关概念介绍,Pad Capabilities/Templates

系列文章目录 GStreamer 简明教程&#xff08;一&#xff09;&#xff1a;环境搭建&#xff0c;运行 Basic Tutorial 1 Hello world! GStreamer 简明教程&#xff08;二&#xff09;&#xff1a;基本概念介绍&#xff0c;Element 和 Pipeline GStreamer 简明教程&#xff08;三…

配置PXE预启动执行环境:使用PXE装机服务器网络引导装机

文章目录 PXE概述PXE批量部署的优点基本的部署过程搭建的前提条件 搭建配置PXE装机服务器1. 准备 CentOS 7 安装源&#xff08;YUM 仓库&#xff09;2. 安装并启用 TFTP 服务3. 安装并启用 DHCP 服务4. 准备 Linux 内核和初始化镜像文件5. 准备 PXE 引导程序6. 安装 FTP 服务并…

每天一道C语言精选编程题之求字符串长度

题目描述 写⼀个函数Strlen&#xff0c;可以求字符串⻓度&#xff0c;注&#xff1a;字符串的结束标志是 \0 输⼊⼀个字符串&#xff08;字符串⻓度⼩于等于30&#xff0c;中间不包含空格&#xff09;&#xff0c;使⽤Strlen函数可以求字符串的长度&#xff0c;并返回。 解法…

如何使用Web Scraper爬虫抓取数据?

Web Scraper是一个基于Chrome/火狐浏览器的插件&#xff0c;能够在网页上自动爬取数据&#xff0c;提供了丰富的配置&#xff0c;支持自动翻页、登录认证、JavaScript渲染等等&#xff0c;可以解决多数爬虫难题。 Web Scraper的安装也很简单&#xff0c;在Chrome应用商店里搜索…

【LLM大模型论文日更】| 格式胜过内容:揭示大型语言模型的提示效应

论文&#xff1a;https://arxiv.org/pdf/2408.08780代码&#xff1a;未开源机构&#xff1a;北京大学领域&#xff1a;提示学习&#xff0c;上下文学习发表&#xff1a;arXiv 研究背景 研究问题&#xff1a;这篇文章探讨了在上下文学习&#xff08;ICL&#xff09;中&#xf…

AJAX(5)——Promise

Promise Promise对象用于表示一个异步操作的最终完成或失败及其结果值 语法&#xff1a; //创建Promise对象const p new Promise((resolve, reject) > {//执行异步代码setTimeout(() > {// resolve(成功结果)reject(new Error(失败结果))}, 2000)})//获取结果p.then(r…

c++枚举类型StarPU实现矩阵乘

1) 枚举类型 #pragma once #include<stdio.h> #include<stdlib.h> #include<string.h> #include<windows.h> #include<iostream> #include <time.h>enum Color {RED, //RED0GREEN, //GREEN1BLUE //BLUE2 }; int main() {//定义数据…

Linux网络编程:多路转接--poll/epoll

1. poll poll也是一种多路转接的方案&#xff0c;解决了select的fd有上限和每次调用都要重新设置关心的fd的问题。 2. poll接口 #include int poll(struct pollfd* fds, nfds_t nfds, int timeout); 参数&#xff1a;fds&#xff1a;可以看成是动态数组/数组/结构体数组 nfds&…

Selenium + Python 自动化测试21(PO+HTML+Mail)

我们的目标是&#xff1a;按照这一套资料学习下来&#xff0c;大家可以独立完成自动化测试的任务。 上一篇我们讨论了PO模式并举例说明了基本的思路&#xff0c;今天我们继续学习。 本篇文章我们综合一下之前学习的内容&#xff0c;如先将PO模式和我们生成HTML报告融合起来&am…