1.1 选题背景
2019 年12月,国家卫生健康委、中宣部等12部门联合印发《健康中国行动——大学生心理健康行动方案(2019—2022年)》。世界卫生组织研究发现,精神卫生和心理行为问题(尤其是抑郁症)是年轻人最主要的疾病负担。国家卫健委发布的数据显示:我国大学生中,至少有1000万人受到各种情绪障碍和行为问题的困扰。每年接受精神心理疾病治疗的人群中,大学生约占四分之一。进一步加强大学生心理健康,及时预防干预大学生心理健康问题,对个人、家庭、社会都非常重要,事关大学生的健康成长,事关社会和谐稳定。当今社会,许多人缺乏对心理健康的重视程度,乃至家长与大学生本身都缺乏对孩子或自身的心理健康关注度。针对这个现象以及大学生心理健康问题频发的状况,我想通过这个平台来唤醒家长以及大学生乃至整个社会对心理健康的重视程度。
本课题采用全新的计算机网络和管理系统,将成为提高大学生心理健康管理效率,改善服务水准的重要手段之一。人们生活的速度也在加快,传统模式的大学生心理健康管理满足不足了现代人的生活追求,服务质量、服务速度、服务的特色内容等等在改变人们的思想,之前的很多心理健康平台由于人力、物理、财力等原因,一些管理系统无法完美的展现它的特色,优势,变得繁琐,浪费了很多顾客资源。本课题的目标主要是设计并能够实现一个基于SSM的学校心理咨询聊天室系统,前端的用户可以使用微信小程序,后台管理使用基于Java+Mysql的B/S架构,通过后台设置心理文章信息、录入特色心理测试信息等。学校心理咨询聊天室系统系统体现以大学生为中心,提供快捷、方便的服务,给大学生一种服务至上的享受,提高大学生心理健康的管理水平,简化各种复杂操作,在最合理最短时间内完成大学生心理健康业务规范操作,增加学员服务感受。
1.2 选题意义
该课题旨在创建一个专门针对大学生心理健康的知识科普平台,其受众包含大学生与其父母,包含知识科普,自我筛查,在线咨询,与匿名倾诉(包含父母与大学生)四个大点。全方位的对大学生心理健康问题进行科普与引导治疗,强调大学生心理健康的重要性,促进社会的稳定发展,维护大学生的身心健康。
随着社会不断进步,大学生心理健康问题日益增加,而与成年人相比,大学生在面对心理健康问题时往往很少寻求帮助,他们或担心隐私泄露,受到别人耻笑,或者面临着同龄人的压力,从而希望靠自己来解决问题。甚至很多父母缺乏心理心理文章,对心理健康服务缺乏了解,忽视心理健康的重要性。通过这样一个学校心理咨询聊天室系统,对父母起到宣传与教育的作用,使大学生正确认识到自己心理可能存在的问题,其在成长中是正常现象,呼吁父母多关心孩子心理健康,促进大学生健康成长,从而促使国家公共卫生事业的进步。
1.3 研究内容
本课题选择JAVA来进行开发,前台使用微信小程序开发,数据库选择MySQL进行建库,JAVA是目前最为流行的技术,无论是成熟度和未来发展都更能适应本学校心理咨询聊天室系统的业务。
本课题使用面向对象的设计思想进行设计,对系统的现状进行调研,收集当前学校心理咨询聊天室系统的需求,以及对实际业务的调查,整理需求文档,使用用例图状态图等进行描述,接着使用面向对象技术设计系统功能,系统数据库。完成学校心理咨询聊天室系统,主要包括了系统的开发背景收集、建模工具选型、技术确定、需求分析的整理、数据库的设计和功能模块划分、系统环境的部署、实现测试方法的选择,以及最后的搭建部署。
通过使用Java这种面向对象语言与微信小程序相结合,在老师的指导下完成设计,并对整个系统进行验证测试,利用学校心理咨询聊天室系统,直接在前台页面里注册、登录、进行心理测试、医生咨询、在线聊天,管理后台信息的录入,完成心理医生的管理。
第二章 相关技术介绍
2.1 Java语言
学校心理咨询聊天室系统后台使用面向对象的Java技术进行编程,Java是由Sun公司开发的,是目前应用最广泛的编程语言。Java上手简单,功能强大,经过多年的发展,Java语言目前广泛应用在企业级应用开发、Windows系统开发、Web开发、移动技术等多个技术领域。C#语言稳定性强、安全性高,可以跨平台使用,代码复用度高,所以也使得Java语广泛应用。
总体来说,Java语言具有面向对象和多线程的特点,面向对象是把项目的业务抽象为对象,具有封装,继承和多态的特点。
封装是把实体的属性和方法进行合并,在项目中主要应用在数据库实体类中。通过封装保存数据和传递数据。继承,提高了编程的效率,在子类中定义属性和方法,继承类对子类进行继承,通用的方法直接可以使用,然后对其他业务进行扩展,大大提高了代码成功率,减少了开发难度。
多态指的是一个方法,可以采用不同形式调用,比如一个方法传递的变量值可以为一个两个三个,那么,针对不同的方位值,调用不同的方法来实现逻辑。
Java语言有四个部分,Java编程规范、Java虚拟机、Java class文件、Java应用程序接口。其中Java虚拟器对Java进行加载,执行代码,将加载的文件编写为引擎可以识别的二进制文件,然后进行翻译。
2.2 SSM框架
SSM框架包括SpringMVC、Spring、MyBatis三个方面。SpringMVC是MVC的改改,它也属于Spring框架,可以零配置的进行开发,缩减了开发的时间,当用户通过浏览器发送Request请求时,在配置文件里通过DispatcherServlet前端进行处理连接器。通过HandlerMapping识别器进行匹配,识别器是通过Control的控制器进行调用,Control完成处理后传送给DispatcherServlet解析Model和View后,返回信息到前台页面。Spring是J2EE的一个标准,Spring将表现层、业务层耦合降低,因为它包含IOC控制反转,支持依赖注入。Spring支持七个模块,每个模块可单独使用,也可以相互之间进行调用。Spring核心容器是通过工厂模式实现,代码的依赖和配置分离,另外一个是面向切片,也就是AOP,通过配置文件的配置,很轻松的实现切片管理,比如说实现事务管理。Spring也提供了数据访问对象,通过数据库操作,并将异常和数据提供给业务逻辑。
MyBatis是一个持久型框架,支持映射、存储过程。MyBatis不需要JDBC的数据库操作代码,通过注解或者XML映射数据对象直接反映数据集字段,首先通过SqlSession获取数据库操作链接实例,然后通过标准方法产生实体,实体是通过配置文件进行配置的。
2.3 Mysql数据库
数据库,指的是对数据按照一定格式进行存储的管理平台。数据库分为多种平台,常见的有SqlServer数据库、MySQL数据库等。数据库和程序无关,一个数据库可以为多个应用程序提供服务,数据库的对象就是数据。数据库是独立于应用程序的子系统,数据库设计包括数据结构设计、数据内容、易于扩展、数据安全等方面。目前,在大数据发展状态下,数据库广泛应用在信息处理、人工智能、AI等各个领域。
学校心理咨询聊天室系统使用的是MySQL开发,MySQL是一个关系型数据库,同时MySQL也是开源免费的数据库。对于关系型数据而言,当数据巨大的时候,查询效率会比较低下,所以通常采用索引或者改变数据集来提高数据的调用,从而提高检测效率。MySQL体积小,安装速度快,在中小型网站和应用程序中广泛存在,使用MySQL也具有极高的安全性,包括用户登录的权限,数据操作的管理权限,数据备份,恢复等功能,但目前MySQL也面临着一定的挑战,特别是在一些小型的数据库发展带来的市场占用。但是在MySQL关系数据库因为庞大的用户群,和优良特性,MySQL依然是建站首选,降低了开发成本和部署难度。
2.4 微信小程序
微信小程序是腾讯旗下的一种应用,不需要安装,发布到微信端即可使用的程序。虽然起名为小程序,但是借助后台管理,可以实现软件应有的所有强大功能。无论企业、组织、政府还是个人都可以申请使用。借助微信平台,虽然只发展了两年,但是小程序已经非常普遍。
微信小程序页面包括WXML页面、WXSS页面、js页面和json页面。WXML是创建网页的,WXSS是针对网页的样式代码文件,JS是处理数据和功能跳转的页面文件,而JSON对网页标题进行命名。可见,微信小程序关键技术在于JS、HTML5、和JSON数据格式的处理。
微信小程序的生命周期包括小程序的初始化后触发show事件,代码切换到后台,触发onhide事件,执行业务逻辑后,切换到前台,触发onshow事件。微信小程序也可以调用h5页面进行解析和显示,这不影响微信小程序的效率。使用内嵌H5页面也是目前常用的开发手段,这样做的好处在于可移植性强,不但应用在微信中,也可以再其它平台使用。另外,当发布微信小程序后,内嵌H5,更新代码时可以绕过微信的再次审核。
微信小程序的发布也很便捷,通过编译生成二维码,然后手机微信扫描二维码就可以上传代码到微信服务器。但是小程序端的数据如果使用了数据库和后台,需要先申请域名,把后台发布到备案后的域名空间下,才能正常显示界面。
小程序受到越来越多的用户喜好,用户不再受到手机系统的限制,只需要安装微信即可使用应用。
第三章 系统分析
3.1可行性分析
3.1.1 操作可行性
操作方面,本系统界面简洁,人机交互能力强。在学校心理咨询聊天室系统的基本业务下,降低操作门槛,可以方便的对各种信息进行浏览,交互。管理员对信息进行有效的管理,通过操作菜单进行每一个功能模块的具体操作,不存在前后模块业务上的复杂操作要求,是一种所见即所得的方式,所以在操作上具有可行性。
3.1.2 经济可行性
经济可行性主要从投入和产出进行分析,投入方面包括计算机硬件、计算机网络和本学校心理咨询聊天室系统软件开发的成本。目前计算机硬件成本较低,配置主流,然后网络方面,可以和其他的管理系统同时搭建,减少投入。在开发学校心理咨询聊天室系统上,业务流程并不复杂,时间成本低。产出方面,学校心理咨询聊天室系统投入使用后可以改变旧模式的效率低下,耗费人力,物力资源多的问题,并提高效率,带来经济利益,所以在经济上具有可行性。
3.1.3 技术可行性
技术方面,本系统利用微信小程序进行开发,后台选择面向对象的JAVA编程,JAVA具有功能强大,适应性强的特点。在JAVA的框架下可以开发出完善的应用程序系统,并且开发周期短。可以和MySQL数据库完美链接,数据库可以存储大量的数据并提供安全保障,因此,构建学校心理咨询聊天室系统,在技术上是可行的。
3.2 需求分析
3.2.1非功能性需求
系统非功能需求,只能是为了满足客户需求之外的非功能性要求。系统需要具有数据完整性验证的功能,对界面上非法的数据和不完整的数据进行提示,不能直接保存到数据库中,造成不完整性因素。
系统提供一定的交互能力,给不同用户带来方便,提供问题的回答和讨论。并将历史问题归纳整理,作为相同问题的案例进行展示。
对系统可维护性的要求,所有的管理系统都不是一成不变的,在使用中可能发生需求的增加或者变更要求。软件具有较高的可维护性,方便后期的升级换代,系统应该便于使用和访问和操作,为用户提供便捷的。便捷的访问操作,减少宣传和维护的费用。
在对学校心理咨询聊天室系统开发时,需要系统为Windows10,服务器为Tomcat软件,存储的空间较小,数据库和程序1G存储即可够用。
操作系统的性能要求客户访问系统的时间不应该超过三秒,系统处理多个并发用户,cpu占有率低于10%,同时响应时间应该为五秒内。
3.2.2功能需求
学校心理咨询聊天室系统为用户提供心理医生咨询服务,系统包括微信小程序端和后台。
微信小程序用户可以先进行注册,填写个人的基本信息提交到服务器,服务器把数据保存到数据库。管理员对大学生的信息进行验证后,大学生通过验证后的用户名和密码进行登录,登录之后查看心理文章。心理医生在首页展示,查看心理医生具体信息后,可以进行咨询,填写咨询信息后,医生端可以查看咨询,并进行回复。点开我的功能模块,修改个人信息,重新登录等功能。
管理员是后台的管理者,对系统用户进行管理,对系统健康信息进行管理,系统管理等,发布公告推送给小程序端。
在线聊天,大学生登录微信小程序后发布聊天内容,其他用户查看聊天信息,在线交流讨论,管理员也可以对聊天内容进行回复或者删除。
3.3 系统用例
学校心理咨询聊天室系统本质上是一个心理测试、医生咨询、心理聊天的平台,从用户角度,系统包括大学生、心理医生和管理员。
3.3.1 大学生功能需求
未经登录的用户不能使用本平台,通过授权的用户才能查看心理医生信息,选择具体的心理医生,查询心理医生,选择心理医生在线咨询。大学生定期对个人信息进行修改,包括个人信息和密码信息,最终通过注销后退出本系统。大学生在前台还可以查看系统公告、心理文章、心理测试、心理咨询、在线聊天等。
用户的用例图如3.1所示:
用户
图3-1 用户用例图
3.3.2 心理医生功能需求
心理医生具有课程管理的权限,通过后台的登录页面进入验证权限后才能进行管理。管理内容包括,管理大学生咨询的问题,心理问答管理、心理测试问题管理、个人资料管理。
心理医生的用例图如3.2所示
咨询师
图3-2 心理医生用例图
3.3.2 管理员功能需求
管理员具有最高的权限,通过后台的登录页面进入验证权限后才能进行管理。管理内容包括,管理心理文章管理、心理测试管理,聊天管理、用户管理、系统管理。
管理员的用例图如3.3所示
管理员
图3-3 管理员用例图
第四章 系统设计
4.1系统详细设计
4.1.1功能设计
学校心理咨询聊天室系统包括用户管理、系统管理、咨询管理、心理文章、系统管理、心理测试管理、心理问答管理。
用户管理包括管理员管理、心理医生管理、大学生用户管理。当前台大学生进行注册的时候,权限设为大学生。管理员用户权限设置为管理员。虽然数据存储在一个数据库表,但是在登录的时候使用权限类别进行区分,管理员用户无法通过客户端进行登录。同理,客户端用户也无法登陆管理员端。
心理医生发布心理文章的信息,信息发布后的公告在微信小程序客户端浏览查看。
其中系统功能结构图如4.1所示:
基于微信小程序的学校心理咨询聊天室
系统管理
会员管理
医生管理
心理文章管理
聊天管理
管理员
医生
会员
测试管理
用户登录
个人信息管理
咨询管理
密码修改
心理文章管理
用户登录
心理咨询
聊天交流
查看心理文章信息
在线测试
图4.1 系统功能结构图
主要功能:
会员管理。会员用户的注册、登录。会员在个人中心,进行个人信息的修改和用户密码的修改,系统注销等操作。
心理医生管理,管理员录入心理医生,修改心理医生信息。在前台可以查看心理医生风采,包括心理医生的介绍和个人图片信息。心理医生通过用户名和密码登录系统,管理个人信息。
其中图片是保存在服务器端,数据库记录对应的图片链接地址,在资源类信息保存中还可以通过二进制进行保存。本系统为了降低数据库的负荷,把图片以文件格式进行存储,这样既减轻了服务器的数据库的存储,也提高了图片数据传输的速度。大学生发布后,在管理端对数据进行管理,删除一些违法违规的记录。没有删除的记录将在客户端首页进行展示,用于其他大学生查看。大学生可以通过心理文章的分类进行搜索,不同分类对应了不同的心理文章。也可以通过关键字进行检索。
更改个人信息:用户登录后可以对个人信息进行修改,确保用户信息的准确性和实效性。
心理测试:为用户提供一些心理小测试,用户可以根据测试结果对自己的心理状态有一个大概的了解。
心理文章:里面有各个专题的心理文章,比如人际社交、家庭关系等。
心理咨询:主要是学生用户进行心理咨询。
聊天交流,在情感专区、情绪日志部分发布聊天信息,微信小程序用户可以发布情绪日志,设置公开或者个人查看。
4.2.2后台模块程设计
业务流程图反映了系统各业务之间的关联和走向。用户点击提交按钮,实现登录。在进行登录前,需要进行验证,验证用户名和密码是否输入。而用户是否需要登录,先通过session验证用户信息,然后验证session中的用户是否存在于变量中,最后验证是否需要登录。其中管理员登录部分的登录验证流程图为:
用户注册登录
输入用户信息
查询用户信息表
是否输入
No
Yes
是否存在
Yes
No
用户登录
结束
图4.3 登录验证流程图
管理员登录后,对系统进行管理,主要包括对用户的管理、课程管理、咨询管理,每一种功能的管理都对应数据的增删改查,其中管理信息流程图如4.4所示:
图4 .4 管理员管理信息流程图
4.2.3微信小程序用户模块流程设计
学校心理咨询聊天室系统微信小程序端,需要大学生用户注册后,使用注册的用户名和密码进行登录,登录成功后,查看心理文章信息,可以通过关键字进行查询,对心理医生进行咨询。其中前台客户端功能流程图如图4.5所示。
Y
开始
登录
回复信息
咨询
是否成功
Y
收藏(关注)等
是否成功
查看医生信息
结束
N
N
图4.5 客户端流程图
4.2 数据库设计
4.2.1逻辑结构设计
学校心理咨询聊天室系统的ER图如4.6所示:
图4.6 系统ER图
管理员
咨询消息
健康知识
医生
会员
问答信息
管理
管理
审核
咨询
回复
明细
1
1
n
n
n
1
1
n
1
n
n
m
从ER图可以看出学校心理咨询聊天室系统的数据库表和各数据库表关系,如管理员管理医生信息,心理文章信息。管理用户信息,用户可以咨询信息。
4.2.2物理结构设计
学校心理咨询聊天室系统中包括多个信息表。
- 表: xinliketang信息表
编号 | 数据字段名称 | 对应类型 | 主键 | 允许空 | 字段的备注信息 |
No1 | C_id | bigint(8) | PK | No | 主键 |
No2 | C_addtime | timestamp(8) | NO | No | 创建时间 |
No3 | C_biaoti | nvarchar(400) | NO | Null | 标题 |
No4 | C_neirong | text(16) | NO | Null | 内容 |
No5 | C_fengmian | nvarchar(400) | NO | Null | 封面 |
No6 | C_faburiqi | datetime(8) | NO | Null | 发布日期 |
No7 | C_yishenggonghao | nvarchar(400) | NO | Null | 医生工号 |
No8 | C_yishengxingming | nvarchar(400) | NO | Null | 医生姓名 |
No9 | C_thumbsupnum | int(4) | NO | Null | 赞 |
No10 | C_crazilynum | int(4) | NO | Null | 踩 |
- 表: discussxinliyisheng信息表
编号 | 数据字段名称 | 对应类型 | 主键 | 允许空 | 字段的备注信息 |
No1 | C_id | bigint(8) | PK | No | 主键 |
No2 | C_addtime | timestamp(8) | NO | No | 创建时间 |
No3 | C_refid | bigint(8) | NO | No | 关联表id |
No4 | C_userid | bigint(8) | NO | No | 用户id |
No5 | C_nickname | nvarchar(400) | NO | Null | 用户名 |
No6 | C_content | text(16) | NO | Null | 评论内容 |
No7 | C_reply | text(16) | NO | Null | 回复内容 |
- 表: storeup信息表
编号 | 数据字段名称 | 对应类型 | 主键 | 允许空 | 字段的备注信息 |
No1 | C_id | bigint(8) | PK | No | 主键 |
No2 | C_addtime | timestamp(8) | NO | No | 创建时间 |
No3 | C_userid | bigint(8) | NO | No | 用户id |
No4 | C_refid | bigint(8) | NO | Null | 收藏id |
No5 | C_tablename | nvarchar(400) | NO | Null | 表名 |
No6 | C_name | nvarchar(400) | NO | No | 收藏名称 |
No7 | C_picture | nvarchar(400) | NO | No | 收藏图片 |
No8 | C_type | nvarchar(400) | NO | Null | 类型(1:收藏,21:赞,22:踩) |
No9 | C_inteltype | nvarchar(400) | NO | Null | 推荐类型 |
- 表: examrecord信息表
编号 | 数据字段名称 | 对应类型 | 主键 | 允许空 | 字段的备注信息 |
No1 | C_id | bigint(8) | PK | No | 主键 |
No2 | C_addtime | timestamp(8) | NO | No | 创建时间 |
No3 | C_userid | bigint(8) | NO | No | 用户id |
No4 | C_username | nvarchar(400) | NO | Null | 用户名 |
No5 | C_paperid | bigint(8) | NO | No | 心理测评id(外键) |
No6 | C_papername | nvarchar(400) | NO | No | 心理测评名称 |
No7 | C_questionid | bigint(8) | NO | No | 题目id(外键) |
No8 | C_questionname | nvarchar(400) | NO | No | 题目名称 |
No9 | C_options | text(16) | NO | Null | 选项,json字符串 |
No10 | C_score | bigint(8) | NO | Null | 分值 |
No11 | C_answer | nvarchar(400) | NO | Null | 正确答案 |
No12 | C_analysis | text(16) | NO | Null | 答案解析 |
No13 | C_myscore | bigint(8) | NO | No | 题目得分 |
No14 | C_myanswer | nvarchar(400) | NO | Null | 考生答案 |
- 表: cepingfenxi信息表
编号 | 数据字段名称 | 对应类型 | 主键 | 允许空 | 字段的备注信息 |
No1 | C_id | bigint(8) | PK | No | 主键 |
No2 | C_addtime | timestamp(8) | NO | No | 创建时间 |
No3 | C_yonghuming | nvarchar(400) | NO | Null | 用户名 |
No4 | C_xingming | nvarchar(400) | NO | Null | 姓名 |
No5 | C_touxiang | nvarchar(400) | NO | Null | 头像 |
No6 | C_nianling | nvarchar(400) | NO | Null | 年龄 |
No7 | C_shouji | nvarchar(400) | NO | Null | 手机 |
No8 | C_ceshitimu | nvarchar(400) | NO | Null | 测试题目 |
No9 | C_ceshichengji | nvarchar(400) | NO | Null | 测试成绩 |
No10 | C_jieguofenxi | text(16) | NO | Null | 结果分析 |
No11 | C_cepingshijian | datetime(8) | NO | Null | 测评时间 |
No12 | C_userid | bigint(8) | NO | Null | 用户id |
- 表: config信息表
编号 | 数据字段名称 | 对应类型 | 主键 | 允许空 | 字段的备注信息 |
No1 | C_id | bigint(8) | PK | No | 主键 |
No2 | C_name | nvarchar(200) | NO | No | 配置参数名称 |
No3 | C_value | nvarchar(200) | NO | Null | 配置参数值 |
- 表: xinliyisheng信息表
编号 | 数据字段名称 | 对应类型 | 主键 | 允许空 | 字段的备注信息 |
No1 | C_id | bigint(8) | PK | No | 主键 |
No2 | C_addtime | timestamp(8) | NO | No | 创建时间 |
No3 | C_yishenggonghao | nvarchar(400) | NO | No | 医生工号 |
No4 | C_mima | nvarchar(400) | NO | No | 密码 |
No5 | C_yishengxingming | nvarchar(400) | NO | No | 医生姓名 |
No6 | C_xingbie | nvarchar(400) | NO | Null | 性别 |
No7 | C_touxiang | nvarchar(400) | NO | Null | 头像 |
No8 | C_zhicheng | nvarchar(400) | NO | Null | 职称 |
No9 | C_shanzhang | nvarchar(400) | NO | Null | 擅长 |
No10 | C_gerenjianjie | text(16) | NO | Null | 个人简介 |
No11 | C_lianxidianhua | nvarchar(400) | NO | Null | 联系电话 |
No12 | C_clicktime | datetime(8) | NO | Null | 最近点击时间 |
No13 | C_clicknum | int(4) | NO | Null | 点击次数 |
- 表: forum信息表
编号 | 数据字段名称 | 对应类型 | 主键 | 允许空 | 字段的备注信息 |
No1 | C_id | bigint(8) | PK | No | 主键 |
No2 | C_addtime | timestamp(8) | NO | No | 创建时间 |
No3 | C_title | nvarchar(400) | NO | Null | 帖子标题 |
No4 | C_content | text(16) | NO | Null | 帖子内容 |
No5 | C_parentid | bigint(8) | NO | Null | 父节点id |
No6 | C_userid | bigint(8) | NO | No | 用户id |
No7 | C_username | nvarchar(400) | NO | Null | 用户名 |
No8 | C_isdone | nvarchar(400) | NO | Null | 状态 |
- 表: exampaper信息表
编号 | 数据字段名称 | 对应类型 | 主键 | 允许空 | 字段的备注信息 |
No1 | C_id | bigint(8) | PK | No | 主键 |
No2 | C_addtime | timestamp(8) | NO | No | 创建时间 |
No3 | C_name | nvarchar(400) | NO | No | 心理测评名称 |
No4 | C_time | int(4) | NO | No | 测评时长(分钟) |
No5 | C_status | int(4) | NO | No | 心理测评状态 |
- 表: users信息表
编号 | 数据字段名称 | 对应类型 | 主键 | 允许空 | 字段的备注信息 |
No1 | C_id | bigint(8) | PK | No | 主键 |
No2 | C_username | nvarchar(200) | NO | No | 用户名 |
No3 | C_password | nvarchar(200) | NO | No | 密码 |
No4 | C_role | nvarchar(200) | NO | Null | 角色 |
No5 | C_addtime | timestamp(8) | NO | No | 新增时间 |
- 表: examquestion信息表
编号 | 数据字段名称 | 对应类型 | 主键 | 允许空 | 字段的备注信息 |
No1 | C_id | bigint(8) | PK | No | 主键 |
No2 | C_addtime | timestamp(8) | NO | No | 创建时间 |
No3 | C_paperid | bigint(8) | NO | No | 所属心理测评id(外键) |
No4 | C_papername | nvarchar(400) | NO | No | 心理测评名称 |
No5 | C_questionname | nvarchar(400) | NO | No | 题目名称 |
No6 | C_options | text(16) | NO | Null | 选项,json字符串 |
No7 | C_score | bigint(8) | NO | Null | 分值 |
No8 | C_answer | nvarchar(400) | NO | Null | 正确答案 |
No9 | C_analysis | text(16) | NO | Null | 答案解析 |
No10 | C_type | bigint(8) | NO | Null | 题目类型,0:单选题 1:多选题 2:判断题 3:填空题(暂不考虑多项填空) |
No11 | C_sequence | bigint(8) | NO | Null | 题目排序,值越大排越前面 |
- 表: yonghu信息表
编号 | 数据字段名称 | 对应类型 | 主键 | 允许空 | 字段的备注信息 |
No1 | C_id | bigint(8) | PK | No | 主键 |
No2 | C_addtime | timestamp(8) | NO | No | 创建时间 |
No3 | C_yonghuming | nvarchar(400) | NO | No | 用户名 |
No4 | C_mima | nvarchar(400) | NO | No | 密码 |
No5 | C_xingming | nvarchar(400) | NO | Null | 姓名 |
No6 | C_touxiang | nvarchar(400) | NO | Null | 头像 |
No7 | C_xingbie | nvarchar(400) | NO | Null | 性别 |
No8 | C_nianling | int(4) | NO | Null | 年龄 |
No9 | C_shouji | nvarchar(400) | NO | Null | 手机 |
- 表: discussxinliketang信息表
编号 | 数据字段名称 | 对应类型 | 主键 | 允许空 | 字段的备注信息 |
No1 | C_id | bigint(8) | PK | No | 主键 |
No2 | C_addtime | timestamp(8) | NO | No | 创建时间 |
No3 | C_refid | bigint(8) | NO | No | 关联表id |
No4 | C_userid | bigint(8) | NO | No | 用户id |
No5 | C_nickname | nvarchar(400) | NO | Null | 用户名 |
No6 | C_content | text(16) | NO | Null | 评论内容 |
No7 | C_reply | text(16) | NO | Null | 回复内容 |
- 表: messages信息表
编号 | 数据字段名称 | 对应类型 | 主键 | 允许空 | 字段的备注信息 |
No1 | C_id | bigint(8) | PK | No | 主键 |
No2 | C_addtime | timestamp(8) | NO | No | 创建时间 |
No3 | C_userid | bigint(8) | NO | No | 留言人id |
No4 | C_username | nvarchar(400) | NO | Null | 用户名 |
No5 | C_content | text(16) | NO | Null | 留言内容 |
No6 | C_cpicture | nvarchar(400) | NO | Null | 留言图片 |
No7 | C_reply | text(16) | NO | Null | 回复内容 |
No8 | C_rpicture | nvarchar(400) | NO | Null | 回复图片 |
- 表: zaixianzixun信息表
编号 | 数据字段名称 | 对应类型 | 主键 | 允许空 | 字段的备注信息 |
No1 | C_id | bigint(8) | PK | No | 主键 |
No2 | C_addtime | timestamp(8) | NO | No | 创建时间 |
No3 | C_yishenggonghao | nvarchar(400) | NO | Null | 医生工号 |
No4 | C_yishengxingming | nvarchar(400) | NO | Null | 医生姓名 |
No5 | C_touxiang | nvarchar(400) | NO | Null | 头像 |
No6 | C_zixunneirong | nvarchar(400) | NO | Null | 咨询内容 |
No7 | C_zixunshijian | datetime(8) | NO | Null | 咨询时间 |
No8 | C_yonghuming | nvarchar(400) | NO | Null | 用户名 |
No9 | C_nianling | nvarchar(400) | NO | Null | 年龄 |
No10 | C_shouji | nvarchar(400) | NO | Null | 手机 |
No11 | C_sfsh | nvarchar(400) | NO | Null | 是否审核 |
No12 | C_shhf | text(16) | NO | Null | 审核回复 |
No13 | C_userid | bigint(8) | NO | Null | 用户id |
第五章 系统实现
5.1 运行环境
学校心理咨询聊天室系统前台使用小程序,后台JAVA技术,数据库使用Mysql技术,工具eclipse、微信开发者软件。
具体见表5-1所示。
表5.1 学校心理咨询聊天室系统环境硬件表
硬件名称 | 数量要求 | 性能要求 | 等级要求 |
程序服务器主机 | 1 | I7/8G DDR3/硬盘500G | 高 |
数据库服务器主机 | 1 | I5/4G DDR3/硬盘100G | 中 |
测试客户端主机 | 1或者以上 | 无要求,可以联网即可 | 低 |
配置好硬件服务器后,对服务器进行软件安装,下面5.2是环境部署的软件表。
表5.2 学校心理咨询聊天室系统服务器环境硬件表
类型名称 | 软件要求 | 系统要求 |
程序服务器主机 | Tomcat7.5或者以上 | Windows Server |
数据库服务器主机 | MySQL服务器 | Windows Server |
测试微信小程序 | 微信开发者工具 | Windows 10 |
5.2 服务器功能实现
5.2.1管理员登录
使用脚本把数据库导入到mysql中,配置tomcat服务器,运行程序。其中用户登录的界面如下所示。
图5.1 管理员登录
用户密码是通过MD5进行加密的。MD5本身是一个不可逆的加密方法,所以在查询前需要对密码进行MD5加密,把加密后的字符串和数据库中的密码进行比对,通过比对后才能进行查询。最终,最终查询成功后把信息保存在session中,Session是存储在服务器端的对象,是比较安全的一种技术,在管理端通过判断session中的十来获取用户操作权限。
5.2.2管理主界面
主界面主要包括了系统管理菜单,通过菜单对系统功能进行管理。每一个功能包括基本的查询、添加等操作。其中主界面如下所示。
图5.2 管理主界面
5.2.3心理文章信息管理
管理员登录后,对课程进行管理。包括心理文章编号、名称、类别、内容信息。其中心理文章管理如下所示。
图5.3 心理文章管理界面
创建一个信息录入的form表单,在form中设计心理文章基本信息收集栏,点击提交的时候,通过form的POST方法传递到心理文章Action方法中。在Action中定义插入的方法,先实例化心理文章实体类,将心理文章信息通过实体类进行设置,然后调用心理文章数据库操作方法,保存心理文章信息到数据库,然后返回成功消息。
5.2.4心理医生管理
心理医生管理包括心理医生信息查看和心理医生删除功能,管理员对过期的心理医生进行删除。其中心理医生管理如下所示。
图5.5 心理医生管理界面
创建一个信息录入的form表单,在form中设计心理医生基本信息收集栏,点击提交的时候,通过form的POST方法传递到心理医生Action方法中。在Action中定义插入的方法,先实例化心理医生实体类,将心理医生信息通过实体类进行设置,然后调用心理医生数据库操作方法,保存心理医生信息到数据库,然后返回成功消息。
在心理医生信息管理页面先通过查询条件,获取对应的心理医生列表,然后在心理医生管理页面通过标签,把所有的心理医生信息绑定到列表中。
5.2.5心理测试管理
心理测试管理包括心理测试信息查看和心理测试删除审核功能,心理医生对心理测试的信息进行管理。其中心理测试管理如下所示。
图5.5 心理测试管理界面
在心理测试信息管理页面先通过查询条件,获取对应的心理测试列表,然后在心理测试管理页面通过标签,把所有的心理测试信息绑定到列表中。
5.3 微信小程序功能实现
5.3.1用户注册
学校心理咨询聊天室系统的用户,必须得进行注册。如下所示:
图5.6 用户注册界面
使用学校心理咨询聊天室系统的客户端时,先要进行注册,打开用户注册的页面,用户填写所有的注册信息后,点击注册,在注册中调用JS的AJAX方法。方法中接收用户实体信息,调用服务器端的用户注册方法。在服务器端获取用户实体信息,对实体进行序列化处理,然后调用用户信息保存的service数据库操作方法,将实体内的用户信息通过SQL语句插入到数据库,并返回一个成功标识的Json对象,在客户端解析Json。判断返回的信息是否注册成功并提供给用户,这样就实现了用户注册的完整流程。
5.3.2用户登录
用户填写用户名及密码,正确后才能登入系统,不正确则重新登录。
图5.7 用户登录
打开用户登录的页面,用户填写所有的登录信息后,点击登录,在登录中调用JS的AJAX方法。方法中接收用户实体信息,调用服务器端的用户登录方法。在服务器端获取用户实体信息,对实体进行序列化处理,然后调用用户信息查询的service数据库操作方法,将查询结果通过Json对象进行返回,在客户端解析Json,判断返回的信息是否登录成功。
5.3.3心理文章查看
用户登录后,进入系统的主界面,能够看到所有心理文章信息,包括成心理文章分类信息,心理文章信息。其中心理文章主界面如5.8所示:
图5.8 心理文章主界面
5.3.4心理医生查看
点击心理医生列表,跳转到心理医生详情的界面,用户可选择进行查看。在心理医生详情界面,点击首页,返回到主界面。
图5.9 心理医生信息查询界面
在心理医生页面加载时,初始化方法中,调用JS的AJAX方法。方法中接收心理医生实体信息,调用服务器端的心理医生查询方法。在服务器端获取心理医生实体,对实体进行序列化处理,判断查询条件,然后调用心理医生查询的service数据库操作方法,将查询结果通过Json对象进行返回,在客户端解析Json,把结果存储在临时集合变量中,对变量进行数据显示绑定到界面。
5.3.4医生咨询
选择相关的心理医生后,在线咨询,咨询后在医生的问题列表中,可以提交到后台。医生咨询界面如5.10所示:
图5.10 医生咨询界面
5.3.5聊天交流
选择相关的聊天交流后,在线聊天,聊天后在聊天的信息列表中,可以提交到后台。聊天咨询界面如5.11所示:
图5.11 聊天咨询界面
在聊天咨询页面加载时,初始化方法中,调用JS的AJAX方法。方法中接收聊天咨询实体信息,调用服务器端的聊天咨询查询方法。在服务器端获取聊天咨询实体,对实体进行序列化处理,判断查询条件,然后调用聊天咨询查询的service数据库操作方法,将查询结果通过Json对象进行返回,在客户端解析Json,把结果存储在临时集合变量中,对变量进行数据显示绑定到界面。
第六章 系统测试
6.1 测试说明
系统集成测试是对系统的接口进行测试,查看接口是否能够正确正常工作,包括数据库连接接口的测试。数据库测试就包括数据基本信息的增删改查操作测试,数据上线测试,数据下线测试,主外键关联测试,数据库优先级操作测试和安全性的测试。
系统安全性测试包括模糊匹配方法测试、状态机模型方法测试、黑盒模型测试和白盒模型测试,验证系统是否符合安全要求。
实用性测试是由用户发起的,判断本系统是否具有实际可行性可用性,用户得到确认后发布系统,进行上线。
压力测试是模拟足够多的链接,并长时间的运行系统,测试系统是否一直可靠与稳定,最大限度满足本系统的具体需求。
6.2 功能测试
系统登录是学校心理咨询聊天室系统 第一道安全防线,设计登录测试用例涉及到多个方面,下面对系统登录测试进行说明。测试过程如6.1所示:
表6.1 登录功能测试结果
数据输入 | 预期结果 | 测试步骤 | 结论 |
用户名和密码为空 | 提出错误消息 | 不输入信息,直接点击登录按钮。查看是否提示错误的消息。 | 经过修改后和预期一致 |
用户名和密码错误输入。 | 不能登录 | 输入正确的用户名,错误的密码。输入错误的用户名,正确的密码,点击登录,提示失败。 | 修改后和预期一致 |
输入正确的用户名和密码。 | 成功登录 | 输入正确的用户名,正确的密码。点击登录,提示登录成功。 | 通过 |
测试心理文章模块功能完整性,把心理文章信息录入到MySQL中,打开MySQL查看是否存在录入的数据,然后对心理文章进行修改或者删除,比较结果,对心理文章的内容最大长度和最小长度进行测试,查看是否符合要求。其中心理文章管理测试过程如6.2所示:
表6.2 心理文章管理测试结果
测试项目 | 预期结果 | 测试步骤 | 结论 |
心理文章的新增 | 心理文章信息保存到数据库 | 运行学校心理咨询聊天室系统 ,在心理文章新增界面录入心理文章,点击添加心理文章按钮。测试心理文章为空的情况,正确输入的情况。 | 通过 |
心理文章的列表 | 界面加载所有的心理文章 | 在心理文章信息列表,查看所有的心理文章信息,包括分页连接是否可用,数据条数和数据库是否一致。 | 通过 |
心理文章的修订 | 数据库信息成功修订 | 运行学校心理咨询聊天室系统 ,在心理文章修订界面修改心理文章,点击修订心理文章按钮。 | 通过 |
心理文章的删除 | 数据库信息成功删除 | 在心理文章信息列表页面,选择要删除的心理文章,点击删除。删除后查看列表和数据库表是否还存在该记录。 | 经过修改后和预期一致 |
测试系统用户模块功能完整性,把系统用户信息录入到MySQL中,打开MySQL查看是否存在录入的数据,然后对系统用户进行修改或者删除,比较结果,对系统用户的内容最大长度和最小长度进行测试,查看是否符合要求。其中系统用户管理测试过程如6.3所示:
表6.3 系统用户管理测试结果
测试项目 | 预期结果 | 测试步骤 | 结论 |
系统用户的新增 | 系统用户信息保存到数据库 | 运行学校心理咨询聊天室系统 ,在系统用户新增界面录入系统用户,点击添加系统用户按钮。测试系统用户为空的情况,正确输入的情况。 | 通过 |
系统用户的列表 | 界面加载所有的系统用户 | 在系统用户信息列表,查看所有的系统用户信息,包括分页连接是否可用,数据条数和数据库是否一致。 | 通过 |
系统用户的修订 | 数据库信息成功修订 | 运行学校心理咨询聊天室系统 ,在系统用户修订界面修改系统用户,点击修订系统用户按钮。 | 通过 |
系统用户的删除 | 数据库信息成功删除 | 在系统用户信息列表页面,选择要删除的系统用户,点击删除。删除后查看列表和数据库表是否还存在该记录。 | 经过修改后和预期一致 |
6.3 测试说明
本学校心理咨询聊天室系统按照软件设计进行,完成了需求分析,从用户角度出发,设计开发。对用户的要求不是太高,可以基本操作,就能录入信息,比较实用。
通过对测试用例的测试,并对bug进行了修改,完善了学校心理咨询聊天室系统的功能,对照系统需求分析,完成了系统开发任务,符合了开发需求。
总结
本文研究制作了学校心理咨询聊天室系统,通过软件工程方法,运用理论和编码实践,完成了系统功能设计实现和测试。
首先对学校心理咨询聊天室系统进行了课题分析,进行了心理文章查询情况的调研,参考相关文献,结合需求,进行文档整理。使用面向对象语言JAVA、和微信小程序,数据库使用mysql。通过数据库存储信息数据,实现信息同步控制和管理。学校心理咨询聊天室系统的提出,很大程度上提高了心理文章的利用率。
通过测试发现,系统也存在一些问题,这些问题在以后实际工作中,我将会继续学习逐步完善。下面进行具体介绍。
本学校心理咨询聊天室系统的具体业务不够精细,不能完全满足实际使用需求,系统目前只提供了某一个心理文章管理,对心理健康的处理不够具体,无法查询所有的心理健康的信息,也就无法进行预约。
对数据库的数据冗余和数据安全也需要进一步完善。当心理文章信息过大时,如何快速的查询出心理文章信息,如何处理大数据的响应问题等。目前的查询是把所有的心理文章信息一次性查询出来,而显示的时候只需要显示前几十条,可以通过存储过程来计算需要查询的条数,提高查询效率。