基于微信小程序的助农系统的设计与实现

基于微信小程序的助农系统的设计与实现

2023年7月2日发(作者:)

本科毕业设计(论文)

基于微信小程序的助农系统的设计与实现

Design and implementation of agricultural

aid system based on wechat small program

院 (系) 计算机学院软件工程系

专 业

班 级

学 号

学生姓名

指导教师

提交日期

软件工程

台湾班

张玉封

马世登

2020年XX月XX日

毕业设计(论文)原创性声明

本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行的设计(研究)工作及取得的成果,论文中引用他人的文献、数据、图件、资料均已明确标注出,论文中的结论和结果为本人独立完成,不包含他人已经发表或撰写的作品及成果。对本文的研究作出贡献的个人和集体,均已在论文中作了明确的说明。本人完全意识到本声明的法律结果由本人承担。

毕业论文作者(签字):

签字日期:年 月日

指导教师评分:

评阅教师评分:

答辩小组评分:

总评成绩:

系主任签字(盖章):

月 日 内容摘要

本文主要研究基于微信小程序和TinkPHP 5框架设计与开发的助农系统。该系统是在互联网飞速发展和电商物流快速发展的背景下应运而生的,为解决农户销售农产品难和消费者购买绿色无害农场品难的问题而设计的。

对于助农系统的设计与开发,本系统的数据库采用 MySQL,前端使用微信小程序的 MINA 技术,后端使用 ThinkPHP 5技术,在前端与服务器数据库通信上采用REST API 接口获取 MySQL 数据,真正实现前端与后端分离开发,降低开发压力,提高维护效率。本系统采用面向对象的开发方法,高度模块化,业务清晰,对后期维护和二次开发十分友好。

本系统的用户角色分别是:正式用户和游客用户,系统主要功能模块有:用户信息管理、商品展示、商品分类、购物车、商品下单支付以及数据库设计管理。各个功能模块的开发相互独立,但又有相互联系。

在系统的开发周期当中,也进行了软件测试,包括黑盒测试和性能测试等等,并且系统功能都很好的通过测试,各用户能够根据实际使用进行操作系统。整个开发过程比较全面,体现了软件开发工程的完整性以及严谨性。

关键词:微信小程序、互联网农业、助农系统

Abstract

This paper focuses on the design and development of agricultural

aid system based on Wechat applet and Tinkphp5 framework. Under the

background of the rapid development of Internet and e-commerce

logistics, the system is designed to solve the problems of farmers

selling agricultural products and consumers buying green and harmless

farm products.

For the design and development of agricultural aid system, MySQL

is used as the database of the system, Mina technology of wechat small

program is used as the front-end, thinkph5 technology is used as the

back-end, and rest API interface is used to obtain MySQL data on the

communication between the front-end and server database, so as to

realize the separation of front-end and back-end development, reduce

development pressure and improve maintenance efficiency. The system

adopts object-oriented development method, highly modularized, clear

business, and is very friendly to later maintenance and secondary

development.

The user roles of the system are: formal user and tourist user.

The main function modules of the system are: user information

management, commodity display, commodity classification, shopping cart,

commodity order payment and database design management. The development

of each functional module is independent but interrelated.

In the development cycle of the system, software testing is also

carried out, including black box testing and performance testing, and

the system functions are well tested, and users can operate the system

according to the actual use. The whole development process is

relatively comprehensive, reflecting the integrity and preciseness of

software development engineering.

Key words: wechat applet, Internet agriculture, agricultural aid system

目录

第一章

绪论 ..................................................................................................................................1

1.1

课题背景与研究现状 ......................................................................................................1

1.2

项目研究目的与意义 ......................................................................................................1

1.3

项目主要研究工作 ..........................................................................................................2

第二章

系统相关技术与开发环境 ........................................................................................3

2.1 ThinkPHP 5框架 .........................................................................................................3

2.2 MySQL数据库 ................................................................................................................3

2.3 Restful API .................................................................................................................3

2.4 微信小程序 ....................................................................................................................3

2.5 微信支付技术 ...............................................................................................................4

第三章

系统需求分析与设计 ..................................................................................................5

3.1 系统业务流程分析 ......................................................................................................5

3.2 系统总功能需求分析 ..................................................................................................6

3.3 详细功能需求分析 ......................................................................................................7

3.3.1 用户信息管理 ......................................................................................................7

3.3.2 商品展示 ...............................................................................................................9

3.3.3 商品分类 .............................................................................................................10

3.3.4 购物车 ..................................................................................................................11

3.3.5 商品下单支付 ....................................................................................................12

3.4 系统数据库设计 ........................................................................................................13

3.4.1 数据库相关配置 ...............................................................................................13

3.4.2 数据库E-R图设计 ...........................................................................................14

3.4.3 数据库逻辑表设计 ...........................................................................................17

3.5 系统可行性分析 ........................................................................................................20

第四章

系统功能设计与实现 ...............................................................................................21

4.1 用户信息管理的设计与实现 .................................................................................21

4.1.1 用户信息管理 ....................................................................................................21

4.1.2 用户订单管理 ....................................................................................................22

4.2 商品展示的设计与实现 ...........................................................................................23

4.2.1 广告商品展示 ....................................................................................................23

4.2.2 精选主题展示 ....................................................................................................24

4.2.3 最近新品展示 ....................................................................................................26

4.3 商品分类的设计与实现 ...........................................................................................27

4.3.1 商品分类模块 ....................................................................................................27

4.3.2 商品详情模块 ....................................................................................................28

4.4 购物车功能的设计实现 ...........................................................................................29

4.5 商品下单支付的设计与实现 .................................................................................32

第五章

系统测试 ......................................................................................................................33

5.1 测试说明 ......................................................................................................................33

5.2 测试环境 ......................................................................................................................33

5.3 功能测试 ......................................................................................................................33

第六章

总结 ...............................................................................................................................35

参考文献 ......................................................................................................................................36

致谢 ...............................................................................................................................................37

第一章 绪论

助农系统是基于微信小程序、ThinkPHP5、MySQL数据库等多种技术联合开发的系统,它是电商与小程序相结合的产物,用户通过扫微信小程序二维码获取本系统,用户便可在系统上购买绿色无害的农场品。这种互联+农业的模式既方便用户购买绿色农产品,也给农户增加了一种销售自家绿色农产品的途径,可谓是互利共赢。

1.1 课题背景与研究现状

随着当今社会的不断发展,人们生活水平的提高,人们对吃的有了新追求,以前只追求温饱,现在追求健康、绿色。由于人们不断追求更高的经济效益,在农业生产上泛滥使用农药化肥,人们已经很难购买到真正的绿色无害的有机农产品。与此同时,在每年收获季节,总能在网上看到许多地方的农产品滞销的新闻,果子全烂在田地里,无人问津,农户损失惨重,严重打击了农户的生成积极性,从而导致地方经济发展缓慢。

不过随着互联网的快速发展,互联网的加入,给农产品市场增添新活力。其中近年来一种火热的新模式就是微信小程序了,微信小程序其他模式所无法相比的先天优势,它借用微信公众平台的优势,微信用户数量众多,市场需求广阔。同时微信小程序又可以说是简洁版的原生态APP,可以实现原生APP大部分功能。用户可以在微信小程序上购买到健康无害的农产品,农户也可在上面销售自家的农产品,双方互利共赢,拉动经济的增长。

1.2 项目研究目的与意义

为了顺应国家大力推广精准扶贫的号召,同时解决用户购买难和农户销售难的难题,助农系统的开发设计将充分考虑各地特色农产品以及当地经济环境,从实际情况出发,借用当下最为火热平台之一的微信公众平台,把农业与互联网联系起来,使用微信Web开发者工具开发一款基于微信小程序的助农系统,该系统不需要下载,只需扫取小程序二维码即可获得使用。

助农系统通过微信小程序整理出各地区特色农产品信息服务用户,不仅给各地农民的特色农产品提供了一个开放、优质的平台,还为企业产品宣传推广需求提供了一种新途径。这种互联网+农业的模式可以有效解决农村市场信息闭塞、地域分散、物流成本高的难题,而助农系统就是利用微信小程序进行开发设计,目的是利用互联网平台把各地特色农产品销往各地,减少商业流通的中间环节,缩短营销周期,降低经营成本。实际解决了各地农户销售农产品难的1 问题,提高了农民的收入,带动了当地经济发展,改善了各地区农民的生活状况。

1.3 项目主要研究工作

本项目研究的助农系统主要是由三部分组成:小程序客户端、后台服务器和数据库管理。本文的工作就是设计与实现三者的交互,具体工作是实现六大模块:商品展示、商品分类、购物车、商品下单支付、用户信息管理和数据库。

本项目最终实现用户通过扫微信小程序二维码获取助农系统小程序,用户在小程序上浏览商品、把商品添加到购物车、对商品进行下单支付结算、在用户信息管理页面上进行账号信息和收货地址的修改,查看订单信息等功能。

2 第二章 系统相关技术与开发环境

2.1 ThinkPHP 5框架

ThinkPHP,一个开源的、面向对象的轻量级PHP开发框架, 它简洁实用,易用性强、拓展性广、效率高和代码简洁。它采用表现层、业务层和数据层三层架构模式,其中表现层支持模板引用,可使用标签定义简化该层的定义;业务层是ThinkPHP的核心层,各种业务的接口层;数据层支持多种数据库的使用。

本系统采用的ThinkPHP 框架是5.0 版本的,它是一个重构版本,不仅优化了核心和对API的开发,重构了路由、异常、模型、数据库和验证等模块,还去除冗余的依赖,引入了新PHP特性。

2.2 MySQL数据库

MySQL,具有体积小,易使用,易维护,安装及维护成本低,速度快、性能快捷多用户支持、可移植性强、支持多种操作系统等特点。而且 MySQL 属于开源产品,无版权制约,自主性强、使用成本低。

MySQL 数据库采用的是客户/服务器结构,其中服务器部分是运行在数据库服务器上,主要负责处理客户端的服务请求,返回请求结果给用户;客户端部分主要负责连接数据库服务器,返回信息给服务器。

MySQL 结构大致分为三层:顶层是C/S 网络服务层,主要负责连接处理、授权认证、安全等;中间层是核心服务功能层,主要负责查询解析、分析、优化、缓存和内置函数等;底层是存储层,主要负责数据的存储和提取。

2.3 Restful API

REST描述一个架构样式的网络系统,是一种Web服务交互模式。简单来说,它就是一种设计API的模式,常用的数据格式是JSON,而以JSON格式编写的REST

API具有简单、易读、易用的特点。用API封装微信小程序的全部功能,通过API操作数据,可以实现前后端的代码分离,使得后端代码易于测试,前端代码编写更简单。

Restful是一种基于HTTP的网络应用程序的设计风格和开发方式,它是通过URI实现对资源的管理及访问,具有扩展性强、结构清晰的特点。

2.4 微信小程序

微信小程序是轻量级服务,主要体现在用户获取小程序简便,扫码即可获取、3 同时小程序的文件占用内存空间小,反应速度快。小程序还可以实现原生 APP

的基本功能。

微信小程序MINA 框架,简单来说就是一组开发微信小程序的工具,它可以让开发者快捷简单、高效方便的使用微信开发工具开发项目。它不仅有自己的视图层语言和逻辑层框架,还在视图层与逻辑层间提供了数据传输和事件系统。

MINA的核心是一个响应的数据绑定系统,它的数据与视图保持同步非常简单,当做数据修改时,只需在逻辑层修改数据,视图层就会做相应的更新。

2.5 微信支付技术

助农系统的微信支付技术是采用最常规的普通模式,开发者先申请自己的

appid 和mch_id,然后在微信公众号微信支付模块中申请微信支付功能。

小程序助农系统的微信支付在开发过程中调用了一个微信支付功能的SDK,SDK主要有五个文件:(接口文件)、(配置文件)、(参数对象)、(错误异常)、(回调通知)。

4 第三章 系统需求分析与设计

3.1 系统业务流程分析

助农系统主要的工作是小程序客户端、数据库和服务器的开发设计。在小程序客户端上,用户可以浏览商品、搜索分类商品、向购物车添加商品,管理购物车,下单支付和管理个人信息等操作。在数据库上,合理分析实体之间的关系,在此基础上设计出数据表,让数据表与数据表之间有可靠的关联关系。

具体的业务流程图如下图3-1所示:

图3-1 助农系统客户端业务流程图

5

结算购物车否是否结束购物是下单管理购物车确认订单信息添加购物车是否结算否否浏览商品获取用户微信信息是是否首次打开微信付款取消支付打开小程序生成历史订单信息开始结束是是是否客户本人创建客户否 如上图3.1所示,首先用户扫码获取小程序,接着进行是否获取个人信息操作,或直接跳过进入商品浏览。用户既可以随意浏览商品,也可以直接浏览分类商品,如果碰到自己喜欢的商品想购买时,可以把该商品添加到购物车,接着到购物车页面进行下单结算购买。在结算商品时,若还未获取个人信息登录的用户,则需进行获取微信个人信息操作,并且还需要完善个人信息。上述操作全成功完成后,用户可以进行下单,对订单进行成功支付结算后,系统会自动生成相应的历史订单信息。

3.2 系统总功能需求分析

与原生APP相比,小程序开发设计的三大原则:功能更单一,设计更简洁,使用场景更明确。本系统的定位是为了方便农户销售自家农产品,消费者能在该系统平台上购买到绿色健康的农产品,并且是易传播、易使用的线上购物渠道,基于该定位,本系统应结合当地的特色农产品为消费者提供明确的购物服务,减少与购物无关的功能模块的设计开发,为消费者提供更舒适的使用体验。

综合以上分析,可以得出小程序助农系统的总功能模块结构图,如图 3-2所示:

用户登录小程序助农系统

取用

户地

址信息用户基本信息用户信息管理浏览商品信息商品购下单物分类车支付获取用户微信信息

用户信息管理用户订单管理广告商品专题商品最近新品专题商品详情商品详细信息商品分类商品分类概述商品详细信息向购物车添加商品购物车商品展示购物车商品管理生成预订单生成订单订单管理结算支付订单信息

图3-2 助农系统客户端总功能模块结构图

从图3-2总功能模块图中可以看出本系统的主要功能模块,分别是用户查6 看商品功能,用户搜索分类商品,购物车功能,管理用户信息功能和微信支付功能五个功能模块。

3.3 详细功能需求分析

助农系统的使用者可分为游客用户和正式用户,其中同意微信授权的用户为正式用户,否则就是游客用户,游客用户是不能使用客户端的一些功能的。

助农系统小程序用户的系统总功能用例图,如下图3-3所示:

搜索分类商品获取小程序浏览商品查看购物车

管理购物车

管理个人信息

正式用户生成订单游客用户管理订单

微信支付

图3-3 助农系统小程序用户的系统总功能用例图

3.3.1 用户信息管理

用户可以在用户信息管理页面上查看和管理个人信息。该页面主要分为查看和管理个人信息、地址信息以及查看和管理订单信息。

助农系统小程序的用户信息管理用例图,如下图3-4所示:

7 查看个人信息头像修改个人信息昵称查看收货信息收货人联系电话正式用户、游客用户修改收货信息家庭地址查看历史订单删除历史订单查看订单详情管理订单状态

图3-4 助农系统小程序的用户信息管理用例图

用户信息管理的功能用例需求分析如下:

用例名称

参与者

前置条件

主事件流

用户信息管理

正式用户、游客用户

用户扫微信小程序二维码获取到小程序,进入到小程序客户端

1.用户点击导航栏“我的”按钮跳转到用户信息管理页面

2.用户点击“头像”可以进行用户头像和昵称修改

3.用户点击“用户地址”跳转到用户地址管理页面,用户可以修改个人信息(如姓名、电话、地址等)

4.正式用户点击“我的订单”跳转订单管理页面,用户可以查看或删除订单,或点击某一订单,直接进入该订单详情页。

其他事件流 1.用户修改头像或昵称不合法,系统给出相应错误提示

2.用户填写个人信息不合法,系统给出相应错误提示

后置条件

特殊需求

系统成功把修改过后的信息添加到数据库中

8 3.3.2 商品展示

用户只要扫小程序二维码进入到助农系统小程序,无论是正式用户还是游客用户,都可以在客户端上的浏览各个页面。用户在 “首页”页面,可以浏览广告商品、专题商品和新品等。

小程序助农系统的商品展示用例图,如下图3-5所示:

浏览广告商品查看商品详情浏览专题商品详情页浏览专题商品查看商品详情正式用户、游客用户浏览最近新商品查看商品详情

图3-5 商品展示用例图

商品展示功能用例需求分析如下:

用例名称

参与者

前置条件

主事件流

商品展示

正式用户、游客用户

用户扫微信小程序二维码获取到小程序,进入到小程序客户端

1.用户浏览广告商品,点击广告商品图片,跳转到该商品详情页,用户可在该页面将商品添加到购物车。

2.用户浏览主题商品,点击主题商品图片,页面跳转到该主题商品类型详情页,再点击商品图片,页面跳转到该商品详情页,用户可在该页面将商品添加到购物车。

3.用户浏览最近新商品,点击最近新商品图片,跳转到该商品详情页,用户可在该页面将商品添加到购物车。

4.用户手动下拉,可获取最新的商品信息。

其他事件流 1.添加商品到购物车,系统自动检测库存量,若库存不足,系统会给出相应提示信息。

后置条件

特殊需求

9 3.3.3 商品分类

用户可在小程序客户端的 “分类”页面,进行某类商品浏览,这样的设计方便用户能快速找到自己所需的商品,在分类浏览商品中,也能对本系统所出售商品的范围和特点有一定的了解。该页面的设计主要是为了便于用户浏览商品分类信息、查看商品详细信息等。

小程序助农系统的商品分类用例图。如下图3-6所示:

查看商品分类选择分类同类商品显示正式用户、游客用户查看商品详情

图3-6 商品分类用例图

商品分类功能用例需求分析如下:

用例名称

参与者

前置条件

主事件流

商品分类

正式用户、游客用户

用户扫微信小程序二维码获取到小程序,进入到小程序客户端

1.用户点击导航栏“分类”跳转到商品分类页面。

2.用户在商品分类页面点击左边某一分类词,页面跳转到这类商品信息页面。

3.用户分类商品页面,点击右侧商品图片跳转到该商品详情页,查看商品详细信息。

其他事件流 1.添加商品到购物车,系统自动检测库存量,若库存不足,系统会给出相应提示信息。

后置条件

特殊需求

10 3.3.4 购物车

用户在逛商品时,碰到自己喜欢的商品,只要点击该商品详情页中的购物车小图标便可将该商品添加到购物车,用户可在购物车页面进行下单支付结算和对购物车商品进行管理。

助农系统小程序的购物车用例图,如下图3-7所示:

向购物车添加商品删除购物车商品查看购物车商品信息查看购物车商品总数正式用户修改购物车商品个数查看商品总金额提交商品订单

图3-7 助农系统小程序的购物车用例图

购物车功能用例需求分析如下:

用例名称

参与者

前置条件

购物车

正式用户

1.用户扫小程序二维码获取到小程序,进入到小程序客户端

2.用户将商品添加到购物车

主事件流 1.用户点击导航栏“购物车”跳转到购物车详情页面

2.用户在购物车页面可以增加或减少购物车商品数量

3.用户在购物车页面点击某商品条目,便跳转到该商品的商品详情页

4.用户点击“全选”按钮可以对购物车所以商品进行金额结算

5.用户点击“下单”按钮进行订单提交

11 其他事件流 1.若增加商品数量超过商品库存量,系统给出相应提示

后置条件

特殊需求

系统成功把修改过后的信息添加到数据库中

3.3.5 商品下单支付

用户可以通过微信支付在购物车页面或用户信息管理页面对商品进行下订单付款结算操作。

助农系统小程序的商品下单支付用例图,如下图3-8所示:

检测商品库存生成商品订单查看订单详情填写收货地址正式用户微信支付生成历史订单

图3-8 商品下单支付用例图

商品下单支付功能用例需求分析如下:

用例名称

参与者

前置条件

商品下单支付

正式用户

1.用户扫小程序二维码获取到小程序,进入到小程序客户端

2.用户已经完善个人信息并提交了商品订单

12 主事件流 1.用户在购物车页面点击“下单”跳转到订单确认页面

2.用户订单确认页面点击“付款”,成功支付后页面跳转到订单管理页面

其他事件流 1.用户没完善个人信息或是未登录状态,系统会给出相应提示

2.下单时,系统自动进行商品库存量检测,若数量不足,系统会给出提示

后置条件

特殊需求

系统数据库中的订单表成功记录订单信息

3.4 系统数据库设计

3.4.1 数据库相关配置

根据项目的业务逻辑结果分析,本项目采用的数据库是MySQL,用 Navicat

图形化管理数据库,根据数据表设计,建立 MySQL 数据库名称为 nc, 用户名为root,本系统的数据库一共建立 14 张表。本系统主要通过 ORM对象-关系映射的方式,实现服务器与数据库的通信,数据库主要的配置参数如下图3-9所示:

图3-9 数据库主要的配置图

13 3.4.2 数据库E-R图设计

1)用户信息的模型设计,如图3-10所示:

用户idopenid用户信息用户昵称用户备注

图3-10 用户信息E-R图

(2)用户地址信息的模型设计,如图3-11所示:

用户id

用户地址id

详细地址用户地址

县/区市

收货人姓名电话省图3-11 用户地址信息E-R图

3)商品信息的模型设计,如图3-12所示:

商品名称商品id商品价格商品图片来源商品信息商品种类商品图片id(外键)商品主图id(url路径)商品库存商品概述

图3-12 商品信息E-R图

14 (

4)商品分类信息的模型设计,如图3-13所示:

种类id商品图片id商品分类

分类概述信息种类名称图3-13 商品分类信息E-R图

(5)专题信息的模型设计,如图3-14所示:

专题id

专题专题名称

专题描述专题头图id专题图id

图3-14 专题信息E-R图

(6)订单商品信息模型设计,如图3-15所示

订单商品id订单id

订单商品

商品数量

图3-15 订单商品信息E-R图

15 (7)订单信息的模型设计,如图3-16所示:

订单号

订单id

预支付订单id订单信息

订单状态

用户id订单总价商品总数图3-16 订单信息E-R图

由以上各个实体与实体模型的E-R图可以得出助农系统的总E-R图,如下图3-17所示:

用户id

订单号

订单id

订单信息

id预支付订单

1

订单状态属于商品名称订单id商品idn商品价格

包含n1商品分类分类概述信息openid用户id用户昵称n属于1用户信息1管理n用户地址id用户id收货人姓名用户地址电话详细地址

种类id商品图片id种类名称

m属于n商品信息订单商品id订单商品

n专题id商品数量商品图片id(外键)

商品库存商品种类属于1专题专题描述

专题名称专题头图id专题图id图3-17 助农系统的数据库总E-R图

16 3.4.3 数据库逻辑表设计

本系统的数据库根据概念结构设计中的 E-R 图进行实体之间的关系转换,确定实体之间属性关系,最后以数据表的形式展现,并具体说明表中信息。

助农系统详细数据库表设计如下:

(1)用户信息数据表User,如下表3-1所示:

序号

1

2

3

4

字段名

id

openid

n_name

extend

数据类型

int

varchar

varchar

varchar

数据长度

10

50

10

250

是否为空

字段说明

用户id(主键)

openid

用户昵称

用户备注

表3-1 用户信息表

(2)用户地址信息数据表User_Addr,如下表3-2所示:

序号

1

2

3

4

5

6

7

8

表 3-2 用户地址信息表

字段名

id

u_id

name

phone

province

city

country

detail

数据类型

int

int

varchar

varchar

varchar

varchar

varchar

varchar

数据长度

10

10

25

20

20

20

20

120

是否为空

字段说明

用户地址id(主键)

用户id(外键)

收货人姓名

手机号码

县/区

地址详情

(3)商品信息数据表Product,如下表3-3所示:

序号

1

2

字段名

id

name

数据类型

int

varchar

数据长度

10

50

是否为空

字段说明

商品信息id(主键)

商品名称

17 3

4

5

6

7

price decimal 10

10

50

12

250

商品价格

商品种类

商品概述

商品库存

商品主图id

(url路径)

category_id int

resume

stock

main_img_url

varchar

int

varchar

8

9

img_id

from

int

tinyint

10

5

商品图片id(外键)

商品图片来源

表3-3 商品信息表

(4)商品图片信息数据表Product_img,如下表3.4所示:

序号 列名

1

2

3

4

数据类型

int

int

int

int

长度

10

10

10

10

是否为空

描述说明

商品图片id(主键)

图片id(外键)

商品id(外键)

图片排序号

id

img_id

p_id

order

表3-4 商品图片信息表

(5)商品图片信息数据表Image,如下表3-5所示:

序号 字段名

1

2

3

id

img_url

from

数据类型

int

varchar

tinyint

数据长度

10

250

4

是否为空

字段说明

图片id(主键)

图片路径

图片来源

表3-5 图片信息表

(6)商品分类信息数据表Category,如下表3-6所示:

序号 字段名

1 id

数据类型

int

数据长度

10

是否为空

字段说明

分类id(主键)

18 2

3

name

top_img_id

varchar

int

20

10

分类名称

专题图(外键)

关联image表

4 resume varchar 50 分类概述

表3-6 分类信息表

(7)专题商品信息数据表Theme_Product,如下表3-7所示:

序号 字段名

1

2

t_id

p_id

数据类型

int

int

数据长度 是否为空

10

10

字段说明

主题商品id(外键)

商品外键

表3-7 专题商品信息表

(8)专题栏信息表数据表Theme,如下表3-8所示:

序号 字段名

1

2

3

4

5

数据类型

int

varchar

数据长度

10

50

250

10

10

是否为空

字段说明

专题id(主键)

商品专题名称

商品专题描述

专题图(外键)

专题列表头图

id

name

description varchar

top_img_id int

head_img_id int

表3-8 专题栏信息表

(9)订单信息数据表Order,如下表3-9所示:

序号 字段名

1

2

3

4

5

id

o_num

u_id

数据类型

int

varchar

int

数据长度

10

25

10

10

10

19

是否为空

字段说明

订单id(主键)

订单号

用户id(外键)

订单总价

商品总数

total_price decimal

total_count Int 6

7

status

pay_id

tinyint

int

4

10

订单状态

预支付订单id

表3-9 订单信息表

(10)订单商品信息数据表Order_Product,如下表3-10所示:

序号 字段名

1 o_id

数据类型

int

数据长度

10

是否为空

字段说明

订单商品id

(联合主键)

2

3

表3-10 订单商品信息表

p_id

count

int

int

10

10

商品id(联合主键)

商品数量

3.5 系统可行性分析

(1)技术可行性。助农系统整个项目的开发,不需要太复杂的技术,难度适中。客户端采用的微信小程序技术,后端服务器采用的是PHP的TinkPHP 5框架技术,只需要学习并且能够运用微信小程序开发技术和PHP语言以及相关框架技术,就可以完成助农系统的开发。助农系统的小程序客户端的UI设计较为简洁,功能明确,在技术上面来说是具备可行性。

(2)经济可行性。助农系统的小程序客户端借用微信平台可以运行在各种移动设备上,如手机、平板等,人们获取容易,使用更容易;本系统开发只需一台普通的个人电脑就可以完成所有的开发工作,所有经济问题都是可以解决和满足需求的,客户端后台在Xampp服务器上运行,可以稳定地让客户端正常运行。因此从经济的可行性角度来看,助农系统的开发是可行的。

(3)操作可行性。助农系统主要由微信小程序客户端和后台服务器组成的,整系统在界面设计上优雅美观、交互良好,并且UI布局分布明确。在功能需求上,功能模块划分清晰,功能明确,操作简单,适合使用。因此从操作方面来说,助农系统具备可行性。

20 第四章 系统功能设计与实现

4.1 用户信息管理的设计与实现

4.1.1 用户信息管理

(1)用户基本信息

用户在登录助农系统小程序客户端时,微信会自动调用登录()接口来获取用户授权和调用用户信息rInfo() 接口来获取用户基本信息,若用户同意请求,便会返回用户的基本信,信息将会同步到“我的”页面中的头像和昵称;若用户拒绝请求,助农系统自动默认用户昵称和头像信息。

核心的实现代码如下:

(2)用户地址管理

用户可以修改或添加收货地址信息,当用户打开“我的”页面时,系统调用文件中的getAddressInfo()方法获取用户在服务器中的收货地址,并用数据绑定的方式将用户地址信息显示在当前页面。用户点击“地址管理”按钮可以进行修改或新添加收货地址操作,其实现代码主要在基类文件中,系统调用控制器中的editAddress()事件访问基类文件中getAddress()方法来获取用户地址信息、submitAddress()方法和setUpAddress()方法更新保存用户地址信息。

核心的实现代码如下:

21

4.1.2 用户订单管理

用户在“我的”页面中的订单部分可以查看订单信息。订单信息上记录着商品信息和订单状态信息。若用户点击订单信息,小程序自动向服务器发起数据请求,这时页面跳转到订单详情页面。如果订单还未完成支付,系统会自动调用execPay()函数进行订单的第二次支付,若成功支付后,系统会自动更新订单的状态。

核心的实现代码如下:

22 小程序实现用户订单管理效果图,如图4-1所示:

图4-1 用户订单管理效果图

4.2 商品展示的设计与实现

4.2.1 广告商品展示

广告商品是展示在“首页”的顶部,采用自动循环轮播,分三步实现其效果:布局设计、加载图片、循环图片。在微信小程序中,使用swiper类可以实现图片自动循环轮播。如果用户点击商品图片,便会跳转到该商品的详情页面,这个功能的实现是系统调用了 文件中的onProductemTap方法。其实现核心代码如下:

23 小程序客户端的所有图片都是从数据库获取的,图片获取流程:先设定URL路径,然后小程序客户端调用文件中的request基类来获取数据库中的图片,接着小程序客户端再调用callback异步回调函数获取服务器的图片参数。其实现核心代码如下:

小程序实现广告商品展示效果图,如图4-2所示:

图4-2 广告商品展示效果图

4.2.2 精选主题展示

精选主题展示的实现跟广告商品的实现类似,区别是精选主题是在文件中实现的,并在文件上设计UI界面,图片的展示则是系统调用了 文件中的onThemesItemTap方法实现的。

精选主题实现核心代码如下:

24

点击图片跳转到精选主题商品页面核心代码如下:

小程序实现精选主题展示效果图,如图4-3所示:

图4-3 精选主题展示效果图

25 4.2.3 最近新品展示

该区域的商品展示以矩阵方式按照上架时间倒序排的,共有15个商品,这种设计便于用户查看新上货架商品信息。由于考虑到后面的编码工作也会多次使用矩阵类型展示商品,为了增加代码的复用性和简洁性,把商品的矩阵列表UI设计封装成一个template模板,有效减少了后续编码工作量。

模板的核心代码设计如下:

小程序实现最近新品展示效果图,如图4-4所示:

图4-4 最近新品展示效果图

26 4.3 商品分类的设计与实现

用户在分类页面点击任意一种左侧的商品种类栏目,系统会相应的在右侧显示出属于该种类型的商品图片,用户只要点击商品图片,便会自动跳转到商品详情页面。

4.3.1 商品分类模块

用户点击左侧的商品分类栏目,系统会相对应的在右侧显示出该类型的商品图片信息,右侧的商品图片页面信息包括该类型商品的广告图片、商品标题和商品分类矩阵。由于在这个模块中统一了矩阵显示商品的UI设计,为了减少代码工作量,这里引用了之前封装好的template模板来加载显示商品分类图片信息。

调用模块的核心代码如下:

小程序实现商品分类展示效果图,如图4-5所示:

图4-5 商品分类展示效果图

27 4.3.2 商品详情模块

商品详情页面分上下两部分,上部分有该商品的概述信息,用户可以在这里选择商品数量,把商品添加到购物车等;下部分是该商品的详细信息展示,该部分主要介绍商品详情、商品参数信息和商品售后保障,方便了用户对该商品进行了解。在选择商品数量时,系统会对商品的库存量进行检测,只有商品库存量大于0,用户才可以把商品添加到购物车。

实现商品库存量检测的picker组件的核心代码如下:

商品详情页面的实现核心代码如下:

小程序实现商品详情信息展示效果图,如图4-6所示:

图4-6 商品详情信息展示效果图

28 4.4 购物车功能的设计实现

购物车的代码主要在cart文件中,该模块主要分向购物车添加商品和管理购物车两大功能。用户点击导航栏下的“购物车”按钮,页面跳转到购物车页面,如果用户没有添加商品到购物车,购物车页面显示“您还没有添加任何商品”;如果用户已经有添加商品到购物车,购物车页面便会显示已添加商品的简要信息,如名称、数量和价格等。用户在购物车页面点击“全选”和“下单”按钮,系统会自动计算购物车商品的总价,页面跳转到订单的详情页面。

购物车功能流程图如图4-7所示:

图4-7 购物车功能流程图

29

结束清空购物车相应的商品信息提交订单统计选中商品总价选中购物车商品管理购物车商品数量和种类进入购物车页面添加商品到购物车浏览商品开始 (1)向购物车添加商品

用户在浏览到喜欢的商品时,可以在该商品的详情页面把商品添加到购物车上,当用户有添加操作时,系统会自动调用文件中的addToCart()方法来获取该商品的相关信息,商品就会添加到购物车并在本地缓存进行数据保存。

商品详情页的购物车功能的核心代码如下:

向购物车添加商品的核心代码如下:

购物车页面显示商品信息的核心代码如下:

30 (2)管理购物车

用户在购物车页面可以对购物车内的商品进行数量的增减和删除操作,当用户进行以上操作时,系统会调用文件中的addCount()方法和cutCount()方法以及delete()方法来对商品进行增减或删除,操作完之后,系统会自动更新保存数据在缓存中。

实现管理购物车商品功能的核心代码如下:

客户端实现购物车功能展示效果图,如图4-8所示:

图4-8 购物车功能展示效果图

31 4.5 商品下单支付的设计与实现

该功能的代码实现主要在order文件中,商品下单支付页面由收获地址管理、订单详情信息和支付三部分构成的。当系统检测到用户有进行付款操作时,小程序客户端向服务器发起生成订单请求,若用户在订单详情页完成支付操作后,显示支付成功,则商品下单成功,否则就是失败。

实现小程序向服务器请求支付的核心代码如下:

客户端实现商品下单支付功能展示效果图,如图4-9所示:

图4-9 商品下单支付功能展示效果图

32 第五章 系统测试

软件测试是软件开发过程中的必不可少的,在测试过程中发现并修改软件的错误,能提升软件的可靠性和稳定性。软件测试的目的就是为了检测软件是否能够正常运行,功能是否实现,UI设计是否合适。本章对微信小程序助农系统的主要功能模块用例进行了功能测试,以确保系统的可靠性。

5.1 测试说明

助农系统功能测试采用的是黑盒测试方法,对助农系统的功能进行了测试,测试的系统功能有用户登录、商品分类、购物车、商品下单支付和用户地址管理。性能测试上是采用微信开发者工具提供的开发阶段的小程序测试工具。

5.2 测试环境

助农系统测试采用的软硬件环境如下表5-1所示:

资源名称

操作系统

服务器

数据库

Web浏览器

开发工具

配置环境

Windows 10

TinkPHP 5.0

Xampp(Apche+MySQL)

Chrome、Microsoft Edge

微信开发者工具

表5-1 测试软硬件环境表

5.3 功能测试

对助农系统的主要功能用例黑盒测试如下:

编号

1

功能模块 前置条件

用户登录 用户扫微信小程序二维码,第一次打开小程序

测试内容

用户是否接收到微信弹出的授权获取个人信息页面

2 商品分类 无 用户点击左侧商品分类栏目;用户点击右侧分类商品图片

33

测试结果

用户允许,成功显示用户微信头像和昵称;用户拒接,则显示系统默认头像和昵称

页面成功跳转到所点击商品栏目的商品分类页面;页面成功由商品图片进入到该商通过

判定

通过 品详情页面

3 购物车 无 用户在商品详情页面点击商品数量添加商品到购物车,在购物车商品库存量充足,商品成功添加到购物车;商品库存量不足,则商品添加失败;用户通过

页面点击“+”、点击“+”、“-”能“-”控制商品数量

4 商品下单

有效的用户支付

token令牌,商品库存量充足

成功修改商品数量

用户在购物车页面点击“下单”并在订单详情页点击“支付”

成功生成订单,付款成功,弹出支付成功页面,可查看该订单详情;付款失败,弹出支付失败页面

不通过

5 用户地址

管理

有效的用户token令牌

用户在“我的”页面点击地址管理,用户是否获取通讯录地址信息;点击新增地址

页面跳转到地址管理页面,用户同意请求,成功显示通讯录地址;用户可以成功添加新地址

通过

第六章 总结

34 本文主要撰写的内容是基于微信小程序和TinkPHP 5框架设计开发的助农系统,通过分析在当今互联网的环境下农户生产的农产品滞销,销售难以及消费者难买到绿色无害的农产品的现状,以微信小程序借用微信公众平台在市场中的高份额和占比率来设计开发一款小程序------“助农系统”,该系统充分利用互联网的优势,将互联网与农业相结合,为农户销售农产品和消费者购买绿色无害农产品提供了一条新途径。

助农系统的设计基本达到预期设定的目标,现对本文的工作进行以下几点总结:

(1)详细分析了课题的研究背景和意义,概述了当前农产品市场的发展现状和存在不足,也说明了本系统设计开发所需要的技术。

(2)通过分析系统的业务和各个功能模块需求,在此基础上进行数据分析,得出系统各个实体类之间的关系,从而设计出系统的数据库表。

(3)实现了系统几个主要功能:用户信息管理、商品展示、商品分类、购物车和商品下单支付。在代码实现过程中,也解决了几个关键问题,其中有服务器API接口的设计、小程序客户端UI设计以及客户端、服务器和数据库的数据通信难题。

(4)在小程序客户端开发完成后,进行客户端的功能与性能测试,提高客户端的稳定性和正常运行。

通过完成本次毕业设计,不仅提高了我的前后端的知识应用能力,还让我对小程序、TinkPHP5框架和 MySQL 数据库的使用有了更深一步的了解,同时也让我懂得了在开发工作前,从整体角度出发把握每一个模块在项目中的功能和作用,对每个模块的需求进行充分的分析,根据业务需求和对象明确代码的逻辑结构,加强模块与模块功能之间的控制与联系,以减少代码的重复率,提高工作效率。

虽然在完成毕业设计和论文的过程中,我遇到了许多困难,如环境的搭建错误,自己的粗心犯下的错误、代码逻辑分析错误等,但对于我来说,每解决一次难题也是一次自我能力提高,通过一次次的实践,我对理论知识有了进一步的理解和掌握。

参考文献

35 [1]周绍景 应杰 潘宏斌 黄建 杨正元. RESTful架构的应用研究[J]. 数字技术与应用, 2018(5):2-2.

[2]刘欢 方宇杰 庞文琦 彭欢欢 马得秀 张瑾. 基于微信小程序的农产品电子商务平台开发——“兰特商城”[J]. 农村经济与科技, 2018(17):3-3.

[3]曾辉. 基于Web的在线考试系统的分析与设计[J]. 中国优秀硕士学位论文全文数据库, 2016(06):71-71.

[4]滕文. 基于MVC模式的PHP程序开发[J]. 科技视界, 2012(28):264-264.

[5]杨帆 唐源. 网上购物系统购物车模块设计与实现研究[J]. 现代商贸工业,

2011(11):253-254.

[6]陈国周 詹素华 陈为群. 基于微信平台的边坡稳定计算程序开发[J]. 数字技术与应用, 2019(04):199-201.

[7]杨子天 邵宇. 基于Android平台的在线考试系统的设计与实现[J]. 电脑知识与技术, 2014(03):128-132.

致谢

36 在设计和开发本毕业设计,以及撰写论文的期间,我非常感谢我的导师马世登老师,在选题时,他能耐心地指导我的毕设选题,给我提供了许多宝贵有建设性的意见;在撰写论文时,马世登老师也对我进行了悉心指导,给予了我很多宝贵的写作建议,让我的毕业论文可以顺利完成。马世登老师在学术上认真、严谨的态度,在教学上因材施教,在课余时间上平易近人等优点和行为品质,都值得我认真学习。

此外,在这里还我也要感谢在四年来在学习、生活等方面上老师们对我的悉心教导,我十分敬佩你们严谨的治学理念和积极向上的工作精神,同时我也感谢在此期间帮助过我,指导过我的同学表达谢意。在我遇到 Bug,或者技术难题时,他们总能够给我提供一些有用的建议,使得我的开发效率提高了很多。

最后,我衷心的感谢百忙之中抽时间对本文进行审阅的各位老师们。

37

发布者:admin,转转请注明出处:http://www.yc00.com/web/1688277046a112069.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信