“爱学术”期刊采编系统的设计与实现---附源码 76126

news2024/12/25 9:23:12

摘 要

随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用SpringBoot技术建设“爱学术”期刊采编系统。

本设计主要实现集人性化、高效率、便捷等优点于一身的“爱学术”期刊采编系统,实现系统用户、期刊信息管理、期刊类型管理、约稿信息管理、专家审稿管理、专家评分管理、系统管理、公告通知管理、资源管理等功能模块。系统通过浏览器与服务器进行通信,实现数据的交互与变更。只需通过一台电脑,动动手指就可以操作系统,实现数据通信管理。整个系统的设计过程都充分考虑了数据的安全、稳定及可靠等问题,而且操作过程简单。本系统通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。

“爱学术”期刊采编系统使用Java语言,后台采用SpringBoot框架开发,使用 MyEclipse 2017 CI 10 编译器编写,数据方面主要采用的是微软的MySQL关系型数据库来作为数据存储媒介,配合前台HTML+CSS 技术完成系统的开发。

关键词:“爱学术”期刊采编系统,Java编程语言;SpringBoot;MySQL数据库

Abstract

With the arrival of the Internet trend, all walks of life are considering using the Internet to promote themselves. The best way is to establish their own Internet systems, and maintain and manage them. In practical applications, the working rules and development steps of the application software are used to build the "Love Academic" journal editorial system using SpringBoot technology.

This design mainly implements a "Love Academic" journal editorial system that combines the advantages of humanization, high efficiency, and convenience. It realizes functional modules such as system users, journal information management, journal type management, invitation information management, expert review management, expert rating management, system management, public notice management, and resource management. The system communicates with the server through a browser to achieve data exchange and change. You only need to use a computer and move your fingers to operate the system, achieving data communication management. The entire system design process fully considers issues such as data security, stability, and reliability, and the operation process is simple. This system improves work efficiency and reduces errors and omissions in data storage through scientific management and convenient services.

The "Love Academic" journal editorial system is developed using Java language, the backend is developed using the SpringBoot framework, and the MyEclipse 2017 CI 10 compiler is used. In terms of data, Microsoft's MySQL relational database is mainly used as the data storage medium, and the system is developed in conjunction with front-end HTML+CSS technology.

Keywords:"Love academic" journal editorial system, Java programming language; SpringBoot; MySQL database

目   录

1绪论

1.1 选题背景

1.2 研究意义

1.3 研究内容

1.4 论文组成结构

2开发环境及相关技术介绍

2.1 MySQL描述

2.2 Tomcat描述

2.3 Java语言

2.4 SpringBoot框架介绍

3系统分析

3.1 可行性分析

3.1.1 技术可行性

3.1.2 经济可行性

3.1.3 操作可行性

3.2 需求分析

3.3 非功能性分析

3.4 安全性需求分析

3.4.1系统的安全性

3.4.2 数据的安全性

3.5 系统用例分析

3.6系统操作流程

3.6.1用户登录流程

3.6.2信息添加流程

3.6.3信息删除流程

3.7系统开发流程

4系统设计

4.1 系统架构设计

4.2 系统功能结构

4.3 数据库设计

4.3.1 概念模型设计

4.3.2 逻辑结构设计

5系统实现

5.1 前台用户功能模块的实现

5.1.1 前台首页界面

5.1.2 用户注册界面

5.1.3 用户登录界面

5.1.4公告通知界面

5.1.5 新闻资讯界面

5.1.6期刊信息界面

5.1.7 个人中心界面

5.2 后台功能模块的实现

5.2.1专家用户后台管理界面

5.2.2系统用户界面

5.2.3 期刊信息管理模块

5.2.4期刊类型管理界面

6系统测试

6.1 测试目的

6.2 测试用例

6.3 测试结果

参考文献

致谢

1绪论

1.1 选题背景

随着时代的飞速发展,计算机科学的研究和实践取得了巨大的突破,它的强大性和可靠性被广泛地认可,在许多方面都起到了至关重要的作用。科技的进步和互联网的普及让学术研究的方式和流程发生了巨大变革。过去,期刊文章的投稿和审稿都是通过邮寄纸质稿件的方式进行,而现在大部分学术期刊都采用电子采编系统进行稿件管理。为了改善学术期刊的稿件采编管理流程,以更好地促进学术交流与发展,本研究将设计和开发一种基于SpringBoot的“爱学术”期刊采编系统,以提高投稿采编效率、简化审稿流程和提升用户体验。

“爱学术”期刊采编系统主要是借助计算机,通过对“爱学术”期刊采编系统所需的信息管理,增加用户的选择,同时也方便对广大用户信息的及时查询、修改以及对用户信息的及时了解。“爱学术”期刊采编系统对作者用户带来了更多的便利,该平台通过和数据库管理平台软件协作来满足用户的需求。计算机技术在现代管理中的应用,使计算机成为人们应用现代技术的重要工具。能够有效的解决获取信息便捷化、全面化的问题,提高效率。本“爱学术”期刊采编系统主要牵扯到程序,数据库与计算机技术等。覆盖知识面大,可以大大的提高平台人员工作效率。

1.2 研究意义

随着科技的不断发展和社会的不断进步,期刊成为了学术研究成果的重要载体和评价指标。“爱学术”期刊采编系统作为期刊出版流程的重要组成部分,能够提高期刊的运作效率和稿件的质量,对于促进学术研究的发展具有重要的意义。

首先,本系统可以提高期刊运作效率。传统的期刊采编管理流程往往需要大量的人力和物力资源,而且容易出现繁琐的手工操作和不及时的沟通。而“爱学术”期刊采编系统的自动化和数字化特点,能够大大简化期刊的运作流程,减少人力和物力的浪费,提高稿件的整体管理效率。

其次,可以提升稿件发布质量。“爱学术”期刊采编系统可以实现对稿件的全流程管理,包括期刊信息提交、约稿信息、专家审稿、专家评分等环节。通过系统的自动化和规范化管理,可以确保稿件审核的公正性和科学性,减少主观因素对审核结果的影响,从而提升稿件发布的质量。

此外,研究本系统可以优化学术资源配置。“爱学术”期刊采编系统可以建立专家数据库和论文库,实现对学术资源的合理配置和利用。通过系统的智能匹配和推荐功能,能够将合适的专家和适用的论文进行匹配,提高专家评审的效果和论文被引用的机会,促进学术资源的优化配置。

最后,可以加强学术交流与合作。“爱学术”期刊采编系统可以提供在线讨论和交流平台,促进作者、评审专家和编辑之间的互动和合作。通过系统的即时通讯和在线编辑功能,可以加速稿件的修改和审稿过程,提高沟通和协同的效率,促进学术交流与合作的发展。

1.3 研究内容

“爱学术”期刊采编系统的开发及实现,所需要的工作内容:

(1)首先是确定选题,确定好所要做的系统,并对系统的背景及现在面临的一些问题等进行系统的初步确认。

(2)系统确认完成后,结合系统开发的需求进行确认系统开发所使用的技术,“爱学术”期刊采编系统的开发使用springboot框架,数据库进行平台的搭建开发,确认好使用的技术进行技术分析,所使用的技术是否可以完成系统的实现。

(3)确定好系统使用的技术,进行确认系统所划分的用户触,并且根据用户触划分确定所要设计的功能模块,对“爱学术”期刊采编系统的设计主要划分别为管理员、作者用户、编辑用户和专家用户,并且所使用的功能模块也相应不同,但系统的数据库实现的内容是交互的,用户可以随时根据自己的需求进行在线期刊信息搜索,对于系统工作人员可以根据自己的分管内容进行在线信息的处理及操作,管理员获取到所有用户的详细数据信息,并根据需求进行第一时间处理解决。

(4)系统的功能模块确认完成后进行程序及界面的设计,设计完成后,组通过测试来判断程序是否完善,对于系统测试,要不同的用户进行不同的内容编辑及提交,及使用不同的测试方式找出程序中存在的漏洞,并对程序出现的漏洞问题进行在线解决处理,如果测试系统没有任何问题时,可以将系统上传进行正式操作使用。

1.4 论文组成结构

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

第一章:引言。主要介绍了选题的背景,研究意义以及本文的研究内容与主要工作。

第二章:相关技术介绍。主要对本系统使用的相关技术和开发环境进行介绍。

第三章:系统需求分析。主要从系统的用户、功能等方面进行需求分析。

第四章:系统概要设计。主要对系统框架、系统功能模块、数据库进行功能设计。

第五章:系统实现。主要介绍了系统框架搭建、系统界面的实现。

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

第七章:总结与展望。


2开发环境及相关技术介绍

2.1 MySQL描述

MySQL数据库已经成为网络上的一种强大的工具,它能够支持多个用户,并且能够根据客户端和服务端的需求进行调整,从而满足不同的需求。在这里,服务端和客户端只是一种软件上的概念,而我们所使用的计算机硬件则没有必要完全相互匹配[1]。

MySQL作为一个受到广泛认可的开放式DBMS,其卓越的性能和易于操作的特性,以及其在多种操作环境中的灵活性,让其成为了众多AP中的首选。此外,MySQL还具有良好的跨平台性,让软件开发人员对其有着极高的评价。与传统的关联式数据库系统形式大相径庭,MySQL拥有一套完善的数据库管理策略,以确保用户的安全、稳健、安全。MySQL具备良好的容错、安全、快速、稳健的特点,使得mysql成为一款极其实用的数据库管理工具[2]。

MySQL拥有一种独特的权限分配机制,可以根据用户的身份和业务逻辑,为用户提供更多的选择,从而大大提高了MySQL的安全性和完整性,远超过其他关系型数据库。

MySQL具有强大的功能,能够处理各种数据类型,包括动态、静态、多种语言,从而使用户能够轻松访问多种数据。

MySQL具有多种功能[3],它能够支持多种平台的开发,并且支持多种编程语言[4],使得用户能够轻松访问和使用MySQL数据库。

2.2 Tomcat描述

Tomcat是一种免费的服务器,它能够有效地处理大量的网络访问,特别是在访问量较少的情况下。当将Tomcat安装在电脑上时,它能够自动分析前端HTML页面的请求,从而提高网络的性能。事实上,Tomcat是对Apache的一种延伸[5],但它与Apache之间的关系更加紧密,因为它们在不同的进程中运行,而且它们之间也有着自己的独立性。

Tomcat最初由戴维森公司开发,但随着时间的推移,它逐渐成长为一个开源的服务器。后来,它被sun公司转移到了Apache软件基金会。最近,tomcat服务器经过了大量的重新设计和改进,使它更加易于使用。Tomcat负载均衡算法是一种免费的开源软件,它能够有效地减少硬件投入,使得它在一般的小企业网站服务器上的应用更加灵活,并且能够满足当前和未来的扩展需求。此外,它还可以作为其他类似应用的参考,以提高效率[6]。

2.3 Java语言

Java语言在计算机的程序应用过程当中,属于非常重要的一个应用软件,因为它的性能比较高,而且能够应用在多重领域当中,因此该程序在计算机的软件程序应用当中的范围相对来说是比较广泛的。而从专业的技术角度来说,Java程序的应用的实用性也是非常强的,这是因为它与传统的C语言或C++相比没有太大的基本结构的变化,也就是说它的语法结构是相对单一,而且具有稳定的特性,还有更重要的一点是Java程序语言的基本参考对象就是C语言,所以他的程序编写并不是很复杂,而且还能够起到优化工作效率提升系统设计本身的基础功能的作用,因此他也就受到了非常广泛的程序员们的青睐。

在此次进行系统设计开发研究的过程当中,还发现Java程序语言之所以能够得到市场上更多用户的好评和青睐,其根本原因在于他能够具备各种语言的自身独特优点的展现,也就是说它的兼容性是常强的。因此,我们因此我们可以说在任何一个程序的开发过程当中,Java语言程序的应用是必不可少的,它他在程序员进行改动的时候,哪怕是一个程序字母的改动,都可以形成一种特定的程序,这是 Java程序,非常独特的另一个优点。不仅如此,Java源程序的可移植性也是非常大,而且它的安全系数很高,能够通过不同方式进行移植到其他程序当中,而且可以兼容不同程序的系统,在运行的过程当中,其安全系数也是非常强的,能够确保用户在使用网络的过程当中去确保网络的安全,而正是基于这样的可移植性,为程序员节约了很多的系统语言程序的开发设计的时间,这是非常难得的一种自有优势。

2.4 SpringBoot框架介绍

Spring框架是一个由SpringBoot公司发布的开放式框架,旨在通过其可扩展的特性来支持多种不同的编码方式[9]。尽管Spring框架不会影响任何特定的编码方式,但其出色的性价比和可扩展性,已经成为EJB(EnterpriseSpringBootBeans)框架的重要组成部分,并且一直得到越来越多的人的青睐。Spring框架不仅可以有效地支撑开发,而且还可以充分利用其独有的控制反转功能,以及支撑多种持久性技术,从而将托管对象的生命周期变得更加容易,并且可以支撑声明性的事务处理,还可以支撑多种Web框架,从而有效地推动开发。Spring框架拥有强大的IOC功能,可以轻松地实现SpringBoot对象的调度与操作,从而更好地支持项目的运行。此外,Spring还支持将SpringBoot对象的生命周期进行可视化,以实现更加灵活的调度与操作。Spring框架提供了一种新的、高效的容器设计工具,它能够根据XML文件和AOP注解的指引,从多个源中提取和组织相应的参数,从而实现多种功能。此外,它还提供了一种面向服务的框架,它能够根据用户的需求,自动调整参数,从而提高系统的效率和性能。Spring框架的AOP框架具有强大的功能,可以满足各种复杂的需求[10]。尽管AspectJ框架的性能不及其他框架,但是Spring AOP的出色表现使其在各种应用场景中都具有出色的表现,例如:在事务处理、远程控制、网络安全、数据共享、文件共享、网络安全协议、网络安全协议。SpringBoot的事务处理框架提供了一种灵活的方式,可以将不同的内容、不同的时间段、不同的类型的数据进行处理,并且可以将这些处理结果存储到一起。此外,Spring还提供了一系列的事务模型。Spring的事务框架提供了一种灵活的方式,它允许用户根据需要调整事务的类型,例如XML、SpringBoot等,同时还支持快速的消息传输、缓冲等特性,从而有效地帮助开发者处理日益增长的数据需求。这款应用程序拥有强大的功能,能够兼容各种常见的数据处理框架,包括SpringBoot、iBATS/MyBATIs、Hibernate、SpringBoot)数据对象(JDO)、Apache OJB、Apache Cayne等,并能够将其与Spring的事务处理功能相结合,从而实现更加高效的数据处理。SpringMVC最初的目的是要替代StrutsWeb框架,因此,开发者决定将其与传统的web页面框架进行改造,使其能更好地支持用户的访问。这样,SpringMVC就能更好地支持用户的需求,从而提高web页面的性能[11]。

3系统分析

3.1 可行性分析

在软件开发的过程中,可行性分析是至关重要的,它旨在评估问题的可行性,以便尽可能快地解决,同时也要考虑到不同的解决方案的优势和劣势,以及实施这些方案所带来的经济效益。通过对“爱学术”期刊采编系统的可行性分析,我们可以从技术、操作和经济三个方面来评估其可行性,从而为其提供有效的支持和保障。

3.1.1 技术可行性

“爱学术”期刊采编系统在数据的存储上使用的MySQL数据库,在“爱学术”期刊采编系统开发中使用了Java、HTML、Tomcat、SpringBoot这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用B/S模式进行开发,使系统的可扩展性和维护性更佳,减少系统配置代码,简化编程代码,目前B/S模式是目前最受欢迎的一种模式。

3.1.2 经济可行性

“爱学术”期刊采编系统采用SpringBoot和Java技术,这样可以有效地降低软硬件的开发与维护费用,同时又能够让用户更加轻松地访问资源资源,从而提高服务质量。此外,该平台的推出,可以有效地降低运营者的劳动强度,为企业带来更多的经济效益。虽然“爱学术”期刊采编系统的构建并非特别困难,但由于它的投入相比较少,而且能够带来更高的效率,因此,我们认为这个系统的建立具有很强的可持续性,而且能够带来更高的经济效益,而且比起日常的维护与管理更具有价值。

3.1.3 操作可行性

“爱学术”期刊采编系统的前台页面简洁易懂,无论是系统管理员还是普通用户,只要电脑连接到网络,就可以轻松访问网站,而且不需要任何操作指导,只要输入正确的URL地址,就可以轻松完成所有的操作。由于无需任何复杂的环境配置,这个系统非常简单,易于操作,因此它是一个非常实用的工具。

3.2 需求分析

为了满足用户的需求,“爱学术”期刊采编系统将系统划分前台用户和后台用户,其中前台主要由作者用户和编辑用户使用,后台包括专家用户和管理员,每个部分都有独特的功能,以便更加便捷地管理信息。此外,系统还具有简单易操作的特点,可以更加精确、全面地实现用户的需求。

前台用户功能模块:

(1)用户注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现跟系统相关信息的操作,就必须有这个系统的账号,如果没有账号的话,可以注册学生用户进行相关的操作,同时用户还可以通过“我的”这以按钮对个人信息以及操作的信息进行管控。前台用户注册后由管理员审核通过后才能登录系统。

(2)查看高校实验室教学管理系统的首页信息:高校实验室教学管理系统的首页信息包含了首页、公告通知、新闻资讯、期刊信息等。

(3)公告通知:当用户点击“公告通知”这一菜单按钮,会显示管理员在后台发布的所有的公告通知,可以查看详情。

(4)新闻资讯:当用户点击“新闻资讯”这一菜单按钮,会显示管理员在后台发布的所有的新闻资讯,可以查看详情,进行收藏、点赞、评论等。

(5)期刊信息:前台用户可以查看期刊信息,在查询到自己想要了解的期刊信息的时候,可以进入查看详细的介绍,包括期刊期号、期刊标题、出版年份、期刊作者、期刊类型、发布日期、期刊详情等信息。用户在个人中心后台发布期刊信息,待管理员审核后可展示在此模块。在期刊信息详情这个界面,支持作者用户和编辑用户对喜欢的期刊信息进行点赞、收藏以及评论的功能,同时还支持编辑用户进行约稿操作。

(6)我的账户:在前台点击“我的”下面的“我的账户”可以对个人资料+密码修改进行管控。

(7)个人中心:作者用户在前台点击“个人中心”可以对个人首页、期刊信息、约稿信息、专家审稿、专家评分和自己收藏的信息进行管理。编辑用户在前台点击“个人中心”可以对个人首页、约稿信息和自己收藏的信息进行管理。

后台专家用户功能模块:

(1)用户登录:专家用户由管理员在后台添加后直接登录。

(2)我的信息:专家用户用户可以对个人信息、密码修改进行维护。

(3)专家审稿管理:专家用户点击“专家审稿管理”进入专家审稿列表,可以查看作者用户提交的需要专家评分的期刊信息内容,并进行评分。

(4)专家评分管理:专家用户点击“专家评分管理”进入专家评分列表,可以查看已经评分完毕的期刊内容。

后台管理员功能:

(1)登录:管理员在后台可以输入用户名+密码进行登录,默认账号名admin,密码加密使用MD5,管理员的用户名和密码是在数据库中直接设定好的。

(2)系统用户:管理员可以对系统中所有的用户角色进行管控,包含了管理员、作者用户、编辑用户以及专家用户这四种角色。

(3)期刊信息管理:管理员点击“期刊信息管理”菜单可以对期刊信息列表进行查看并审核,审核通过后用户发布的期刊信息可以展示在前台。如果想要添加新的期刊信息,点击“添加”按钮,输入期刊期号、期刊标题、出版年份、期刊作者、期刊类型、发布日期、期刊详情等详情信息,点击“提交”按钮就可以添加了。可以对期刊信息进行约稿、专家遴选等操作,也可以对用户提交的期刊信息评论的信息进行管控。

(4)期刊类型管理:点击“期刊类型管理”系统会把“爱学术”期刊采编系统当中所有的期刊类型信息都显示出来,管理员可进行添加期刊类型和类型描述管理,并可进行查询、重置或删除等相应操作。

(5)约稿信息管理:管理员点击“约稿信息管理”会显示出所有的约稿信息,可以选择某一条约稿信息查看详情。

(6)专家审稿管理:管理员点击“专家审稿管理”会显示出所有的专家审稿信息,可以进行查询、重置或删除操作。

(7)专家评分管理:管理员点击“专家评分管理”会显示出所有的专家评分信息,可以进行查询、重置或删除操作。

(8)系统管理:管理员点击“系统管理”菜单可以对首页展示的轮播图进行管理。

(9)公告通知管理:管理员点击“公告通知管理”菜单可以查看到系统中的所有公告通知信息,对已经存在的公告通知,管理员可以修改,也可以添加新的公告通知或者删除公告通知。

(10)资源管理:管理员可以对“爱学术”期刊采编系统前台展示的新闻资讯以及新闻资讯所属的分类进行管控。

3.3 非功能性分析

“爱学术”期刊采编系统的非功能性需求比如“爱学术”期刊采编系统的安全性怎么样可靠性怎么样性能怎么样可拓展性怎么样等。具体可以表示在如下3-1表格中:

3-1“爱学术”期刊采编系统非功能需求表

安全性

主要指“爱学术”期刊采编系统数据库的安装数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指“爱学术”期刊采编系统能够安装用户的指示进行操作经过测试可靠性90%以上。

性能

性能是影响“爱学术”期刊采编系统占据市场的必要条件所以性能最好要佳才好。

可扩展性

比如数据库预留多个属性比如接口的使用等确保了系统的非功能性需求。

易用性

用户只要跟着“爱学术”期刊采编系统页面展示内容进行操作就可以了。

可维护性

“爱学术”期刊采编系统开发的可维护性是非常重要的经过测试可维护性没有问题

3.4 安全性需求分析

3.4.1系统的安全性

安全性是所有系统的基础,它能够确保企业和用户的信息不会被盗取。为了确保系统的安全,我们需要采取措施,不仅要确保用户的权益,还要确保企业的利益。特别是在学习、考试和系统维护方面,我们应该加强安全措施,确保整个系统的安全。

系统采取严格的权限管理措施,以确保用户的身份和权限,并且能够有效地防止角色之间的冲突,从而确保系统的安全性。

3.4.2 数据的安全性

数据库中的数据来源于外部,但由于各种原因,它们可能会变得无效或者污染。因此,如何确保输入的数据符合要求,特别是在多用户的关系数据库系统中,成为了一个重要的挑战。

为了确保数据的准确、可靠且可靠地存储到数据库中,我们必须严格遵守这些规则。

3.5 系统用例分析

根据上一节功能分析,可以得出系统的用例。

作者用户角色用例如图3-1所示。

图3-1 作者用户用例图

编辑用户角色用例如图3-2所示。

图3-2 编辑用户用例图

专家用户角色用例如图3-3所示。

图3-3 专家用户用例图

管理员用例图如图3-4所示。

图3-4 管理员用例图

3.6系统操作流程

3.6.1用户登录流程

第一步,为了保证系统的安全性,用户需要在登录窗口中输入自己的个人信息,并确保信息准确无误。如果输入的信息不正确,将会弹出提示框,导致用户登录失败,需要重新输入,如图3-6所示。

图3-6登录操作流程图

3.6.2信息添加流程

“爱学术”期刊采编系统可以实现快速、准确地收集和处理各种信息,而且在使用过程中,只有在按照指定的界面和指定的参考文献,才能够正确地获取和处理信息,而若信息未能满足预期,就会被退出第一步,并且在第二步中,还会继续检查信息的准确性,以确保最终的结果能够满足预期的目标。

图3-7 信息添加流程图

3.6.3信息删除流程

无论是何种用户角色,只要进入了不正常的系统操作界面,就可以使用不同的信息内容来进行操作。当用户尝试删除系统中的数据时,必须先ACK这些数据是否已经被删除,如果没有,就应该按照图3-8的指示进行操作,以免影响系统的正常运行。

图3-8 信息删除流程图

3.7系统开发流程

开发“爱学术”期刊采编系统需要经过多个步骤,包括分析管理模块、编写代码、规划和操作,这些步骤是构建信息管理AP的关键,它们将决定系统能否达到预期的功能,并且能够在完成设计之后得到实施。在开发过程中,为了确保系统的有效性,每个阶段的开发必须严格遵循线性顺序,并且每个步骤的完成情况都要经过技术检验,以确保每个步骤的准确性,避免出现拖拽现象,从而保证系统的设计功能能够得到有效实施。

通过对“爱学术”期刊采编系统的成功开发,我们可以看出,采用这种方法可以显著降低系统的复杂性,并且可以通过图3-9进一步证明。

图3-9开发系统流程图


4系统设计

4.1 系统架构设计

当前,B/S架构的数据访问模式已经大大改善:用户只需要打开“爱学术”期刊采编系统,就能够获取系统的信息,而且,系统会根据用户的需要,自动响应并解决所有的问题。此外,用户还能够查阅服务器的处理结果,从而更好地了解数据的流转情况。“爱学术”期刊采编系统采用三层结构,即视觉-模拟-决策层。其中,视觉层负责接收来自用户的信息并将其呈现给用户;而模拟层则负责完成与用户有关的任务,包括组织信息、进行流程优化、提升用户体验。决策层则负责协商决策,并确保两层结果的一致性。。

系统架构图如下图所示。

图4-1 系统架构图

4.2 系统功能结构

系统在结构上的设计至关重要,要考虑周全,设计全面,一个完善的结构体系,能够满足用户在使用时的各种需求,这样会让提高程序的使用率,保证程序被长久的利用。在设计“爱学术”期刊采编系统的结构时,也列入重点,采用模块化的方法来进行设计,即首先将大模块确定下来,再慢慢的将大模块进行补充完善,向下分支出小模块,一起共同组成的系统的结构体系,下图是本“爱学术”期刊采编系统的结构设计图,直观明了的可以看出本项目程序的功能。

系统的功能结构图如下所示。

图4-2 系统功能结构图

4.3 数据库设计

一个优秀的系统必须具备完善的后台数据库,就像建筑物一样,它不是一蹴而就的,而是需要经过精心设计,以确保其稳固可靠。只有将数据库设计得完善,并且考虑到各个方面,才能保证系统的可靠性,避免出现任何问题。

4.3.1 概念模型设计

在数据库概念模型设计的时候,一般都采用E-R实体图进行展示,在实体图中可以展示出数据库表中的所有字段名称。下面是整个“爱学术”期刊采编系统中主要的数据库表总E-R实体关系图。

图4-3 系统E-R图

4.3.2 逻辑结构设计

通过前面E-R关系图可以看到项目需要创建很多个表。下面罗列一下本在线考试系统当中的几个主要的数据库表:

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表appointment_information (约稿信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

appointment_information_id

int

10

0

N

Y

约稿信息ID

2

journal_issue_number

varchar

64

0

Y

N

期刊期号

3

journal_title

varchar

64

0

Y

N

期刊标题

4

journal_author

int

10

0

Y

N

0

期刊作者

5

invited_editor

int

10

0

Y

N

0

约稿编辑

6

appointment_status

varchar

64

0

Y

N

约稿状态

7

appointment_title

varchar

64

0

Y

N

约稿标题

8

appointment_time

date

10

0

Y

N

约稿时间

9

appointment_documents

varchar

255

0

Y

N

约稿文件

10

note_details

longtext

2147483647

0

Y

N

备注详情

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

标题:[0,125]用于文章和html的title标签中

3

type

varchar

64

0

N

N

0

文章分类:[0,1000]用来搜索指定类型的文章

4

hits

int

10

0

N

N

0

点击数:[0,1000000000]访问这篇文章的人次

5

praise_len

int

10

0

N

N

0

点赞数

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

8

source

varchar

255

0

Y

N

来源:[0,255]文章的出处

9

url

varchar

255

0

Y

N

来源地址:[0,255]用于跳转到发布该文章的网站

10

tag

varchar

255

0

Y

N

标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开

11

content

longtext

2147483647

0

Y

N

正文:文章的主体内容

12

img

varchar

255

0

Y

N

封面图

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]决定分类显示的先后顺序

3

name

varchar

16

0

N

N

分类名称:[2,16]

4

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

5

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

6

icon

text

65535

0

Y

N

分类图标:

7

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表author_user (作者用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

author_user_id

int

10

0

N

Y

作者用户ID

2

author_name

varchar

64

0

Y

N

作者名称

3

author_gender

varchar

64

0

Y

N

作者性别

4

authors_age

int

10

0

Y

N

0

作者年龄

5

examine_state

varchar

16

0

N

N

未审核

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表edit_users (编辑用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

edit_users_id

int

10

0

N

Y

编辑用户ID

2

edit_name

varchar

64

0

Y

N

编辑名称

3

edit_gender

varchar

64

0

Y

N

编辑性别

4

edit_age

int

10

0

Y

N

0

编辑年龄

5

examine_state

varchar

16

0

N

N

未审核

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表expert_rating (专家评分)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

expert_rating_id

int

10

0

N

Y

专家评分ID

2

journal_issue_number

varchar

64

0

Y

N

期刊期号

3

journal_title

varchar

64

0

Y

N

期刊标题

4

year_of_publication

varchar

64

0

Y

N

出版年份

5

journal_author

int

10

0

Y

N

0

期刊作者

6

rating_expert

int

10

0

Y

N

0

评分专家

7

evaluation_score

varchar

64

0

Y

N

评价分数

8

rating_time

datetime

19

0

Y

N

评分时间

9

particular_view

longtext

2147483647

0

Y

N

具体意见

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表expert_users (专家用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

expert_users_id

int

10

0

N

Y

专家用户ID

2

expert_name

varchar

64

0

Y

N

专家名称

3

expert_gender

varchar

64

0

Y

N

专家性别

4

expert_age

int

10

0

Y

N

0

专家年龄

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表journal_information (期刊信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

journal_information_id

int

10

0

N

Y

期刊信息ID

2

journal_issue_number

varchar

64

0

Y

N

期刊期号

3

journal_title

varchar

64

0

Y

N

期刊标题

4

year_of_publication

varchar

64

0

Y

N

出版年份

5

journal_author

int

10

0

Y

N

0

期刊作者

6

journal_type

varchar

64

0

Y

N

期刊类型

7

release_date

date

10

0

Y

N

发布日期

8

journal_cover

varchar

255

0

Y

N

期刊封面

9

journal_details

longtext

2147483647

0

Y

N

期刊详情

10

praise_len

int

10

0

N

N

0

点赞数

11

examine_state

varchar

16

0

N

N

未审核

审核状态

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表journal_type (期刊类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

journal_type_id

int

10

0

N

Y

期刊类型ID

2

journal_type

varchar

64

0

Y

N

期刊类型

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表peer_review (专家审稿)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

peer_review_id

int

10

0

N

Y

专家审稿ID

2

journal_issue_number

varchar

64

0

Y

N

期刊期号

3

journal_title

varchar

64

0

Y

N

期刊标题

4

year_of_publication

varchar

64

0

Y

N

出版年份

5

journal_author

int

10

0

Y

N

0

期刊作者

6

journal_type

varchar

64

0

Y

N

期刊类型

7

release_date

date

10

0

Y

N

发布日期

8

journal_cover

varchar

255

0

Y

N

期刊封面

9

journal_details

longtext

2147483647

0

Y

N

期刊详情

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:


5系统实现

5.1 前台用户功能模块的实现

5.1.1 前台首页界面

当进入“爱学术”期刊采编系统的时候,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图,其主界面展示如下图5-1所示。

5-1 前台首页界面图

5.1.2 用户注册界面

“爱学术”期刊采编系统的普通用户时可以进行注册登录,当用户右上角“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图5-2所示。

图5-2注册界面图 

注册关键代码如下所示。

  /**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

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

        Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));

        query.put("username",user.getUsername());

        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);

}      

5.1.3 用户登录界面

“爱学术”期刊采编系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当普通用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到“爱学术”期刊采编系统的首页中;否则将会提示相应错误信息,用户登录界面如下图5-3所示。

图5-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, "账号或密码不正确");

        }

}

5.1.4公告通知界面

当访客点击“爱学术”期刊采编系统中导航栏上的“公告通知”后将会进入到该“公告通知”列表的界面,然后选择想要看的公告通知,点击进入到详细界面。公告通知展示界面如下图所示。

图5-4公告通知展示界面图

5.1.5 新闻资讯界面

当访客点击“爱学术”期刊采编系统中导航栏上的“新闻资讯”后将会进入到该“新闻资讯”列表的界面,然后选择想要看的新闻资讯,点击进入到详细界面,在详细界面可以收藏+赞+评论等操作。新闻资讯界面如下图5-5所示。

图5-5新闻资讯界面图

5.1.6期刊信息界面

用户可以查看期刊信息,在查询到自己想要了解的期刊信息的时候,可以进入查看详细的介绍,包括期刊期号、期刊标题、出版年份、期刊作者、期刊类型、发布日期、期刊详情等信息。支持用户对喜欢的期刊信息进行点赞、收藏、评论的功能,其中编辑用户还可以在此页面进行约稿。以编辑用户为例,期刊信息详情界面如下图5-6所示。

图5-6期刊信息详情界面图

约稿提交界面如下图5-8所示。

图5-8约稿提交界面图

5.1.7 个人中心界面

当用户点击右上角“我的”这个按钮,会出现子菜单,作者用户点击“个人中心”可以对个人首页、期刊信息、约稿信息、专家审稿、专家评分、收藏进行设置管理。作者用户个人中心管理如下图5-9所示。

图5-9作者用户个人中心管理界面图

编辑用户个人中心管理如下图5-10所示。

图5-10编辑用户个人中心管理界面图

5.2 后台功能模块的实现

5.2.1专家用户后台管理界面

专家用户登录系统后台,主要功能是对作者用户提交的需要专家遴选的期刊信息进行评分,可以对专家审稿管理、专家评分管理等模块的信息进行管理。专家用户后台管理界面如下图5-11所示。

图5-11专家用户后台管理界面图

5.2.2系统用户界面

管理员在后台可以对管理员、作者用户、编辑用户、专家用户的信息进行增删改查操作。其中作者用户、编辑用户的账号需由管理员审核通过后方可登录。专家用户由 管理员在后台直接添加。系统用户管理界面如下图5-12所示。

图5-12系统用户管理界面图

用户管理关键代码如下:

  @PostMapping("/add")

    @Transactional

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

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

        return success(1);

    }

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

    service.insert(map);

     return success(1);

 }

5.2.3 期刊信息管理模块

根据需求,需要进行期刊信息添加、删除或修改详情信息。添加期刊信息时,会给出数据填写的页面,该页面根据填写好的期刊信息编号同样会事先发送Ajax请求查询编号是否已存在,数据填写好之后提交到后台,会调用相关服务在数据库中插入记录。

期刊信息管理流程图如下图所示。

图5-13期刊信息管理流程图

期刊信息管理页面如下图所示。

图5-14期刊信息管理界面

5.2.4期刊类型管理界面

管理员在“期刊类型管理”一栏可查看期刊类型和类型描述等信息,管理员可进行查询、新增、重置或删除等相应操作。其管理界面如下图5-15所示。

图5-15期刊类型管理界面图


6系统测试

6.1 测试目的

在这款产品正式投入使用之前,试用是至关重要的一步。即使某些部分的开发没有出现任何问题,将多个模块组合在一起仍然可能会出现矛盾。就像每个人都有自己的特点,但如果混杂在一起,就会显得凌乱不堪,因此必须确保彼此之间能够达成默契的配合。在测试中,应该仔细检查其中的每一项内容,以确保它们符合预期的标准。如果发现有一些偏离,应该及时进行调整,以确保最终的结果能够达到预期的目标。

6.2 测试用例

系统测试包括:用户登录功能测试、期刊信息查看、期刊信息添加、在线约稿、密码修改功能测试,如表6-1、6-2、6-3、6-4、6-5所示:

用户登录功能测试:

表6-1 用户登录功能测试表

用例名称

用户登录系统

目的

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

前提

未登录的情况下

测试流程

1) 进入登录页面

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

预期结果

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

实际结果

实际结果与预期结果一致

期刊信息查看功能测试:

表5-2 期刊信息查看功能测试表

用例名称

期刊信息查看

目的

测试期刊信息查看功能

前提

用户登录

测试流程

点击期刊信息列表

预期结果

可以查看到所有期刊信息

实际结果

实际结果与预期结果一致

管理员添加期刊信息界面测试:

表6-3 管理员添加期刊信息界面测试表

用例名称

期刊信息发布测试用例

目的

测试期刊信息发布功能

前提

作者用户正常登录情况下

测试流程

1)用户点击期刊信息信息管理就,然后点击添加后并填写信息。

2)点击进行提交。

预期结果

提交以后,页面首页会显示新的期刊信息信息 

实际结果

实际结果与预期结果一致

在线约稿功能测试:

表6-4在线约稿功能测试表

用例名称

在线约稿测试

目的

测试在线约稿功能

前提

期刊信息

测试流程

1)编辑用户点击期刊信息。

2)点击约稿,填写约稿信息。

预期结果

完整提交约稿内容

实际结果

实际结果与预期结果一致

密码修改功能测试:

表6-5 密码修改功能测试表

用例名称

密码修改测试用例

目的

测试管理员密码修改功能

前提

管理员用户正常登录情况下

测试流程

1)管理员密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

6.3 测试结果

通过编写课程管理系统的测试用例,已经检测完毕用户登录模块、期刊信息查看模块、期刊信息添加模块、在线约稿模块、密码修改功能测试,通过这5大模块为课程管理系统的后期推广运营提供了强力的技术支撑。

7总结与展望

在开发“爱学术”期刊采编系统之前我胸有成竹,觉得很简单,但在实际的开发中我发现了自身的很多问题,许多编程思想和方法都还没有掌握牢靠,比如AJAX 、Spring、SpringMVC、MyBatis等许多Java Web开发技术,通过开发这个高校实验室教学管理系统我成长了很多,懂得了做什么事情都要脚踏实地,不能眼高手低,在本次高校实验室教学管理系统的开发中我逐渐掌握逐渐熟悉的技术。

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

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


参考文献

[1]袁琳琳.计算机软件Java编程特点及技术分析[J].数字通信世界,2023,(12):87-89.

[2]马庆.计算机软件开发中JAVA编程语言的应用[J].山西电子技术,2023,(06):84-86+98.

[3]宋晓燕,杨芬.Java程序设计语言的分层教学实践[J].电子技术,2023,52(11):182-183.

[4]杨芬,宋晓燕.MySQL数据库应用的课程教学分析[J].电子技术,2023,52(10):180-181.

[5]陈蓓蕾,洪年松.基于SpringBoot的数据库接口设计[J].信息与电脑(理论版),2023,35(16):181-183.

[6]Stokes D .Update or migrate? Planning for MySQL 5.7 EOL[J].InfoWorld.com,2023,

[7]Yuan G ,Ximu Y .Data analysis framework of tourism enterprise human resource management system based on MySQL and fuzzy clustering[J].International Journal of System Assurance Engineering and Management,2023,14(5):1647-1659.

[8]王振华.SpringBoot在教学效果评估系统中的应用[J].电子技术,2023,52(05):67-69.

[9]于林峰,谭率,卢锋妮等.大规模学术论文元数据管理系统的设计与实现[J].电脑知识与技术,2023,19(12):74-77.

[10]王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.

[11]孙千惠.面向学术信息的数据管理系统的设计与实现[D].北京交通大学,2022.000700

[12]Hejing W .Commerce Middle Office Management System Based on Springboot[J].International Journal of Advanced Network, Monitoring and Controls,2022,7(2):32-45.

[13]Yongtai S .Optimization and Simulation of Manuscript Management System Based on Fuzzy Genetic Neural Network[J].Computational Intelligence and Neuroscience,2021,20213155765-3155765.

[14]Cheng F .Talent Recruitment Management System for Small and Micro Enterprises Based on Springboot Framework[J].Advances in Educational Technology and Psychology,2021,5(2):

[15]文辉.科技期刊已录稿件管理系统的设计与实现[J].传播与版权,2021,(01):9-12.

[16]张刚,募格期刊管理系统[简称:期刊管理系统]V1.0.陕西省,西安募格网络科技有限公司,2020-12-01.

[17]张刚,学术期刊系统[简称:期刊系统]V1.0.陕西省,西安募格网络科技有限公司,2020-12-01.

[18]崔开源,崔连伟,曹文萍.智能时代的国家学术管理系统模型及学术评价算法[J].赤峰学院学报(自然科学版),2020,36(11):10-15.

[19]文娟,崔玉洁,包颖等.基于期刊集约化的管理系统实践探索——以西南大学期刊社为例[J].编辑学报,2020,32(03):318-322.

[20]李娟.稿件管理系统的性能测试研究与实现[D].苏州大学,2020.001099


致谢

眨眼之间,大用户活就要结束了。在本文的最后,我要感谢我和蔼可亲的导师、团结有爱的同学的帮助和鼓励。此刻,我找不到感谢之词可以用来表达我最深切的感激之情。尤其感谢我的指导老师,在选题的过程中与我进行了深入的交流,在毕业设计期间给我提供了一些指导。四年的学习生活让我受益良多,老师们的丰富的学术知识、认真负责的学习态度让我受益匪浅。在此,我深深地感谢那些曾经给予我帮助和指导的老师!

我们的论文得益于许多学者的贡献,他们的研究成果为我们提供了宝贵的指导,使我们能够更好地完成这篇文章。感谢我的同学和朋友在我的写作以及排版过程中给予热情的帮助,才使得我比较顺利的完成了这篇论文。

感谢大学里遇见的朋友,你们在我这四年里留下无数的温暖和快乐,让我对这个校园多了一份留念。最后,感谢我的父母、辅导员老师、班长,以及室友们对我大用户活上的关心和理解,让我能保持乐观和追求我所热爱的。尽管我的能力有限,但我仍然尽力去完善这篇论文,并且诚挚地希望各位老师和学友能够给予宝贵的指导与意见!

点赞+收藏+关注  →私信领取本源代码、数据库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2132191.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Qt】样式属性

样式属性 QSS 中的样式属性⾮常多, 不需要都记住. 核⼼原则还是⽤到了就去查. ⽂档的 Qt Style Sheets Reference 章节详细介绍了哪些控件可以设置属性, 每个控 件都能设置哪些属性等. 在样式属性中有一个“盒子模型需要重点介绍” 盒子模型 在⽂档的 Customizing Qt Widget…

Kubernetes从零到精通(10-服务Service)

Service简介 Deployment这种工作负载能管理我们应用Pod的副本数&#xff0c;并实现动态的创建和销毁&#xff0c;所以Pod本身是临时资源&#xff08;IP随时可能变化&#xff09;。现在如果某组Pod A需要访问另一组Pod B&#xff0c;A就需要在应用的配置参数里动态跟踪并更改B的…

java(1)数据类型,运算符,逻辑控制语句以及基本应用

目录 ​编辑 1.前言 2.正文 2.1数据类型与变量 2.1.1字面常量 2.1.2数据类型 2.1.3变量 2.1.3.1整型 2.1.3.2浮点型 2.1.3.3字符型 2.1.3.4布尔型 2.1.4类型转换与类型提升 2.1.4.1字符串的拼接 2.1.4.2整型转字符串 2.1.4.3字符串转整数 2.2运算符 2.2.1算术运…

【效果+教程】免费!实操用AI设计图标Logo,不仅省了设计费,还是副业新赛道!

Logo是一个品牌或公司的视觉标识 一个好的logo可以帮助消费者快速识别品牌&#xff0c;增强品牌的可见性和记忆度。 一个专业设计的logo能够提升品牌的可信度&#xff0c;给人一种专业和可靠的印象。 一个设计精美且富有意义的logo能够与消费者建立情感联系&#xff0c;增强…

10887辆 捷途旅行者8月再夺方盒子销冠

近日&#xff0c;8月汽车销量排行榜正式出炉。捷途旅行者年内第四次实现月销过万&#xff0c;以10887辆的优异成绩&#xff0c;持续领跑方盒子市场。作为名副其实的畅销车型&#xff0c;捷途旅行者自去年上市以来&#xff0c;不仅连续三个季度卫冕方盒子销量冠军&#xff0c;创…

C++类与对象(下)--最后的收尾

内部类 • 如果⼀个类定义在另⼀个类的内部&#xff0c;这个内部类就叫做内部类。内部类是⼀个独⽴的类&#xff0c;跟定义在 全局相⽐&#xff0c;他只是受外部类类域限制和访问限定符限制&#xff0c;所以外部类定义的对象中不包含内部类。 #include<iostream> using…

C++中string使用

目录 介绍 使用 迭代器&#xff08;Iterator&#xff09; begin&#xff0c;end rbegin&#xff0c;rend 容量&#xff08;Capacity&#xff09; size&#xff0c;length capacity empty clear resize reserve 元素访问&#xff08;Element access&#xff09; ope…

美国陆军发布下一代目标识别和感知倡议

文章目录 前言一、下一代目标识别与感知倡议的内容二、下一代目标识别与感知倡议重点关注领域(1)目标标记、跟踪和定位 (TTL)(2)侦察和监视 (R&S)(3)无人系统 (UMS)前言 2024年7月23日,美国陆军发布了下一代目标识别与感知倡议,希望工业界能够开发战场态势感知、侦…

LeetCode 692.前K个高频单词

LeetCode 692.前K个高频单词 C 思路&#x1f9d0;&#xff1a; 首先用map存储该字典&#xff0c;然后放进vector进行排序&#xff0c;注意sort的排序规则与我们想要的规则不一致&#xff0c;所以我们需要写一个伪函数来判断second(value值)&#xff0c;由于该题要求了稳定性&am…

Rider使用习惯

1.修改rider的快捷方式为VSCode样式的&#xff0c;修改设置方式 2.在项目中点击某个脚本文件&#xff0c;即在项目视图中选中这个文件&#xff0c;设置方式如下&#xff1a; 暂时先记录这么多&#xff0c;以后有零碎的随时记录

VUE,element-ui,优化tabs组件每次点击,所有子页面都重新渲染问题

1.在data中定义每个子组件相应的值&#xff0c;ture为加载&#xff0c;false为不加载。 2.在子组件中使用v-if来判断是否渲染当前页面 3.在函数中对子组件的值进行切换。 handleClick(){if(this.activeNamefirst){this.pageOne truethis.pageTwo false}else if(this.active…

通过 4EVERLAND 的终极 4EVER Boost 活动增强你的活动能力!

介绍 近日&#xff0c;4EVERLAND宣布启动最新、最激动人心的计划 — 4EVER Boost 活动&#xff01;4EVER Boost 活动旨在吸引更多社区成员加入并加速去中心化物理基础设施4EVER 网络的发展。用户可以参与节点质押、日常任务和 T4EVER/NFT 质押&#xff0c;以加快获得 $4EVER 积…

Spring Security认证与授权

1 Spring Security介绍 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。由于它是Spring生态系统中的一员&#xff0c;因此它伴随着整个Spring生态系统不断修正、升级&#xff0c;在spring boot项目中加入springsecurity更是…

隔离DCDC模块B0505/B0503对RS485和CAN总线进行电源隔离

CAN和485都是工业通信中常用的现场总线&#xff0c;做好通信总线的隔离防护是产品可靠、稳定的重要前 提。 一、通信总线为什么要隔离&#xff1f; 目前大多数产品对外通讯部分可总结为&#xff1a; MCU收发器外部总线&#xff0c;其中大多数常用的MCU都集成有CAN或UART链路层…

Linux中的简单命令2

一.echo指令 echo的作用是显式文本内容 #echo ‘字符串’ #echo “字符串” echo会将后面的内容当作字符串直接打印在屏幕上&#xff0c;后面的内容需要用单引号或者双引号括起来 注意&#xff1a;echo会自动在字符串后面加上一个换行符。 可以与printf进行对比&#xff1a; …

从Zotero6到Zotero7的数据迁移尝试?(有错勿喷,多多指教!)

从Zotero6到Zotero7的数据迁移尝试 0 前言 之前在主机上一直用的Zotero6&#xff08;实验室主机&#xff09;&#xff0c;最近发现在个人笔记本上看论文更频繁&#xff0c;尝试重新部署Zotero&#xff0c;才发现竟然更新了&#xff01;所以这里简单记录一下数据迁移过程&…

水厂中的反冲洗工艺

滤池作为水厂的重要的处理单元之一,滤池的形式多种多样,但其截留水中杂质的原理基本相同。我们以常见的V型滤池为例,介绍一下水厂中的反冲洗工艺。 V型滤池是快滤池的一种形式,因为其进水槽形状呈V字形而得名,也叫均粒滤料滤池(其滤料采用均质滤料,即均粒径滤料)、六阀滤…

代码随想录算法训练营第14天|226. 翻转二叉树、101. 对称二叉树、104. 二叉树的最大深度、111. 二叉树的最小深度

目录 226. 翻转二叉树1、题目描述2、思路3、code&#xff08;后序递归&#xff09; 101. 对称二叉树1、题目描述2、思路3、code 104. 二叉树的最大深度1、题目描述2、思路3、code 111. 二叉树的最小深度1、题目描述2、思路3、code 226. 翻转二叉树 题目链接&#xff1a;link …

2024年最新软件测试学习路线图(从入门到精通)

六维全息课程注重综合能力培养&#xff0c;从入学到职后一站式服务测试开发人才。2024年最新软件测试学习路线图&#xff0c;从入门到精通一应俱全。 9阶段专业课11大专项测试项目 适应互联网企业测试开发需求。 对于想入行学软件测试的新手来说&#xff0c;首先就需要一个高效…

GESP等级考试 C++二级-if语句

if语句是C中的选择语句&#xff0c;通过if语句程序可以在一种可能、二种可能或者多种可能中做出选择&#xff0c;对于不同的可能进行不同的处理。 1 一种可能 使用if语句对一种可能进行处理的格式如下所示&#xff1a; if (表达式) {语句; } 其中&#xff0c;if后面跟一个圆…