(附源码)SSM大学生心理健康服务平台 毕业设计070917

SSM大学生心理健康服务平台

摘  要

为贯彻落实《中共中央国务院关于进一步加强和改进大学生思想政治教育的意见》精神,进一步加强和改进大学生心理健康教育,各个高校都在积极实施心理健康网络教育平台的建设工作。

而开发一个大学生心理健康服务平台的目的,首先是研究现今大学生的心理状况问题,其次锻炼自己的动手操作能力。将自己在大学期间所学的知识融会贯通,搭建一个健康服务平台供学生使用。学生能够通过该平台测试自己的心理健康状况,同时线上预约心理老师,解决一些心结。心理老师可以通过该平台解决学生的问题。管理员可以管理学生与老师的账户,同时对在线预约、心理测评、专题辅导等管理。采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用SSM框架、JSP技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。通过测试,该需要能够较好的完成设定的目标。

关键词:大学生心理健康服务平台;SSM;MySQL;

SSM college students' mental health service platform

Abstract

In order to implement the spirit of the opinions of the CPC Central Committee and the State Council on Further Strengthening and improving college students' Ideological and political education and further strengthen and improve college students' mental health education, all colleges and universities are actively implementing the construction of mental health online education platform.

    The purpose of developing a college students' mental health service platform is to first study the psychological status of college students, and then exercise their hands-on operation ability. Integrate the knowledge learned in college and build a health service platform for students. Students can test their mental health through the platform, and make an appointment with a psychological teacher online to solve some problems. Psychological teachers can solve students' problems through this platform. The administrator can manage the accounts of students and teachers, and manage online reservation, psychological evaluation, special counseling, etc. Adopting the object-oriented development mode for software development and hardware erection can well meet the needs of actual use, improve the corresponding software erection and program coding, take MySQL as the main storage unit of background data, and use SSM framework, JSP technology and Ajax technology for business system coding and development, so as to realize all the functions of the system. Through the test, the needs can better achieve the set goals.

Key words :College Students' mental health service platform; SSM;MySQL

目  录

   1

   1

1 引言 1

1.1 选题背景及意义 1

1.2 国内外研究现状 1

1.3 系统的特点 1

1.4 论文结构与章节安排 2

2 系统需求分析 3

2.1可行性分析 3

2.1.1 技术可行性分析 3

2.1.2 操作可行性分析 3

2.1.3 经济可行性分析 3

2.2功能需求分析 3

2.3用例分析 4

3系统总体设计 6

3.1 系统开发架构的选择 6

3.1系统功能模块设计 6

3.1.1 前台页面设计 7

3.1.2 用户模块设计 7

3.1.3 评论管理模块设计 8

3.1.4 在线咨询模块设计 8

3.2数据库设计 9

3.2.1数据库概要设计 9

3.2.2数据库逻辑设计 9

4系统详细实现 14

4.1系统前台功能实现 14

4.2系统后台功能实现 19

5系统测试 23

5.1 系统测试目的 23

5.2 系统可用性测试 23

5.3 系统典型测试用例 23

5.4 测试总结 24

总结 26

参考文献 27

   28

1 引言

1.1 选题背景及意义

心理健康教育在我国起步较晚,大部分学校的心理健康教育师资较为薄弱,心理咨询人员也多数是学生。面对各级各类教育事业的发展,许多学校多感觉到心理健康教育的师资不足,而计算机网络的全球化和大众化,可以大大缓解师资不足。把心理健康教育与网络技术结合起来,教育者可以通过多媒体技术,建立大学生心理健康网站,将心理健康教育内容穿插在相关内容中供学生阅读、分析,在网上与学生交流。这样,既可弥补师资的不足,又可使教师及时地了解和解决学生的心理问题,从而取得更有效的教育效果。

本次毕业设计主要研究如何应用计算机技术与数据库原理开发出一个功能强大的,实用的大学生心理健康服务平台。进一步的深入研究面向对象编程方法、数据库的开发等一些市面上较为流行的、实用的软件开发技术。基于网络具有一定的私密性、快捷及实时等优点,但受场景、环境、以及网络真实性等特点的制约,不利于用户与网站建立良好信任感。随着心理健康行业的发展和网络的运一步普及,在有效解决诚信度的基础上,心理健康网的优点会显现出来,网络咨询将得到飞速地发展,大学生心理健康服务平台为广大学生提供了良好的平台。

1.2 国内外研究现状

国外对网络心理咨询的研究比较早,美国全国合格心理咨询师协会在19967成立了网络心理咨询委员会,开始着手研究网络对咨询专业所造的影响,这是国外心理容询机构开始重视网络心理咨询的存在所做的首次行动,其中委员会成员包适全美咨询师、教育学家、一些研究所的学生以及一位网络心理咨询师,委员会利用邮件论坛的方式让成员经由网络来分享彼此搜集来的信息及经验,并且全美心理咨询师协会在1998年制定了网络咨询伦理守则,美国咨询协会希望通过网络提供咨询的服务,能合乎各询的标准,针对网络心理咨询的保秘性,设立了线上咨询关系及法律认证等三大议题,于1999年制定了网络咨询的伦理标准,刚审通过网络平台对求访者所提供的咨询服务型保有咨询的专业性,并为当来访者带来最大的福祉。美国咨询教育与督导学会在1999年设置了咨询师教育课程中学生应具有科技能力的指导方针。

在美国,有关心理健康的心理咨询业已经是一个很成熟的行业,在线心理咨询异常火爆。根据Harris的登记信息显示,2.4亿的美国人在网上搜索健康信息,CBS 新阅估计美国有超过200个网站专门提供精神健康服务,超过350个临床心理医生提供在线咨询和治疗。

我国台湾张德聪高雄咨询辅导中心,最早于1996年开始利用电子布告栏系统提供咨询服务,1977年增出电子邮件模式的咨询服务,2001年开始利用在线牌天室的机制提供了基于文字交谈的网络即时咨询服务,我国留内一些大中专院校学生心理辅导中心、香询中心网站也开始建立并投入使用,陆续运用电子邮件或电子布告栏(BBS)等工具提供在线的心理咨询服务,这些网站,多数为公益性网站,也有个别网站实行部分收费制度,如中华精神卫生健康网是中华医学会精神料分会与北京回龙医院共建的公益性专业网站、其中的一对一专家咨询中心由一批热爱精神卫生事业的专业志愿者提供网上咨询服务。大学生心理健康网站就是面对大学生和教师的,主要是教师参与,心理协会学生为辅,采取网站的形式解决问题,为学生服务。可以说.随着社会发展节奏的加快,人们的各种压力也在逐渐增大,对心理咨询的要求也随之增加,与此同时,网络深入了人们的生活,学习和工作的各个方面,在网络上进行心理咨询也逐步开展起来。

1.3系统的特点

(1)大学生心理健康服务平台中的web后台管理中的后端不再使用古老的jsp+javabean+servlet技术,而是使用比较流行的渐进式JavaScript框架Vue.js,它减少java配置代码,简化编程代码,目前SSM框架也是很多企业选择的框架之一。

(2)大学生心理健康服务平台中的web后台管理中的前端使用的是SSM框架Ajax实现前后端通信,Element UI组件库使页面快速成型,项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。

(3)大学生心理健康服务平台中数据库用的mysql5.7,它执行效率高。

1.4论文结构与章节安排

本文共分为六章,章节内容安排如下:

第一章:引言。第一章主要介绍了课题研究的背景意义,国内目前相关研究现状以及技术和本文的研究内容与主要工作。

第二章:系统需求分析。第二章主要从系统的可行性、功能等方面进行需求分析。

第三章:系统总体设计。第三章主要对系统功能模块、数据库进行功能设计。

第四章:系统详细设计。第四章主要介绍了系统各个用户的功能、系统界面的实现。

第五章:系统测试。第五章主要对系统的部分界面进行测试并对主要功能进行测试

2 系统需求分析

2.1可行性分析

通过以下的系统总体需求分析,进而分析是否拥有达成需求的技术、资金和开发人员等条件。那么就从以下几点进行简单的说明:

2.1.1 技术可行性分析

大学生心理健康服务平台存储所使用的mysql数据库以及开发中所使用的IDEA、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用SSM框架进行开发,使系统的可扩展性和维护性更佳,减少java配置代码,简化编程代码,目前SSM框架也是很多企业选择的框架之一。

2.1.2 操作可行性分析

总体来严,该系统的操作设计和逻辑设计还是比较简单的。因为总体的设计目标只是包括数据的读取等基本内容。而且,就目前使用的客户一般都是用户和管理人员,都是有较高文化的一群人和学习能力较强的人。但是还是要把程序的操作设计得尽量简单,比如作品中心,评分中心等功能,比如用户的登录和退出功能等,都需要尽量的简单,这样让系统用户更容易上手。针对管理员的操作,这边需要指出,是需要一定的理解的,比如评分信息管理,作品信息管理的设定,比如各类信息的添加和修改等,还是需要一定的计算机基本认识,如有需要,可以对其进行简单的介绍或者培训。

2.1.3 经济可行性分析

在开发大学生心理健康服务平台中所使用的开发软件像IDEA开发工具、Tomcat8.0服务器、MySQL5.7数据库、Photoshop图片处理软件等,这些都是开源免费的,并且大学生心理健康服务平台是自己设计并编码实现的,数据库是使用流行mysql进行数据的存储,开源的mysql等技术的使用,减少系统开发费用。

2.2功能需求分析

大学生心理健康服务平台的主要目的分为三个。

首先:可以通过该系统可以很好的在线了解心理资讯信息以及可以进行心理测验。以前通过传统的心理问答方式有个最大的问题就是信息查询、心理测评的方式繁琐,而且各种信息容易丢失,有了这样一个大学生心理健康服务平台,那么则可以很容易的把所有的学生信息都放到数据库中,如果再对数据库进行备份处理,那么这样就可以很好的对学生信息以及心理测评分析进行保存。

其次:大学生心理健康服务平台提供了一个用户和用户,用户与管理员进行互动交流的系统,用户可以通过注册获取一个帐户,查询心理文章相关的信息,进行在线的心理测评等。

再次:该系统需要很好的功能扩充性和可维护性。由于该系统是涉及的用户比较多,对管理员来说同样也是一个信息管理系统,包括用户信息,在线咨询测评分析,专题辅导等。而且,随着用户数量的增加,必然对程序的更新迭代要求更高,所有在开发的时候就需要注意程序的可维护性和可拓展性。

2.3用例分析

大学生心理健康服务平台中的管理员主要负责了如下功能操作。

(1)站点管理功能需求:站点管理包括了轮播图,公告栏两部分,管理员可以对这两部分进行添加,修改,删除和查询等。

(2)用户管理功能需求:用户管理部分包括了管理员,参赛者,评委三部分,管理员可以对这三部分进行添加,修改,删除以及查询等。

(3)内容管理功能需求:内容管理部分包括了心理文章、教师推荐、心理测评、专题辅导,管理员可以对其进行管控。

(4)更多管理功能需求:更多管理主要实现了测评分析、留言板、公告栏的功能,管理员可以进行添加,编辑,删除操作。

图2-1管理员角色用例图

大学生心理健康服务平台中的学生用户主要负责了如下功能操作。

(1)注册登录功能需求:没有账号的评委,可以输入账号,密码,昵称,邮箱等信息进行注册操作,注册后可以输入账号和密码进行登录。

(2)心理文章功能需求:学生可以对系统发布的心理文章进行浏览。

(3)心理测评功能需求:用户可以在线进行心理测评题目答题操作。

图2-2学生用户角色用例图

大学生心理健康服务平台中的教师用户主要有如下功能操作。

(1)教师登录与注册功能需求:教师可以通过注册获取帐户。

(2)留言板功能需求:教师登录系统以后,是可以进行对留言板信息查看,进行发布、评论等操作。

(3)心理测评功能需求:教师登录系统以后,是可以进行对心理测评题目进行编辑发布。

(4)教师介绍功能需求:教师登录系统以后,是可以进行对教师信息进行编辑管理。

(5)在线咨询功能需求:教师登录系统以后,是可以进行对学生的在线咨询问题进行查看以及回复处理。

(6)测评分析功能需求:教师登录系统以后,是可以对学生在线心理测评分析进行分析。

图2-3 教师用户角色用例图

3系统总体设计

3.1 系统开发架构的选择

如今随着web系统功能的不断完善,越来越多的项目选择web系统,同样大学生心理健康服务平台也是通过浏览器来访问系统主页面的。Web系统与app相比(后者主要是C/S架构),可以通过浏览器来规避很多问题,依靠浏览器让项目的开发变得简单,不再担心项目的版本跟新带来的数据传输等一系列的问题。值得注意的是B/S架构的项目,浏览器与服务器的数据的交互是通过http协议进行的,同样,服务器与数据库的数据交互也是通过http协议,统一的格式让信息的交互更加的简便与快捷。下图是具体的b/s架构图:

图3-1 系统B/S结构

3.1系统功能模块设计

大学生心理健康服务平台的整体架构确定以后,再来看大学生心理健康服务平台的主要功能模块图。整体的功能模块包括前台和后台,前台只要实现了学生和教师两个用户,主要的页面,包括首页,心理文章、心理测评、专题辅导、在线预约、在线咨询等。后台的模块主要实现了管理员,心理测评管理、用户管理、测评分析管理、专题辅导管理等。确定了模块以后,再设计各个模块的功能特点,方便抽取出各个模块的公共部分来。

图3.1大学生心理健康服务平台功能模块图

3.1.1 前台页面设计

本大学生心理健康服务平台的前台页面所有的页面设计主要是上中下的结构,这样的好处是让所有的页面更加的整洁。主题的页面颜色采用淡色为主,为突出页面的美观。主页面上分为导航栏,导航栏的每个导航项目设计为一张jsp页面,除此之外,还有就是用户中心页面,后台管理的页面了。后台管理页面已简单的上下结构为主。

3.1.2 用户模块设计

(1)用户模块结构图

本系统的用户包括管理员,学生,教师模块。三种用户模块的功能基本是相同的,教师跟学生模块比管理员多了一个注册功能,所以以用户模块的结构图为例进行分析,如下图:

图3.2用户模块结构图

(2)各个结构的具体业务逻辑

a.查询用户信息:设计最基础的查询功能,主要就是根据用户id查询用户信息。该功能主要体现在管理员用户信息查询和用户自己查询信息的时候。

b.修改用户信息:用户可以根据情况,对自己的基本信息进行修改,包括名字修改、密码修改、头像修改等操作。

c.增加用户:用户可以通过注册来获得账号

d.删除用户信息:管理员没有权利进行删除信息的删除,最多把用户加入到黑名单中,禁止用户进行登录操作。

3.1.3 评论管理模块设计

(1)评论模块结构图

大学生心理健康服务平台是一个交流性质的公开系统,用户和用户之间可以进行实时交流,比如留言中心、在线咨询等,增加用户之间的互动性。但是同时也为了更好的规范留言的内容,给予管理员删除不合适的言论的功能,所以需要专门设计一个留言板管理模块,具体的结构图如下:

图3.3留言板模块结构图

(2)各个结构的具体业务逻辑

a.查询留言:设计最基础的查询功能,主要就是根据用户id查询该用户下的所有留言信息。

b.发布留言:用户可以根据情况,发布自己留言信息到系统上。

c.删除留言:管理员没有权限修改用户的留言信息,但是可以删除用户的整条留言。

3.1.4在线咨询模块设计

(1)在线咨询模块结构图

大学生心理健康服务平台是中需要存储不少学生的在线咨询信息,用户可以进行问题咨询,教师和管理员可以回复管理咨询问等,具体的结构图如下:

图3.4在线咨询模块结构图

(2)各个结构的具体业务逻辑

a.咨询回复:管理员和教师可以对问题信息进行回复。

b.学生:用户可以提交问题信息,进行在线咨询。

3.2数据库设计

3.2.1数据库概要设计

大学生心理健康服务平台根据上面的E-R实体图,就再找到实体与实体之间的关系来,制作总的E-R图,实体之间的关系一共有4种,也就是一对一,多对一,一对多和多对多,总的E-R图是设计数据库表格的依据,如下图是系统的总E-R图。

图3.5系统总体E-R图

3.2.2数据库逻辑设计

根据上面的E-R图,继而设计数据库表格,注意的是数据库表格遵从三范式标准,这样以后操作也会更加简单一些。

系统的各个数据库表如下。

名称

类型

长度

不是null

主键

注释

student_id

int

11

学生ID

student_number

varchar

64

学号

student_name

varchar

64

学生姓名

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

special_counseling_id

int

11

专题辅导ID

title

varchar

64

标题

cover

varchar

255

封面

topic_type

varchar

64

专题类型

teacher_job_number

int

11

教师工号

teacher_name

varchar

64

教师姓名

brief_introduction

text

0

简介

details

longtext

0

详情

hits

int

11

点击数

praise_len

int

11

点赞数

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

teacher_introduction_id

int

11

教师介绍ID

teacher_job_number

int

11

教师工号

teacher_name

varchar

64

教师姓名

gender

varchar

64

性别

photo

varchar

255

照片

working_time

varchar

64

从业时间

career_portfolio_

text

0

职业履历

good_at_direction

text

0

擅长方向

teacher_introduction

longtext

0

教师介绍

hits

int

11

点击数

praise_len

int

11

点赞数

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

psychological_teacher_id

int

11

心理老师ID

teacher_job_number

varchar

64

教师工号

teacher_name

varchar

64

教师姓名

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

online_consultation_id

int

11

在线咨询ID

teacher_job_number

int

11

教师工号

teacher_name

varchar

64

教师姓名

student_number

int

11

学号

student_name

varchar

64

学生姓名

problem_description

text

0

问题描述

teacher_reply

text

0

教师回复

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

online_booking__id

int

11

在线预约ID

teacher_job_number

int

11

教师工号

teacher_name

varchar

64

教师姓名

student_number

int

11

学号

student_name

varchar

64

学生姓名

contact_number

varchar

64

联系电话

time_of_appointment

datetime

0

预约时间

examine_state

varchar

16

审核状态

examine_reply

varchar

16

审核回复

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

evaluation_information_id

int

11

测评分析ID

message_header

varchar

64

信息标题

evaluation_attachment

varchar

255

测评附件

release_time

date

0

发布时间

indicator_details

text

0

指标详情

scoring_rules

text

0

打分规则

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

exam_question_id

mediumint

8

题目测试

type

varchar

20

类型

title

varchar

255

题目

question_item

varchar

500

选项

answer

varchar

500

参考答案

score

double

8

总分

question_order

int

11

排序

exam_id

mediumint

8

所属试卷

create_time

timestamp

0

创建时间:

update_time

timestamp

0

更新时间:

4系统详细实现

大学生心理健康服务平台的详细设计与实现主要是根据前面的大学生心理健康服务平台的需求分析和大学生心理健康服务平台的总体设计来设计页面并实现业务逻辑。主要从大学生心理健康服务平台界面实现、业务逻辑实现这两部分进行介绍。

4.1系统前台功能实现

4.1.1系统主页功能实现

用户进入首页之后会显示如下的一个窗口。系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图,再往下是各种各样的模块信息,其主界面展示如下图4.1所示。

如下图:

图4.1大学生心理健康服务平台主界面

由于该项目只是用来测试,用户登录首页展示的图片等数据有的是从项目本地拿到的,有的则是从数据库中获取的。页面中的搜索部分,页头部分等都是属于公共样式,可以进行公告样式的抽取,然后再引入到jsp页面中。

4.1.2用户注册登录功能实现

不是大学生心理健康服务平台中用户的是可以在线进行注册的,当用户点击右上角的“个注册”的时候,,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号+选择身份登信息后,后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可注册成功。前台注册的部分包括了学生以及教师的注册,其用注册界面展示如下图4.2所示。

图4.2大学生心理健康服务平台用户注册界面

用户注册界面关键代码如下。

/**

     * 注册

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(HttpServletRequest request) throws IOException {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = service.readBody(request.getReader());

        query.put("username",String.valueOf(map.get("username")));

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

}

    public Map<String,Object> readBody(BufferedReader reader){

        BufferedReader br = null;

        StringBuilder sb = new StringBuilder("");

        try{

            br = reader;

            String str;

            while ((str = br.readLine()) != null){

                sb.append(str);

            }

            br.close();

            String json = sb.toString();

            return JSONObject.parseObject(json, Map.class);

        }catch (IOException e){

            e.printStackTrace();

        }finally{

            if (null != br){

                try{

                    br.close();

                }catch (IOException e){

                    e.printStackTrace();

                }

            }

        }

        return null;

    }

    public void insert(Map<String,Object> body){

        E entity = JSON.parseObject(JSON.toJSONString(body),eClass);

        baseMapper.insert(entity);

        log.info("[{}] - 插入操作:{}",entity);

}

4.2.3 登录功能实现

大学生心理健康服务平台中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到大学生心理健康服务平台的首页中;否则将会提示相应错误信息,用户登录界面如下图4.3所示。

图4.3大学生心理健康服务平台登录界面

用户登录的逻辑代码如下所示。

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

            String res = String.valueOf(service.runCountSql(sql).getSingleResult());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            tokenService.save(accessToken);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

}

4.2.4评论功能实现

用户在查看系统信息的时候,可以查看系信息的详细的界面,能够实现对信息的评论的功能,界面如图4.4所示:

图4.4大学生心理健康服务平台用户评论界面

主要的实现代码是:用户评论主要是对系统信息进行评论。其中评论中保存了评论的宿主编号。

用户评论界面的关键的代码如下。

@RequestMapping("/get_list")

    public Map<String, Object> getList(HttpServletRequest request) {

        Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));

        return success(map);

}

4.2.5留言板功能实现

用户在留言板界面可以添加留言信息,点击进入详细界面,可以发表留言,具体的实现界面如下图4.5所示:

图4.5留言板界面

留言板的关键代码如下。

@RequestMapping(value = {"/sum_group", "/sum"})

    public Map<String, Object> sum(HttpServletRequest request) {

        Query count = service.sum(service.readQuery(request), service.readConfig(request));

        return success(count.getResultList());

}

4.2.6心理测评功能实现

当用户点击导航栏“心理测评”后可以查看到心理测评页面,点击测评会进入答题界面,用户可以在线答题,具体的实现界面如下图4.6所示:

图4.6心理测评界面

心理测评关键代码如下。

@RequestMapping(value )

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

}

    @Transactional

    public void delete(Map<String,String> query,Map<String,String> config){

        StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" ");

        sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));

        log.info("[{}] - 删除操作:{}",table,sql);

        Query query1 = runCountSql(sql.toString());

        query1.executeUpdate();

    }

4.2.7教师介绍功能实现

当用户点击导航栏“教师介绍”后可以查看到教师信息列表,点击某一教师信息就会进入详细介绍的界面,具体的实现界面如下图4.7所示:

图4.7教师介绍界面

教师介绍关键代码如下。

@PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

    @Transactional

    public Map<String, Object> addMap(Map<String,Object> map){

        service.insert(map);

        return success(1);

}

    public Map<String,Object> readBody(BufferedReader reader){

        BufferedReader br = null;

        StringBuilder sb = new StringBuilder("");

        try{

            br = reader;

            String str;

            while ((str = br.readLine()) != null){

                sb.append(str);

            }

            br.close();

            String json = sb.toString();

            return JSONObject.parseObject(json, Map.class);

        }catch (IOException e){

            e.printStackTrace();

        }finally{

            if (null != br){

                try{

                    br.close();

                }catch (IOException e){

                    e.printStackTrace();

                }

            }

        }

        return null;

}

    public void insert(Map<String,Object> body){

        StringBuffer sql = new StringBuffer("INSERT INTO ");

        sql.append("`").append(table).append("`").append(" (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            sql.append("`"+humpToLine(entry.getKey())+"`").append(",");

        }

        sql.deleteCharAt(sql.length()-1);

        sql.append(") VALUES (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            Object value = entry.getValue();

            if (value instanceof String){

                sql.append("'").append(entry.getValue()).append("'").append(",");

            }else {

                sql.append(entry.getValue()).append(",");

            }

        }

        sql.deleteCharAt(sql.length() - 1);

        sql.append(")");

        log.info("[{}] - 插入操作:{}",table,sql);

        Query query = runCountSql(sql.toString());

        query.executeUpdate();

    }

4.2系统后台功能实现

4.2.1后台注册功能实现

   在后登录界面,评委选择“注册”按钮,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号+选择身份登信息后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有验证没问题后即可提示注册成功。

4.2.2后台用户登录功能实现

大学生心理健康服务平台中的后台的管理员是可以通过自己的账户名和密码进行登录的,当管理员输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到大学生心理健康服务平台的首页中;否则将会提示相应错误信息,登录界面如下图4.8所示。

图4.8后台登录界面

4.2.3用户管理功能实现

管理员在用户管理模块,可以对用户信息进行管理,用户管理模块由管理员,学生,教师三部分组成组成,这里以嘘声用户管理为例,具体的实现界面如下图:

图4.9用户管理界面

用户管理关键代码如下。

 @PostMapping("/set")

@Transactional

    public Map<String, Object> set(HttpServletRequest request) throws IOException {

        service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

        return success(1);

}

4.2.4心理文章管理功能实现

管理员点击“心理文章管理”这一按钮就会展示其下子菜单,选择“心理文章”在这个界面,管理员可以对心理文章信息添加,编辑,删除,具体的实现界面如下图:

图4.10心理文章管理界面

4.2.5作品中心功能实现

管理员在“更多管理”界面的子菜单下可以管理“专题辅导”,管理员能够对专题辅导进行增删改查,具体的实现界面如下图:

图4.11专题辅导界面

专题辅导关键代码如下。

@RequestMapping("/get_obj")

    public Map<String, Object> obj(HttpServletRequest request) {

        List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));

        if (resultList.size() > 0) {

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("obj",resultList.get(0));

            return success(jsonObject);

        } else {

            return success(null);

        }

}

4.2.6测评分析功能实现

管理员在“更多管理”界面的子菜单下可以管理“测评分析”,可以进行“测评分析”发布操作,具体的实现界面如下图:

图4.12测评分析界面

测频评信息关键代码如下。

public Map<String, Object> success(Object o) {

        Map<String, Object> map = new HashMap<>();

        if (o == null) {

            map.put("result", null);

            return map;

        }

        if (o instanceof List) {

            if (((List) o).size() == 1) {

               o =  ((List) o).get(0);

                map.put("result", o);

            }else {

                String jsonString = JSONObject.toJSONString(o);

                JSONArray objects = service.covertArray(JSONObject.parseArray(jsonString));

                map.put("result", objects);

            }

        } else if (o instanceof Integer || o instanceof String) {

            map.put("result", o);

        } else {

            String jsonString = JSONObject.toJSONString(o);

            JSONObject jsonObject = JSONObject.parseObject(jsonString);

            JSONObject j = service.covertObject(jsonObject);

            map.put("result", j);

        }

        return map;

}

4.2.7在线预约功能实现

管理员在“更多管理”界面的子菜单下可以管理用户的“在线预约”信息,具体的实现界面如下图:

图4.13在线预约管理界面

在线预约管理关键代码如下。

public Map<String, Object> error(Integer code, String message) {

        Map<String, Object> map = new HashMap<>();

        map.put("error", new HashMap<String, Object>(4) { {

            put("code", code);

            put("message", message);

        }});

        return map;

}

5系统测试

5.1 系统测试目的

系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些bug,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。

5.2 系统可用性测试

系统的可用性测试是测试系统最基本的功能,比如鼠标点击是否可用,页面跳转是否正常等。下面是具体的测试结果。

表5-1大学生心理健康服务平台可用性测试

测试项

测试人员评价

窗口移动、改变大小、关闭等操作是否正常

操作模块是否友好

模块和提示内容等文字描述是否正确

模块布局是否合理、协调

模块的状态是否正确(对选中项能否发生对应切换)

键盘、鼠标操作是否支持

所需的数据项是否正确显示

操作流程是否合理

是否提供帮助信息

5.3 系统典型测试用例

对系统主要页面和功能点的测试用例如下:

(1) 用户登陆系统测试用例如表 5-2 所示。

表5-2用户登录系统测试用例

用例名称

用户登录系统

目的

测试用户通过正确的用户名和密码可否登录功能

前提

未登录的情况下

测试流程

1) 进入登录页面

2) 输入正确的用户名和密码

预期结果

用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入

实际结果

实际结果与预期结果一致

(2)心理文章测试用例如表 5-3 所示

表5-3 心理文章测试用例

用例名称

心理文章

目的

测试心理文章功能

前提

测试流程

打开心理文章界面

预期结果

可以进行查看心理文章详细

实际结果

实际结果与预期结果一致

(3)评论试用例如表 5-4所示

表5-4评论测试用例

用例名称

评论

目的

测试评论模块功能

前提

测试流程

用户在评论区进行点评操作。

预期结果

评论提交以后,可以查看到自己的评论信息

实际结果

实际结果与预期结果一致

(4)在线咨询测试用例如表 5-5 所示

表5-5 在线咨询测试用例

用例名称

在线咨询

目的

测试在线咨询功能

前提

测试流程

管理员和教师点击在线咨询,回复咨询信息

预期结果

提交问题后可以查看咨询信息,前台显示咨询信息

实际结果

实际结果与预期结果一致

5.4 测试总结

通过系统的调试,能够检测项目的稳定性,为项目正式运行、稳定运行提供了可预测性的维护备案。能够帮助用户熟悉整个项目,并对项目可能出现的错误有所了解。本文提供了部分调试用例及调试日志,可以帮助用户解决简单的错误问题,也加深了开发者对于此框架下的项目编写的了解度,为后期开发者顺利完成项目、发布项目提供了非常大的帮助。

总结

本次设计中,我还学会了很多,例如良好的编程思想和完善的规划思想。在着手编程之前需要罗列出程序框架的大概,脑海中构建出程序的主题框架。做好这一步我们才能胸有成竹的经行开发项目。当设计框架了熟于心之后,需要思考本次编程所需的主要知识点和技术点,并充分学习。如此一来项目的开发才能循序渐进、如丝般顺滑,长久以往就能养成良好的开发习惯。一个程序好不好还要看出的bug多不多,如果在项目完成前做好bug的查验与预防可能发生的事故才能保证程序的稳定长久性运行。如果项目在完工后出现各种问题自己,那么在进入社会后,不仅会给公司团队带来麻烦和增加不必要的工作,还会导致客户流失,公司对自己的评价下降。

在本次项目中我也暴露了诸多问题。对于Java的编程知识有所欠缺,环境配置和算法上出现诸多问题,时常导致项目运行出错,或者目标的实现有问题。或者实现想法时算法未优化,使得代码冗长,程序运行不顺畅。

参考文献

[1]霍福华,韩慧.基于SSM微服务架构下前后端分离的MVVM模型[J].电子技术与软件工程,2022(01):73-76.

[2]单树倩,任佳勋.基于SSM和Vue框架的数据库原理网站设计与实现[J].电脑知识与技术,2021,17(30):40-41+50.

[3]韩策,张娜,王松亭,张凯,何方,袁峰.SSM OPC客户端设计与研究[J].电子世界,2021(19):25-26.

[4]王萍.SSM项目中EhCache缓存技术的实现[J].电脑知识与技术,2021,17(29):79-81.

[5]田成龙,陆晓寒,严梦瑶,周鑫.基于SSM的成绩排名系统[J].软件,2021,42(10):129-132.

[6]喻佳,吴丹新.基于SSM的Web快速开发框架[J].电脑编程技巧与维护,2021(09):31-33.

[7]巢晟盛.基于SSM微服务架构下前后端分离的MVVM模型浅析[J].电脑知识与技术,2021,17(23):128-129+141.

[8]李方方,夏新澳.基于JPlag与SSM的代码查重云系统[J].信息技术与信息化,2021(07):114-116.

 [9]陈向军,王晓温,韦耀阳.中学生心理健康教育社会支持体系理论框架与运作模式的建构.黄冈师范学院学报.2021,19(21):120-122

[10]何安明,万娇娇,惠秋平.手机依赖与青少年心理健康的关系:学业倦怠的中介作用和应对方式的调节作用.2020,16(23):141-144. 

[11]杜铭诗,热依汗姑·吐尔逊,张梓澜,刘莎.高中生情绪调节策略与心理健康——基于心理健康双因素模型.心理月刊.2020,17(08):37-39. 

[12]屈子睿.大学生心理健康教育中存在的问题及对策探索.产业与科技论坛.2020,33(41):109-111. 

[13]段淑萍,王晓丽.基于Java语言的继电保护大数据管理系统设计与实现.电脑编程技巧与维护.2020,47(08):53-56. 

[14] Han CE, Zhang Na, Wang Songting, Zhang Kai, He Fang, Yuan Feng Design and research of SSM OPC client [J] Electronic world, 2021 (19): 25-26

[15] Wang Ping Implementation of ehcache caching technology in SSM project [J] Computer knowledge and technology, 2021,17 (29): 79-81

[16] Tian Chenglong, Lu Xiaohan, Yan Mengyao, Zhou Xin Score ranking system based on SSM [j] Software, 2021,42 (10): 129-132

致  谢

本次设计历时3个月。在这个毕业设计中,它离不开指导教师的指导,使事情基本顺利。指导老师无论是在毕业设计历经中,还是在论文做完中都给了了我特别大的助益。另1个方面,教师认真负责的工作姿态,谨慎的教学精神厚重的理论水准都使我获益匪浅。他勤恳谨慎的教学育人学习姿态也给我留下了特别特别深的感觉。我从老师那里学到了很多东西。在理论和实践中,我的技能得到了特别大的提高。在此,特向教师表示由衷的感激。

经过对该毕业设计的全部研究和开发,我的系统研发经历了从需求分析到实现详细功能,再到最终测试和维护的特殊进展。让我对系统研发有了更深层次的认识。如今我的动手本领单独处理疑惑的本领也获取到了特别大的演练学习增多,这是这次毕业设计最好的收获。

最后,在整个系统开发过程中,我周围的同学和朋友给了我很多意见,所以我很快就确认了系统的商业思想。在次,我由衷的向他们表示感激。

免费领取项目源码,请关注点赞+私信

猜你喜欢

转载自blog.csdn.net/Q_3461074420/article/details/131009417