摘要
当今社会是信息社会,信息化已经深入社会的各个方面。随着科学技术的发展,全球信息化时代的全面到来,数字化科技将为未来社会建立起“数字世界新秩序”,数字化信息将成为人类社会的重要支柱之一。为了更加方便投稿作者和编辑部内部工作人员处理稿件,建立期刊网络管理平台势在必行。本课题分析并设计了学报管理系统,它具备了较完善的信息管理功能,包括用户注册、用户投稿、文章信息管理等。
关键词:PHP;学报管理;MYSQL;
Abstract
Today's society is an information society, and informatization has gone deep into all aspects of society. With the development of science and technology and the advent of the global information age, digital technology will establish a "new order in the digital world" for the future society, and digital information will become one of the important pillars of human society. In order to make it easier for contributors and editorial staff to handle manuscripts, it is imperative to establish a periodical network management platform. This paper analyzes and designs the journal management system, which has a relatively perfect information management function, including user registration, user contribution, article information management, etc.
Keywords: PHP; Journal Management; MYSQL;
1 绪论
1.1 研究背景及意义
学报编辑部作为一个出版部门,工作内容相当丰富,是一个大型出版社的缩影。正所谓“麻雀虽小,五脏俱全”。学报工作是一项集组稿、审稿、编辑﹑出版、发行等于一身的系统工作。编辑部面临着人员少、事务繁多、工作量大等问题,而且现在的以手工为主的落后的管理方式和工作方式更加重了编辑人员的负担。以稿件登记为例,编辑部收到作者投稿件后,要进行手工登记,将稿件的信息如稿件编号、篇名、作者姓名、作者单位、联系方式等记录在登记本上,所有来稿都登记在一起。这种工作方式存在很多弊端:登记信息不直观,查询稿件困难大,费时间,难以掌握某篇稿件的现行状态,不便于统计阶段性工作,不便于把握稿件的总体情况,工作效率等等。21世纪是信息化的时代,计算机的应用将普及到人类生活和工作的各个方面。随着各种信息交流量的急剧增加,信息作为人类社会三大资源之一,将会得到更广泛的开发和使用。应用计算机系统为人们全面、及时、准确、迅速地提供各种有益的信息,包括各种优化的决策信息,以提高管理工作效率和决策水平,这是管理信息系统和办公自动化的基本功能。因而,为提高编辑工作效率,实现学报管理工作的现代化、规范化、高效化,必须借助速度快、信息储存量大的计算机辅助完成编辑部的日常事务工作。
1.2系统开发的目标意义
随着网络时代的到来及编辑人员素质的提高,诸如通过构建学术论文评审专家及审稿登记数据库实现计算机对审稿专家及审稿的管理,通过开发此系统使网上投稿成为现实,高校学报编辑部在不断提高编辑工作的现代化水平,实现科技期刊信息化管理。然而信息化管理要求数据存储统一、完备,也就是说对科技期刊整个编辑出版过程实施计算机管理并实现网上稿件投、审、编、校一体化管理的管理信息系统并不多见。为了消除人为因素所造成的“瓶颈”,提高编辑部的工作效率和科学管理水平,如何通过有效的管理,促进高校学报质量的飞跃,尤其是用新技术特别是计算机及网络通讯技术去改造和提升学报的管理工作,促进学报工作的发展,是学报社管理工作者一直关注的问题。
1.3系统研究方法
首先,通过引擎搜索或者查阅相关文献资料,了解了本系统开发的背景以及设计系统的意义所在,收集用户需求信息。其次,在开发工具上,最终确定选用PHP平台来设计开发本系统,MySQL作为设计数据库的工具。即利用PHP语言实现用户界面,并同数据库连接起来实现完整的通信功能。之后,设计出系统大致的功能模块。主要从方便系统用户和系统管理员的角度进行分析,明确该系统应该具有的功能。最终是测试系统,通过用例测试发现存在的问题并找到解决的方案。利用现有的开发平台,结合自己所学的知识,在老师的指导帮助下来完成该设计,确保系统的可用性、实用性。
1.4论文结构与章节安排
本文共分为六章,章节内容安排如下:
第一章:引言。第一章主要介绍了课题研究的背景意义,研究方法以及技术和本文的研究内容与主要工作。
第二章:系统需求分析。第三章主要从系统的用户、功能等方面进行需求分析。
第三章:系统设计。第四章主要对系统框架、系统功能模块、数据库进行功能设计。
第四章:系统实现。第五章主要介绍了系统框架搭建、系统界面的实现。
第五章:系统测试。第六章主要对系统的部分界面进行测试并对主要功能进行测试
2 学报管理系统分析
本章内容概括了学报管理系统的可行性分析、功能分析以及用例分析。
2.1 可行性分析
2.1.1 技术可行性分析
在分析了学报管理系统的真实需求后,将学报管理系统所需要的角色划分整理成了下图2-1和图2-2。
从开发工具来看,由于学报管理系统是基于PHP开发的,因此当前市面上的开发工具都可以来开发,这些功能强大的开发工具可以给我来设计毕设带来非常大的方便。
从学报管理系统的本身技术来说,对于我来开发一个学报管理系统这个毕设是不费事的。学报管理系统的开发可以简单的分为前台模块、后台模块开发以及数据库开发。其中的大部分技术难点在我上学时已经使用过了,同时网络上很多技术点可以让我来借鉴。Web后台管理使用PHP开发,数据库使用mysql,因此为我在开发学报管理系统这个毕设上省去了很多多余代码,这给我的毕设项目编写带来了极大的便利。
从用户体验来看,市面上很多被广泛使用的学报信息管理案例可以让我来参考,因此我可以综合网上的页面交互设计的优点,基于我的毕设项目特点来进行改版,最后达到令用户满意的页面交互体验。综上所述,从技术层面来看开发学报管理系统是可行的。
2.1.2 经济可行性分析
从学报管理系统的开发成本来看,学报管理系统的设计和开发都是我自己完成的,没有其他成本上的开销。
从学报管理系统的维护成本来看,学报管理系统的开发遵循一套完整的代码编写规范,并且学报管理系统的结构设计非常灵活,遵循高内聚低耦合的原则,因此易于维护和迭代开发。
在学报管理系统上线之后,上线前期我会根据真实需求来调查,对使用我开发的学报管理系统来制定一套符合的使用费。系统运行稳定后我会将推广范围到其他的企业中,他们可以自己来注册使用我的学报管理系统,只需要缴纳一点点的定金,我会给他们引入广告投资和自营业务。
综合以上的分析,学报管理系统所带来的经济效益将会带来极大的收益。并且随着我的推广,来使用我开发的学报管理系统的市场将越来越大,学报管理系统带来的利润也就越来越多。因此,从经济层面来看开发学报管理系统的是可行的。
学报管理系统的主要的服务对象是学报编辑部人群,总的来说学报管理系统的使用还是比较简单的,一般不存在操作困难的事情,学报管理系统的管理人员需要对该学报管理系统有一定的了解,比如文章管理、用户投稿等操作,如果不会,可以进行简单的培训就好了。
2.2 系统功能分析
学报管理系统我划分为了用户管理模块和管理员模块这两大部分。
前台用户管理模块:
(1)用户注册登录:用户注册并登录学报管理系统;用户对个人信息的增删改查,比如个人资料,密码修改。
(2)用户查看文章:用户进行文章信息的阅览,通过发现喜欢的文章后可以加入到自己的收藏夹、点赞。
(3)我的收藏:用户可以查看自己以往收藏起来的文章信息,同时可以移除自己的收藏夹。
(4)用户投稿:用户可以在线进行投稿操作,填写好标题,图片,文章类别,相关附件等,当用户投稿完毕后,将其提交给服务器后台系统,并生成稿件列表。
(5)通知公告:用户可以查看最新的系统通知公告信息。
(6)在线留言:用户在前台可以进行在线留言发布,用户可以提交留言信息。
(7)用户投稿查询:用户可以查看到自己的所有投稿信息等。
后台管理员管理模块:
(1)站点内容:管理员可以对学报管理系统中的轮播图以及公告信息进行发布和维护。
(2)系统用户:管理员可以对前台上注册过的用户信息进行管控,同时可以对管理员的信息进行管理。
(3)在线留言:管理员可以对学报管理系统中的用户留言信息进行回复维护。
(4)友情链接管理:管理员可以对发布的友情链接进行增删改查。
(5)文章管理:管理员可以对文章信息进行增删改查。
(6)用户投稿管理:管理员对用户提交的稿件进行管理。
(7)文章分类管理:管理员可以对文章类型进行增删改查。
学报管理系统的非功能性需求比如学报管理系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
表3-1学报管理系统非功能需求表
安全性 | 主要指学报管理系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指学报管理系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响学报管理系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着学报管理系统的页面展示内容进行操作,就可以了。 |
可维护性 | 学报管理系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.3 系统用例分析
学报管理系统的完整UML用例图分别是图2-1和图2-2。在参与者上包括用户以及管理员。前台上用户角色用例包括用户是注册登录、通知公告、在线留言、文章信息、关于我们、收藏文章、用户投稿、稿件查询、个人资料、密码修改,用户角色用例如图2-1所示。
图2-1 学报管理系统用户角色用例图
web后台管理上的管理员是维护整个学报管理系统中所有数据信息的,管理员可以进行登录、轮播图、通知公告、管理员、注册用户、留言管理、用户投稿管理、文章管理、文章分类、友情链接管理。管理员角色用例如图2-2所示。
2.4本章小结
本章主要通过对学报管理系统的可行性分析、功能需求分析、系统用例分析,确定整个学报管理系统要实现的功能。同时也为学报管理系统的代码实现和测试提供了标准。
3 学报管理系统总体设计
本章主要讨论的内容包括学报管理系统的功能模块设计、数据库系统设计。
3.1 系统架构设计
本学报管理系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1学报管理系统系统架构设计图
表现层(UI):又称UI层,主要完成本学报管理系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本学报管理系统时的舒适度。UI的界面设计也要适应不同版本的学报管理系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本学报管理系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本学报管理系统的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本学报管理系统的数据存储和管理功能。
3.2 系统模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本学报管理系统中的用例。那么接下来就要开始对本学报管理系统的架构、主要功能和数据库开始进行设计。学报管理系统根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。
图3-2 学报管理系统功能模块图
3.3 数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.3.1 数据库概念结构设计
下面是整个学报管理系统中主要的数据库表总E-R实体关系图。
图3-2 学报管理系统总E-R关系图
通过上一小节中学报管理系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
(1)操作记录表:
名称 | 类型 | 长度 | 不是null | 主键 |
id | int | 11 | 是 | 是 |
mouren | varchar | 50 | 否 | 否 |
quanxian | varchar | 50 | 否 | 否 |
caozuoshixiang | varchar | 50 | 否 | 否 |
xiangyingbiao | varchar | 50 | 否 | 否 |
addtime | timestamp | 0 | 是 | 否 |
(2)留言表:
名称 | 类型 | 长度 | 不是null | 主键 |
id | int | 11 | 是 | 是 |
zhanghao | varchar | 50 | 否 | 否 |
zhaopian | varchar | 50 | 否 | 否 |
xingming | varchar | 50 | 否 | 否 |
liuyan | varchar | 50 | 否 | 否 |
addtime | timestamp | 0 | 是 | 否 |
huifu | varchar | 50 | 否 | 否 |
(3)收藏记录表:
名称 | 类型 | 长度 | 不是null | 主键 |
ID | int | 11 | 是 | 是 |
username | varchar | 255 | 否 | 否 |
xwid | varchar | 255 | 否 | 否 |
biao | varchar | 100 | 否 | 否 |
addtime | timestamp | 0 | 否 | 否 |
ziduan | varchar | 255 | 否 | 否 |
(4)文章列表表:
名称 | 类型 | 长度 | 不是null | 主键 |
id | int | 11 | 是 | 是 |
wenzhangleibie | varchar | 50 | 否 | 否 |
addtime | timestamp | 0 | 是 | 否 |
(5)文章信息表:
名称 | 类型 | 长度 | 不是null | 主键 |
id | int | 11 | 是 | 是 |
bianhao | varchar | 50 | 否 | 否 |
biaoti | varchar | 50 | 否 | 否 |
tupian | varchar | 50 | 否 | 否 |
wenzhangleibie | varchar | 50 | 否 | 否 |
zhaiyao | varchar | 500 | 否 | 否 |
zuozhe | varchar | 50 | 否 | 否 |
faburiqi | varchar | 50 | 否 | 否 |
xiangqing | text | 0 | 否 | 否 |
dianzan_d | int | 11 | 否 | 否 |
dianzan_c | int | 11 | 否 | 否 |
addtime | timestamp | 0 | 是 | 否 |
(6)新闻通知表:
名称 | 类型 | 长度 | 不是null | 主键 |
id | int | 11 | 是 | 是 |
biaoti | varchar | 500 | 否 | 否 |
leibie | varchar | 50 | 否 | 否 |
neirong | text | 0 | 否 | 否 |
tianjiaren | varchar | 50 | 否 | 否 |
addtime | timestamp | 0 | 否 | 否 |
shouyetupian | varchar | 50 | 否 | 否 |
dianjilv | int | 11 | 否 | 否 |
zhaiyao | Varchar | 800 | 否 | 否 |
(7)用户投稿表:
名称 | 类型 | 长度 | 不是null | 主键 |
id | int | 11 | 是 | 是 |
biaoti | varchar | 50 | 否 | 否 |
tupian | varchar | 50 | 否 | 否 |
wenzhangleibie | varchar | 50 | 否 | 否 |
zuozhe | varchar | 50 | 否 | 否 |
zhaiyao | varchar | 500 | 否 | 否 |
xiangguanfujian | varchar | 50 | 否 | 否 |
tougaoren | varchar | 50 | 否 | 否 |
xiangqing | text | 0 | 否 | 否 |
issh | varchar | 10 | 否 | 否 |
shhf | varchar | 200 | 否 | 否 |
addtime | timestamp | 0 | 是 | 否 |
3.4本章小结
整个学报管理系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4 学报管理系统详细设计与实现
学报管理系统的详细设计与实现主要是根据前面的学报管理系统的需求分析和学报管理系统的总体设计来设计页面并实现业务逻辑。主要从学报管理系统界面实现、业务逻辑实现这两部分进行介绍。
4.1用户功能模块
4.1.1 前台首页界面
在学报管理系统的前台首页界面上采用了上+中+下的方式来布局界面,最右上角是登录+注册这+搜索这三个链接,下面依次是导航栏+轮播图以及下面的通知公告,下面依次是文章信息以及在线留言,其主界面展示如下图4-1所示。
图4-1 前台首页界面图
前台首页关键代码如下:
return [
// 数据库类型
'type' => 'mysql',
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
'database' => 'CS85950_20211206165410',
// 用户名
'username' => 'root',
// 密码
'password' => 'root',
// 端口
'hostport' => '3306',
// 连接dsn
'dsn' => '',
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => 'utf8',
// 数据库表前缀
'prefix' => '',
// 数据库调试模式
'debug' => true,
// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
'deploy' => 0,
// 数据库读写是否分离 主从式有效
'rw_separate' => false,
// 读写分离后 主服务器数量
'master_num' => 1,
// 指定从服务器序号
'slave_no' => '',
// 自动读取主库数据
'read_master' => false,
// 是否严格检查字段是否存在
'fields_strict' => true,
// 数据集返回类型
'resultset_type' => 'array',
// 自动写入时间戳字段
'auto_timestamp' => true,
// 时间字段取出后的默认时间格式
'datetime_format' => 'Y-m-d H:i:s',
// 是否需要进行SQL性能分析
'sql_explain' => false,
// Builder类
'builder' => '',
// Query类
'query' => '\\think\\db\\Query',
// 是否需要断线重连
'break_reconnect' => false,
// 断线标识字符串
'break_match_str' => [],
];
4.1.2 用户注册界面
不是学报管理系统中的用户是可以在线进行注册的,当填写上自己的账号+设置密码+确认密码+昵称+邮箱+手机号+身份后+用户名再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可注册成功。其用户注册界面展示如下图4-2所示。
图4-2 前台用户注册界面图
用户注册逻辑代码如下:
public function register()
{
if (Request::isPost()) {
$request = Request::param();
$request['create_time'] = isset($request['create_time']) ? $request['create_time'] : date('Y-m-d H:i:s');
$request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');
$result = $this->validate($request, $this->validate);
if (true !== $result) {
// 验证失败 输出错误信息
$data['error'] = 30000;
$data['message'] = $result;
} else {
$request['password'] = md5($request['password']);
$result = $this->model->register($request, $this->table);
$data = $result;
}
} else {
$data['error'] = 30000;
$data['message'] = "field的值不能为空!";
}
return json_encode($data);
}
public function register($request=[],$table_name = ''){
$username = $request['username'];
$bol = $this->where(['username'=>$username])->find();
if (!$bol){
$result = self::allowField(true)->save($request);
if ($result) {
return ['result' => 1];
} else {
return ['error' => ['code' => 3000, 'message' => '注册失败']];
}
}else{
return ['error' => ['code' => 3000, 'message' => '注册失败,账号已存在']];
}
}
4.1.3 用户登录界面
学报管理系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到学报管理系统的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。
图4-3用户登录界面图
用户登录的关键代码如下。
public function login()
{
if (Request::isPost()) {
$request = Request::param();
$result = $this->validate($request, $this->validate);
if (true !== $result) {
// 验证失败 输出错误信息
$data['error'] = 30000;
$data['message'] = $result;
} else {
$request['password'] = md5($request['password']);
$result = $this->model->login($request, $this->table);
$data = $result;
}
} else {
$data['error'] = 30000;
$data['message'] = "field的值不能为空!";
}
return json_encode($data);
}
public function login($request=[],$table_name = ''){
$username = $request['username'];
$password = $request['password'];
$bol = $this->where(['username'=>$username])->find();
if ($bol){
$password = md5($password);
if ($request['password']==$bol['password']) {
//添加token信息
$access_token['create_time'] = date('Y-m-d H:i:s');
$access_token['update_time'] = date('Y-m-d H:i:s');
$access_token['info'] = json_encode($bol);
// $access_token['info'] = $bol;
$access_token['token'] = md5(date('Y-m-d H:i:s'));
$bol_token = Db::name('AccessToken')->insert($access_token);
if ($bol_token){
$data['obj'] = $bol;
$data['obj']['token'] = $access_token['token'];
return ['result' => $data];
}else{
return ['error' => ['code' => 5000, 'message' => '登录失败,token生成失败']];
}
} else {
return ['error' => ['code' => 5000, 'message' => '登录失败,密码不正确']];
}
}else{
return ['error' => ['code' => 5000, 'message' => '登录失败,账号不存在']];
}
}
4.1.4搜索文章界面
在学报管理系统首页上的搜索框中输入自己想要快速检索的文章的关键词并点击“搜索”按钮后将会输入的关键词进行和数据库中保存的文章信息进行模糊匹配,并将检索到最匹配的文章信息显示出来。搜索文章界面如下图4-4所示。
图4-4搜索文章界面图
4.1.5 在线留言界面
当访客点击学报管理系统中导航栏上的“在线留言”后将会进入到该“在线留言”列表的界面,然后选择想要看的在线留言信息,点击进入到详细界面,也可以发布在线留言信息,在线留言界面如下图4-5所示。
图4-5在线留言界面图
在线留言的关键代码如下。
@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);
}
4.1.6 文章详情界面
当访客点击了任意文章后将会进入该文章的详情界面,可以了解到该文章的具体信息,同时可以对该文章进行点赞+收藏+评论+打印,文章详情展示页面如图4-6所示。
图4-6 文章详情界面图
文章详情的关键代码如下。
public function avg_group()
{
$request = Request::param();
if (isset($request['groupby']) && isset($request['field'])) {
if (!empty($request['groupby']) && !empty($request['field'])) {
$result = $this->model->avg_group($request, $this->table, $this->table_id);
$data = $result;
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "groupby或者field的值不能为空!";
}
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "groupby或者field的值不能为空!";
}
return json_encode($data);
}
4.1.7 用户投稿界面
用户可以在投稿界面对个人稿件进行附件上传以及提交。用户投稿界面如下图4-7所示。
图4-7 用户投稿界面图
用户投稿关键代码:
public function avg()
{
$request = Request::param();
if (isset($request['field'])) {
if (!empty($request['field'])) {
$result = $this->model->avg_field($request, $this->table, $this->table_id);
$data = $result;
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "field的值不能为空!";
}
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "field的值不能为空!";
}
return json_encode($data);
}
用户可以在“稿件查询”界面对自己上传的稿件进行查询。稿件查询界面如下图4-8所示。
图4-8 稿件查询界面图
4.2管理员功能模块
4.2.1 用户管理界面
学报管理系统中的管理人员是可以对前台注册的用户进行管理。注册用户界面如下图4-9所示。
图4-9用户管理界面图
学报管理系统中的管理人员是可以对通知公告进行增删改查,公告管理界面如下图4-10所示。
图4-10公告管理界面图
公告管理关键代码:
$obj = $this->where($where)->field($field)->find();
$result = self::allowField(true)->save($request);
$result = $this->where($where)->update($request);
$result = $this->where($where)->delete();
4.2.3 友情链接管理界面
学报管理系统中的管理人员是可以对友情链接信息进行维护和管理的。图书商城界面如下图4-11所示。
图4-11友情链接管理界面图
友情链接管理关键代码
public function add($request=[],$table_name = '',$table_id = ''){
$result = self::allowField(true)->save($request);
if ($result) {
return ['result' => 1];
} else {
return ['error' => ['code' => 3000, 'message' => '数据添加失败']];
}
}
4.2.4文章管理界面
学报管理系统中的管理人员是可以对学报管理系统内的文章进行发布管理等,同时支持根据标题来具体检索某篇文章信息。文章管理界面如下图4-12所示。
图4-12文章管理界面图
文章管理关键代码
public function upload()
{
//上传文件目录获取
$month = date('Ym', time());
$data = 'file';//文件域
$path = 'upload/file/' . $month . "/";//上传文件保存位置
$allow_ext = explode(",", "jpg,jpeg,png,jfif,bmp,gif,ico,xls,xlsx,AVI,mov,rmvb,rm,FLV,mp4,3GP");
if ($_FILES) {
$file = $_FILES[$data];
$rst = [];
if (!empty($file['name'])) {
$file_type = explode('.', $file['name']);
$ext = end($file_type); //获取文件的格式
$ext = strtolower($ext);
if (!in_array($ext, $allow_ext)) {
$rst['error']['code'] = 30000;
$rst['message'] = '只能上传jpg,jpeg,png,jfif,bmp,gif,ico,xls,xlsx,AVI,mov,rmvb,rm,FLV,mp4,3GP类型文件';
} else {
if (!is_dir($path))//判断目录是否存在
{
mkdir($path, 0777, true);//如果目录不存在则创建目录
};
$name = date('YmdHis') . '_' . rand(10000, 99999) . '.' . $ext;
$save_rst = move_uploaded_file($file['tmp_name'], $path . $name);
if ($save_rst !== false) {
// $rst['code'] = 1;
$rst['result']['url'] = 'http://'.$_SERVER['HTTP_HOST'].'/'.$path . $name;
// $rst['ext'] = $ext;
} else {
$rst['error']['code'] = 30000;
$rst['error']['message'] = '文件上传失败';
}
}
} else {
$rst['error']['code'] = 30000;
$rst['error']['message'] = '未选择文件';
}
} else {
$rst['error']['code'] = 30000;
$rst['error']['message'] = '未获取到文件';
}
return json_encode($rst);
}
4.2.5投稿管理界面
学报管理系统中的管理人员是可以进行用户投稿信息管理,可以实现对稿件的增删改查等操作。投稿管理界面如下图4-13所示。
图4-13投稿管理界面图
投稿管理关键代码
public function avg()
{
$request = Request::param();
if (isset($request['field'])) {
if (!empty($request['field'])) {
$result = $this->model->avg_field($request, $this->table, $this->table_id);
$data = $result;
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "field的值不能为空!";
}
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "field的值不能为空!";
}
return json_encode($data);
}
5系统测试
5.1 系统测试用例
系统测试包括:用户登录功能测试、用户注册功能测试、文章信息功能测试、文章添加功能测试,如表5-1、5-2、5-3、5-4所示:
表5-1 用户登录功能测试表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
用户登录模块测试 | 正确输入用户信息,用户成功登录 | 输入用户的信息 | 1.在密码框输入用户密码。2.点击登录 | 跳转到首页 | 正确 |
用户注册功能测试:
表5-2 用户登录功能测试表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
用户注册模块测试 | 正确输入用户星系,完成用户注册 | 输入用户的基本信息 | 在注册页面填写用户相应的信息,然后点击“注册”按钮。 | 提示成功并跳转到登录界面 | 正确 |
用户注册模块测试 | 用户注册失败 | 用户两次输入密码不一致 | 用户在注册页面填写信息时输入两个不一致的密码然后点击“注册”按钮。 | 注册失败提示两次密码输入不一致 | 正确 |
文章信息界面测试:
表5-3 文章信息界面测试表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
文章信息功能模块测试 | 文章信息正常的显示 | 浏览文章信息 | 在前台首页选择一篇文章分类进入分类列表,然后选择一个文章 | 进入该文章的详细信息界面 | 正确 |
管理员添加文章功能测试:
表5-4 管理员添加文章功能测试表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
管理员添加文章功能测试 | 添加文章成功的情况 | 输入新文章的基本信息 | 后台选择“发布文章”选项,然后填写新文章基本信息点击“添加”按钮 | 新文章添加成功 | 正确 |
管理员添加文章功能测试 | 添加文章失败的情况 | 输入文章基本信息不完全 | 后台选择“发布文章”选项,然后不完全填写文章信息,点击“添加”按钮。 | 对应信息框后出现提示请输入XXXX信息 | 正确 |
管理员添加文章功能测试 | 添加文章失败的情况 | 管理员在价格框输入非数字字符 | 后台选择“发布文章”选项然后再类别框输入非数字字符,点击“添加”按钮。 | 添加失败,提示“文章类别” | 正确 |
5.2 系统测试结果
通过编写学报管理系统的测试用例,已经检测完毕用户登录模块、用户注册模块、文章信息展示模块、文章添加模块功能测试,通过这4大模块为学报管理系统的后期推广运营提供了强力的技术支撑。
结论
至此,学报管理系统已经结束,在开发前做了许多的准备,在本系统的设计和开发过程中阅览和学习了许多文献资料,从中我也收获了很多宝贵的方法和设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如Web、PHP技术、MYSQL,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。
当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在这个过程当中我也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。
参考文献
[1]陈新.高校学报管理体制对期刊编校质量提升的影响[J].佳木斯大学社会科学学报,2022,40(02):60-61+66.
[2]尹正阳,薛培凤.关于高等院校学报管理工作的研究与思考[J].内蒙古科技与经济,2021(16):22-23.
[3]陈静.地方普通高校学报管理机制研究[J].兴义民族师范学院学报,2020(03):75-77.
[4]梁赛平.基于可持续发展理念下高校学报管理模式的改革[J].电大理工,2020(03):77-79.
[5]其木格.学报管理信息系统的开发——以内蒙古工业大学学报为例[J].内蒙古工业大学学报(自然科学版),2020,34(04):316-319.
[6]陈蕊,吴少波,程细才,张国军.功能权限的动态管理在高校学报管理系统中的设计与实现[J].现代计算机(专业版),2020(24):48-51.
[7]赵剑冬,王志云.学报管理信息系统建模与增量式开发研究[J].技术与创新管理,2019,35(03):218-221+253.
[8]才璎珠.知识经济时代高校学报管理体制研究[J].哈尔滨师范大学社会科学学报,2019,5(03):164-166.
[9]谢雪莲. 基于JSP的高校学报信息管理系统的设计与实现[D].厦门大学,2019.
[10]姜新华,曹渊清,吴靖华.基于工作流的高校学报管理信息系统[J].内蒙古农业大学学报(自然科学版),2019,33(01):215-218.
[11]崔静,徐俊芳.学报信息管理系统的设计[J].计算机与现代化,2019(08):96-99.
[12]马艳春.基于web的高校学报信息管理系统的研究[J].华北科技学院学报,2019,6(02):69-72.
[13]芶雁.基于PHP MySQL的学报网站动态信息管理系统[J].情报杂志,2019(04):66-68.
[14]杨继成. 基于高校学报网站的学报信息管理系统设计与应用[C]//.第4届中国科技期刊青年编辑学术研讨会论文集.,2019:182-185..
致 谢
学报管理系统的完成,标志着我即将结束在XXX大学的校园生活并跨入社会。在即将毕业的此刻,我想对所有帮助过我的师长、同学和亲人表达我发自内心的谢意。
感谢学校这个大家庭,在这里我们总能找到自己的归属。学校始终在向我们传达着温暖和关怀,接纳和包容我们的缺点。学校给我最大的感受便是要将自己的专业知识与实践相结合,而我也正在努力的成为学校所要求的应用型人才。
感谢各位老师,学院使我从懵懂一步步走向成熟。在这里每个老师都拥有着最大的善意和耐心,来教育我们这群大孩子。学院举办的各类活动是给予我锻炼自己的机会,正是这些机会让我成为了更好的自己,提升了自己各方面的能力。
其次我要感谢我的论文指导老师。我之所以被老师所吸引,是因为老师对于学生友爱和对于工作认真的态度。从选题到开题到论文的撰写,老师一直都在悉心的指导,在指出存在的问题后会与我们探讨解决方法。
最后,我要对即将参与本篇论文审阅和答辩的各位老师表示感谢。