校友录网站。作为毕业设计,为母校设计校友交流平台。基于javaWeb,由Maven构建管理,采用Spring+SpringMVC+MyBatis框架,用EhCache做数据缓存。门户网站采用BootStrap设计界面,后台管理网站用AmazeUI设计界面。
项目地址:https://github.com/blackist/ar
摘要
校友作为高校的一种重要资源,在促进高校专业教学改革、募集高校筹资办学途径、促进校企合作、加强毕业生感情交流、提升大学生就业质量等方面发挥着重要作用。然而目前我校并没有一个系统可以追溯毕业生的情况。因此,校友们需要一个平台,来了解母校的新闻,校友们的近况,同时也能够让院校充分了解毕业生的就业状况。
为了给校友们的提供一个了解母校动态的平台,本设计首先确定以毕业生以及高校为主要用户对象,采用目前业内流行的SpringMVC+Spring+MyBatis轻量级JavaEE框架,用Maven构建和管理,开发基于B/S结构的校友录系统。其次,通过系统建模对系统的各项功能进行了分析,确定了校友录系统的功能模块,并阐述了数据库的设计过程。再次对系统的功能模块进行了详细的设计,并对系统功能模块的界面进行了展示。最后对论文所阐述的内容进行总结,并分析了校友录系统对毕业生和院校带来的便利。
校友录系统是在对师生、院校进行充分的调研分析之后设计的,校友更多关注的是院校新闻、班级动态、校友信息以及社团学生会等团体,院校更多关注的是毕业生的就业情况、对本校毕业生招聘信息的推送。为满足院校和毕业生的需求,校友录系统设计了新闻中心模块、班记录模块、校友组织模块、校友论坛模块、职业招聘模块、校园服务模块。
校友录系统不仅能够很好地满足校友了解母校、校友动态的需求,也提供职业招聘、校园服务功能,使院校能够更好地了解毕业生就业情况、为毕业生提供就业服务。
关键词 毕业;校友录;就业;JavaEE
Abstract
Youth is the best time in life, and this period of youth spent in the university will undoubtedly become the most valuable memories of our lives.Although time goes by fast, university life, the impressive community, the memorable alumni, the unforgettable teaching building, will be a subsequent stream of water in the memories. After graduation, we left school, along with the alumni miss and the alma mater's attention. Thus, alumni desire for a platform to follow the news of alma mater, the status of alumni, and the dynamics of the group that they have joined.
In order to provide a sustenance for alumni's emotions, this design, taking graduates and colleges as the main user object, using the current industry-popular SpringMVC + Spring + MyBatis lightweight JavaEE framework, develops the computer-based web pages Version of the simple and elegant Alumni Record System ( AR), built and managed by Maven.
AR is designed after a full investigation and analysis is conducted in the teachers, students and institutions. Alumni pay more attention to the school news, class dynamics, alumni information, community students and other groups. Institutions concern more about the graduates’ employment situation, new enrollment situation and delivery of recruit information about school graduates. AR designs the news center module, class record module, alumni organization module and alumni forum module. And album function is added into the class record and alumni organization, which aims to meet the needs of alumni better. At the same time, AR includes professional recruitment module, campus service module, so that institutions can understand the employment situation of graduates and help graduates better.
AR system not only can meet alumni to understand the alma mater, alumni dynamic needs, but also provide professional recruitment, campus service function, so that institutions can better understand the employment situation of graduates, to provide employment services for graduates.
Keywords graduation alumni-record employment javaee
目 录
1 绪论
1.1 课题背景
青春是人生最美好的时光,而在大学度过的这一段青春岁月无疑将成为我们人生中最为宝贵的回忆。大学生活如白驹过隙匆匆流逝,却又将在而后的回忆里细水长流,忘不掉的社团,忘不掉的校友, 忘不掉的教学楼。毕业后,我们离开学校,一同带走的还有对校友的思念和对母校的关注。因此,校友们需要一个平台,来了解母校的新闻,校友们的近况,自己曾加入的团体的动态等等。
同时,院校对毕业生的培养与关怀也不会停止,院校希望了解毕业生的就业情况,并为毕业生提供就业服务,包括向毕业生投送招聘信息,接收毕业生所在单位的招聘信息。并且,校友作为高校的一种重要资源,在促进高校专业教学改革、募集高校筹资办学途径、促进校企合作、加强毕业生感情交流、提升大学生就业质量等方面发挥着重要作用。这也有助于改善教学方案,从而使本校毕业生更好地适应社会需求。
1.2 课题意义
中国同学录网的调查显示,用户最关心的是班级信息、班级留言、同学联系方式和同学照片等。不同用户对系统的需求不同,但是基本功能需求是一致的,包括:对班级管理,用户可以创建自己所在的班级;对班级留言的管理,用户可以在班级里查看、添加或修改留言;对班级通讯录的管理,用户可以查看班级成员的相关信息。
此系统还可以让校友了解母校的新闻,校友们的近况,自己曾加入的团体的动态,也提供了职业招聘功能,此功能是院校和毕业生交互的重要平台。院校可在职业招聘模块发布招聘信息,毕业生可以浏览招聘信息、投递简历、在线制作简历,毕业生可以发布自己所在单位的招聘信息,经管理员审核后发布到招聘广场,为其他毕业校友提供有力的就业帮助。校友的信息反馈在促进高校专业教学改革、募集高校筹资办学途径、促进校企合作、加强毕业生感情交流、提升大学生就业质量等方面发挥着重要作用。
1.3 课题内容
此系统是在对师生、院校进行充分的调研分析之后设计的,校友更多关注的是院校新闻、班级动态、校友信息以及社团学生会等团体,院校更多关注的是毕业生的就业情况、新生的招生情况以及对本校毕业生招聘信息的投送。此系统设计了新闻中心模块、班记录模块、校友组织模块、校友论坛模块,并在班记录和校友组织中加入相册功能,更好地满足校友的需求。同时,此系统包含职业招聘模块、校园服务模块,使院校更好地了解毕业生就业情况、为毕业生提供帮助。
1.4 论文的组织结构
论文主要内容包括五大部分,主要包括:
第一章 绪论。本章介绍了课题背景、课题意义以及本课题研究的主要内容。
第二章 系统需求分析。本章介绍了本系统的业务需求分析、系统功能分析以及相关业务的流程,开发过程中具体的开发环境、开发工具、相关技术。
第三章 系统总体设计。本章介绍了本系统的总体设计、系统各项功能的设计以及数据库的设计。
第四章 系统详细设计。本章介绍了系统的详细设计,包括各项系统功能的界面设计、代码逻辑设计以及实现。
2 系统需求分析
2.1 需求分析
中国同学录网的调查显示,用户最关心的是班级信息、班级留言、同学联系方式和同学照片等。不同用户对系统的需求不同,但是基本功能需求是一致的,包括:对班级管理,用户可以查询并加入自己所在的班级;对班级留言的管理,用户可以在班级里查看、添加或修改留言;对班级通讯录的管理,用户可以查看班级成员的相关信息。考虑到网络的现况和同学们以及毕业生跟踪调查的各种需求,系统应该具有各方面的交流能力和实时的用户反馈信息,能够实现留言、上传照片、评论等功能,同时具有方便的后台管理功能。同学录系统能够实现同学们生活中的交流,拥有自己的空间,与此同时,校方管理员能够了解毕业生的就业情况,并为毕业生提供就业服务,包括向毕业生投送招聘信息,接收毕业生所在单位的招聘信息。这也有助于改善教学方案,从而更好地让本校毕业生适应社会需求。系统主要功能有:
(1)系统用户的登录、注册。注册,由管理员将历届学生的学号、姓名导入数据库,学号作为用户的用户名;登录,输入用户输入用户名(学号)和密码登录系统;
(2)校园新闻发布中心功能:新闻发布,后台管理发布图文信息到门户网站,可置顶、编辑、删除新闻信息;新闻评论,用户可以对新闻信息发表评论,回复评论,动态加载地评论;新闻热度,用户喜欢可以新闻信息,系统根据信息的喜欢量、浏览流量推送新闻信息;
(3)同学交流的班级录功能。班级检索,按入学年份查询,按照班级名称、校友姓名查询,综合检索班级;班级排名,根据班级人数、活跃时间对班级进行热度排名;班级主页,每个班级有自己的空间,包括班级主页、班级动态、班级留言、班级成员、班级通讯录、班级相册、班级事务管理等;班级管理,班级的新增、管理员的设置由后台管理员完成;
(4) 校友互动的团体组织功能。校友总会,院校总会;院系分会,各学院的校友组织;社团分会,院校内的各种社团、协会的组织;学生协会,院校内的各学生协会组织;组织主页,个组织有自己的空间,包括组织主页、动态消息、留言、成员列表、通讯录、相册、活动、组织事务管理;
(5)校友话题参与的论坛功能。帖子浏览,按作者、主题检索帖子,查看详情,对帖子发表评论,回复评论、删除用户自己的评论,ajax动态加载评论;热帖推送,用户可以喜欢帖子,系统根据帖子的喜欢数量和浏览量进行推送;发布新帖,用户登录后可以发布帖子;贴子管理,管理员可审核、置顶、删除帖子;
(6) 职位招聘信息推送功能。招聘广场,浏览招聘信息,根据公司名称、职位名称、工作地点检索并查看招聘信息;简历投送,用户可以向喜欢的招聘信息投送个人简历;简历管理,用户可以新增简历、编辑简历、删除简历;单位管理,用户可以登记、编辑自己所在单位的信息;发布招聘,用户登记单位信息后可以发布招聘信息,由管理员审核后推送到招聘广场;
(7)招生就业的校园服务。校内服务,包括走进校园、校园行指南、学报编辑部、图书馆、档案馆、信息公开网等信息;招生就业服务,包括本科招生、成教招生、就业网、人才招聘、本站招聘等信息;
(8)用户个人管理中心。个人资料,基本资料、 详细资料、 工作信息、 头像设置;账户设置,密码修改、邮箱绑定;我的班级,用户加入的班级相关信息;我的论坛,用户早论坛的相关信息;我的招聘,用户发布的招聘信息,用户投递的简历信息,用户个人简历管理。
2.2 功能分析
基于对校友录系统的需求分析,校友录系统有新闻中心功能,管理员发布管理图文信息,用户可以浏览、评论新闻信息。校友录系统设置班记录功能,给班级同学提供班级空间,班级空间内有交流平台、班级相册,这是同学比较关心的功能。同时,校友录系统具有校友组织功能,校友可以加入校内的组织和团体,组织有自己的空间给组织成员提供交流平台。为给广大校友提供更大的交流平台,校友录系统提供校友论坛功能,校友可以浏览话题并参与讨论。为满足院校对招聘信息推送的需求,校友录系统应加入职业招聘模块,院校管理员发布招聘信息,用户浏览并投递简历,用户也可以发布自己所在单位的招聘信息,经管理员审核后发不到招聘广场。为更好地微笑有提供入学、就业服务,校友录系统设有校园服务,为校友提供校园指南和就业服务。最后,校友录系统为用户提供个人中心功能,对个人信息以及在站内的应用进行管理。
2.2.1 院校新闻发布功能
1.新闻中心用例分析
新闻中心包括新闻发布,后台管理发布图文信息到门户网站,可置顶、编辑、删除新闻信息。新闻评论,用户可以对新闻信息发表评论,回复评论,动态加载评论。新闻热度,用户喜欢可以新闻信息,系统根据信息的喜欢量、浏览流量推送新闻信息。新闻中心用例如图2-1所示。
图2-1 新闻中心用例图
2.2.2 班级管理功能
1、班记录用例分析
班记录包括班级检索,按入学年份查询,按照班级名称、校友姓名查询,综合检索班级;班级排名,根据班级人数、活跃时间对班级进行热度排名;班级主页,每个班级有自己的空间,包括班级主页、班级动态、班级留言、班级成员、班级通讯录、班级相册、班级事务管理等;班级管理,班级的新增、管理员的设置由后台管理员完成。班记录用例如图2-2所示。
图2-2 班记录用例图
2.2.3 院校组织管理功能
1.校友组织用例分析
校友组织包括:校友总会,院校总会;院系分会,各学院的校友组织;社团分会,院校内的各种社团、协会的组织;学生协会,院校内的各学生协会组织;组织主页,个组织有自己的空间,包括组织主页、动态消息、留言、成员列表、通讯录、相册、活动、组织事务管理;校友组织用例如图2-3所示。
图2-3 校友组织用例
2.2.4 校友论坛功能
1.校友论坛用例分析
校友论坛包括:帖子浏览,按作者、主题检索帖子,查看详情,对帖子发表评论,回复评论、删除用户自己的评论,ajax动态加载评论;热帖推送,用户可以喜欢帖子,系统根据帖子的喜欢数量和浏览量进行推送;发布新帖,用户登录后可以发布帖子;贴子管理,管理员可审核、置顶、删除帖子;校友论坛用例如图2-4所示。
图2-4 校友论坛用例图
2.2.5 院校职业招聘功能
1.业招聘用例分析
职位招聘包括:招聘广场。浏览招聘信息,根据公司名称、职位名称、工作地点检索并查看招聘信息;简历投送,用户可以向喜欢的招聘信息投送个人简历;简历管理,用户可以新增简历、编辑简历、删除简历;单位管理,用户可以登记、编辑自己所在单位的信息;发布招聘,用户登记单位信息后可以发布招聘信息,由管理员审核后推送到招聘广场。职业招聘用例如图2-5所示。
图2-5 职业招聘用例图
2.2.6 校园服务功能
1.校园服务用例分析
校园服务:校内服务,包括走进校园、校园行指南、学报编辑部、图书馆、档案馆、信息公开网等信息;招生就业服务,包括本科招生、成教招生、就业网、人才招聘、本站招聘等信息。校园服务用例如图2-6所示。
图2-6 职业招聘用例图
2.2.7 用户个人中心功能
1.个人中心用例分析
个人中心:个人资料,基本资料、 详细资料、 工作信息、 头像设置;账户设置,密码修改、邮箱绑定;我的班级,用户加入的班级相关信息;我的论坛,用户早论坛的相关信息;我的招聘,用户发布的招聘信息,用户投递的简历信息,用户个人简历管理。个人中心用例如图2-7所示。
图2-7 个人中心用例图
2.4 技术路线
本系统采用业内流行的SpringMVC+Spring+MyBatis框架(简称SSM),由项目构建工具Maven构建,并使用Git版本控制系统辅助项目开发。
Git是一个便捷的分布式版本控制工具,本项目用Git进行管理,可以轻松地备份项目,控制项目的版本,并且能够更安全地开发、调试。
Maven可以通过项目对象模型配置文件(pom.xml)轻松地构建项目,不用将jar包添加到项目,缩小了项目的体积。本系统使用Maven构建父模块ar-parent,并聚合了三个子模块ar-common、ar-manage、ar-portal。ar-common是项目的公共基础模块,java应用类的模型,包含实体类、工具类、数据访问对象等,依赖Spring、MyBatis等。ar-manage是本系统的后台管理模块,web应用类的模型,依赖ar-common、Spring、SpringMVC等。Ar-poratl是本系统的门户网站模块,依赖ar-common、ar-manage、Spring、SpringMVC等。Maven可以将web应用类项目打包成war并发布到tomcat服务器运行测试。
本系统充分利用Spring的IoC(控制反转)和AOP(面向切面)特性,将创建用户的SpringMVC控制器Controller、业务逻辑类Service、数据访问类Mapper交由Spring Container管理,生成对应的bean(也称组件), 并把实现类的类名作为bean的id。当控制器、业务逻辑类、数据访问类需要Spring Container中bean对应的实现类时,Spring Container通过依赖注入机制为其注入对应的bean。通过这种配置,系统实现了控制器和业务逻辑类分离,业务逻辑类和数据访问类分离。SpringMVC中的DispatcherServlet接收请求,并交由控制器Controller处理,Controller接收参数、调用业务逻辑类中的方法,通过ModelAndView视图模型返回jsp页面、json数据。
本系统的视图层采用jsp、HTML,通过事件触发机制向服务器端发送请求,并采用Bootstrap、AmazeUI、HTML5、CSS3等前台样式,通过c标签、javascript、jquery处理前台数据。
技术路线如图2-8所示。
图2-8 技术路线图
3 系统总体设计
3.1 系统总体设计
根据系统功能分析,本系统应该具备的功能包括:登录注册、新闻中心、班级录、校友组织、校友论坛、职位招聘、校园服务、个人中心等功能。
3.1.1 系统登录
(1)注册:由管理员将历届学生的学号、姓名导入数据库,学号作为用户的用户名;
(2)登录:输入用户输入用户名(学号)和密码登录系统。
3.1.2 新闻中心
(1)新闻发布:后台管理发布图文信息到门户网站,可置顶、编辑、删除新闻信息;
(2)新闻评论:用户可以对新闻信息发表评论,回复评论,动态加载评论;
(3)新闻热度:用户喜欢可以新闻信息,系统根据信息的喜欢量、浏览流量推送新闻信息。
3.1.3 班级录
(1)班级检索:按入学年份查询,按照班级名称、校友姓名查询,综合检索班级;
(2)班级排名:根据班级人数、活跃时间对班级进行热度排名;
(3)班级主页:每个班级有自己的空间,包括班级主页、班级动态、班级留言、班级成员、班级通讯录、班级相册、班级事务管理等;
(4)班级管理:班级的新增、管理员的设置由后台管理员完成。
3.1.4 校友组织
(1)校友总会:院校总会;
(2)院系分会:各学院的校友组织;
(3)社团分会:院校内的各种社团、协会的组织;
(4)学生协会:院校内的各学生协会组织;
(5)组织主页:个组织有自己的空间,包括组织主页、动态消息、留言、成员列表、通讯录、相册、活动、组织事务管理。
3.1.5 校友论坛
(1)帖子浏览:按作者、主题检索帖子,查看详情;
(2)评论帖子:对帖子发表评论,回复评论、删除用户自己的评论,ajax动态加载评论;
(3)热帖推送:用户可以喜欢帖子,系统根据帖子的喜欢数量和浏览量进行推送;
(4)发布新帖:用户登录后可以发布帖子;
(5)贴子管理:管理员可审核、置顶、删除帖子。
3.1.6 职位招聘
(1)招聘广场:浏览招聘信息,根据公司名称、职位名称、工作地点检索并查看招聘信息;
(2)简历投送:用户可以向喜欢的招聘信息投送个人简历;
(3)简历管理:用户可以新增简历、编辑简历、删除简历;
(4)单位管理:用户可以登记、编辑自己所在单位的信息;
(5)发布招聘:用户登记单位信息后可以发布招聘信息,由管理员审核后推送到招聘广场。
3.1.7 校园服务
(1)校内服务:包括走进校园、校园行指南、学报编辑部、图书馆、档案馆、信息公开网等信息;
(2)招生就业服务:包括本科招生、成教招生、就业网、人才招聘、本站招聘等信息。
3.1.8 个人中心
(1)个人资料:基本资料、 详细资料、 工作信息、 头像设置;
(2)账户设置:密码修改、邮箱绑定;
(3)我的班级:用户加入的班级相关信息;
(4)我的论坛:用户早论坛的相关信息;
(5)我的招聘:用户发布的招聘信息,用户投递的简历信息,用户个人简历管理。
3.2 系统功能设计
3.2.1 新闻中心
新闻发布,后台管理发布图文信息到门户网站,可置顶、编辑、删除新闻信息;新闻评论,用户可以对新闻信息发表评论,回复评论,动态加载评论;新闻热度,用户喜欢可以新闻信息,系统根据信息的喜欢量、浏览流量推送新闻信息。新闻中心功能如图3-1所示。
图3-1 新闻中心功能图
3.2.2 班记录
班级录功能包括:班级检索,按入学年份查询,按照班级名称、校友姓名查询,综合检索班级;班级排名,根据班级人数、活跃时间对班级进行热度排名;班级主页,每个班级有自己的空间,包括班级主页、班级动态、班级留言、班级成员、班级通讯录、班级相册、班级事务管理等;班级管理,班级的新增、管理员的设置由后台管理员完成。班级录功能如图3-2所示。
图3-2 班记录功能图
3.2.3 校友组织
校友组织包括:校友总会,院校总会;院系分会,各学院的校友组织;社团分会,院校内的各种社团、协会的组织;学生协会,院校内的各学生协会组织;组织主页,个组织有自己的空间,包括组织主页、动态消息、留言、成员列表、通讯录、相册、活动、组织事务管理。校友组织功能如图3-3所示。
图3-3 校友组织功能功能图
3.2.4 校友论坛
校友论坛:帖子浏览,按作者、主题检索帖子,查看详情,对帖子发表评论,回复评论、删除用户自己的评论,ajax动态加载评论;热帖推送,用户可以喜欢帖子,系统根据帖子的喜欢数量和浏览量进行推送;发布新帖,用户登录后可以发布帖子;贴子管理,管理员可审核、置顶、删除帖子。校友论坛功能如图3-4所示。
图3-4 校友论坛功能图
3.2.5 职业招聘
职位招聘:招聘广场。浏览招聘信息,根据公司名称、职位名称、工作地点检索并查看招聘信息;简历投送,用户可以向喜欢的招聘信息投送个人简历;简历管理,用户可以新增简历、编辑简历、删除简历;单位管理,用户可以登记、编辑自己所在单位的信息;发布招聘,用户登记单位信息后可以发布招聘信息,由管理员审核后推送到招聘广场。职业招聘功能如图3-5所示。
图3-5 职业招聘功能图
3.2.6 校园服务
校园服务包括:校内服务,包括走进校园、校园行指南、学报编辑部、图书馆、档案馆、信息公开网等信息;招生就业服务,包括本科招生、成教招生、就业网、人才招聘、本站招聘等信息。校园服务功能如图3-6所示。
图3-6 校园服务功能图
3.2.7 个人中心
个人中心:个人资料,基本资料、 详细资料、 工作信息、 头像设置;账户设置,密码修改、邮箱绑定;我的班级,用户加入的班级相关信息;我的论坛,用户在论坛的相关信息;我的招聘,用户发布的招聘信息,用户投递的简历信息,用户个人简历管理。个人中心功能如图3-7所示。
图3-7 个人中心功能图
3.3 数据库设计
3.3.1 概念模型设计
根据系统总体设计和功能设计,设计出系统涉及到的实体信息,包括用户实体,个人信息实体,职业信息实体,简历实体,地址实体,留言实体,评论回复实体,年级实体,组织实体,活动实体,相册实体,图片实体,信息实体,评论实体,分享实体,收藏实体,订阅实体,招聘信息实体,招聘单位实体,附件实体,角色实体,权限实体,字典实体,字典数据实体,各实体信息的概念模型如下所示。
(1)用户实体模型如图3-8所示。
图3-8 用户实体模型
(2)职业信息实体模型如图3-9所示。
图3-9 职业信息实体模型
(3)简历实体模型如图3-10所示。
图3-10 简历实体模型
(4)地址实体模型如图3-11所示。
图3-11 地址实体模型
(5)留言实体模型如图3-12所示。
图3-12 留言实体模型
(6)评论回复实体模型如图3-13所示。
图3-13 回复实体模型
(7)年级实体模型如图3-14所示。
图3-14 年级实体
(8)组织实体模型如图3-15所示。
图3-15 组织实体模型
(9)相册实体模型如图3-16所示。
图3-16 相册实体模型
(10)活动实体模型如图3-17所示。
图3-17 活动实体模型
(11)字典数据实体模型如图3-18所示。
图3-18 字典数据实体模型
(12)图片实体模型如图3-19所示。
图3-19 图片实体模型
(13)信息实体模型如图3-20所示。
图3-20 信息实体模型
(14)评论实体模型如图3-21所示。
图3-21 评论实体模型
(15)分享实体模型如图3-22所示。
图3-22 分享实体模型
(16)收藏实体模型如图3-23所示。
图3-23 收藏实体模型
(17)订阅实体模型如图3-24所示。
图3-24 订阅实体模型
(18)招聘信息实体模型如图3-25所示。
图3-25 招聘实体模型
(19)招聘单位实体模型如图3-26所示。
图3-26 招聘单位实体模型
(20)附件实体模型如图3-27所示。
图3-27 附件实体模型
(21)角色实体模型如图3-28所示。
图3-28 角色实体模型
(22)权限实体模型如图3-29所示。
图3-29 权限实体模型
(23)字典实体模型如图3-30所示
图3-30 字典表模型
(24)简历投递实体模型如图3-31所示
图3-31 简历投递模型
3.3.2 逻辑结构设计
根据系统的概念模型设计,设计出适应大多数数据库的数据表逻辑结构,共设计31张表,如表3-1所示。
表3-1 数据表汇总
序号 | 名称 | 用途与约束 |
---|---|---|
1 | user | 用户表 |
2 | user_info | 用户个人信息表 |
3 | user_job | 用户工作信息表 |
4 | user_resume | 用户个人简历 |
5 | resume_post | 简历投递信息 |
6 | user_origin | 用户加入组织信息表 |
7 | user_role | 用户角色设定表 |
8 | role | 角色表 |
续表3-1
序号 | 名称 | 用途与约束 |
---|---|---|
9 | role_right | 角色权限分配表 |
10 | right | 权限表 |
11 | Address | 地址信息表 |
12 | message | 消息表 |
13 | reply | 回复表 |
14 | grade | 年级表 |
15 | origin | 组织表 |
16 | activity | 活动表 |
17 | album | 相册信息表 |
18 | album_image | 相册图片信息表 |
19 | image | 图片信息表 |
20 | information | 信息表 |
21 | comment | 评论表 |
22 | share | 信息分享表 |
23 | collect | 信息收藏表 |
24 | subscription | 信息订阅表 |
25 | recruit | 招聘信息表 |
26 | recruit_unit | 招聘单位信息表 |
27 | attachment | 附件信息表 |
28 | attachment_info | 信息附件关系表 |
29 | dictionary | 数据字典表 |
30 | dictionary_data | 数据字典数据表 |
31 | log | 日志表 |
表3-2 用户表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
id | int | 主键 | 自动增长 |
account | char(20) | 用户名 | |
is_admin | char(1) | 管理员标识 | |
varchar(20) | 用户邮箱 | ||
password | char(32) | 用户密码 | |
head_image_id | int(8) | 头像图片标识 | |
create_time | datetime | 用户注册时间 |
续表3-2
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
state | char(5) | 此条记录状态 | |
state_time | datetime | 状态日期 |
表3-3 用户个人信息表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
user_info_id | int(8) | 主键 | 自动增长 |
ture_name | Nvarchar(20) | 用户名 | |
age | char(5) | 年龄 | |
sex | char(5) | 性别 | |
birthday | datetime | 生日 | |
introduce | varchar(200) | 个人简介 | |
phone | varchar(20) | 联系电话 | |
varchar(50) | 邮箱 | ||
varchar(20) | |||
microblog | varchar(50) | 微博 | |
varchar(20) | 微信 | ||
address | Nvarchar(50) | 住址 | |
user_id | int | 用户id | 外键 |
state | char(2) | 此条记录状态 | |
state_time | datetime | 状态时间 |
表3-4 职业信息表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
job_id | int | 主键 | 自动增长 |
job_name | Varchar(20) | 职业名称 | |
job_unit | Varchar(20) | 就业单位 | |
date_start | date | 就职时间 | |
date_end | date | 离职时间 | |
job_desc | varhar(200) | 职业简述 | |
create_time | datetime | 工作登记时间 | |
user_id | int | 就业者 | 外键 |
state | char(1) | 此条记录的状态 | |
state_time | datetime | 记录状态 |
表3-5 个人简历表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
resume_id | int | 主键 | 自动增长 |
resume_title | varchar(20) | 简历标题 | |
prof_type | vatchar(20) | 职业类别 | |
exp_salary | varchar(10) | 期望薪资 | |
name | varchar(10) | 姓名 | |
sex | char(1) | 性别 | |
domicile | varchar(20) | 现在居住地 | |
contact | varchar(30) | 联系方式 | |
introduce | varchar(200) | 个人简介 | |
userId | int | 用户id | 外键 |
statusValue | char(5) | 状态值 | a x t |
表3-6 简历投递表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
recruit_id | int | 招聘信息id | 外键 |
resume_id | int | 简历id | 外键 |
create_time | datetime | 投递日期 | |
state | char(2) | 投递状态 | |
state_time | datetime | 状态日期 |
表3-7 角色权限配置表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
user_id | int | 用户id | 外键 |
role_id | int | 角色id | 外键 |
表3-8 权限信息表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
role_id | int | 主键 | 自动增长 |
role_name | varchar(20) | 角色名称 | |
role_value | varchar(20) | 角色类型 | |
create_time | datetime | 创建时间 | |
state | char(2) | 此条记录状态 | |
state_time | datetime | 状态日期 |
表3-9 角色权限表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
role_id | int | 角色id | 自动增长 |
right_id | int | 权限id |
表3-10 权限信息表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
right_id | int | 主键 | 自动增长 |
right_name | varchar(20) | 权限名称 | |
right_pos | int | 权限位 | |
right_code | bigint | 权限码 | |
right_URL | varchar(50) | 权限路径 | |
is_public | char | 是否是公共资源 | |
state | char(2) | 此条记录状态 | |
state_time | datetime | 状态日期 |
表3-11 地址表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
addr_id | int | 主键 | 自动增长 |
province | varchar(10) | 省份 | |
city | varchar(10) | 市 | |
district | varchar(10) | 区 | |
detail | varchar(50) | 详细地址 | |
zip_code | char(6) | 邮编 | |
create_time | datetime | 创建日期 | |
state | char(2) | 状态值 | |
state_time | datetime | 状态日期 |
表3-12 留言表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
msg_id | int(11) | 主键 | 自动增长 |
title | varchar(20) | 标题 | |
content | varchar(500) | 留言内容 | |
sender_id | int(8) | 发送者id | |
receiver_id | int(8) | 接收者id | |
create_time | datetime | 发表日期 |
表3-13 留言回复表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
reId | int | 主键 | 自动增长 |
content | varchar(500) | 回复内容 | |
create_time | datetime | 回复时间 | |
msg_id | int(11) | 被回复的留言的id | 外键 |
user_id | int | 回复人id | 外键 |
表3-14 年级表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
grade_id | int | 主键 | 自动增长 |
grade_value | char(4) | 年份 | |
class_num | int(4) | 班级数 | |
create_time | datetime | 创建日期 | |
state | char(2) | 此条记录状态 | |
state_time | datetime | 状态日期 |
表3-15 组织信息表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
origin_id | int | 主键 | 自动增长 |
origin_name | varchar(20) | 组织编号 | |
origin_no | varchar(20) | 组织名 | |
origin_type | varchar(20) | 组织类型 | |
origin_desc | varchar(500) | 组织简介 | |
origin_grade | varchar(4) | 组织年级 | |
members | int(4) | 组织人员数量 | |
create_time | datetime | 组织成立的年份 | |
mgr_id | int | 组织的管理员id | 外键 |
creator_id | int | 组织创建人 | 外键 |
state | char(2) | 此条记录状态 | |
state_time | datetime | 状态日期 |
表3-16 校友活动表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
act_id | int(8) | 主键 | 自动增长 |
act_name | varchar(20) | 活动名称 |
续表3-16
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
start_time | datetime | 活动开始时间 | |
end_time | datetime | 活动结束时间 | |
act_place | varchar(50) | 活动地点 | |
act_desc | text | 活动描述 | |
act_num | int(4) | 活动人数 | |
sign_num | int(4) | 活动已报名人数 | |
interests | int(4) | 感兴趣数 | |
leader_name | varchar(10) | 负责人姓名 | |
leader_phone | varchar(30) | 负责人联系方式 | |
origin_id | int(8) | 活动所属组织 | 外键 |
user_id | int(8) | 活动发起人 | 外键 |
state | char(2) | 此条记录状态 | |
state_time | datetime | 状态日期 |
表3-17 相册表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
album_id | int(8) | 主键 | 自动增长 |
album_name | varchar(20) | 相册名名 | |
albm_desc | varchar(200) | 相册描述 | |
create_time | datetime | 创建时间 | |
interests | int(4) | 感兴趣的人数 | |
cover_image | int(11) | 相册封面标识 | |
origin_id | int | 相册所属组织 | 外键 |
user_id | int | 相册创建人 | 外键 |
state | char(2) | 此条记录状态 | |
state_time | datetime | 创建时间 |
表3-18 相册图片表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
album_id | int | 相册id | 外键 |
image_id | int | 图片id | 外键 |
create_time | datetime | 创建时间 |
表3-19 图片信息表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
image_id | int(11) | 主键 | 自动增长 |
image_name | varchar(32) | 图片名 | |
is_remote | char(1) | 远程文件 | |
image_size | varchar(5) | 图片大小 | |
image_path | varchar(255) | 图片路径 | |
image_type | varchar(20) | 图片类型 | |
is_thumb | char(1) | 缩略图标识 | |
thumb_path | varchar(255) | 缩略图路径 | |
create_time | datetime | 上传日期 | |
state | char(2) | 图片状态 |
表3-20 信息表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
info_id | int(11) | 主键 | 自动增长 |
info_title | varchar(50) | 信息标题 | |
content | text | 内容 | |
theme | varchar(2) | 主题 | |
thumb_image | varchar(255) | 图文信息缩略图 | |
views | int(4) | 浏览量 | |
comments | int(4) | 评论数 | |
shares | int(4) | 分享次数 | |
create_time | datetime | 创建日期 | |
is_top | char(1) | 置顶标识 | |
info_type | varchar(20) | 信息类型 | |
user_id | int(8) | 用户id | |
origin_id | int(8) | 信息所属组织id | |
state | char(2) | 状态 | |
state_time | datetime | 状态日期 |
表3-21 评论表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
comment_id | int(11) | 主键 | 自动增长 |
content | varchar(500) | 评论内容 |
续表3-21
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
create_time | datetime | 评论日期 | |
user_id | int | 评论人 | 外键 |
info_id | int | 评论的信息id | 外键 |
表3-22 信息转发表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
create_time | datetime | 转发时间 | |
info_id | int(11) | 被转发的信息id | 外键 |
user_id | int(8) | 转发人id | 外键 |
where | varchar(20) | 转发方式 |
表3-23 收藏表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
collect_id | int | 主键 | 自动增长 |
create_time | datetime | 收藏时间 | |
info_id | int | 收藏信息的id | 外键 |
user_id | int | 收藏人 | 外键 |
state | char(2) | 此条记录状态 | |
state_time | datetime | 状态日期 |
表3-24 信息订阅表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
sub_id | int(11) | 主键 | 自动增长 |
create_time | datetime | 订阅时间 | |
info_type | varchar(20) | 订阅信息类型 | |
is_email | char(1) | 邮箱订阅标识 | |
user_id | int(8) | 用户id | |
state | char(2) | 状态 | |
state_time | datetime | 状态日期 |
表3-25 招聘信息表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
recruitId | int | 主键 | 自动增长 |
title | varchar(20) | 招聘标题 | |
create_time | datetime | 创建时间 |
续表3-25
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
end_time | datetime | 招聘结束时间 | |
members | int(4) | 招聘人数 | |
resumes | int(4) | 简历投送数 | |
leader_name | varchar(20) | 联系人 | |
leader_phone | varchar(30) | 联系方式 | |
is_top | char(1) | 置顶标识 | |
pos_name | varchar(20) | 职位名称 | |
pos_desc | varchar(500) | 职位描述 | |
benefit | varchar(50) | 职位福利 | |
work_place | varchar(50) | 工作地点 | |
unit_id | int(8) | 招聘单位id | |
user_id | int | 发布人id | 外键 |
state | char(1) | 状态 | |
state_time | datetime | 状态日期 |
表3-26 招聘单位信息表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
unit_id | int(8) | 主键 | 自动增长 |
unit_name | varchar(30) | 招聘单位名称 | |
industry | varchar(30) | 单位所属行业 | |
property | varchar(20) | 单位性质 | |
scale | varchar(20) | 单位规模 | |
unit_desc | text | 单位简介 | |
unit_web | varchar(30) | 单位网站 | |
user_id | int(8) | 发布者id | 外键 |
state | char(1) | 此条记录状态 | |
state_time | datetime | 状态日期 |
表3-27 附件表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
atta_id | int | 主键 | 自动增长 |
atta_name | varchar(32) | 附件文件名 | |
atta_type | varchar(20) | 附件类型 |
续表3-27
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
is_romote | char(1) | 远程文件标识 | |
file_path | varchar(255) | 文件路径 | |
file_size | char(10) | 文件大小 | |
dowmloads | int(4) | 文件下载次数 | |
create_time | datetime | 上传日期 |
表3-28 信息附件表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
attachment_id | int | 附件id | 外键 |
info_id | int | 信息id | 外键 |
表3-29 数据字典表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
dict_value | varchar(20) | 字典值 | 主键 |
dict_name | varchar(50) | 字典名 | |
remark | varchar(200) | 字典备注 |
表3-30 数据字典数据表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
id | int(8) | 数据id | 主键 |
dict_value | varchar(20) | 数据字典 | 外键 |
dictdata_name | varchar(50) | 数据名 | |
dictdata_value | varchar(20) | 数据值 | |
is_fixed | char(1) | 固定标识 | |
is_cancel | char(1) | 数据取消标识 | |
parent_id | int(8) | 父节点 |
表3-31 日志表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
log_id | int(11) | 日志id | 主键 |
operator | varchar(100) | 操作员 | |
oper_name | varchar(100) | 操作名称 | |
oper_params | varchar(255) | 操作参数 | |
oper_result | varchar(100) | 操作结果 | |
oper_time | datetime | 操作时间 |
表3-32 用户组织表
字段名称 | 字段类型(长度) | 字段含义 | 备注 |
---|---|---|---|
user_id | int | 用户id | 外键 |
origin_id | int | 组织id | 外键 |
create_time | datetime | 加入时间 | |
state | varchar(2) | 状态 | |
state_time | datetime | 状态时间 |
4 系统详细设计
4.1 班级录
(1) 功能实现
班级录主要实现给用户提供班级空间的功能,班级录总览界面按年级信息统计并展示院校当前班级的信息,按年级、校友姓名、班级专业条件查询班级并且能够在侧边栏按班级人数对班级进行热度排名,展示当前用户加入的班级,最近加入班级录的校友等信息。
(2) 实现方法
点击班级录标签页,请求class.action访问到Class控制器中的index()方法,index()调用ClassService业务逻辑类中的getAll(),查询年级信息,返回List<Grade>类型的数据,添加到视图模型model中。Grade类对象中包含年级、班级个数等信息,index()方法跳转到class-index.jsp页面,展示年纪列表信息,并将年级列表加载到条件查询框中的下拉框中。页面加载时引入javascript,使用$.post()方法请求侧边栏数据。侧边栏数据包括班级录信息统计、班级排名、当前用户加入的班级、最近加入的校友等信息。在条件查询框中选择年级、填入校友姓名或专业关键字可以查询相关班级,提交查询时请求Class控制器中的queryClass()方法,传递grade、queryStr参数。queryClass()调用ClassService()业务逻辑类中的queryClasses()方法,queryClasses()方法的参数为Page<>类型的对象、grade、queryStr,queryClasses()执行查询,并返回 List<Map<String,Object>>类型的数据。类型为Page<>的参数是分页对象,分页对象中包含分页的所有信息,包括页码pageIndex、pageSize、beanList等,新建分页对象时,如果没有设置参数,则pageIndex默认为1,pageSize默认为10。将page对象加入到视图模型model中,queryClass()返回class-query.jsp页面。jsp页面将班级信息列表展示出来,并追加页码执行翻页功能。
(3) 界面设计
班级录总览界面如图4-1所示,总体分为导航栏、年级列表和侧边信息栏。班级查询界面如图4-2所示。
图4-1 班级录总览界面
图4-2 班级查询界面
4.1.1 班级首页
(1)功能实现
班级主页主要对班级进行一些简介,并展示班级的一些近期信息,如班级简介、班级最新动态、班级最新照片、班级管理员信息、当前用户信息以及当前用户是否加入班级等。班级简介为班级实体中描述班级的字段,包括班级名称、班级人数、班级简介、班级所属年级。班级最新动态是班级动态按照日期降序排列后,选择最新的几条记录显示。班级最新照片是班级成员上传到班级相册照片,按照上传日期降序排列后选择最新的几张进行展示。班级管理员信息展示管理员的头像、姓名、简介等信息。当前用户信息展示当前用户的头像、姓名、简介、是否加入班级。
(2)实现方法
点击班级名称超链接,请求classroom.action,并传入班级id参数,Classroom控制器中index()方法接收参数,调用业务逻辑类ClassService中的classIndex()、classInfo()、classImage()、getAllMemberId()方法。clasIndex()方法查询班级的详细信息,返回Map<String, Object>类型的数据,赋值给classroom,将返回数据classroom添加到视图模型model中。classInfo()查询班级的动态消息,动态消息按照日期降序排列,以List<Map<String, Object>>类型返回日期最新的几条记录,赋值给infoList,将infoList添加到视图模型model中。classImage()方法查询班级成员上传的照片,照片按照上传日期降序排列,以List<Map<String, Object>>类型返回上传日期最新的几条记录,赋值给imageList,将imageList添加到视图模型model中。getAllMemberId()查询所有班级成员的id,以List< Integer>类型返回,赋值给classIds,并将classIds添加到视图模型model中。Classroom控制器方法index()跳转到classroomdex.jsp页面,将classroom、infoList、imageList中的信息遍历展示在jsp页面中,将SESSION_USER环境变量中的当前用户信息展示为当前用户信息,并将SESSION_USER中的userId与classIds中的数据进行比较,如果userId存在与classIds中,则显示用户已经加入班级,否则显示加入班级按钮。Classroom-index.jsp加载的时候引入javascript,使用$.post()方法请求班级官员信息,并返回到jsp页面进行展示。
(3)界面设计
班级主页界面设计如图4-3所示。
图4-3 班级主页界面
4.1.2 班级动态
1.班级动态列表
(1) 功能实现
班级动态列表展示班级成员发布的动态信息,查询以当前班级id和信息类型作为条件查询信息,并进行分页处理,将查询到的信息分页展示。
(2) 实现方法
点击班级动态标签页,请求classroom/info.action,传递参数classId,Classroom控制器中的info()方法接收参数,info()调用ClassService业务逻辑类中的classIndex()、classInfo()方法。clasIndex()方法查询班级的详细信息,返回Map<String, Object>类型的数据,赋值给classroom,将返回数据classroom添加到视图模型model中。classInfo()方法参数为Page<>类型数据、班级id和信息类型(数据字典中的信息类型数据),方法返回List<Map<String, Object>>类型的数据。类型为Page<>的参数是分页对象,分页对象中包含分页的所有信息,包括页码pageIndex、pageSize、beanList等,新建分页对象时,如果没有设置参数,则pageIndex默认为1,pageSize默认为10。将page对象加入到视图模型model中,info()返回classroom-info.jsp页面。jsp页面将班级信息、班级动态信息列表展示出来,并追加页码执行翻页功能。
(3) 界面设计
班级动态列表界面如图4-4所示。
图4-4 班级动态界面
2.班级动态详情
(1)功能实现
班级动态详情实现动态消息的详情展示,作者信息,消息评论区,以及班级相关动态和作者相关动态。班级动态消息详情包括图文信息、发布时间、浏览量、喜欢数、评论数,消息加载时动态消息的浏览量自增1。作者信息栏展示作者的头像、名字、简介等信息。评论区默认加载10条评论,点击加载更多评论按钮则再次加载10条评论,知道所有评论被加载完毕,用户可以在评论区发表评论。页面加载时,通过ajax方式将班级相关动态和作者相关动态加载到侧边栏。
(2)实现方法
点击消息详情按钮,请求classroom/infoDetail.action,传递班级id和消息id,Classroom控制器中的infoDetail()方法接收参数,调用ClassroomService业务类中的classInfoDetail()方法查询动态信息详情和作者信息,返回Map<String, Object>类型的数据,赋值给info,将info添加到视图模型model中。infoDetail()返回classroom-info-detail.jsp页面,将info中的信息展示,并引入javascript使用ajax方式加载评论和侧边栏信息。
(3)界面设计
班级动态信息详情界面和评论区界面如图4-5和图4-6所示。
图4-5 班级动态详情界面
图4-6 班级动态消息评论区界面
4.1.3 班级通讯录
(1)功能实现
班级通讯录五章表关联查询班级成员的用户信息、所在地、电话、邮箱、QQ、微信等通讯信息,分页显示,并且支持下载班级通讯录信息,以Excel文件形式下载到本地。
(2)实现方法
点击通讯录标签页,请求classroom/directory.action,传递参数班级id,Classroom控制器中的directory()方法接收参数,并调用ClassrommService业务类中的classDirector()方法。classDirectory()关联user表、user_origin表、origin表、user_info表、image表,查询用户信息、用户通讯信息,以List<Map<String, Object>>的形式返回通讯录列表,赋值给分页对象page中的beanList,并将page添加到视图模型model中。Directory()方法跳转classroom-directory.jsp页面,将beanList里的通讯录信息遍历出来。
(3)界面设计
班级通讯录的界面设计如图4-7所示。
图4-7 班级通讯录界面
4.1.4 班级相册
(1)功能实现
在班级相册中,班级成员可以查看相册、新建相册、上传图片、删除图片、设置相册封面、下载图片。上图图片支持批量上传,相册封面可以选择相册内的任意图片作为封面。
(2)实现方法
点击班级相册标签页,请求classroom/album.action,传递参数班级id,Classroom控制器中的album()方法接收参数,调用AlbumService业务类中的getAlbums()方法,以List<Album>形式返回相册信息,赋值给分页对象page的beanList属性,返回classroom-album.jsp界面,将相册列表分页显示。
(3)界面设计
班级相册界面设计如图4-8所示。
图4-8 班级相册界面
4.2 职业招聘
4.2.1 发布招聘
(1)功能实现
发布招聘时,系统判断当前用户是否已经登记公司信息,如果没有登记则跳转公司信息登记界面,否则跳转招聘登记界面。在招聘登记界面填写招聘信息后提交审核,后台管理员可以审核、置顶招聘。
(2)实现方法
点击发布招聘按钮,请求recruit/addRecruit.action,Recruit控制器中的addRecruit()方法接收请求,首先调用UnitService业务类中的getUnitsByUserId()方法查询当前用户的公司信息。如果公司信息,则返回redirect:/unit/addUnit.action,重定向到公司信息登记界面,否则addRecruit()将招聘常量positionSalary、positionBenefit、positionProf添加到视图模型model中,跳转至招聘信息登记界面。招聘信息表单填写完成后,提交至recruit/addRecruitSubmit.action,Recruit控制器调用RecruitService业务类中的createRecruit()方法,保存招聘信息,等待审核。
(3)界面设计
招聘单位信息登记界面设计如图4-9所示,招聘信息登记界面如图5-10所示。
图4-9 招聘单位登记界面
图4-10 招聘信息登记界面
4.2.2 查询招聘
(1)功能实现
招聘查询可以招聘信息标题、招聘单位名称、职位信息、工作地点等查询招聘信息,并将查询到的记录分页显示。
(2)实现方法
点击职业招聘按钮,请求recruit.action,传递查询条件queryStr,Recruit控制器中的indexRecruit()方法,调用RecruitService业务类中的queryRecruit()方法执行查询,返回分页对象page,跳转到recruit-index.jsp页面,将招聘信息遍历出来并追加页码,执行翻页功能。
(3)界面设计
招聘查询界面如图4-11所示。
图4-11 招聘查询界面
4.2.3 招聘详情
(1)功能实现
招聘详情展示招聘的详细信息,包括招聘单位信息、职位信息、联系人信息,并且能够加载此招聘信息的申请记录以及本招聘单位的相关招聘信息。
(2)实现方法
点击招聘信息标题超链接,请求recruit/detailRecruit.action,传递招聘信息id,Recruit控制器中的detailRecruit()方法接收参数,调用RecruitService业务类中的getDetailRecruit()、loadResumesToPost()、postResumeRecord()、loadOtherRecruits()等方法。getDetailRecruit()方法查询招聘的详细信息,返回Map<String,Object>类型的数据,并添加到视图模型对象model中。postResumeRecord()方法关联recruit_post表、user表、image表查询出对此招聘信息投递简历的用户列表,返回List<Map<String,Object>>类型的数据,并添加到视图模型对象中。LoadOtherRecruits()方法关联recruit_post表、recruit表,查询出此招聘单位的相关招聘信息,返回List<Map<>>类型的数据,并添加到数图模型对象model中。
(3)界面设计
招聘查询界面如图4-12所示。
图4-12 招聘查询界面
4.2.4 投递简历
(1)功能实现
在简历详情界面中,有简历投递选项,用户选择自己的简历投送至当前招聘信息。如果当前用户没有简历,则可以选择创建简历。
(2)实现方法
如果用户已经申请当前职位,则显示已申请职位,否则显示申请职位按钮。点击申请职位按钮,页面弹出简历投递模态框,通过c标签将用户简历列表加载到下拉框中,选择一个简历,点击确认申请按钮,请求my/resume/postResume.action,传递招聘信息id,用户简历id,用户信息控制器中的postResume()接收参数,并调用ResumeService服务类中的postResume()方法,保存简历投递信息。
(3)界面设计
简历投递界面如图4-13所示。
图4-13 简历投递界面
4.3 校友论坛
4.3.1 论坛广场
(1)功能实现
论坛广场分页展示校友论坛的所有帖子,可以按照帖子标题、帖子主题和帖子作者进行模糊查询,并按照帖子的热度进行排名。
(2)实现方法
点击校友论坛,请求forum.action,Forum控制器中的index()方法接收请求,调用PostService中的queryPosts()方法,按日期降序排列并分页查询帖子,返回List<Map<String,Object>>类型的数据,赋值给分页对象page,将page添加到视图模型对象model中。返回forum-index.jsp页面,将page中beanList的帖子信息分页显示。
(3)界面设计
论坛广场界面设计如图4-14所示。
图4-14 校友论坛广场界面
4.3.2 发布新帖
(1)功能实现
用户可以在校友论坛广场发布新贴,帖子会被推送到广场并可以被搜索。
(2)实现方法
点击发布新贴按钮,请求post/add.action,Post控制器中的addPost()方法接收请求,将环境变量themeList添加到视图模型对象model中,加载帖子发布界面。在帖子发布界面填写post表单并提交,post信息存储至数据库,重新加载招聘广场即可看到新发布的帖子。
(3)界面设计
发布新贴界面如图4-15所示。
图4-15 发布新贴界面
4.3.3 帖子详情
(1)功能实现
用户可以查看帖子详情,包括帖子内容、浏览量、评论量、喜欢数、作者信息,在帖子内容下方有评论区,加载评论内容或发表评论。在详情界面侧边栏显示相关主题的帖子和作者相关的帖子。
(2)实现方法
用户点击帖子标题超链接,请求post/detail.action,Post控制器中的detail()方法接收请求,调用PostService业务类中的postDetail()方法查询帖子详情,将返回的数据添加到视图模型对象model中,返回jsp页面显示帖子内容。页面加载完毕后,通过jquery的$.post()方法请求post/commentList.action和post/outLine.action加载评论区内容和侧边栏内容,Post控制器调用PostService业务类中的getOtherPost()f方法和CommentService业务类中的dynamicComment()方法查询信息,将返回的信息追加到页面,完成动态加载评论的功能。
(3)界面设计
帖子详情界面设计如图4-16所示。
图4-16 帖子详情界面
结论
经过持久层、数据访问层、业务逻辑层、系统控制层、视图层的设计和实现,本系统基本实现了对班级管理,用户可以加入自己所在的班级;对班级留言的管理,用户可以在班级里查看、添加或修改留言;对班级通讯录的管理,用户可以查看班级成员的相关信息。系统已经能够实现留言、上传照片、评论等功能,同时具有方便的后台管理功能。同学录系统能够实现同学们生活中的交流,拥有自己的空间。校友论坛为广大校友提供了更加宽阔的平台,促进校友们之间的交流。与此同时,通过职业招聘模块、校园服务模块,校方管理员能够了解毕业生的就业情况,并为毕业生提供就业服务,包括向毕业生投送招聘信息,接收毕业生所在单位的招聘信息。因此,此系统能够在促进高校专业教学改革、募集高校筹资办学途径、促进校企合作、加强毕业生感情交流、提升大学生就业质量等方面带来巨大效益。
当然,本系统还不够完善,有一部分功能尚未实现。新闻中心应该具备热文推送和邮箱订阅功能,这样才能让校友更好的了解母校的动态消息。 网站内的消息应该支持富文本格式,这样可以使消息更具可读性和吸引力,同时富文本编辑器可以让用户更方便地编写内容。在消息发布和图片上传时,图片经过剪辑之后才可以更好地展示和存储。由于个人能力的限制,网站的邮箱订阅功能、富文本编辑存储功能和图片剪辑功能并没有实现。这些功能对本系统也显得尤为重要,因此以后必须实现。
经过对校友录系统的设计和实现,我对MVC模式有了更深层次的理解和应用。同时,我也学会许多新的框架和工具,包括SpringMVC、MyBatis、EhCache、Bootstrap、AmazeUI等框架,Maven、Git、IntelliJ IDEA等工具。因此,我相信在以后面临的工作和项目中本系统对我有很大帮助。
致谢
本论文的编写和修改是在胡局新老师悉心指导下完成的。胡老师有着严谨有致的教学态度,兢兢业业的工作作风,诲人不倦的高尚师德。在胡老师的每一堂课上,我都能感受到他的格物致知、敬业乐群,这也正是我在专业知识学习中保持热情的关键所在。在临近毕业的这段时间,胡老师也依然百忙之中为我讲解技术、指导论文,其崇高的责任心将是我受益一生的宝贵财富。在此,谨向我可敬可爱的胡老师致以诚挚的谢意。
不知不觉,四年的大学生活如白驹过隙般逝去,但这宝贵的四年无疑会在而后的回忆里细水长流。在徐州工程学院四年时间里我有过喜悦,有过沮丧,也学习了很多专业知识,参加了很多活动和比赛,获得了飞思卡尔智能汽车竞赛国赛奖项,电子设计大赛省级奖项。没有志同道合的校友,没有对我谆谆教诲的辅导员,没有对我坚定支持的母校,我不可能取得这些成就,也很难在低谷时战胜困难。因此,我想对帮助我的校友,关爱我的辅导员,坚定支持我的母校致以崇高的谢意。
同时,我也要感谢生我育我的父母。我的家庭生活并非想象中那么美好,父母的艰辛也许我无法体会,但是即使再困难,父母都会给予我精神、物质上的支持。父母不曾亏待我,我又能拿什么面对父母。唯有不懈的努力,让自己成功的速度快于他们老去的速度,我才能回报他们对我的爱。对于父母所给予我的这一切,我会用生命去珍惜,用感恩去呵护。
最后,我想再一次向精心教导我的胡老师,关爱我的辅导员,志同道合的校友,给予我支持的父母表达我的感恩之情,没有你们就没有如今的我,谢谢你们伴我走过青春的这段旅途,谢谢!
参考文献
[1] 盛仲飙 乔道迹.基于Java的通讯软件设计与实现[J].福建电脑,2015
[2] 陈衍席.基于Java网络聊天系统的设计及实现研究[J].通讯世界,2016
[3] 钱雪忠著,数据库原理与应用(第二版)[M].北京邮电大学出版社,2007
[4] 唐汉明 翟振兴 关宝军.深入浅出MySQL数据库开发优化与管理维护第2版[M].人民邮电出版社,2014
[5] 吴海星.Java程序员修炼之道[M].人民邮电出版社,2013
[6] 缪忠剑.基于Spring的集成化Web开发平台的研究与实现[M].北京机械工业出版社,2013
[7] 宋佳颖,基于Java的邮件接收系统分析[J].无线互联科技,2015
[8] 耿祥义,张跃平著.Java设计模式[M].清华大学出版社,2009
[9] 彭晓青,MVC模式的应用架构系统的研究与实现[J].电子工业出版社,2013
[10] 赵争东,基于Java的数据库应用框架的研究设计和探索[J].信息系统工程,2015
[11] 软件开发技术联盟著,Java Web开发实战[M].清华大学出版社,2013
[12] 贾蓓.镇明敏.杜磊著,Java Web整合开发实战[M].清华大学出版社,2013
[13] 李运莉著,web数据库应用系统性能优化[M].北京人民邮电出版社,2011
(完)