springboot266基于Web的农产品直卖平台的设计与实现

农产品直卖平台的设计与实现

摘 要

计算机网络发展到现在已经好几十年了,在理论上面已经有了很丰富的基础,并且在现实生活中也到处都在使用,可以说,经过几十年的发展,互联网技术已经把地域信息的隔阂给消除了,让整个世界都可以即时通话和联系,极大的方便了人们的生活。所以说,农产品直卖平台用计算机技术来进行设计,不仅在管理方面更加的系统化,操作性强,最重要的是关于数据的保存和使用都能节约大量的时间,该系统非常的好用。

农产品直卖平台管理数据的工具是MySQL,编码的语言是Java,运用的框架是Spring Boot框架。该系统可以实现商家信用类型管理,农产品信息管理,农产品评价管理,商家管理,农产品订单管理,公告信息管理,用户管理等功能。

农产品直卖平台不仅能让操作人员使用更加地方便,并且设计的也很合理,能有效的避免误操作,让数据在录入的环节就符合设计需要,极大的规避了源头性的输入误差,顺利的让数据变得更加可控并且可靠,让出错的几率降到最低。

关键词:农产品直卖平台;农产品;评价;订单

** Abstract**

Computer networks have been developed for decades, and they have a rich theoretical foundation and are used everywhere in real life. It can be said that after decades of development, Internet technology has transformed regional information. The estrangement between the two has been eliminated, allowing the whole world to communicate and contact in real time, which greatly facilitates people’s lives. Therefore, the agricultural product direct selling platform is designed with computer technology, which is not only more systematic in management, but also has strong operability. The most important thing is that the storage and use of data can save a lot of time. The system is very easy to use. .

The data management tool of the agricultural product direct selling platform is MySQL, the coding language is Java, and the framework used is the Spring Boot framework. The system can realize business credit type management, agricultural product information management, agricultural product evaluation management, business management, agricultural product order management, announcement information management, user management and other functions.

The agricultural product direct selling platform not only makes the operator more convenient to use, but also has a reasonable design, which can effectively avoid misoperation, make the data meet the design needs in the process of input, and greatly avoid the source input error. Smoothly make the data more controllable and reliable, minimizing the chance of errors.

**Key Words:**Agricultural product direct selling platform; agricultural products; evaluation; order

目 录

1 绪论 1

1.1 选题背景 1

1.2 选题意义 1

1.3 研究内容 2

2 系统开发技术 3

2.1 MySQL数据库 3

2.2 IDEA简介 3

2.3 Spring Boot框架 4

2.4 Vue框架 4

3 系统分析 5

3.1 可行性研究 5

3.1.1 经济可行性 5

3.1.2 时间可行性 5

3.1.3 操作可行性 5

3.2 系统性能分析 6

3.2.1 系统的安全性 6

3.2.2 系统的易用性 6

3.2.3 系统的健壮性 6

3.3 系统流程分析 7

3.4 系统功能分析 9

4 系统设计 12

4.1 系统设计原则 12

4.2 功能模块设计 13

4.3 数据库设计 15

4.3.1 数据库E-R图 16

4.3.2 数据库表结构 18

5 系统实现 23

5.1 管理员功能实现 23

5.1.1 商家管理 23

5.1.2 公告信息管理 23

5.1.3 商家信用管理 24

5.2 商家功能实现 25

5.2.1 农产品管理 25

5.2.2 农产品评价管理 25

5.2.3 农产品订单管理 26

5.3 用户功能实现 26

5.3.1 农产品信息 26

5.3.2 确认下单 27

5.3.3 农产品订单 28

5.3.4 购物车 28

6 系统测试 29

6.1 功能测试 29

6.2 可用性测试 29

6.3 测试结果分析 30

结 论 31

参考文献 33

致 谢 34

1 绪论

1.1 选题背景

当人们发现随着生产规模的不断扩大,人为计算方面才是一个巨大的短板,所以发明了各种计算设备,从结绳记事,到算筹,以及算盘,到如今的计算机,都是在无法满足生产的前提下出现的。随着计算机的发展,又出现了互联网技术。到现在为止,互联网已经发展了几十年了,在几十年的时间里就已经风靡世界。各行各业都发现了计算机的好处,计算机刚开始是军用的,后来在民用行业开始使用,到互联网时代,各种行业信息如井喷一般充斥着互联网,信息产生和传播的速度不断的提高。针对互联网的优点,结合互联网,对传统行业信息处理技术进行升级是非常有必要的。本课题对于农产品销售信息的管理方面,开发一个农产品直卖平台,在信息管理方面不至于混乱,也能降低数据的出错率,数据安全方面也有了保证,该系统还有其他的优点,比如优化信息处理流程,降低信息泄露风险,减少资金投入,产出更高,让管理人员的工作更有效率等。所以说,农产品直卖平台是目前不可缺的,对使用者相当的重要。

1.2 选题意义

如今的年代,已经是步入信息社会了,不仅信息更新速度频繁,信息量也大,在信息时代必须有相应的处理信息的方法,如果还采用以前的结绳记事或者笔写纸记,不仅是信息录入效率上赶不上节奏,在信息检索的速度上更是让人无法承受。幸而当今社会上计算机技术发展的相当不错,可以通过计算机在信息处理上面实现自动化或者半自动化的作业,采用计算机技术,能有效的提高信息录入以及信息检索的效率,社会上相同行业之间本身就是效率高的淘汰效率低的,既然采用计算机来替代手工记录,必然是效率更高,稳定性更强,成本更低等诸多优点。针对于农产品销售信息管理,开发一个农产品直卖平台不仅可以实现现代化的信息管理,也更符合现代化信息管理规范。

在实际的使用效果中,农产品直卖平台的意义如下:

第一点:农产品直卖平台的出现,就是为了提高工作人员的效率,能够在规定时间完成工作任务。

第二点:操作页面符合人体工程美学,符合日常人为操作习惯,使用友好。

第三点:区别于传统用纸张记录,提高了信息化水平。

第四点:在信息处理方面,极大的降低了人工处理成本。

1.3 研究内容

本文对系统的描述过程将按照绪论,系统开发技术,分析,设计,实现,测试等环节进行展开介绍。

绪论:本节内容主要展示研究该系统的背景和意义。

系统开发技术:本节内容主要展示该系统开发中需要使用的技术和搭建的开发环境。

系统分析:本节内容主要就是分析系统,包括性能,功能上的数据分析,也包括可行性分析等内容。

系统设计:本节内容主要就是根据系统分析的结果进行设计,主要包括功能和数据库的设计。

系统实现:本节内容主要就是通过程序编码对系统的功能进行实现,同时也对需要介绍的功能进行界面运行效果的展示。

系统测试:本节内容主要就是对系统的功能实现部分进行检测,发现系统的错误并及时纠正,让系统能够保证运行无误。

2 系统开发技术

对系统的开发需要做好准备工作,其中安装开发的工具以及学习开发中需要运用的技术都是需要提前进行的,本节内容就对开发中运用的工具还有技术进行阐述。

2.1 MySQL数据库

本设计用到的数据库就是MySQL数据库,之所以用到这个数据库的原因很多。首先,从满足功能需求上面来讲,MySQL是符合的;其次,从学习程度来讲,MySQL相比其他数据库不管是从安装还是使用上面来讲,都比较简单,最重要的是学习起来相当便捷,比较容易入手;再次,MySQL数据库对电脑要求不高,不管是什么样的电脑都可以安装MySQL数据库,并且并不会对电脑性能造成过多的影响。所以,就平常普普通通的电脑就可以作为开发用的电脑,不需要进行额外的电脑升级。虽然自从MySQL数据库被Oracle数据库收购后,有了一些闭源的风险,但是使用者还是很多,MySQL数据库目前的开发人员已经超过五百人了,对数据库开发者来讲已经是一个很大的开发团队了。MySQL在使用上面来讲,普通的增删改查操作已经可以满足大部分业务需求,像一些数据导出导入,以及一些函数,都可以满足一些不同的需求,最重要的是MySQL数据库可以创建索引,可以大大的提高数据的查询效率,当然,物极必反,如果因为索引好用而滥用,索引弄得比数据库表还要多,这样会造成MySQL数据库更新表数据时候的运行效率。总而言之,MySQL数据库在本次设计的使用上,是完全符合使用要求的。

2.2 IDEA简介

IDEA的诞生在Java集成开发工具行业正所谓平地起雷,瞬间震动了整个Java开发行业。真的是每个人用过的都说好。IDEA之所以相比于其他比如MyEclipse或者Eclipse之类的Java开发工具来讲比较好,原因首先在于设计方面。IDEA采用了所谓的人体工程学设计原理,让使用IDEA的人员用了就忘记不了。软件打开首先要设置主题,可以选择常规的白色或者暗色系列,长时间的白色或者长时间的暗色会让开发人员的眼睛疲劳加重,首先从这个细节就让程序开发人员备受青睐,让程序员看着舒服;然后再对一些常用性插件进行归类,让程序的开发注重于提升生产效率,而不是一味的让开发者找各种插件,有时候插件之间的版本还会存在不兼容,IDEA就把兼容的插件双手呈现,如此贴心的IDEA怎么能让人不喜爱。所以选择IDEA用来开发本项目就理所当然的了。

2.3 Spring Boot框架

Spring是一个很好的框架,但是发展到现在,在使用上面已经诟病不断,需要配置的越来越多,配置大于开发,让程序员用更多的精力去配置Spring,有点本末倒置了。Spring Boot框架是为了解决Spring框架的缺点而生,Spring框架好用是好用,但是配置起来相当的繁琐,Spring Boot则让简化了很多配置过程,让开发变得更有趣也更有效率,并且学过Spring框架的开发人员很容易理解Spring Boot框架,没有用过框架的人员学习Spring Boot框架的速度也很快的,Spring Boot得到了Java开发者的一致好评。

2.4 Vue框架

Vue框架的开发者是一个中国人,区别于其他框架的最核心的概念就是渐进式框架,Vue的出现,让网页前端的开发变成了一种纯前端职业,不需要在考虑后台数据类型以及业务逻辑,只需要进行数据绑定即可,大大的减少了前端开发工程师的学习难度。Vue是当前世界上最火的一种前段框架,学习成本比较低,只需要熟悉最基本的网页知识就可以理解相关知识,并且有很好的免费教程进行学习,有各个国家语言的教程,尤其是因为是中国人开发的框架,让中国的高级程序开发人员做了汉语教程。Vue框架发展之初就是高于IE8版本的,所以说只要是当前的主流浏览器都支持Vue框架,如果是很旧的那种电脑是不支持的,必须安装支持HTML5的浏览器才可以访问用Vue发布的站点。

3 系统分析

对于农产品直卖平台开发设计到的流程有,分析系统的功能,设计系统的结构,设计数据库,编码以及测试,其中,在系统分析中,所做的工作包括功能的确定,性能的分析等。

3.1 可行性研究

农产品直卖平台开发实现分析需要从不同的角度来进行分析可行性,比如从时间角度,经济角度,甚至操作角度。从不同的角度分析可行性会让农产品直卖平台开发具体化,进而达到辩证开发的正确性。

3.1.1 经济可行性

从经济方面分析是第一要素,没有经济的支持,任何项目都如水中捞月,无法实现。实现农产品直卖平台,开发过程不需要额外的经济条件,用本人现有的计算机就可以实现,这方面不需要额外的支出。

3.1.2 时间可行性

农产品直卖平台设计主要作为毕业设计,在题目确定之后,答辩之前使用的项目,对不同的开发进度上面都有时间的要求,总不至于答辩完成后才能实现功能,这个肯定不行,所以从时间上来分析项目的工作量,发现是可行的,符合正常开发时间。

3.1.3 操作可行性

操作必须符合正常人的思维模式,市面上有很多符合要求的程序正在使用中,可以借鉴其他程序的操作流程,变成符合本设计的操作流程,在操作上面进行无缝衔接,让使用者操作过程中不会感到迷茫。

从上面的角度来分析,后续工作可以继续进展。

3.2 系统性能分析

性能分析是软件开发过程中必不可少的一个环节,主要是为了降低软件在使用的过程中的容错率。通常来讲,分析软件系统的性能一般从以下几个方面进行分析。

3.2.1 系统的安全性

系统开发出来就是让正常使用的,那么在如今的互联网时代,首先考虑的就是安全性的问题。如果系统的安全性不够,那么使用价值就会降低。如果出现使用过程中丢失数据,那么用户就不再信赖,所以系统的安全性是第一要位,只有安全性存在了,才能考虑使用的问题,总不至于今天用户注册,明天用户账号泄露,这些都是不友好的。所以账号一般在数据库里存储会通过MD5进行加密,这样关键数据加密可以保证系统的安全性。

3.2.2 系统的易用性

安全性分析处理完毕,才考虑易用性。一个软件设计得符合操作规范,符合正常人类的理解逻辑,那么在使用上面就会很舒服,如果违背了这条原则,安全性再高的软件也是设计失败的,毕竟软件开发出来就是让人使用的,这一点尤为重要。

3.2.3 系统的健壮性

系统设计易用不代表没有规则,那么系统设计使用方面必须健壮,必须符合软件处理逻辑。比如设计一个价格类的输入框,用户需要输入价格,那么可以设定输入框最多两位小数的纯数字输入,如果用户不小心输入了其他字符,那么就会友好的提示让用户修改正确,只有输入符合规范的数据,才能进行提交,并且存储到数据库里。系统的健壮性就是这样,越是规范,越是健壮,有助于用户理解,还有助于程序使用。

3.3 系统流程分析

系统设计不是胡乱的设计,必须符合软件设计思想,具体的流程参考下图。系统设计的前期就是做各种分析,功能的设计,数据库的设计等,等一切都设计好了,逻辑上没有问题,符合设计流程和设计规范,才可以继续编码环节,编码只是实现设计的一个环节而已。

图3.1系统开发流程图

用户是一切应用的基础,只要牵扯到用户,那么肯定需要用户进行注册,只有这样才能让注册的用户进行使用。如果用户没有注册,只能算是游客,那么只能访问一些大众用户可以浏览的信息,如果需要用户操作的部分是不允许访问的,这样能极大的保证用户的权利。用户注册流程用下面的图来表示,主要是先判断用户名,只有用户名能用了才可以进行后面的信息注册。

图3.2 注册流程图

当需要用户登录的时候,肯定是要验证的,只有验证通过的用户才可以进行下一步操作,用户登录成功代表着用户模块的功能对登录用户进行了开放。流程就是如下面的图所示。

图3.3 登录流程图

3.4 系统功能分析

在对设计的总体要求理解了之后,就要把要求给具体化,也就是功能化,要尽量的把每个功能模块和模块之前的关系理清楚,必须符合正常人的行为逻辑才可以,并且尽量研究同类型的项目,这样能避免走弯路,最终才能得到设计的具体功能。

农产品直卖平台把操作该系统的用户群分为三类,即管理员,商家,用户。

管理员对于农产品直卖平台操作的功能包括管理农产品基本信息,管理农产品的相关评价信息,以及管理农产品的订单信息,管理商家信用信息以及商家信息,管理用户和公告等。其用例图如图3.4所示:

图3.4 管理员用例图

商家对于农产品直卖平台操作的功能包括管理农产品基本信息,农产品库存信息,查看农产品评价内容,对评价农产品的用户进行回复,管理农产品销售订单,查看公告内容等。其用例图如图3.5所示:

图3.5 商家用例图

用户对于农产品直卖平台操作的功能包括在前台购买农产品,管理收货地址,管理购买的农产品信息,查看商家,通过购物车对需要购买的农产品进行统一下单等。其用例图如图3.6所示:

图3.6 用户用例图

4 系统设计

系统在设计的过程中,必然要遵循一定的原则才可以,胡乱设计是不可取的。首先用户在使用过程中,能够直观感受到功能操作的便利性,符合正常思维逻辑的操作,这才是系统好用的一个开端,给使用者第一印象就是这个系统设计的相当不错。

4.1 系统设计原则

系统遵循设计原则进行开发,会有很多可以预料到的好处,只要遵循了设计原则,那么开发出来的系统必然是有质量保证的。

首先第一条原则就是安全性原则:程序必须设定角色管理,不同的角色有不同的功能模块,不同的角色登录都需要输入相对应的账号和密码,否则不允许进行操作相对应的权限。每个用户登录只能修改自己的密码,不需要对别的账号进行密码或者其他资料的修改,否则就违背了安全性原则的设定。

其次第二条原则就是易用性原则:符合安全性只是功能的符合,不代表操作就符合,所以要设定易用性原则。易用性原则就是规定程序符合操作流程,正常人的思维定向为基础,在不违背程序运行逻辑定义的情况下,必须使用简单,操作规范,让每个用户使用起来都能看到页面,就能感知功能模块的作用,短时间的就能使用程序,达到易用效果。

再次第三条原则就是实用性原则:实用性代表着花里胡哨的功能必须抛弃,尽量符合数据处理的简洁性,不仅需要这样进行设定,还需要有预知性,系统后期可能会出现的功能模块尽量要解耦,与程序设定要模块化体现,这样才能达到扩展性。

第四条原则就是准确性原则:准确性原则的唯一定义就是准确,包含数据输入格式的准确,数据处理的准确,以及数据存储的准确。程序里面关于数据准确才有存在的意义,如果一堆不相干的数据存在是没有任何用处的,甚至会产生各种问题,所以必须要保证数据的准确性。

第五条原则是易维护原则:易维护代表着程序运行必须是可控的状态,如果不可控出现各种问题,那么所有的工作都是空谈。程序开发中对于各种程序判定异常,必须有统一的处理模式,异常是程序开发中不可避免的,但是可以对出现的异常进行抛出,有助于程序异常处理的复盘,只要每个异常都能定位准确,那么代表程序设计是趋于完美的,维护起来会更加的方便,只要有助于程序维护的都必须给予支持。

4.2 功能模块设计

对管理员具体功能的设计结果将以图4.1所示的管理员功能结构图来进行体现。管理员对于农产品直卖平台操作的功能包括管理农产品基本信息,管理农产品的相关评价信息,以及管理农产品的订单信息,管理商家信用信息以及商家信息,管理用户和公告等。

图4.1 管理员功能结构图

对商家具体功能的设计结果将以图4.2所示的商家功能结构图来进行体现。商家对于农产品直卖平台操作的功能包括管理农产品基本信息,农产品库存信息,查看农产品评价内容,对评价农产品的用户进行回复,管理农产品销售订单,查看公告内容等。

图4.2 商家功能结构图

对用户具体功能的设计结果将以图4.3所示的用户功能结构图来进行体现。用户对于农产品直卖平台操作的功能包括在前台购买农产品,管理收货地址,管理购买的农产品信息,查看商家,通过购物车对需要购买的农产品进行统一下单等。

图4.3 用户功能结构图

4.3 数据库设计

用户通过系统的功能操作来进行数据交互,包括数据的添加,数据的更新,数据的删除,数据的查询等基本功能操作,表面上虽然是操作系统界面提供的功能,但是实际上系统的这些数据是在数据库当中进行访问与操作的。目前市场上可供选择的存储数据的数据库有很多,除了简单版的Access之外,还有SQL Server,DB2,Informix,MySQL等关系型数据库可供选择,由于关系型数据库具有固定的表结构,以及对数据一致性要求比较强,所以相比没有固定表结构以及具有灵活的数据格式的非关系型数据库而言,在程序配套数据库的选择中,关系型数据库的使用率更高。本系统选择MySQL来存放数据,其相关理论以及技术在经过了很长时间的发展之后,变得非常成熟,各大网络平台都公开分享其开发源码,而且其对计算机的配置要求很低,不需要过多内存进行安装,很符合本系统对于数据库的选择要求。

4.3.1 数据库E-R图

本节需要对系统中存放在数据库中的数据进行充分分析,对数据的实体,实体特征,联系等进行确定,然后通过概念模型的表示方法即E-R图进行表达,在E-R图绘制工具中,选择椭圆,菱形框,矩形等形状表达实体属性,实体间联系,实体这些信息,使用实线段将这些形状进行连接即可。初步完成E-R图之后,需要进行检查,及时进行有误数据的更改,删除实体间存在的冗余联系,删除E-R图中冗余的数据,最终要展示一个内容准确的E-R图。

(1)农产品包括的属性有农产品照片,农产品库存,农产品原价等。其属性图如下。

图4.4 农产品实体属性图

(2)农产品订单包括的属性有购买数量,订单类型,支付类型等。其属性图如下。

图4.5 农产品订单实体属性图

(3)商家包括的属性有商家名称,联系方式,邮箱等。其属性图如下。

图4.6 商家实体属性图

(4)用户包括的属性有用户头像,性别,电子邮箱等。其属性图如下。

图4.7 用户实体属性图

(5)设计的各实体间关系E-R图如下。

图4.8 实体间关系E-R图

4.3.2 数据库表结构

在指定的数据库里面对数据表进行创建命名,然后设计各个数据表的存储结构,需要对该数据库的操作非常熟悉,并且还需要学习并掌握一定的数据表设计方面的知识,比如数据命名,作为系统的开发人员,为了避免程序运行产生乱码现象以及为了确保系统的正常运行,在对数据表进行命名时,一般都是采用英文名称,同时在对数据表的字段进行编辑时,也是采用英文的方式进行,为了方便今后对数据表的设计内容进行更改或查看,对一些比较重要的字段都会进行中文备注,或者是使用中文进行字段描述。设计期间,也需要对各个字段选择合适的数据类型以及设置匹配的取值范围,当一张数据表设计完成之后,还要对该表的主键进行标注,就是为了确保该数据表的唯一性与独立性。

表4.1 收货地址表

字段注释类型
id (主键)主键int(20)
yonghu_id创建用户int(20)
address_name收货人varchar(200)
address_phone电话varchar(200)
address_dizhi地址varchar(200)
isdefault_types是否默认地址int(11)
insert_time添加时间timestamp
update_time修改时间timestamp
create_time创建时间timestamp

表4.2 购物车表

字段注释类型
id (主键)主键int(11)
yonghu_id所属用户int(11)
nongchanpin_id农产品int(11)
buy_number购买数量int(11)
create_time添加时间timestamp
update_time更新时间timestamp
insert_time创建时间timestamp

表4.3 公告信息表

字段注释类型
id (主键)主键int(11)
gonggao_name公告名称varchar(200)
gonggao_photo公告图片varchar(200)
gonggao_types公告类型int(11)
insert_time公告发布时间timestamp
gonggao_content公告详情text
create_time创建时间timestamp

表4.4 农产品表

字段注释类型
id (主键)主键int(11)
shangjia_id商家int(11)
nongchanpin_name农产品名称varchar(200)
nongchanpin_photo农产品照片varchar(200)
nongchanpin_types农产品类型int(11)
nongchanpin_kucun_number农产品库存int(11)
nongchanpin_old_money农产品原价decimal(10,2)
nongchanpin_new_money现价decimal(10,2)
nongchanpin_clicknum点击次数int(11)
nongchanpin_content农产品介绍text
shangxia_types是否上架int(11)
nongchanpin_delete逻辑删除int(11)
create_time创建时间timestamp

表4.5 农产品收藏表

字段注释类型
id (主键)主键int(11)
nongchanpin_id农产品int(11)
yonghu_id用户int(11)
nongchanpin_collection_types类型int(11)
insert_time收藏时间timestamp
create_time创建时间timestamp

表4.6 农产品评价表

字段注释类型
id (主键)主键int(11)
nongchanpin_id农产品int(11)
yonghu_id用户int(11)
nongchanpin_commentback_text评价内容text
insert_time评价时间timestamp
reply_text回复内容text
update_time回复时间timestamp
create_time创建时间timestamp

表4.7 农产品订单表

字段注释类型
id (主键)主键int(11)
nongchanpin_order_uuid_number订单号varchar(200)
address_id收获地址int(11)
nongchanpin_id农产品int(11)
yonghu_id用户int(11)
buy_number购买数量int(11)
nongchanpin_order_true_price实付价格decimal(10,2)
nongchanpin_order_courier_name快递公司varchar(200)
nongchanpin_order_courier_number订单快递单号varchar(200)
nongchanpin_order_types订单类型int(11)
nongchanpin_order_payment_types支付类型int(11)
insert_time订单创建时间timestamp
create_time创建时间timestamp

表4.8 商家表

字段注释类型
id (主键)主键int(11)
username账户varchar(200)
password密码varchar(200)
shangjia_name商家名称varchar(200)
shangjia_phone联系方式varchar(200)
shangjia_email邮箱varchar(200)
shangjia_photo营业执照展示varchar(200)
shangjia_xingji_types商家信用类型int(11)
new_money现有余额decimal(10,2)
shangjia_content商家介绍text
shangjia_delete逻辑删除int(11)
create_time创建时间timestamp

表4.9 管理员表

字段注释类型
id (主键)主键bigint(20)
username用户名varchar(100)
password密码varchar(100)
role角色varchar(100)
addtime新增时间timestamp

表4.10 用户表

字段注释类型
id (主键)主键int(11)
username账户varchar(200)
password密码varchar(200)
yonghu_name用户姓名varchar(200)
yonghu_phone用户手机号varchar(200)
yonghu_id_number用户身份证号varchar(200)
yonghu_photo用户头像varchar(200)
sex_types性别int(11)
yonghu_email电子邮箱varchar(200)
new_money余额decimal(10,2)
create_time创建时间timestamp

5 系统实现

下面主要是通过功能实现界面截图的形式,并且运用文字来描述功能实现界面的内容。

5.1 管理员功能实现

5.1.1 商家管理

该功能主要用于实现对商家基本信息的管理,商家管理界面的运行效果见图5.1。在此界面,管理员根据商家名称查询商家,可以修改,删除商家资料。商家资料包括商家名称,联系方式,商家信用类型,营业执照等信息。

图5.1 商家管理界面

5.1.2 公告信息管理

该功能主要用于实现对公告信息基本信息的管理,公告信息管理界面的运行效果见图5.2。在此界面,管理员不仅需要新增公告内容,还需要对以前发布的公告信息进行维护,主要包括对有错误信息的公告内容进行修改以及删除需要删除的公告等。

图5.2 公告信息管理界面

5.1.3 商家信用管理

该功能主要用于实现对商家信用基本信息的管理,商家信用管理界面的运行效果见图5.3。在此界面,管理员新增商家信用类型名称,以及对登记错误的商家信用类型名称进行更改,对于需要删除的商家信用信息,也能使用删除功能直接删除。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图5.3 商家信用管理界面

5.2 商家功能实现

5.2.1 农产品管理

该功能主要用于实现对农产品基本信息的管理,农产品管理界面的运行效果见图5.4。在此界面,商家对农产品的照片进行上传,登记农产品的原价,现价,登记农产品名称以及农产品库存信息等,对于农产品的基础信息,商家可以修改,删除,对于农产品的库存信息,商家可以增加库存,可以减少农产品库存等。如果商家不需要再销售某种农产品,商家则可以下架农产品。

图5.4 农产品管理界面

5.2.2 农产品评价管理

该功能主要用于实现对农产品评价基本信息的管理,农产品评价管理界面的运行效果见图5.5。在此界面,商家回复评价农产品的用户,查看用户评价农产品的内容。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图5.5 农产品评价管理界面

5.2.3 农产品订单管理

该功能主要用于实现对农产品订单基本信息的管理,农产品订单管理界面的运行效果见图5.6。在此界面,商家可以根据农产品名称,农产品类型以及用户姓名等条件来实现对农产品订单的查询操作,同时可以查看农产品订单详情。

图5.6 农产品订单管理界面

5.3 用户功能实现

5.3.1 农产品信息

农产品信息界面的运行效果见图5.7。在此界面,用户可以查看农产品原价以及现价信息,查看农产品所属商家信息,用户可以查看农产品信息界面下方展示的农产品评论信息,当用户决定购买农产品时,可以直接通过购买功能快速下单。

图5.7 农产品信息界面

5.3.2 确认下单

确认下单界面的运行效果见图5.8。在此界面,用户检查收货地址信息是否正确,检查购买的农产品的信息是否正确,查看总价以及实际支付价格,最后支付。

图5.8 确认下单界面

5.3.3 农产品订单

农产品订单界面的运行效果见图5.9。在此界面,用户查看所有的农产品订单信息,包括已评价,已发货等农产品订单信息,用户根据个人需要对农产品订单进行相应操作。

图5.9 农产品订单界面

5.3.4 购物车

购物车界面的运行效果见图5.10。在此界面,用户可以把需要购买的农产品都放入购物车保存,然后统一下单支付购买的农产品,这样既方便又节省时间。

图5.10 购物车界面

6 系统测试

下面主要描述系统测试。系统测试属于软件开发中后期的环节,是在软件编码完成过程中或者开发完毕后才可以进行的环节。系统测试主要是用大量数据进行检验程序开发是否正确,还能检验整个程序对于数据的承载能力,也可以检验整个程序与在数据的测试下,是否能准确的进行存储和查询,是否符合程序设计的预期。

6.1 功能测试

农产品直卖平台必须经过各种测试环节才可以得出测试结论,下面对系统功能的适用性、可操作性、安全性等进行检测。

表6.1 功能测试数据表

测试内容最终结果
对系统功能的适用性进行测试测试合格
对系统功能的准确性进行测试测试合格
对系统功能的依从性进行测试测试合格
对系统功能的可操作性进行测试测试合格
对系统功能的安全性进行测试测试合格

6.2 可用性测试

一般来说,对设计的要求要符合正常的逻辑功能,逻辑的合理是首要的,如果功能与逻辑之间发生冲突,那很有必要对功能进行梳理,最终呈现应用的可用性,可用性要对设计进行全方位的测试。

表6.2 可用性测试数据表

测试内容最终结果
对系统的操作逻辑进行测试测试合格
对系统的反馈提示是否出现错别字进行测试测试合格
对系统显示的各个数据项是否存在错误进行测试测试合格
对系统的功能布局进行测试测试合格
对系统是否提供帮助信息进行测试测试合格
对系统操作界面是否关闭正常进行测试测试合格
对系统是否支持键盘和鼠标进行测试测试合格
对系统是否具备功能友好性进行测试测试合格

6.3 测试结果分析

农产品直卖平台经过了单元测试,以及整体测试,并且也修复了测试过程中产生的问题,并且也进行了回归测试,保障了系统功能的正常,实现了系统设计的所需功能,并且在试运行过程中,也解决了一些故障问题,保证了系统的稳定性,本系统可以进行交付使用。

结 论

本课题主要是研究与实现农产品直卖平台,在经历了资料查找,技术选择,功能分析,模块设计,数据库设计,界面设计,功能编码,功能测试等阶段性工作之后,本人已如期完成了一个可供目标用户群使用的农产品直卖平台。

农产品直卖平台选用Java语言,搭配MySQL数据库进行设计与开发,相比于大部分相似系统而言,其具备的特点如下:

(1)农产品直卖平台的功能完全根据目标人群的使用需求进行分析设计与编码,也经过了开发流程中的最后测试环节,最终确定其功能基本得到实现,可以在生活中发挥其用于信息管理的作用。

(2)农产品直卖平台的界面设计很简单,具备简洁直观的特点,因为每个功能模块都有单独的界面展示,使用者点击不同的功能就会出现与之相应的界面,每个界面的颜色搭配比较统一,界面的布局也合理,界面上使用的各种图片都经过了Photoshop这样的图片处理工具进行了美化,所以使用者在浏览本系统的各个界面的时候,对本系统显示的各种信息能够一目了然。

(3)农产品直卖平台的使用与操作非常便利,因为本系统能够规避大部分用户的误操作现象,所以使用人群在使用期间能够在短时间内找到需要的功能并操作,这样可以节省操作时间,并且本系统在操作的流程上也进行了优化,去掉了一些比较繁琐的操作步骤,同时本系统在各个界面上也把一些常用的功能放在了比较显眼的区域,也大大方便了使用者对于农产品直卖平台功能的操作。

由于本人在系统开发经验上的不足,农产品直卖平台也存在一些缺陷,具体如下:

(1)对于数据的存储上面,设计的数据表存在不合理之处,对于同一数据在多张表中都有记录,造成了存储空间的浪费以及系统响应时间的延迟。

(2)对于系统编码上面,有很多代码并没有进行注释,这个对于开发人员来讲,在进行系统的后续升级与维护上会消耗很多时间,提升了对系统升级与维护的难度,还有就是,很多代码使用的函数都是相同的函数,这个函数在各个代码文件中都重新进行了编写,没有单独独立出来进行调用,让该系统变得臃肿,同时也消耗了很多存储空间。

所以在今后,也需要本人花费很多时间来对农产品直卖平台进行完善,对于上面提到的数据库中的数据冗余问题,打算学习数据库连接池方面的技术来改善数据冗余的现象,对于编码文件占用存储空间过多的问题,打算使用函数的调用功能,把相同函数写在一个编码文件上让其他需要使用该函数的编码文件进行函数调用,以此节省存储空间,让系统变得更加轻盈。

参考文献

[1]何沛.基于Android平台的当地农产品销售网站设计[J].山西农经,2018,(10):126.

[2]马冉婷.湘西农产品销售电子商务平台研究[D].中南林业科技大学,2016.

[3]刘建臣.处理MySQL访问异常故障[J].网络安全和信息化,2019(12):160-161.

[4]杨雨成,任利峰.MySQL数据库性能优化技术研究[J].科技经济导刊,2020,28(03):32.

[5]段震.浅谈MySQL数据库有关数据备份的几种方法[J].山西电子技术,2020(02):17-18.

[6]秦川.MySQL数据库的数据隐私及安全机制研究[J].电子测试,2020(10):86-87.

[7]官亚芬.计算机软件开发中JAVA编程语言及其实际应用[J].中国新通信,2020,22(04):98-99.

[8]刘翠霞.Java数据库连接池的原理与应用[J].无线互联科技,2020,17(04):167-168.

[9]王洋.JAVA编程技术在计算机软件开发中的优势与应用[J].信息记录材料,2020,21(03):106.

[10]张峰.应用SpringBoot改变web应用开发模式[J].科技创新与应用,2017(23):193-194.

[11]吕宇琛.SpringBoot框架在web应用开发中的探讨[J].科技创新导报,2018,15(08):168+173.

[12]蔡泽铭,王文华.基于Vue.js的信息管理系统前端架构[J].电子技术与软件工程,2020(18):142-144.

[13]仲崇文.关于计算机软件开发中常见问题的研究[J].通讯世界,2020,27(07):89-90.

[14]卫红春.信息系统分析与设计[M].北京:清华大学出版社,2015.

[15]Oscar Rodriguez-Prieto,Francisco Ortin,Donna O’Shea.Efficient runtime aspect weaving for Java applications[J].Information and Software Technology,2018,100.

[16]Raffi Khatchadourian.Automated refactoring of legacy Java software to enumerated types[J].Automated Software Engineering,2017,24(4).

致 谢

大学期间所学到的知识,在最后的项目制作时刻都得到了充分运用,也许,这就是学院检验各个学生对于所学知识的掌握情况的一种方式吧,当然,对于本次毕业项目的制作,除了运用书本上的理论知识外,还需要进行额外扩充,这就要求各个学生养成自学的习惯,另外,项目制作期间难免会遇到困难,这也是一个学习的机会,通过对困难的分析,然后向身边的同学,老师,导师等寻求帮助,或者通过上网查找解决办法来解决遇到的困难,这样也能提高学生对于问题分析与解决的能力,所以说设计制作毕业项目,一定要认真对待,这也是提升自己综合实力的一种方式。

对于本人设计的系统能够顺利提交,不仅仅是自己的努力,也是源于导师的耐心指导。所以,对于我的项目指导老师,我是十分感谢他的,在我因为功能需求而苦恼时,是导师给予我安慰,并鼓励我不要灰心,才让我平复心情,继续进行项目制作的工作。在我因为编码实现系统功能期间遇到的技术问题而不知所措时,也是导师为我能够解决编码的技术问题指明了方向。所以,我的指导老师对我如期完成的本项目付出了很多心血,我非常感激他。

还有一些人也值得我去感谢,其中就包括教授过我知识的所有老师,也许就是他们教授我们专业知识,让我们对本专业的知识进行一点点积累,才能在今天的毕设项目中进行运用,所以他们也是功不可没。

另外,我还需要感谢舍友,以及班上的同学,还有我的亲人,感谢舍友一路以来从选题,功能设计,功能实现等阶段性任务中提供的各种帮助,感谢班上的同学的一路陪伴,感谢亲人的理解与支持!

最后,我要感谢母校提供的各种学习场所,让我这四年能够安心学习知识,在这里,希望母校越来越好!

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

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

相关文章

C#构造函数

C#中的构造函数是一种特殊的方法,用于创建和初始化类的对象。构造函数的名称与类的名称相同,并且没有返回类型。 在C#中,构造函数有以下几种类型: 默认构造函数:如果在类中没有定义构造函数,系统将自动提供…

二、HarmonyOS 操作系统以及相关生态

前言 2019年8月9日,华为技术有限公司在华为开发者大会上正式发布了HarmonyOS 1.0,同时宣布该操作系统源代码开源。 2020年9月10日,HarmonyOs 2.0正式发布。与HarmonyOs 1.0版本相比,HarmonyOs 2.0在分布式软总线、分布式数据管理、…

Java数据结构-二叉树

文章目录 前言一、树型结构1.1概念1.2 知识点1.3 树的表示形式1.4 树的应用 二、二叉树2.1 概念2.2 两种特殊的二叉树2.3 二叉树的性质2.4 二叉树的存储2.5 二叉树的基本操作2.5.1 二叉树的遍历2.5.2 二叉树的基本操作 前言 对学习的二叉树的知识进行总结。 一、树型结构 1.1…

蓝桥杯--日期统计

目录 一、题目 二、解决代码 三、代码分析 ​四、另一种思路 五、关于set文章推荐 一、题目 二、解决代码 #include <bits/stdc.h> using namespace std; int main() {int arr[100] { 5,6,8,6,9,1,6,1,2,4,9,1,9,8,2,3,6,4,7,7,5,9,5,0,3,8,7,5,8,1,5,8,6,1,8,3,0,…

【大模型API调用初尝试二】星火认知大模型 百度千帆大模型

大模型API调用初尝试二 科大讯飞—星火认知大模型单轮会话调用多轮会话调用 百度—千帆大模型获取access_token单轮会话多轮会话 科大讯飞—星火认知大模型 星火认知大模型是科大讯飞开发的&#xff0c;直接使用可以点击星火认知大模型&#xff0c;要调用API的话在讯飞开发平台…

C#版开源免费的Bouncy Castle密码库

前言 今天大姚给大家分享一款C#版开源、免费的Bouncy Castle密码库&#xff1a;BouncyCastle。 项目介绍 BouncyCastle是一款C#版开源、免费的Bouncy Castle密码库&#xff0c;开发人员可以通过该项目在他们的 C# 应用程序中使用 Bouncy Castle 提供的各种密码学功能&#x…

虚幻4 | 制作游戏——学习记录(一)

1. 启动Epic后下载虚幻4&#xff0c;打开虚幻4后新建一个第三人称游戏项目&#xff0c;效果如下&#xff1a; &#xff08;1&#xff09;内容/ThirdPersonBP/Blueprints中的ThirdPersonCharacter&#xff08;左下角人物&#xff09; 这是模板中使用的主要蓝图类&#xff0c;它…

ABAP接口部分-C#调用RFC

目录 ABAP接口部分-C#调用RFC创建表结构创建RFC函数创建C#项目引用SAP .Net Connector包绘制窗口的控件最终布局代码 项目配置报错SAP.Middleware.Connector.RfcDestinationManager报错SAP.Middleware.Connector.RfcLoginexception报错SAP.Middleware.Connector.RfcInvalidStat…

集合实现类研究底层(部分):手撕ArrayList底层源码、手撕LinkedList底层源码、手写单向链表和双向链表

day26上 集合框架图 标绿已经学习底层&#xff0c;深入底层主要是研究实现类底层 继承关系图 手撕ArrayList底层源码 ps:研究添加元素的过程 思路&#xff1a; 1.研究继承关系 2.研究属性 3.理解创建集合的过程 – 构造方法的底层原理 4.研究添加元素的过程 提升&#xff1a…

BUGKU-WEB ezbypass

题目描述 题目截图如下&#xff1a; 进入场景看看&#xff1a; 解题思路 代码审计题目发现需要构造一个字符串&#xff0c;使得它不包含字母、数字、特殊字符的PHP代码片段&#xff0c;长度小于105&#xff0c;然后传递给$codepost提交参数&#xff0c;eval&#xff08;&…

数仓基础理论(一)

数据仓库概念 数据库 vs 数据仓库 从数据来源进行区分 数据库&#xff1a;企业中基础核心的业务数据 数据仓库&#xff1a;数据库中的数据 从数据存储进行区分 数据库&#xff1a;核心作用就是查找业务数据&#xff0c;基本上行式存储(带有索引)&#xff0c;基本上无法存…

大模型学习笔记六:Semantic Kernel

文章目录 一、Semantic Kernel介绍和发展1&#xff09;SK 的语言开发进展2&#xff09;SK的生态位3&#xff09;SK基础架构 二、环境搭建1&#xff09;初始化2&#xff09;Semantic Functions&#xff08;不用编写代码&#xff0c;用配置实现回调函数&#xff09;3&#xff09;…

js的异常处理

1、throw抛异常 throw抛出异常信息&#xff0c;程序也会终止执行&#xff1b; throw后面跟的是错误提示信息&#xff1b; new Error() 配个throw使用&#xff0c;能设置更详细的错误信息。 function counter(x,y) {if (!x || !y) {throw new Error(参数不能为空)}retu…

Kotlin 数据解析(Gson)

一、添加依赖 build.gradle.kts(:app) // gson数据解析implementation("com.google.code.gson:gson:2.8.6") 对象类&#xff1a; // 对象类 class Account {var uid:String "00001"var userName:String "Freeman"var password:String &quo…

k8s+wordpress+zabbix+elastic+filebeat+kibana服务搭建以及测试

一&#xff0c;环境&#xff1a;docker&#xff0c;k8s&#xff0c;zabbix&#xff0c;以及搭建worpdress&#xff0c;elasticsearch&#xff0c;filebeat&#xff0c;kibana 二&#xff0c;主机分配&#xff1a; 名称host详述个人博客3192.168.142.133 搭配mysql8.0.36的数据…

DVWA靶场-暴力破解

DVWA是一个适合新手锻炼的靶机&#xff0c;是由PHP/MySQL组成的 Web应用程序&#xff0c;帮助大家了解web应用的攻击手段 DVWA大致能分成以下几个模块&#xff0c;包含了OWASP Top 10大主流漏洞环境。 Brute Force——暴力破解 Command Injection——命令注入 CSRF——跨站请…

SublimeText4 安装

Sublime Text 可以编写html&#xff0c;css&#xff0c;js&#xff0c;php等等&#xff0c;是一个轻量、简洁、高效、跨平台的编辑器。 图1&#xff1a;SublimeText官网 Sublime Text具有漂亮的用户界面和强大的功能&#xff0c;例如代码缩略图&#xff0c;Python的插件&#…

Java的编程之旅41——字符流

目录 1.字符流的简介 2.字符的编码与解码 3.字符流读写操作 1.字符流写入 2.字符流复制文件 4.FileWriter&FileReader 5.缓冲区高效读写 6.序列化与反序列化 1.字符流的简介 在Java中&#xff0c;字符流是用于处理字符数据的输入输出流。它是以字符为单位进行处理&a…

读取txt文件并统计每行最长的单词以及长度

读取txt文件并统计每行最长的单词以及长度 题目 在 D:\\documant.txt 文本中,文件中有若干行英文文本,每行英文文本中有若干个单词&#xff0c;每个单词不会跨行出现每行至多包含100个字符,要求编写一个程序,处理文件,分析各行中的单词,找到每行中的最长单词&#xff0c;分别…

群晖docker安装sql server

安装步骤 开启群晖 SSH&#xff0c;通过 SSH 工具连接到群晖&#xff0c;运行下面的命令拉取mssql 2019 镜像 sudo docker pull mcr.microsoft.com/mssql/server:2019-latest然后在 docker 中就可以看到该镜像&#xff1a; 在群晖 docker 共享文件夹中创建 mssql2009 文件夹 …