@TOC
springboot631智慧学生校舍系统--论文
绪论
对于当今社会的人们来说,智慧学生校舍系统是必不可少的,随着经济和技术的不断发展,计算机已经深入到各个领域。智慧学生校舍系统将人们的时间需求与计算机技术结合起来,架起一座桥梁,使智慧学生校舍系统管理更加方便快捷。智慧学生校舍系统主要为人们提供系统化、个性化、专业化的服务,以提高人们的愉悦感。
1.1 研究背景
网络发展的越来越迅速,它深刻的影响着每一个人生活的各个方面。每一种新型事务的兴起都是为了使人们的生活更加方便。智慧学生校舍系统是一种低成本、更加高效的电子商务方式,它已慢慢的成为一种全新的管理模式。人们不再满足于在互联网上浏览、发布信息和人与人之间的聊天,而是希望互联网能为人们的生活带来更多便利。伴随着网络的崛起,智慧学生校舍系统管理开始变得越来越普遍。
1.1.1国内研究现状
在现实生活中,根据传统做法,有些人选择通过电话或短信进行交流。这种方法比较单一,在有些方面效率不高,需要大量人力和财力,已经接近淘汰。另一种方法是使用系统,但有些系统对计算机和用户的要求很高,使用起来非常复杂,无法快速锁定他们满意的信息。用户也将束手无策。目前,市场上很少有类似的系统能够真正满足用户的需求,帮助用户完成各项事务。
1.1.2国外研究现状
在当今社会,由于国外经济的高度发达,对于服务于人们生活的智慧学生校舍系统,国外花费了大量的人力、物力和财力来开发这类系统。所以,国外的这种系统较为发达。另一个重要原因是,国外更开放,更容易接受新事物,对他们享受的服务更挑剔,因此,智慧学生校舍系统一开始可以被更多的人接受,更多的人提出更多的要求,使智慧学生校舍系统更加完善。经过多年的发展,该系统具有很高的艺术性,非常规范和完整。
1.2研究的目的和意义
1.2.1研究目的
互联网发展的越来越快了,在当下社会节点,人们也开始越来越喜爱智慧学生校舍系统管理。通过互联网可以对学生、公共物品等方式全面加强宣传,极大地满足智慧学生校舍系统在现代管理中的要求。如果想实现简单快捷方便的智慧学生校舍系统管理,即时生效,无需重新打印。这时仅仅需要在背景中单击鼠标,它将立刻更新点击处一整行的所有内容。智慧学生校舍系统使用了B/S模式,并且不需要安装第六方插件,能实现更加准确的提供智慧学生校舍系统信息。现社会无论各行各业都应尽量摒弃传递错误信息,尤其是口头传输信息。而网络却并不会像电话那样一次只能传输一次,效率低下还接连不断,每当处于高峰时段,用网络来处理信息也就会更加的容易。我们甚至可以通过宣传让更多的潜在用户知道。不需要发送传单来节省宣传和人力成本。智慧学生校舍系统管理的方式得到了更好的改进。从而提高了整体业务量。
这样做的目的是节省时间,提高工作效率,享受当今社会最便捷、最周到的服务。
1.2.2 研究意义
线上管理智慧学生校舍系统提供了良好的发展空间,随着人们生活质量的提高,人们对服务质量的要求越来越严格。人们希望拥有更好的智慧学生校舍管理体验。而且,智慧学生校舍管理服务有着使用常规电话交流比不了的便捷高效简单等优势。智慧学生校舍系统就是为广大劳动人民提供这样一个方便的系统,以满足学生的需求。
1.3 论文的内容和结构
本文一共把内容主要分为六个大部分,采用传统面向对象的方法进行划分并描述和分析每个部分的需求:
第一章是前言部分,该部分主要是拓展了方案的背景,对此系统的意义做了思考,对价值做了评估。
第二章是概述系统的相关技术,详情的介绍了系统所使用的相关语言和开发结构。
第六章是对系统的需求进行分析,对可行性需求,功能需求和流程等做相关分析。
第四章主要对程序的功能做分析,并描述了数据库等相关内容的设计。
第五章主要是将智慧学生校舍系统划分成后台管理界面和前台页面,以及各部分相关功能页面。
第六章主要是进行系统功能测试。
2系统相关技术概述
2.1 Java技术简介
Java技术是一种非常经典的用来搭建信息网站系统的编程技术,它广泛的被应用于众多互联网企业的后端开发项目,它在JDK中运行,以封装、继承和多态的形式存在,层次清晰,可以和MVC的六层模型相配合。JAVA编程语言的体系结构具有一定的中立性, 可以较好的适用于各类系统、站点、系统等[1]。java具有高效性,可移植性强等特点。
它被技术人员广泛的应用于建设网站、数据库操作等领域。Java编程语言在网站开发领域和电子经商等领域具有相当的地位。开发人员可以使用不同的框架进行编译,从而达到预期的效果。同时,Java语言是高度安全的,该功能主要得益于它的存储模型。
2.2 SpringBoot框架
Spring Boot是由Pivotal的开发团队在2013年开发的一个免费、轻量级、开源的系统框架。SpringBoot的主要设计思想是约定大于配置,因此SpringBoot在设计时几乎达到零配置。SpringBoot集成了业界的开源框架。
SpringBoot是一个非常强大的后台框架,因为SpringBoot的开发基本上不需要写配置文件,所以利用SpringBoot来构建网站的后台环境,在SpringBoot的YML配置文件中写项目启动端口,项目就可以启动了。项目的Java和静态文件由SpringBoot管理。
2.3 MySQL数据库技术简介
MySQL是一种轻量级、高效率的数据库。它有各种字段、主键、外键等特性。大多数个人或者企业在进行软件开发时必需用到的数据库。因为其极强的可移植性而广泛应用于众多系统服务中。MySQL使用的SQL语言是访问数据库最常用的标准化语言[4]。
2.4 B/S结构
浏览器/服务器(B/S)是一种比它的前身更简单的体系结构。它使用Web服务器来完成数据的传输和通信。只要把浏览器作为客户端下载下来,你就可以简化你的工作,所以你不必担心安装软件的问题。
3系统需求分析
3.1需求分析概述
智慧学生校舍系统主要是为了提高用户的工作效率,满足用户对更方便、更快、更好地存储所有信息和数据检索功能的要求。通过对多个智慧学生校舍的合理分析,确定了智慧学生校舍系统的各个模块。考虑到用户的可操作性,经过深入调查研究,遵循系统优化和开发的原则。
为了实现当前网络的分析功能和便利性,智慧学生校舍系统使管理员、学生、教师、宿管、外来人员和维修人员能够在系统上直接查看他们需要的数据信息,不仅可以节省管理时间,还可以改变传统的管理模式。如果用户想要交换信息,他们需要满足双方交换信息的需要。由于时间有限,很难亲自会面和沟通,因此很难满足用户的需求。因此,迫切需要开发一个智慧学生校舍系统,以满足用户的需求,提高用户的使用率。智慧学生校舍系统必须更快、更有效地向用户或潜在用户提供信息。为智慧学生校舍系统建立更好的沟通系统,提高用户信息交流系统的服务效率。该系统可以满足大多数用户提出的问题,用户可以根据自己的需要获得相应的服务,为智慧学生校舍系统提供了一条快捷的途径。
3.2可行性分析
智慧学生校舍系统研发出来可以为广大人民群众解决智慧学生校舍系统管理的问题,大大降低人民时间成本,不需要将无谓的时间浪费在道路上,并且智慧学生校舍系统管理可以更大化的将信息展露在人们的眼前供其选择。它是一款多用户使用的系统,比较符合业务逻辑,是通过互联网解决复杂和单调问题的典型案例。
3.2.1技术可行性
技术可行性是分析系统都需要用到哪些技术知识,语法是否规范标准,代码量多大,是否具有可移植性,在 MVC 在这种设计模式下能够真正的实现数据层和表示层的分离[6],以及前端页面是否可以做到美观实用,是否吸引眼球。网站是否足够稳定,后端管理页面是否足够方便管理,数据库的构建是否可以符合系统要求,是否需要搭建集群等等。
3.2.2经济可行性
通过结合以上对系统的技术和可行性分析来判断对系统经济状况的预算是否大于系统开发资金的比例。因此,通过分析系统的业务模式和开发者模式,不会浪费大量资金,系统的使用价值大于资本价值[7]。
3.2.3运营可行性
可操作性是指将系统开发所涉及到的所有功能全都实现,代码收尾工作完成后对用户消费水平,系统的业务能力是否与用户消费水平所对等,是否可以满足大部分消费者的需求,页面是否美观,能否让用户满意,代码显示是否为轻量级,操作和功能是否简单便捷,是否同时适用。系统能否同时应用于windows、linux等操作系统,这取决于系统的可移植性。JAVA 编程语言的适应性非常强,基本上能够较好的适应目前市场环境中所流行的各个系统[8]。也就是说JAVA的可移植性很强,那么系统的价值越高,可行性也就越强。
3.2.4法律可行性
该智慧学生校舍系统是面向大众开源化和不收取任何费用的。它的主要目的是帮助人们解决智慧学生校舍问题。完全符合法律可行性要求,系统内部权限划分不会导致内部用户泄露系统机密。对于用户信息,系统有保护措施,用户密码在数据库中加密,并有严格的自我控制和商品价格解释。
3.3系统功能需求分析
本次的毕业设计主要就是设计并开发一个智慧学生校舍系统。使用数据库mysql。系统主要包括个人中心、学生管理、教师管理、宿管管理、外来人员管理、维修人员管理、学生信息管理、学生签到管理、学生物品管理、口令码管理、学生进出宿舍管理、教师进出宿舍管理、申请信息管理、导员确认管理、宿舍物品管理、公告物品管理、预约使用管理、取消预约管理、水电信息管理、宿舍卫生管理、晚归未归登记管理、失物招领管理、寻物启事管理、违纪登记管理、环境信息管理、通知公告管理、学生报修管理、报修接单管理、报修订单管理、学生评价管理、排行榜管理、交流论坛、留言板管理、系统管理等功能;本管理系统的用例图根据角色权限进行分类,主要可分为管理员用例、学生用例、教师用例、宿管用例、外来人员用例和维修人员用例。
(1)管理员用例图
管理员用例图依据管理员的权限需求以及对系统的管理需求进行分析,主要包括了个人中心、学生管理、教师管理、宿管管理、外来人员管理、维修人员管理、学生信息管理、学生签到管理、学生物品管理、口令码管理、学生进出宿舍管理、教师进出宿舍管理、申请信息管理、导员确认管理、宿舍物品管理、公告物品管理、预约使用管理、取消预约管理、水电信息管理、宿舍卫生管理、晚归未归登记管理、失物招领管理、寻物启事管理、违纪登记管理、环境信息管理、通知公告管理、学生报修管理、报修接单管理、报修订单管理、学生评价管理、排行榜管理、交流论坛、留言板管理、系统管理等,管理员用例图如下所示:
图3-1 管理员用例图
(2)宿管用例图
宿管用例图根据宿管的需求进行分析,包括个人中心、学生管理、外来人员管理、维修人员管理、学生信息管理、学生签到管理、学生物品管理、口令码管理、学生进出宿舍管理、教师进出宿舍管理、申请信息管理、导员确认管理、宿舍物品管理、公告物品管理、预约使用管理、取消预约管理、水电信息管理、宿舍卫生管理、晚归未归登记管理、失物招领管理、寻物启事管理、违纪登记管理、环境信息管理、通知公告管理、学生报修管理、报修接单管理、报修订单管理、学生评价管理、排行榜管理等。宿管用例图如下所示:
图3-2宿管用例图
(3)学生用例图
学生用例图根据学生的需求进行分析,包括首页、公告物品、宿舍卫生、失物招领、寻物启事、通知公告、排行榜、交流论坛、留言板、后台管理、个人中心等。学生用例图如下所示:
图3-3学生用例图
(4)教师用例图
教师用例图根据教师的需求进行分析,包括首页、个人中心、学生管理、学生信息管理、教师进出宿舍管理、导员确认管理等。教师用例图如下所示:
图3-4教师用例图
(5)外来人员用例图
外来人员用例图根据外来人员的需求进行首页、个人中心、申请信息管理、导员确认管理等。外来人员用例图如下所示:
图3-5外来人员用例图
(6)维修人员用例图
维修人员用例图根据维修人员的需求进行分析,包括首页、个人中心、学生报修管理、报修接单管理、报修订单管理、学生评价管理等。维修人员用例图如下所示:
图3-6维修人员用例图
3.4系统其他需求分析
3.4.1性能要求
在开发了一个功能较为良好系统之后,首要考虑的就是它的性能要求,比如当用户使用它进行点击或提交功能时,它会产生多久的延迟,系统响应速度快不快,如果短时间同时有较多用户访问网站是否会产生系统崩溃,是否采用高并发接口,另外,存储功能进行中的代码量是否满足算法和数据结构,以及是否占用较大内存等:
(1)系统应具备快速的反映时间,对于并发特征得到解决[10]。
(2)系统对用户密码是否进行了加密并进行大量安全处理。
(3)系统代码量是否简洁,不会占用计算机太多内存。
3.4.2安全要求
对于安全要求要进行可靠性分析,可靠性分析有利于可实现安全性、可靠 性设计与系统功能设计在数据源上的统一[11]。就本系统的安全性能而言,数据的账户和密码需要以明文形式显示,并严格加密。更改密码、修改个人数据、添加信息需要相应权限。
3.4.3作业环境要求
(1)系统:Windows系统足够,兼容性强
(2)Web服务器:内置tomcat,无需安装、运行和使用
(3)数据库服务器:MySQL 5.5及以上,图形界面为SQLYG
(4)浏览器:谷歌或Firefox开发者浏览器
(5)JDK1.8及以上,内置插件maven等。
3.5系统流程分析
(1)个人信息流程图
用户在成功进入系统以后,可以获得姓名,性别,年龄等个人信息。获得个人信息的流程见图3-7所示。
图3-7个人信息流程图流程图
用户进行登录操作的流程图如图3-8。
图3-8登录界面流程图
用户进行注册操作的流程图如图3-9。
图3-9用户注册流程图
3.6本章概述
本章主要介绍智慧学生校舍系统的使用案例和系统的相关可行性要求。我已经从技术、经济、法律和运营四个方面确认了该系统可以在线运行
4 系统设计
4.1系统结构图
智慧学生校舍系统分为六个部分,即管理员管理、学生管理、教师管理、宿管管理、外来人员管理和维修人员管理。该系统是根据用户的实际需求开发的,贴近生活。从管理员处获得的指定账号和密码可用于进入系统和使用相关的系统应用程序。管理员拥有最大的权限,其次是学生、教师、宿管、外来人员和维修人员。管理员一般负责整个系统的运行维护和总体协调。
系统结构如图4-1所示。
图4-1系统结构图
4.2数据库设计
所有的网站设计但凡有数据都离不开数据库,数据库是所有项目想实现如数据获取,数据传输等功能的基石。只有合理化的数据库设计才能满足商业化的要求,数据库的主键外键连接方式特别的重要,尽量避免多对多的复杂性,字段名合理规范,且通俗易懂等,字段应根据业务进行设定,不允许操作多字段而对系统产生占用多余的内存[12]。
4.2.1数据库设计原则
设计原则自然就是要符合范式的要求,多表之间的关系要合理,理应符合系统的实际情况。
4.2.2数据库的概念设计
概念设计是将整体分为在地面上表达出来的单个个体。E-R图形象的连接了实体模型和概念模型。因此,E-R图需要根据数据库表和表字段进行合理设计,表达的概念知识点用图形描述,可以直观地让相应人员清楚,并分解整个E-R图[13]。我们通常表达不清晰没有概念的东西。但是通过E-R之间的联系,E-R模型法是对这种模糊概念的事务最简单、最常用的设计方法。
(1) 交流论坛实体属性图如下图4-2所示。
图4-2交流论坛实体属性图
(2) 通知公告实体属性图如下图4-3所示。
图4-3通知公告实体属性图
(3) 校园信息实体属性图如下图4-4所示。
图4-4校园信息实体属性图
(4) 晚归未归登记实体属性图如下图4-5所示。
图4-5晚归未归登记实体属性图
(5) 环境信息实体属性图如下图4-6所示。
图4-6环境信息实体属性图
4.2.3数据库表设计
数据库表的设计通常是根据业务逻辑设置的。数据库模型在数据库中设计,并根据模型创建数据库表[14]。
表4-1:学生进出宿舍
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
sushehao | varchar | 200 | 宿舍号 | ||
chuangweihao | varchar | 200 | 床位号 | ||
leixing | varchar | 200 | 类型 | ||
koulingma | float | 口令码 | |||
dengjishijian | datetime | 登记时间 | |||
beizhu | varchar | 200 | 备注 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 |
表4-2:用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
表4-3:交流论坛
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 帖子标题 | ||
content | longtext | 4294967295 | 帖子内容 | ||
parentid | bigint | 父节点id | |||
userid | bigint | 用户id | |||
username | varchar | 200 | 用户名 | ||
avatarurl | longtext | 4294967295 | 头像 | ||
isdone | varchar | 200 | 状态 |
表4-4:取消预约
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
yuyuebianhao | varchar | 200 | 预约编号 | ||
wupinmingcheng | varchar | 200 | 物品名称 | ||
quxiaoshijian | datetime | 取消时间 | |||
quxiaoyuanyin | longtext | 4294967295 | 取消原因 | ||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
shouji | varchar | 200 | 手机 | ||
chuangweihao | varchar | 200 | 床位号 | ||
sushehao | varchar | 200 | 宿舍号 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 | ||
sfsh | varchar | 200 | 是否审核 | 待审核 | |
shhf | longtext | 4294967295 | 审核回复 |
表4-5:学生报修
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
baoxiubianhao | varchar | 200 | 报修编号 | ||
baoxiumingcheng | varchar | 200 | 报修名称 | ||
zhuangtai | varchar | 200 | 状态 | ||
wentijianshu | longtext | 4294967295 | 问题简述 | ||
baoxiuriqi | date | 报修日期 | |||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
shouji | varchar | 200 | 手机 | ||
sushehao | varchar | 200 | 宿舍号 | ||
chuangweihao | varchar | 200 | 床位号 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 | ||
sfsh | varchar | 200 | 是否审核 | 待审核 | |
shhf | longtext | 4294967295 | 审核回复 |
表4-6:通知公告
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
biaoti | varchar | 200 | 标题 | ||
jianjie | longtext | 4294967295 | 简介 | ||
fengmian | longtext | 4294967295 | 封面 | ||
fabushijian | datetime | 发布时间 | |||
neirong | longtext | 4294967295 | 内容 | ||
faburen | varchar | 200 | 发布人 | ||
clicktime | datetime | 最近点击时间 | |||
clicknum | int | 点击次数 | 0 | ||
userid | bigint | 用户id |
表4-7:导员确认
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
zhanghao | varchar | 200 | 账号 | ||
xingming | varchar | 200 | 姓名 | ||
shouji | varchar | 200 | 手机 | ||
jinlaishijian | datetime | 进来时间 | |||
tingliushijian | varchar | 200 | 停留时间 | ||
shenqingshijian | datetime | 申请时间 | |||
shenqingyuanyin | longtext | 4294967295 | 申请原因 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 | ||
jiaoshizhanghao | varchar | 200 | 教师账号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
sfsh | varchar | 200 | 是否审核 | 待审核 | |
shhf | longtext | 4294967295 | 审核回复 |
表4-8:排行榜
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
biaoti | varchar | 200 | 标题 | ||
diyiming | varchar | 200 | 第一名 | ||
dierming | varchar | 200 | 第二名 | ||
disanming | varchar | 200 | 第三名 | ||
disiming | varchar | 200 | 第四名 | ||
diwuming | varchar | 200 | 第五名 | ||
diliuming | varchar | 200 | 第六名 | ||
diqiming | varchar | 200 | 第七名 | ||
dibaming | varchar | 200 | 第八名 | ||
dijiuming | varchar | 200 | 第九名 | ||
dishiming | varchar | 200 | 第十名 | ||
fengmian | longtext | 4294967295 | 封面 | ||
userid | bigint | 用户id |
表4-9:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 |
表4-10:token表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
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 |
表4-11:校园信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
introduction | longtext | 4294967295 | 简介 | ||
picture | longtext | 4294967295 | 图片 | ||
content | longtext | 4294967295 | 内容 |
表4-12:留言板
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 留言人id | |||
username | varchar | 200 | 用户名 | ||
avatarurl | longtext | 4294967295 | 头像 | ||
content | longtext | 4294967295 | 留言内容 | ||
cpicture | longtext | 4294967295 | 留言图片 | ||
reply | longtext | 4294967295 | 回复内容 | ||
rpicture | longtext | 4294967295 | 回复图片 |
表4-13:关于我们
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
subtitle | varchar | 200 | 副标题 | ||
content | longtext | 4294967295 | 内容 | ||
picture1 | longtext | 4294967295 | 图片1 | ||
picture2 | longtext | 4294967295 | 图片2 | ||
picture3 | longtext | 4294967295 | 图片3 |
表4-14:报修接单
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
baoxiubianhao | varchar | 200 | 报修编号 | ||
baoxiumingcheng | varchar | 200 | 报修名称 | ||
wentijianshu | longtext | 4294967295 | 问题简述 | ||
anpaishijian | datetime | 安排时间 | |||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
shouji | varchar | 200 | 手机 | ||
sushehao | varchar | 200 | 宿舍号 | ||
weixiuzhanghao | varchar | 200 | 维修账号 | ||
weixiuxingming | varchar | 200 | 维修姓名 | ||
lianxidianhua | varchar | 200 | 联系电话 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 | ||
sfsh | varchar | 200 | 是否审核 | 待审核 | |
shhf | longtext | 4294967295 | 审核回复 |
表4-15:预约使用
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
yuyuebianhao | varchar | 200 | 预约编号 | ||
wupinmingcheng | varchar | 200 | 物品名称 | ||
yuyueshijian | datetime | 预约时间 | |||
shiyongyuanyin | longtext | 4294967295 | 使用原因 | ||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
shouji | varchar | 200 | 手机 | ||
chuangweihao | varchar | 200 | 床位号 | ||
sushehao | varchar | 200 | 宿舍号 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 | ||
sfsh | varchar | 200 | 是否审核 | 待审核 | |
shhf | longtext | 4294967295 | 审核回复 |
表4-16:违纪登记
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
dengjibianhao | varchar | 200 | 登记编号 | ||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
sushehao | varchar | 200 | 宿舍号 | ||
chuangweihao | varchar | 200 | 床位号 | ||
weijineirong | varchar | 200 | 违纪内容 | ||
weijiyuanyin | longtext | 4294967295 | 违纪原因 | ||
dengjishijian | datetime | 登记时间 | |||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 |
表4-17:口令码
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
biaoti | varchar | 200 | 标题 | ||
koulingma | varchar | 200 | 口令码 | ||
neirong | longtext | 4294967295 | 内容 | ||
tongzhishijian | datetime | 通知时间 | |||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
sushehao | varchar | 200 | 宿舍号 | ||
chuangweihao | varchar | 200 | 床位号 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 |
表4-18:宿舍物品
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
wupinmingcheng | varchar | 200 | 物品名称 | ||
wupinleibie | varchar | 200 | 物品类别 | ||
wupinsuoshu | varchar | 200 | 物品所属 | ||
suochuweizhi | varchar | 200 | 所处位置 | ||
wupinshuliang | int | 物品数量 | |||
dangqianzhuangtai | varchar | 200 | 当前状态 | ||
shiyongzhuangtai | varchar | 200 | 使用状态 | ||
dangqianshiyongren | varchar | 200 | 当前使用人 | ||
shiyongrensushehao | varchar | 200 | 使用人宿舍号 | ||
loudonghao | varchar | 200 | 楼栋号 | ||
dengjiriqi | date | 登记日期 | |||
wupinjianjie | longtext | 4294967295 | 物品简介 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 |
表4-19:报修订单
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
baoxiubianhao | varchar | 200 | 报修编号 | ||
baoxiumingcheng | varchar | 200 | 报修名称 | ||
chulijianshu | longtext | 4294967295 | 处理简述 | ||
chulizhuangtai | varchar | 200 | 处理状态 | ||
chulishijian | datetime | 处理时间 | |||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
shouji | varchar | 200 | 手机 | ||
sushehao | varchar | 200 | 宿舍号 | ||
weixiuzhanghao | varchar | 200 | 维修账号 | ||
weixiuxingming | varchar | 200 | 维修姓名 | ||
lianxidianhua | varchar | 200 | 联系电话 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 | ||
sfsh | varchar | 200 | 是否审核 | 待审核 | |
shhf | longtext | 4294967295 | 审核回复 |
表4-20:寻物启事
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
biaoti | varchar | 200 | 标题 | ||
wupinmingcheng | varchar | 200 | 物品名称 | ||
wupintupian | longtext | 4294967295 | 物品图片 | ||
diushididian | varchar | 200 | 丢失地点 | ||
diushishijian | datetime | 丢失时间 | |||
xiangximiaoshu | longtext | 4294967295 | 详细描述 | ||
fabushijian | datetime | 发布时间 | |||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
shouji | varchar | 200 | 手机 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 | ||
sfsh | varchar | 200 | 是否审核 | 待审核 | |
shhf | longtext | 4294967295 | 审核回复 | ||
clicktime | datetime | 最近点击时间 | |||
clicknum | int | 点击次数 | 0 |
表4-21:晚归未归登记
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
dengjibianhao | varchar | 200 | 登记编号 | ||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
sushehao | varchar | 200 | 宿舍号 | ||
chuangweihao | varchar | 200 | 床位号 | ||
leixing | varchar | 200 | 类型 | ||
dengjiriqi | datetime | 登记日期 | |||
beizhu | longtext | 4294967295 | 备注 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 |
表4-22:教师进出宿舍
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
jiaoshizhanghao | varchar | 200 | 教师账号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
sushehao | varchar | 200 | 宿舍号 | ||
chuangweihao | varchar | 200 | 床位号 | ||
leixing | varchar | 200 | 类型 | ||
dengjishijian | datetime | 登记时间 | |||
beizhu | varchar | 200 | 备注 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 |
表4-23:宿舍卫生
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
sushehao | varchar | 200 | 宿舍号 | ||
weishengqingkuang | varchar | 200 | 卫生情况 | ||
pingfen | float | 评分 | |||
fengmian | longtext | 4294967295 | 封面 | ||
dengjiriqi | date | 登记日期 | |||
xiangqing | longtext | 4294967295 | 详情 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 | ||
clicktime | datetime | 最近点击时间 | |||
clicknum | int | 点击次数 | 0 |
表4-24:环境信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
loudonghao | varchar | 200 | 楼栋号 | ||
loudao | varchar | 200 | 楼道 | ||
sushehao | varchar | 200 | 宿舍号 | ||
shidu | float | 湿度 | |||
wendu | float | 温度 | |||
dengjiriqi | date | 登记日期 | |||
xiangqing | longtext | 4294967295 | 详情 | ||
userid | bigint | 用户id |
表4-25:收藏表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
refid | bigint | 商品id | |||
tablename | varchar | 200 | 表名 | ||
name | varchar | 200 | 名称 | ||
picture | longtext | 4294967295 | 图片 | ||
type | varchar | 200 | 类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注) | 1 | |
inteltype | varchar | 200 | 推荐类型 | ||
remark | varchar | 200 | 备注 |
表4-26:学生请假
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
leixing | varchar | 200 | 类型 | ||
kaishishijian | datetime | 开始时间 | |||
qingjiatianshu | varchar | 200 | 请假天数 | ||
qingjiayuanyin | longtext | 4294967295 | 请假原因 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 | ||
sfsh | varchar | 200 | 是否审核 | 待审核 | |
shhf | longtext | 4294967295 | 审核回复 |
表4-27:公共物品
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
wupinmingcheng | varchar | 200 | 物品名称 | ||
wupinfenlei | varchar | 200 | 物品分类 | ||
tupian | longtext | 4294967295 | 图片 | ||
guige | varchar | 200 | 规格 | ||
zhuangtai | varchar | 200 | 状态 | ||
dengjiriqi | date | 登记日期 | |||
shiyongshuoming | longtext | 4294967295 | 使用说明 | ||
wupinxiangqing | longtext | 4294967295 | 物品详情 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 | ||
clicktime | datetime | 最近点击时间 | |||
clicknum | int | 点击次数 | 0 |
表4-28:水电信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
sushehao | varchar | 200 | 宿舍号 | ||
chuangweihao | varchar | 200 | 床位号 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 | ||
leixing | varchar | 200 | 类型 | ||
dushu | float | 度数 | |||
dengjishijian | datetime | 登记时间 | |||
tixingneirong | longtext | 4294967295 | 提醒内容 |
表4-29:更换宿舍
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
yuansushehao | varchar | 200 | 原宿舍号 | ||
xinsushehao | varchar | 200 | 新宿舍号 | ||
genghuanriqi | date | 更换日期 | |||
genghuanyuanyin | longtext | 4294967295 | 更换原因 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 |
表4-30:失物招领
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
biaoti | varchar | 200 | 标题 | ||
wupinmingcheng | varchar | 200 | 物品名称 | ||
wupintupian | longtext | 4294967295 | 物品图片 | ||
shidedizhi | varchar | 200 | 拾得地址 | ||
shideshijian | datetime | 拾得时间 | |||
renlingdizhi | varchar | 200 | 认领地址 | ||
fabushijian | datetime | 发布时间 | |||
wupinmiaoshu | longtext | 4294967295 | 物品描述 | ||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
shouji | varchar | 200 | 手机 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 | ||
sfsh | varchar | 200 | 是否审核 | 待审核 | |
shhf | longtext | 4294967295 | 审核回复 | ||
clicktime | datetime | 最近点击时间 | |||
clicknum | int | 点击次数 | 0 |
表4-31:学生评价
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
pingjiabianhao | varchar | 200 | 评价编号 | ||
weixiuzhanghao | varchar | 200 | 维修账号 | ||
weixiuxingming | varchar | 200 | 维修姓名 | ||
fuwupingjia | varchar | 200 | 服务评价 | ||
manyichengdu | varchar | 200 | 满意程度 | ||
pingjiashijian | datetime | 评价时间 | |||
pingyu | longtext | 4294967295 | 评语 | ||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
shouji | varchar | 200 | 手机 | ||
sushehao | varchar | 200 | 宿舍号 | ||
chuangweihao | varchar | 200 | 床位号 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 |
表4-32:更换申请
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
shenqingbianhao | varchar | 200 | 申请编号 | ||
yuansushehao | varchar | 200 | 原宿舍号 | ||
xinsushehao | varchar | 200 | 新宿舍号 | ||
genghuanyuanyin | longtext | 4294967295 | 更换原因 | ||
shenqingshijian | datetime | 申请时间 | |||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
shouji | varchar | 200 | 手机 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 | ||
sfsh | varchar | 200 | 是否审核 | 待审核 | |
shhf | longtext | 4294967295 | 审核回复 |
表4-33:申请信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
zhanghao | varchar | 200 | 账号 | ||
xingming | varchar | 200 | 姓名 | ||
shouji | varchar | 200 | 手机 | ||
jinlaishijian | datetime | 进来时间 | |||
tingliushijian | varchar | 200 | 停留时间 | ||
shenqingshijian | datetime | 申请时间 | |||
shenqingyuanyin | longtext | 4294967295 | 申请原因 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 | ||
sfsh | varchar | 200 | 是否审核 | 待审核 | |
shhf | longtext | 4294967295 | 审核回复 |
表4-34:学生
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xuehao | varchar | 200 | 学号 | ||
mima | varchar | 200 | 密码 | ||
xingming | varchar | 200 | 姓名 | ||
nianling | int | 年龄 | |||
xingbie | varchar | 200 | 性别 | ||
shouji | varchar | 200 | 手机 | ||
sushehao | varchar | 200 | 宿舍号 | ||
chuangweihao | varchar | 200 | 床位号 | ||
touxiang | longtext | 4294967295 | 头像 | ||
jiaoshizhanghao | varchar | 200 | 教师账号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 |
表4-35:维修人员
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
weixiuzhanghao | varchar | 200 | 维修账号 | ||
mima | varchar | 200 | 密码 | ||
weixiuxingming | varchar | 200 | 维修姓名 | ||
nianling | int | 年龄 | |||
xingbie | varchar | 200 | 性别 | ||
lianxidianhua | varchar | 200 | 联系电话 | ||
touxiang | longtext | 4294967295 | 头像 |
表4-36:学生信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
nianling | varchar | 200 | 年龄 | ||
xingbie | varchar | 200 | 性别 | ||
shouji | varchar | 200 | 手机 | ||
sushehao | varchar | 200 | 宿舍号 | ||
chuangweihao | varchar | 200 | 床位号 | ||
jiaoshizhanghao | varchar | 200 | 教师账号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
shangcilikaisusheshijian | datetime | 上次离开宿舍时间 | |||
shangcifanhuisusheshijian | datetime | 上次返回宿舍时间 | |||
beizhu | varchar | 200 | 备注 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 |
表4-37:教师
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
jiaoshizhanghao | varchar | 200 | 教师账号 | ||
mima | varchar | 200 | 密码 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
nianling | int | 年龄 | |||
xingbie | varchar | 200 | 性别 | ||
lianxidianhua | varchar | 200 | 联系电话 | ||
sushehao | varchar | 200 | 宿舍号 | ||
chuangweihao | varchar | 200 | 床位号 | ||
dangqianzhiwei | varchar | 200 | 当前职位 | ||
zhuanyemingcheng | varchar | 200 | 专业名称 | ||
touxiang | longtext | 4294967295 | 头像 |
表4-38:外来人员
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
zhanghao | varchar | 200 | 账号 | ||
mima | varchar | 200 | 密码 | ||
xingming | varchar | 200 | 姓名 | ||
nianling | int | 年龄 | |||
xingbie | varchar | 200 | 性别 | ||
shouji | varchar | 200 | 手机 | ||
touxiang | longtext | 4294967295 | 头像 |
表4-39:宿管
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
mima | varchar | 200 | 密码 | ||
suguanxingming | varchar | 200 | 宿管姓名 | ||
nianling | int | 年龄 | |||
xingbie | varchar | 200 | 性别 | ||
lianxidianhua | varchar | 200 | 联系电话 | ||
loudonghao | varchar | 200 | 楼栋号 | ||
suguanzhiji | varchar | 200 | 宿管职级 | ||
touxiang | longtext | 4294967295 | 头像 |
表4-40:学生物品
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
wupinmingcheng | varchar | 200 | 物品名称 | ||
wupinleixing | varchar | 200 | 物品类型 | ||
guige | varchar | 200 | 规格 | ||
shuliang | int | 数量 | |||
dengjiriqi | date | 登记日期 | |||
xiangqing | longtext | 4294967295 | 详情 | ||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
sushehao | varchar | 200 | 宿舍号 | ||
chuangweihao | varchar | 200 | 床位号 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 |
表4-41:学生签到
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xuehao | varchar | 200 | 学号 | ||
xingming | varchar | 200 | 姓名 | ||
sushehao | varchar | 200 | 宿舍号 | ||
chuangweihao | varchar | 200 | 床位号 | ||
qiandaoshijian | datetime | 签到时间 | |||
beizhu | varchar | 200 | 备注 | ||
jiaoshizhanghao | varchar | 200 | 教师账号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
suguanzhanghao | varchar | 200 | 宿管账号 | ||
suguanxingming | varchar | 200 | 宿管姓名 | ||
longitude | float | 经度 | |||
latitude | float | 纬度 | |||
fulladdress | varchar | 200 | 地址 |
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.2.1管理员模块实现
管理员进入主页面,主要功能包括对个人中心、学生管理、教师管理、宿管管理、外来人员管理、维修人员管理、学生信息管理、学生签到管理、学生物品管理、口令码管理、学生进出宿舍管理、教师进出宿舍管理、申请信息管理、导员确认管理、宿舍物品管理、公告物品管理、预约使用管理、取消预约管理、水电信息管理、宿舍卫生管理、晚归未归登记管理、失物招领管理、寻物启事管理、违纪登记管理、环境信息管理、通知公告管理、学生报修管理、报修接单管理、报修订单管理、学生评价管理、排行榜管理、交流论坛、留言板管理、系统管理等进行操作。管理员主界面如图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-14所示:
图5-14交流论坛界面
管理员点击留言板管理,在留言板页面输入用户名可以查询或删除留言板列表,并根据需要对留言板详情信息进行查看详情、修改、回复或删除操作;如图5-15所示:
图5-15留言板管理界面
管理员点击系统管理。在系统简介页面输入标题进行查询系统简介列表,并根据需要对系统简介详情信息进行查看详情或修改等操作;还可以对轮播图管理进行操作。如图5-16所示:
图5-16系统管理界面
5.2.2宿管模块实现
宿管进入主页面,主要功能包括对个人中心、学生管理、外来人员管理、维修人员管理、学生信息管理、学生签到管理、学生物品管理、口令码管理、学生进出宿舍管理、教师进出宿舍管理、申请信息管理、导员确认管理、宿舍物品管理、公告物品管理、预约使用管理、取消预约管理、水电信息管理、宿舍卫生管理、晚归未归登记管理、失物招领管理、寻物启事管理、违纪登记管理、环境信息管理、通知公告管理、学生报修管理、报修接单管理、报修订单管理、学生评价管理、排行榜管理等功能进行操作。宿管主界面如图5-17所示:
图5-17 宿管主界面
宿管点击学生管理。在学生页面输入学号、姓名、宿舍号和床位号可以查询、新增或删除学生列表,并根据需要对学生详情信息进行查看详情、修改或删除操作。如图5-18所示:
图5-18学生管理界面
宿管点击口令码管理。在口令码页面输入标题、姓名和宿管姓名可以查询、新增或删除口令码列表,并根据需要对口令码详情信息进行查看详情、修改或删除操作。如图5-19所示:
图5-19口令码管理界面
宿管点击宿舍物品管理。在宿舍物品页面输入物品名称、当前状态、使用状态和当前使用人可以查询、新增或删除宿舍物品列表,并根据需要对宿舍物品详情信息进行查看详情、修改或删除操作。如图5-20所示:
图5-20宿舍物品管理界面
5.2.3学生模块实现
学生进入主页面,主要功能包括对个人中心、学生信息管理、学生签到管理、学生物品管理、口令码管理、学生进出宿舍管理、预约使用管理、取消预约管理、水电信息管理、晚归未归登记管理、失物招领管理、寻物启事管理、违纪登记管理、学生报修管理、报修接单管理、报修订单管理、学生评价管理等功能进行操作。学生主界面如图5-21所示:
图5-21学生主界面
学生点击学生进出宿舍管理。在学生进出宿舍页面输入学号、姓名、宿舍号和床位号可以查询、新增或删除学生进出宿舍列表,并根据需要对学生进出宿舍详情信息进行查看详情、修改或删除操作。如图5-22所示:
图5-22学生进出宿舍管理界面
学生点击失物招领管理。在失物招领页面输入物品名称、拾得地址、姓名和是否通过可以查询、新增或删除失物招领列表,并根据需要对失物招领详情信息进行查看详情、修改或删除操作。如图5-23所示:
图5-23失物招领管理界面
5.2.4教师模块实现
教师进入主页面,主要功能包括对人中心、学生管理、学生信息管理、教师进出宿舍管理、导员确认管理等功能进行操作。教师主界面如图5-24所示:
图5-24教师主界面
教师点击教师进出宿舍管理。在教师进出宿舍页面输入教师姓名、宿舍号、床位号和类型可以查询、新增或删除教师进出宿舍列表,并根据需要对教师进出宿舍详情信息进行查看详情、修改或删除操作。如图5-25所示:
图5-25教师进出宿舍管理界面
5.2.5外来人员模块实现
外来人员进入主页面,主要功能包括对个人中心、申请信息管理、导员确认管理等功能进行操作。外来人员主界面如图5-26所示:
图5-26外来人员主界面
外来人员点击申请信息管理。在申请信息页面输入姓名和是否通过可以查询、新增或删除申请信息列表,并根据需要对申请信息详情信息进行查看详情、修改或删除操作。如图5-27所示:
图5-27申请信息管理界面
5.2.6维修人员模块实现
维修人员进入主页面,主要功能包括对个人中心、学生报修管理、报修接单管理、报修订单管理、学生评价管理等功能进行操作。维修人员主界面如图5-28所示:
图5-28维修人员主界面
维修人员点击学生报修管理。在学生报修页面输入状态、姓名、宿舍号、床位号和是否通过可以查询学生报修列表,并根据需要对学生报修详情信息进行查看详情或报修接单操作。如图5-29所示:
图5-29学生报修管理界面
YuyueshiyongServiceImpl.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.YuyueshiyongDao;
import com.entity.YuyueshiyongEntity;
import com.service.YuyueshiyongService;
import com.entity.vo.YuyueshiyongVO;
import com.entity.view.YuyueshiyongView;
@Service("yuyueshiyongService")
public class YuyueshiyongServiceImpl extends ServiceImpl<YuyueshiyongDao, YuyueshiyongEntity> implements YuyueshiyongService {
@Override
public PageUtils queryPage(Map<String, Object> params) {
Page<YuyueshiyongEntity> page = this.selectPage(
new Query<YuyueshiyongEntity>(params).getPage(),
new EntityWrapper<YuyueshiyongEntity>()
);
return new PageUtils(page);
}
@Override
public PageUtils queryPage(Map<String, Object> params, Wrapper<YuyueshiyongEntity> wrapper) {
Page<YuyueshiyongView> page =new Query<YuyueshiyongView>(params).getPage();
page.setRecords(baseMapper.selectListView(page,wrapper));
PageUtils pageUtil = new PageUtils(page);
return pageUtil;
}
@Override
public List<YuyueshiyongVO> selectListVO(Wrapper<YuyueshiyongEntity> wrapper) {
return baseMapper.selectListVO(wrapper);
}
@Override
public YuyueshiyongVO selectVO(Wrapper<YuyueshiyongEntity> wrapper) {
return baseMapper.selectVO(wrapper);
}
@Override
public List<YuyueshiyongView> selectListView(Wrapper<YuyueshiyongEntity> wrapper) {
return baseMapper.selectListView(wrapper);
}
@Override
public YuyueshiyongView selectView(Wrapper<YuyueshiyongEntity> wrapper) {
return baseMapper.selectView(wrapper);
}
}
DaoyuanquerenController.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.DaoyuanquerenEntity;
import com.entity.view.DaoyuanquerenView;
import com.service.DaoyuanquerenService;
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-06-08 12:49:58
*/
@RestController
@RequestMapping("/daoyuanqueren")
public class DaoyuanquerenController {
@Autowired
private DaoyuanquerenService daoyuanquerenService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,DaoyuanquerenEntity daoyuanqueren,
HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("wailairenyuan")) {
daoyuanqueren.setZhanghao((String)request.getSession().getAttribute("username"));
}
if(tableName.equals("suguan")) {
daoyuanqueren.setSuguanzhanghao((String)request.getSession().getAttribute("username"));
}
if(tableName.equals("jiaoshi")) {
daoyuanqueren.setJiaoshizhanghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<DaoyuanquerenEntity> ew = new EntityWrapper<DaoyuanquerenEntity>();
PageUtils page = daoyuanquerenService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, daoyuanqueren), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,DaoyuanquerenEntity daoyuanqueren,
HttpServletRequest request){
EntityWrapper<DaoyuanquerenEntity> ew = new EntityWrapper<DaoyuanquerenEntity>();
PageUtils page = daoyuanquerenService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, daoyuanqueren), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( DaoyuanquerenEntity daoyuanqueren){
EntityWrapper<DaoyuanquerenEntity> ew = new EntityWrapper<DaoyuanquerenEntity>();
ew.allEq(MPUtil.allEQMapPre( daoyuanqueren, "daoyuanqueren"));
return R.ok().put("data", daoyuanquerenService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(DaoyuanquerenEntity daoyuanqueren){
EntityWrapper< DaoyuanquerenEntity> ew = new EntityWrapper< DaoyuanquerenEntity>();
ew.allEq(MPUtil.allEQMapPre( daoyuanqueren, "daoyuanqueren"));
DaoyuanquerenView daoyuanquerenView = daoyuanquerenService.selectView(ew);
return R.ok("查询导员确认成功").put("data", daoyuanquerenView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
DaoyuanquerenEntity daoyuanqueren = daoyuanquerenService.selectById(id);
return R.ok().put("data", daoyuanqueren);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
DaoyuanquerenEntity daoyuanqueren = daoyuanquerenService.selectById(id);
return R.ok().put("data", daoyuanqueren);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody DaoyuanquerenEntity daoyuanqueren, HttpServletRequest request){
daoyuanqueren.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(daoyuanqueren);
daoyuanquerenService.insert(daoyuanqueren);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody DaoyuanquerenEntity daoyuanqueren, HttpServletRequest request){
daoyuanqueren.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(daoyuanqueren);
daoyuanquerenService.insert(daoyuanqueren);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
@Transactional
public R update(@RequestBody DaoyuanquerenEntity daoyuanqueren, HttpServletRequest request){
//ValidatorUtils.validateEntity(daoyuanqueren);
daoyuanquerenService.updateById(daoyuanqueren);//全部更新
return R.ok();
}
/**
* 审核
*/
@RequestMapping("/shBatch")
@Transactional
public R update(@RequestBody Long[] ids, @RequestParam String sfsh, @RequestParam String shhf){
List<DaoyuanquerenEntity> list = new ArrayList<DaoyuanquerenEntity>();
for(Long id : ids) {
DaoyuanquerenEntity daoyuanqueren = daoyuanquerenService.selectById(id);
daoyuanqueren.setSfsh(sfsh);
daoyuanqueren.setShhf(shhf);
list.add(daoyuanqueren);
}
daoyuanquerenService.updateBatchById(list);
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
daoyuanquerenService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
KoulingmaController.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.KoulingmaEntity;
import com.entity.view.KoulingmaView;
import com.service.KoulingmaService;
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-06-08 12:49:58
*/
@RestController
@RequestMapping("/koulingma")
public class KoulingmaController {
@Autowired
private KoulingmaService koulingmaService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,KoulingmaEntity koulingma,
HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("xuesheng")) {
koulingma.setXuehao((String)request.getSession().getAttribute("username"));
}
if(tableName.equals("suguan")) {
koulingma.setSuguanzhanghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<KoulingmaEntity> ew = new EntityWrapper<KoulingmaEntity>();
PageUtils page = koulingmaService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, koulingma), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,KoulingmaEntity koulingma,
HttpServletRequest request){
EntityWrapper<KoulingmaEntity> ew = new EntityWrapper<KoulingmaEntity>();
PageUtils page = koulingmaService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, koulingma), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( KoulingmaEntity koulingma){
EntityWrapper<KoulingmaEntity> ew = new EntityWrapper<KoulingmaEntity>();
ew.allEq(MPUtil.allEQMapPre( koulingma, "koulingma"));
return R.ok().put("data", koulingmaService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(KoulingmaEntity koulingma){
EntityWrapper< KoulingmaEntity> ew = new EntityWrapper< KoulingmaEntity>();
ew.allEq(MPUtil.allEQMapPre( koulingma, "koulingma"));
KoulingmaView koulingmaView = koulingmaService.selectView(ew);
return R.ok("查询口令码成功").put("data", koulingmaView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
KoulingmaEntity koulingma = koulingmaService.selectById(id);
return R.ok().put("data", koulingma);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
KoulingmaEntity koulingma = koulingmaService.selectById(id);
return R.ok().put("data", koulingma);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody KoulingmaEntity koulingma, HttpServletRequest request){
koulingma.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(koulingma);
koulingmaService.insert(koulingma);
return R.ok();
}
/**
* 前端保存
*/
@IgnoreAuth
@RequestMapping("/add")
public R add(@RequestBody KoulingmaEntity koulingma, HttpServletRequest request){
koulingma.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(koulingma);
koulingmaService.insert(koulingma);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
@Transactional
public R update(@RequestBody KoulingmaEntity koulingma, HttpServletRequest request){
//ValidatorUtils.validateEntity(koulingma);
koulingmaService.updateById(koulingma);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
koulingmaService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
canvas-bg-4.js
export default function canvasBg() {
var num = 200;
var w = window.innerWidth;
var h = window.innerHeight;
var max = 100;
var _x = 0;
var _y = 0;
var _z = 150;
var dtr = function(d) {
return d * Math.PI / 180;
};
var canvas = document.getElementById("canvas");
var rnd = function() {
return Math.sin(Math.floor(Math.random() * 360) * Math.PI / 180);
};
var dist = function(p1, p2, p3) {
return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2) + Math.pow(p2.z - p1.z, 2));
};
var cam = {
obj: {
x: _x,
y: _y,
z: _z
},
dest: {
x: 0,
y: 0,
z: 1
},
dist: {
x: 0,
y: 0,
z: 200
},
ang: {
cplane: 0,
splane: 0,
ctheta: 0,
stheta: 0
},
zoom: 1,
disp: {
x: w / 2,
y: h / 2,
z: 0
},
upd: function() {
cam.dist.x = cam.dest.x - cam.obj.x;
cam.dist.y = cam.dest.y - cam.obj.y;
cam.dist.z = cam.dest.z - cam.obj.z;
cam.ang.cplane = -cam.dist.z / Math.sqrt(cam.dist.x * cam.dist.x + cam.dist.z * cam.dist.z);
cam.ang.splane = cam.dist.x / Math.sqrt(cam.dist.x * cam.dist.x + cam.dist.z * cam.dist.z);
cam.ang.ctheta = Math.sqrt(cam.dist.x * cam.dist.x + cam.dist.z * cam.dist.z) / Math.sqrt(cam.dist.x *
cam.dist.x + cam.dist.y * cam.dist.y + cam.dist.z * cam.dist.z);
cam.ang.stheta = -cam.dist.y / Math.sqrt(cam.dist.x * cam.dist.x + cam.dist.y * cam.dist.y + cam.dist
.z * cam.dist.z);
}
};
var trans = {
parts: {
sz: function(p, sz) {
return {
x: p.x * sz.x,
y: p.y * sz.y,
z: p.z * sz.z
};
},
rot: {
x: function(p, rot) {
return {
x: p.x,
y: p.y * Math.cos(dtr(rot.x)) - p.z * Math.sin(dtr(rot.x)),
z: p.y * Math.sin(dtr(rot.x)) + p.z * Math.cos(dtr(rot.x))
};
},
y: function(p, rot) {
return {
x: p.x * Math.cos(dtr(rot.y)) + p.z * Math.sin(dtr(rot.y)),
y: p.y,
z: -p.x * Math.sin(dtr(rot.y)) + p.z * Math.cos(dtr(rot.y))
};
},
z: function(p, rot) {
return {
x: p.x * Math.cos(dtr(rot.z)) - p.y * Math.sin(dtr(rot.z)),
y: p.x * Math.sin(dtr(rot.z)) + p.y * Math.cos(dtr(rot.z)),
z: p.z
};
}
},
pos: function(p, pos) {
return {
x: p.x + pos.x,
y: p.y + pos.y,
z: p.z + pos.z
};
}
},
pov: {
plane: function(p) {
return {
x: p.x * cam.ang.cplane + p.z * cam.ang.splane,
y: p.y,
z: p.x * -cam.ang.splane + p.z * cam.ang.cplane
};
},
theta: function(p) {
return {
x: p.x,
y: p.y * cam.ang.ctheta - p.z * cam.ang.stheta,
z: p.y * cam.ang.stheta + p.z * cam.ang.ctheta
};
},
set: function(p) {
return {
x: p.x - cam.obj.x,
y: p.y - cam.obj.y,
z: p.z - cam.obj.z
};
}
},
persp: function(p) {
return {
x: p.x * cam.dist.z / p.z * cam.zoom,
y: p.y * cam.dist.z / p.z * cam.zoom,
z: p.z * cam.zoom,
p: cam.dist.z / p.z
};
},
disp: function(p, disp) {
return {
x: p.x + disp.x,
y: -p.y + disp.y,
z: p.z + disp.z,
p: p.p
};
},
steps: function(_obj_, sz, rot, pos, disp) {
var _args = trans.parts.sz(_obj_, sz);
_args = trans.parts.rot.x(_args, rot);
_args = trans.parts.rot.y(_args, rot);
_args = trans.parts.rot.z(_args, rot);
_args = trans.parts.pos(_args, pos);
_args = trans.pov.plane(_args);
_args = trans.pov.theta(_args);
_args = trans.pov.set(_args);
_args = trans.persp(_args);
_args = trans.disp(_args, disp);
return _args;
}
};
var threeD = function(param) {
this.transIn = {};
this.transOut = {};
this.transIn.vtx = (param.vtx);
this.transIn.sz = (param.sz);
this.transIn.rot = (param.rot);
this.transIn.pos = (param.pos);
};
threeD.prototype.vupd = function() {
this.transOut = trans.steps(
this.transIn.vtx,
this.transIn.sz,
this.transIn.rot,
this.transIn.pos,
cam.disp
);
};
var Build = function() {
this.vel = 0.04;
this.lim = 360;
this.diff = 200;
this.initPos = 100;
this.toX = _x;
this.toY = _y;
this.canvas = canvas;
this.go();
};
Build.prototype.go = function() {
this.canvas.width = window.innerWidth;
this.canvas.height = window.innerHeight;
this.$ = this.canvas.getContext("2d");
this.$.globalCompositeOperation = 'source-over';
this.varr = [];
this.dist = [];
this.calc = [];
for (var i = 0, len = num; i < len; i++) {
this.add();
}
this.rotObj = {
x: 0,
y: 0,
z: 0
};
this.objSz = {
x: w / 5,
y: h / 5,
z: w / 5
};
};
Build.prototype.add = function() {
this.varr.push(new threeD({
vtx: {
x: rnd(),
y: rnd(),
z: rnd()
},
sz: {
x: 0,
y: 0,
z: 0
},
rot: {
x: 20,
y: -20,
z: 0
},
pos: {
x: this.diff * Math.sin(360 * Math.random() * Math.PI / 180),
y: this.diff * Math.sin(360 * Math.random() * Math.PI / 180),
z: this.diff * Math.sin(360 * Math.random() * Math.PI / 180)
}
}));
this.calc.push({
x: 360 * Math.random(),
y: 360 * Math.random(),
z: 360 * Math.random()
});
};
Build.prototype.upd = function() {
cam.obj.x += (this.toX - cam.obj.x) * 0.05;
cam.obj.y += (this.toY - cam.obj.y) * 0.05;
};
Build.prototype.draw = function() {
this.$.clearRect(0, 0, this.canvas.width, this.canvas.height);
cam.upd();
this.rotObj.x += 0.1;
this.rotObj.y += 0.1;
this.rotObj.z += 0.1;
for (var i = 0; i < this.varr.length; i++) {
for (var val in this.calc[i]) {
if (this.calc[i].hasOwnProperty(val)) {
this.calc[i][val] += this.vel;
if (this.calc[i][val] > this.lim) this.calc[i][val] = 0;
}
}
this.varr[i].transIn.pos = {
x: this.diff * Math.cos(this.calc[i].x * Math.PI / 180),
y: this.diff * Math.sin(this.calc[i].y * Math.PI / 180),
z: this.diff * Math.sin(this.calc[i].z * Math.PI / 180)
};
this.varr[i].transIn.rot = this.rotObj;
this.varr[i].transIn.sz = this.objSz;
this.varr[i].vupd();
if (this.varr[i].transOut.p < 0) continue;
var g = this.$.createRadialGradient(this.varr[i].transOut.x, this.varr[i].transOut.y, this.varr[i]
.transOut.p, this.varr[i].transOut.x, this.varr[i].transOut.y, this.varr[i].transOut.p * 2);
this.$.globalCompositeOperation = 'lighter';
g.addColorStop(0, 'hsla(255, 255%, 255%, 1)');
g.addColorStop(.6, 'hsla(' + (i + 2) + ',85%, 40%,1)');
g.addColorStop(1, 'hsla(' + (i) + ',85%, 40%,.5)');
// console.log(this.varr[i].transOut.x, this.varr[i].transOut.y, this.varr[i].transOut.p * 2, 0, Math.PI * 2, false)
this.$.fillStyle = g;
this.$.beginPath();
this.$.arc(this.varr[i].transOut.x, this.varr[i].transOut.y, this.varr[i].transOut.p * 2, 0, Math
.PI * 2, false);
this.$.fill();
this.$.closePath();
}
};
Build.prototype.anim = function() {
window.requestAnimationFrame = (function() {
return window.requestAnimationFrame ||
function(callback, element) {
window.setTimeout(callback, 1000 / 60);
};
})();
var anim = function() {
this.upd();
this.draw();
window.requestAnimationFrame(anim);
}.bind(this);
window.requestAnimationFrame(anim);
};
Build.prototype.run = function() {
this.anim();
window.addEventListener('mousemove', function(e) {
this.toX = (e.clientX - this.canvas.width / 2) * -0.8;
this.toY = (e.clientY - this.canvas.height / 2) * 0.8;
}.bind(this));
window.addEventListener('touchmove', function(e) {
e.preventDefault();
this.toX = (e.touches[0].clientX - this.canvas.width / 2) * -0.8;
this.toY = (e.touches[0].clientY - this.canvas.height / 2) * 0.8;
}.bind(this));
window.addEventListener('mousedown', function(e) {
for (var i = 0; i < 100; i++) {
this.add();
}
}.bind(this));
window.addEventListener('touchstart', function(e) {
e.preventDefault();
for (var i = 0; i < 100; i++) {
this.add();
}
}.bind(this));
};
var app = new Build();
app.run();
window.addEventListener('resize', function() {
// canvas.width = w = window.innerWidth;
// canvas.height = h = window.innerHeight;
var app = new Build();
app.run();
});
}