摘 要
随着社会经济的发展和人们消费观念的升级,农产品电商行业逐渐壮大。但传统的农产品销售模式存在信息不透明、中间环节复杂等问题,而微信小程序作为一种便捷的移动应用平台,为农产品商城的建设提供了新的可能性。通过微信小程序的设计与实现,可以实现农产品的在线展示、交易、信息及产品发布等功能,帮助农产品生产者与消费者之间建立便捷、直接的联系,提升农产品销售效率和用户购物体验。本文研究的农产品商城主要利用Java语言,通过springboot框架,采用MySQL数据库结合微信小程序进行开发,提供了一个便捷、全面、友好的农产品展示、获取、购买平台,满足了用户对于农产品购物服务的多样化需求。用户可以通过微信小程序快速轻松获取各种农产品信息,并对可对农产品进行溯源,参与不同形式的团购活动,方便快捷地购物支付。通过打通线上线下销售渠道,提高农产品的流通效率,让更多优质的农产品能够以更快速、更广泛的方式进入市场。
关键词:微信小程序;农产品商城;农产品购物;优质农产品;springboot
With the development of social economy and the upgrading of people's consumption concepts, the agricultural product e-commerce industry is gradually growing. However, the traditional agricultural product sales model has problems such as information opacity and complex intermediate links. As a convenient mobile application platform, WeChat mini programs provide new possibilities for the construction of agricultural product malls. Through the design and implementation of WeChat mini programs, online display, trading, information, and product release of agricultural products can be achieved, helping to establish convenient and direct connections between agricultural producers and consumers, improving agricultural product sales efficiency and user shopping experience.The agricultural product mall studied in this article is mainly developed using Java language, the Springboot framework, MySQL database, and WeChat mini program. It provides a convenient, comprehensive, and friendly platform for displaying, obtaining, and purchasing agricultural products, meeting the diverse needs of users for agricultural product purchasing services. Users can quickly and easily obtain various agricultural product information through WeChat mini programs, trace the origin of agricultural products, participate in different forms of group buying activities, and conveniently and quickly shop and make payments. By opening up online and offline sales channels, we can improve the circulation efficiency of agricultural products and enable more high-quality agricultural products to enter the market in a faster and more extensive manner.
Keywords: WeChat mini program; Agricultural product mall; Agricultural product shopping; High quality agricultural products; Springboot
目录
摘 要
Abstract
第1章 引 言
1.1 研究背景与意义
1.2 国内外研究现状
1.3 主要研究内容
1.4 论文结构与章节安排
第2章 系统需求分析
2.1 系统可行性分析
2.1.1 技术可行性分析
2.1.2 经济可行性分析
2.1.3 操作可行性分析
2.2 系统需求分析
2.2.1 功能需求分析
2.2.2 非功能性需求分析
2.3 系统用例分析
第3章 系统总体设计
3.1 系统功能模块设计
3.2 数据库设计
3.2.1 数据库概念结构设计
3.2.2 数据库逻辑结构设计
第4章 关键模块的设计与实现
4.1 前台用户模块
4.1.1 登录界面
4.1.2 注册界面
4.1.3 首页界面
4.1.4 我的界面
4.2 后台管理模块
4.2.1 后台首页界面
4.2.2 公共管理界面
4.2.3 用户管理界面
4.2.4 资讯管理界面
4.2.5 商城管理界面
4.2.6 农产品信息界面
4.2.7 团购信息界面
第5章 系统测试
5.1 系统测试目的
5.2 系统测试用例
5.3 系统测试结果
第6章 结 语
参考文献
结束语
-
- 研究背景与意义
随着社会经济的不断发展,人们的消费观念也在不断升级,农产品电商行业逐渐成为一个蓬勃发展的领域。然而,传统的农产品销售模式存在诸多问题,比如信息不透明、中间环节复杂等。微信小程序作为一种便捷的移动应用平台,为解决这些问题提供了新的可能性。通过微信小程序的设计与实现,可以实现农产品的在线展示、交易、信息及产品发布等功能,从而帮助农产品生产者与消费者之间建立更加便捷、直接的联系,提升农产品销售效率和用户购物体验。
本文研究的农产品商城使用Java开发技术,采用springboot作为框架配合微信小程序平台,利用MySQL作为数据存储的技术选择,并说明了各个模块的功能和关系。使农产品商城具有操作简单、界面友好、数据安全、可移动、功能多样等特点,提供了一个便捷、全面、友好的农产品展示、获取、购买平台,满足了用户对于农产品购物服务的多样化需求。用户可以通过微信小程序快速轻松获取各种农产品信息,并对可对农产品进行溯源,参与不同形式的团购活动,方便快捷地购物支付。通过打通线上线下销售渠道,提高农产品的流通效率,让更多优质的农产品能够以更快速、更广泛的方式进入市场。同时有助于推动农产品电商领域的发展,促进农产品生产者与消费者之间的互动和合作。并且将为用户提供一个方便快捷的农产品购物平台,为管理员提供一个便捷高效的管理系统,有助于推动农产品产业数字化升级,促进农产品产销对接,促进农村经济发展和提高农民生活质量。
国内研究现状:在国内,随着互联网技术的发展,微信小程序作为一种新兴的应用形式受到了广泛关注。针对农产品行业,国内已经涌现了不少基于微信小程序的电商平台,其中包括了农产品商城。这些平台通过微信的巨大用户基础和便捷的特点,为消费者提供了便捷的购物渠道。一些典型的案例包括像是“某某农场”、“农乐园”等农产品商城小程序。这些平台提供了丰富多样的农产品,从新鲜水果到时令蔬菜,覆盖了消费者的多样需求。通过微信小程序,消费者可以直接在线选购农产品,无需额外下载其他应用,带来了便捷的购物体验。
此外,一些农产品商城还借助数据分析和智能推荐等技术,为用户提供个性化的购物服务。通过分析用户的购买记录和偏好,这些平台能够向用户推荐符合其口味和需求的产品,提高了购物的便利性和用户体验。
国外研究现状:在国外,基于微信小程序的农产品商城也逐渐兴起。尤其是在一些农业发达国家和地区,人们对于新鲜农产品的需求也很大。类似中国的情况,一些农产品商城利用微信小程序的便捷特点,为消费者提供了在线购物的平台。这些平台不仅提供了丰富多样的农产品选择,还注重用户体验和服务质量。一些商城采用了先进的物流系统,保证了农产品的及时配送,提高了消费者的满意度。
总的来说,国内外的研究现状表明,基于微信小程序的农产品商城已经取得了一定的成果,为促进农产品电子商务的发展提供了新的途径和思路。随着技术的不断进步和用户需求的不断变化,未来这一领域还有很大的发展空间,需要进一步研究和实践。
基于微信小程序的农产品商城设计与实现,需要完成以下研究内容:
(1)首先是确定选题,确定好所要做的系统,并对系统的背景及现在面临的一些问题等进行系统的初步确认。根据用户需求和市场趋势,农产品商城针对性地通过Java语言,使用SpringBoot后端开发框架,基于微信小程序平台,利用MySQL数据库实现系统来实现,以解决传农产品销售、交易、购物服务和管理中的存在的问题。
(2)系统确认完成后,结合系统开发的需求进行确认系统开发所使用的技术。农产品商城的开发使用SpringBoot框架作为后端开发技术,同时采用微信小程序平台进行前端界面开发。根据实际需求选择MySQL数据库来进行搭建和配置,以满足系统对数据的存储和管理需求。对所选用的技术进行技术分析,确保其能够完成功能实现和系统的稳定运行。
(3)确定好系统使用的技术后,进行在线确认系统所划分的用户角色,并根据用户角色划分确定所要设计的功能模块。对于农产品商城的设计,可以划分为管理员和普通用户两个角色。管理员可以获取和管理所有用户和系统功能的详细数据信息,并根据需求进行处理和解决问题。而普通用户则可以通过微信小程序搜索和浏览农产品信息、优质农产品、网站公告、农产品资讯等信息,实现在线购买和支付农产品,提供团购和配送服务,并可管理自己的订单信息。通过系统的数据库实现数据的交互和共享,确保用户和管理员可以根据各自的需求进行操作和处理。
(4)系统的功能模块确认完成后,进行系统及界面的设计。根据不同角色的需求,设计相应的界面和操作方式,以提供用户友好的使用体验。同时,在设计过程中需要考虑系统的安全性和稳定性,确保用户的隐私和数据的安全。在设计完成后,通过测试来判断程序是否完善,进行功能和性能的验证。通过不同用户的操作和测试,找出系统可能存在的问题和漏洞,并进行修复和优化。当系统经过测试没有任何问题时,可以将系统上传并投入正式使用。
论文将分层次进行编排,除去论文摘要致谢文献参考部分,论文主要架构如下:
第一章:引言。主要介绍了课题研究的背景,研究意义、研究内容和论文结构与章节安排。
第二章:系统需求分析。主要从系统的用户、功能等方面进行需求分析。
第三章:系统总体设计。主要对系统框架、系统功能模块、数据库进行功能设计。
第四章:关键模块的设计与实现。主要介绍了系统框架搭建、系统界面的实现。
第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试。
第六章:结语。主要对系统的设计工作进行总结。
农产品商城基于微信小程序,采用了Java技术和MySQL数据库作为设计工具,开发了功能完备、使用简单的前端应用程序,并建立、维护了一个数据完整、安全、稳定性强的后台数据库系统,以实现农产品商城的开发和运行。SpringBoot具有简化配置、内嵌Web服务器、自动化构建等优点,可以使开发过程更加简单且易于维护,让系统更加稳定和高效。Java作为一种常用的编程语言,具有广泛的应用领域和成熟的开发生态系统。它提供了丰富的库和工具,使开发人员能够轻松构建各种功能模块。而MySQL作为一种关系型数据库管理系统,具有数据完整性高、稳定性好的特点,适合处理农产品商城的数据存储和管理需求。因此,在技术方面是可行的。
在开发基于微信小程序的农产品商城中所使用的开发软件像IDEA开发工具、Tomcat服务器、MySQL数据库、Photoshop图片处理软件、微信开发者工具等,这些都是开源免费的,开发工具都能够从网上都可以直接下载,这些环境在学校都进行了系统的学习,能够由开发者自己独立完成开发,并无需购买其他软件或端口等,Java技术具备广泛应用和丰富的资源库,开发者可以利用这些资源来实现所需的功能,也无需要额外花费。因此,在经济方面是可行的。
基于微信小程序的农产品商城设计完成后,其可操作性得到了显著提升,管理员可以轻松访问系统,快速管理各种数据信息,而用户通过微信小程序可以轻松访问系统界面,通过界面导航菜单,快速查看各个功能模块,满足用户的信息需求。此外,系统的操作也不再需要专业人员,操作人员只需要具备基本的电脑操作知识,就可以轻松完成各个功能模块的操作管理。所以,系统具有很高的可操作性,通过使用界面窗口,能够轻松地让用户进行登录。只需要掌握基础的电脑操作技能,就能够满足用户的需求。因此,操作可行性也没有问题。
在开发研究之前,必须仔细分析系统的需求,并且进行全面的市场调研,以便确定使用者的功能需求,以便更好地定位整个系统的开发方向。在此,我们还需要对系统的性能、业务流程以及数据等方面进行深入的分析,以便基于微信小程序的农产品商城的界面简洁易懂,功能完善。
通过对基于微信小程序的农产品商城的需求分析,该系统主要分为普通用户和管理员两大功能模块。具体如下:
- 普通用户模块:
- 注册登录:游客可以通成为过普通用户,使用账号密码可进行登录,使用系统功能。
- 首页:普通用户登录系统后,首先进入首页,可查看轮播图、农产品信息、优质农产品、网站公告、农产品资讯等信息详情;可搜索和浏览农产品信息、优质农产品;可将农产品加入团购;可将优质农产品进行加入购物车和立即购买操作;并可收藏农产品信息、优质农产品、农产品资讯等信息。
- 购物车:普通用户点击“购物车”可查看所有加入购物车的产品信息,进行增改删查操作,点击可查看详情,并可选择性进行购买操作。
- 农产品资讯:普通用户点击“农产品资讯”可查看管理员发布的所有农产品资讯信息,支持文章搜索和热门文章推荐,点击可查看详情,进行点赞、收藏和评论。
- 我的:可对基本信息、收货地址、收藏、订单、购物车、团购信息、订单配送等信息进行管控和查看其信息详情。例如,可在基本信息中修改资料和修改密码;可添加自己的收货地址;可查看和删除自己的收藏信息,并可管理和支付优质农产品订单;可管理自己加入购物车的产品信息,客人选择性进行购买;可确认团购信息审核状态;可签收订单配送信息。
- 管理员:
- 登录:管理员账号密码由系统生成,可使用账号密码可进行登录,使用系统功能,并可对个人信息和密码进行管理。
- 主页:管理员可在主页查看商品销售金额统计、商品销售数量统计等信息数据分析图表。
- 公共管理:管理员点击“公共管理”可对首页的轮播图和网站公告进行管理,进行增删改查操作,支持标题搜索,可点击查看详情。
- 用户管理:管理员点击“用户管理”可对普通用户和管理员进行管控,包括进行增删改查操作,点击可查看详情。
- 资讯管理:管理员点击“资讯管理”可对农产品资讯和新闻列表进行管理,进行增删改查操作,农产品资讯支持标题、标签、分类搜索,可点击查看详情和查看评论;新闻列表支持频道名称搜索,可点击查看详情。
- 商城管理:管理员点击“商城管理”可对优质农产品、分类列表、订单列表、订单配送等信息进行管理。
点击“优质农产品”,可查看所有优质农产品信息,进行增删改查操作,支持标题、分类、农产品编号、农产品溯源搜索,可点击详情进行查看和查看评论;
点击“分类列表”,可查看所有分类信息,进行增删改查操作,支持分类搜索,可点击详情进行查看;
点击“订单列表”,可查看所有订单信息,进行查询和删除操作,支持订单号、商品名称、联系人姓名、状态搜索,可点击详情进行查看,和点击进行配送操作;
点击“订单配送”,可查看所有订单配送信息,进行查询和删除操作,支持配送状态、签收状态搜索,可点击详情进行查看,可修改签收状态
- 商品类型:管理员点击“商品类型”可对商品分类等信息进行管理,进行增删改查操作,支持商品分类搜索,可点击详情进行查看。
- 农产品信息:管理员点击“农产品信息”可对农产品信息等信息进行管理,进行增删改查操作,支持商品名称、商品价格搜索,可点击详情进行查看。
- 团购信息:管理员点击“团购信息”可对团购信息等信息进行管理,进行增删改查操作,支持商品名称、商品价格搜素,可点击详情进行查看,可审核团购信息。
基于微信小程序的农产品商城的非功能性需求比如基于微信小程序的农产品商城的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
安全性 | 主要指基于微信小程序的农产品商城数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指基于微信小程序的农产品商城能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响基于微信小程序的农产品商城占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着基于微信小程序的农产品商城的页面展示内容进行操作,就可以了。 |
可维护性 | 基于微信小程序的农产品商城开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
基于微信小程序的农产品商城中用户角色用例图如图2.1所示:
图2.1用户角色用例图
基于微信小程序的农产品商城中管理员用例图如图2.2所示:
图2.3 管理员用例图
第3章 系统总体设计
系功能模块分成了管理员及用户两个模块,每个模块登录进去对应相应的功能,具体的功能模块图如图3.1所示。
图3.1 基于微信小程序的农产品商城功能模块图
数据库的设计承载者系统的各种数据,在建立数据库的时候,主要是数据库模型的设计以及各个数据库表的设计两部分。
下面是整个基于微信小程序的农产品商城中主要的数据库表总E-R实体关系图。
图3.2 基于微信小程序的农产品商城总E-R关系图
通过前面E-R关系图可以看到项目需要创建很多个数据表。以下是项目中的主要数据库表的关系模型:
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | address_id | int | 10 | 0 | N | Y | 收货地址: | |
2 | name | varchar | 32 | 0 | Y | N | 姓名: | |
3 | phone | varchar | 13 | 0 | Y | N | 手机: | |
4 | postcode | varchar | 8 | 0 | Y | N | 邮编: | |
5 | address | varchar | 255 | 0 | N | N | 地址: | |
6 | user_id | mediumint | 8 | 0 | N | N | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | default | bit | 1 | 0 | N | N | 0 | 默认判断 |
表agricultural_product_information (农产品信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | agricultural_product_information_id | int | 10 | 0 | N | Y | 农产品信息ID | |
2 | product_number | varchar | 64 | 0 | Y | N | 商品编号 | |
3 | product_name | varchar | 64 | 0 | Y | N | 商品名称 | |
4 | product_type | varchar | 64 | 0 | Y | N | 商品类型 | |
5 | commodity_price | int | 10 | 0 | Y | N | 0 | 商品价格 |
6 | product_images | varchar | 255 | 0 | Y | N | 商品图片 | |
7 | product_description | text | 65535 | 0 | Y | N | 商品简述 | |
8 | product_traceability | longtext | 2147483647 | 0 | Y | N | 商品溯源 | |
9 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
11 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | cart_id | int | 10 | 0 | N | Y | 购物车ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | img | varchar | 255 | 0 | N | N | 0 | 图片: |
4 | user_id | int | 10 | 0 | N | N | 0 | 用户ID: |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | state | int | 10 | 0 | N | N | 0 | 状态:使用中,已失效 |
8 | price | double | 9 | 2 | N | N | 0.00 | 单价: |
9 | price_ago | double | 9 | 2 | N | N | 0.00 | 原价: |
10 | price_count | double | 11 | 2 | N | N | 0.00 | 总价: |
11 | num | int | 10 | 0 | N | N | 1 | 数量: |
12 | goods_id | mediumint | 8 | 0 | N | N | 商品id:[0,8388607] | |
13 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
14 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | goods_id | mediumint | 8 | 0 | N | Y | 产品id:[0,8388607] | |
2 | title | varchar | 125 | 0 | Y | N | 标题:[0,125]用于产品和html的<title>标签中 | |
3 | img | text | 65535 | 0 | Y | N | 封面图:用于显示于产品列表页 | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
5 | price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
6 | price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
7 | sales | int | 10 | 0 | N | N | 0 | 销量:[0,1000000000] |
8 | inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
9 | type | varchar | 64 | 0 | N | N | 商品分类: | |
10 | hits | int | 10 | 0 | N | N | 0 | 点击量:[0,1000000000]访问这篇产品的人次 |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:产品的主体内容 | |
12 | img_1 | text | 65535 | 0 | Y | N | 主图1: | |
13 | img_2 | text | 65535 | 0 | Y | N | 主图2: | |
14 | img_3 | text | 65535 | 0 | Y | N | 主图3: | |
15 | img_4 | text | 65535 | 0 | Y | N | 主图4: | |
16 | img_5 | text | 65535 | 0 | Y | N | 主图5: | |
17 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
19 | customize_field | text | 65535 | 0 | Y | N | 自定义字段 | |
20 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
21 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
22 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
23 | user_id | int | 10 | 0 | Y | N | 0 | 添加人 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | int | 10 | 0 | N | Y | 商品分类ID: | |
2 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
3 | name | varchar | 255 | 0 | Y | N | 商品名称: | |
4 | desc | varchar | 255 | 0 | Y | N | 描述: | |
5 | icon | varchar | 255 | 0 | Y | N | 图标: | |
6 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
7 | source_field | 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 | 更新时间: |
表group_buying_information (团购信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_buying_information_id | int | 10 | 0 | N | Y | 团购信息ID | |
2 | product_number | varchar | 64 | 0 | Y | N | 商品编号 | |
3 | product_name | varchar | 64 | 0 | Y | N | 商品名称 | |
4 | commodity_price | int | 10 | 0 | Y | N | 0 | 商品价格 |
5 | product_traceability | longtext | 2147483647 | 0 | Y | N | 商品溯源 | |
6 | group_buying_users | int | 10 | 0 | Y | N | 0 | 团购用户 |
7 | group_purchase_quantity | varchar | 64 | 0 | Y | N | 团购数量 | |
8 | group_buying_time | datetime | 19 | 0 | Y | N | 团购时间 | |
9 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
10 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表high_quality_agricultural_products (优质农产品)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | high_quality_agricultural_products_id | int | 10 | 0 | N | Y | 优质农产品ID | |
2 | agricultural_product_number | varchar | 64 | 0 | Y | N | 农产品编号 | |
3 | agricultural_product_traceability | longtext | 2147483647 | 0 | Y | N | 农产品溯源 | |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | cart_title | varchar | 125 | 0 | Y | N | 标题:[0,125]用于产品html的标签中 | |
7 | cart_img | text | 65535 | 0 | Y | N | 封面图:用于显示于产品列表页 | |
8 | cart_description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
9 | cart_price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
10 | cart_price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
11 | cart_inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
12 | cart_type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
13 | cart_content | longtext | 2147483647 | 0 | Y | N | 正文:产品的主体内容 | |
14 | cart_img_1 | text | 65535 | 0 | Y | N | 主图1: | |
15 | cart_img_2 | text | 65535 | 0 | Y | N | 主图2: | |
16 | cart_img_3 | text | 65535 | 0 | Y | N | 主图3: | |
17 | cart_img_4 | text | 65535 | 0 | Y | N | 主图4: | |
18 | cart_img_5 | text | 65535 | 0 | Y | N | 主图5: | |
19 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | logistics_delivery_id | int | 10 | 0 | N | Y | 物流配送ID | |
2 | order_number | varchar | 64 | 0 | Y | N | 订单号 | |
3 | product_name | varchar | 64 | 0 | Y | N | 商品名称 | |
4 | purchase_quantity | varchar | 64 | 0 | Y | N | 购买数量 | |
5 | total_transaction_amount | double | 11 | 2 | Y | N | 0.00 | 交易总额 |
6 | the_date_of_issuance | date | 10 | 0 | Y | N | 发货日期 | |
7 | delivery_number | varchar | 30 | 0 | Y | N | 配送订单 | |
8 | ordinary_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
9 | shipping_address | varchar | 64 | 0 | Y | N | 收货地址 | |
10 | delivery_status | varchar | 64 | 0 | Y | N | 配送状态 | |
11 | signing_status | varchar | 64 | 0 | Y | N | 签收状态 | |
12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
13 | contact_name | varchar | 255 | 0 | Y | N | 联系人名字 | |
14 | merchant_id | int | 10 | 0 | Y | N | 商家id | |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | order_id | int | 10 | 0 | N | Y | 订单ID: | |
2 | order_number | varchar | 64 | 0 | Y | N | 订单号: | |
3 | goods_id | mediumint | 8 | 0 | N | N | 商品id:[0,8388607] | |
4 | title | varchar | 32 | 0 | Y | N | 商品标题: | |
5 | img | varchar | 255 | 0 | Y | N | 商品图片: | |
6 | price | double | 10 | 2 | N | N | 0.00 | 价格: |
7 | price_ago | double | 10 | 2 | N | N | 0.00 | 原价: |
8 | num | int | 10 | 0 | N | N | 1 | 数量: |
9 | price_count | double | 8 | 2 | N | N | 0.00 | 总价: |
10 | norms | varchar | 255 | 0 | Y | N | 规格: | |
11 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
12 | contact_name | varchar | 32 | 0 | Y | N | 联系人姓名: | |
13 | contact_email | varchar | 125 | 0 | Y | N | 联系人邮箱: | |
14 | contact_phone | varchar | 11 | 0 | Y | N | 联系人手机: | |
15 | contact_address | varchar | 255 | 0 | Y | N | 收件地址: | |
16 | postal_code | varchar | 9 | 0 | Y | N | 邮政编码: | |
17 | user_id | int | 10 | 0 | N | N | 0 | 买家ID: |
18 | merchant_id | mediumint | 8 | 0 | N | N | 0 | 商家ID: |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
21 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
22 | state | varchar | 16 | 0 | N | N | 待付款 | 订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
23 | remark | text | 65535 | 0 | Y | N | 订单备注 | |
24 | delivery_state | varchar | 16 | 0 | Y | N | 未配送 | 发货状态:未配送,已配送 |
25 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | product_type_id | int | 10 | 0 | N | Y | 商品类型ID | |
2 | product_classification | 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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | | 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 | 更新时间: |
在登录界面输入账号+密码,点击“登录”按钮,系统在用户数据库表中会对管理员、用户的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,其主界面展示如下图4.1所示。
图4.1 登录界面图
登录代码如下:
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostM系统ing("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.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}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.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
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());
Duration duration = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
// 返回用户信息
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, "账号或密码不正确");
}
}
当用户想要查询、管理相关信息,就必须进行登录,如果没有账号的话,在登录界面,点击“注册”按钮就会跳转到注册的界面,根据提示填写好注册信息,添加提交,注册的信息在数据库中就添加完成了,然后再输入填写好的账号和密码进行登录,其主界面展示如下图4.2所示。
图4.2 注册界面图
注册代码如下:
/**
* 注册
* @param user
* @return
*/
@PostM系统ing("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);
}
普通用户登录系统后,首先进入首页,可查看轮播图、农产品信息、优质农产品、网站公告、农产品资讯等信息详情;可搜索和浏览农产品信息、优质农产品;可将农产品加入团购;可将优质农产品进行加入购物车和立即购买操作;并可收藏农产品信息、优质农产品、农产品资讯等信息。
首页主界面如下图所示。
图4.3 首页主界面图
例如,首页农产品信息详情界面如下图所示。
图4.4 首页农产品信息详情界面图
例如,首页优质农产品详情界面如下图所示。
图4.5 首页优质农产品界面图
可对基本信息、收货地址、收藏、订单、购物车、团购信息、订单配送等信息进行管控和查看其信息详情。例如,可在基本信息中修改资料和修改密码;可添加自己的收货地址;可查看和删除自己的收藏信息,并可管理和支付优质农产品订单;可管理自己加入购物车的产品信息,客人选择性进行购买;可确认团购信息审核状态;可签收订单配送信息。
我的主界面如下图所示。
图4.6 我的主界面图
我的订单界面如下图所示。
图4.7 我的订单界面图
我的团购信息界面如下图所示。
图4.8 我的团购信息界面图
管理员可在主页查看商品销售金额统计、商品销售数量统计等信息数据分析图表。界面如下图所示。
图4.9后台首页界面图
管理员点击“公共管理”可对首页的轮播图和网站公告进行管理,进行增删改查操作,支持标题搜索,可点击查看详情。界面如下图所示。
图4.10公共管理界面图
管理员点击“用户管理”可对普通用户和管理员进行管控,包括进行增删改查操作,点击可查看详情。界面如下图所示。
图4.11用户管理界面图
管理员点击“资讯管理”可对农产品资讯和新闻列表进行管理,进行增删改查操作,农产品资讯支持标题、标签、分类搜索,可点击查看详情和查看评论;新闻列表支持频道名称搜索,可点击查看详情。界面如下图所示。
图4.12资讯管理界面图
管理员点击“商城管理”可对优质农产品、分类列表、订单列表、订单配送等信息进行管理。
点击“优质农产品”,可查看所有优质农产品信息,进行增删改查操作,支持标题、分类、农产品编号、农产品溯源搜索,可点击详情进行查看和查看评论;
点击“分类列表”,可查看所有分类信息,进行增删改查操作,支持分类搜索,可点击详情进行查看;
点击“订单列表”,可查看所有订单信息,进行查询和删除操作,支持订单号、商品名称、联系人姓名、状态搜索,可点击详情进行查看,和点击进行配送操作;
点击“订单配送”,可查看所有订单配送信息,进行查询和删除操作,支持配送状态、签收状态搜索,可点击详情进行查看,可修改签收状态。
例如,商城管理优质农产品界面如下图所示。
图4.13商城管理优质农产品界面图
例如,商城管理订单列表界面如下图所示。
图4.14 商城管理订单列表界面图
管理员点击“农产品信息”可对农产品信息等信息进行管理,进行增删改查操作,支持商品名称、商品价格搜索,可点击详情进行查看。界面如下图所示。
图4.15 农产品信息界面图
管理员点击“团购信息”可对团购信息等信息进行管理,进行增删改查操作,支持商品名称、商品价格搜素,可点击详情进行查看,可审核团购信息。界面如下图所示。
图4.16 团购信息详情界面图
测试是为了发现在开发的程序中所存在的问题,测试这一工作是非常艰巨的,而又是非常困难的,这一部分在程序的设计中占有很大比例,可以说一个程序的开发工作量要是占据了百分至六十,那么剩下的百分之四十必然是测试这一部分,甚至更高。
通过前面章节的介绍,我们可以看到基于微信小程序的农产品商城已经完成了,但是能不能投入使用还是未知,因为在每个项目正式使用之前必须对开发的项目进行测试,如果不进行测试一旦投入使用可能会出现很多未可知的问题,比如使用人数太多导致系统瘫痪,比如某一功能存在bug信息填写错误等,这些错误将给使用者带来很多的困扰,甚至造成更大的损失,因此测试是项目投入使用的最后一步,为用户提供一个运行顺畅、完美的项目也就是我们进行最后测试的目的。
登录测试用例如下表所示。
表6-1 登录测试用例
测试用例编号 | YL_01 | |
测试用例名称 | 系统使用者登录 | |
测试用例描述 | 登录者输入用户名、密码和验证码 | |
系统入口 | 浏览器 | |
步骤 | 预期结果 | 实际结果 |
输入正确的用户名、密码和验证码 | 提示“登录成功”,并进入系统 | 预期结果 |
输入错误的用户名、密码和验证码 | 提示“登录失败”,并返回登录界面 | 预期结果 |
不输入用户名、密码和验证码 | 提示“请输入完整” | 预期结果 |
注册测试用例如下表所示。
表6-2 注册测试用例
测试用例编号 | YL_02 | |
测试用例名称 | 系统用户注册账号 | |
测试用例描述 | 使用者输入用户名、密码以及个人信息进行账号注册 | |
系统入口 | 浏览器 | |
步骤 | 预期结果 | 实际结果 |
输入系统不存在的用户名、密码和个人信息 | 提示“注册成功” | 预期结果 |
输入系统已存在的用户名 | 提示“注册失败”,并返回注册界面 | 预期结果 |
不输入用户名、密码和个人信息 | 提示“请输入完整” | 预期结果 |
添加农产品资讯测试用例如下表所示。
表6-3 添加农产品资讯测试用例
测试用例编号 | YL_04 | |
测试用例名称 | 系统管理员进行添加农产品资讯 | |
测试用例描述 | 使用者输入农产品资讯相关信息,例如标题、内容等信息 | |
系统入口 | 浏览器 | |
步骤 | 预期结果 | 实际结果 |
输入完整的农产品资讯相关信息 | 提示“添加成功”,并进入系统 | 预期结果 |
不输入的农产品资讯运动某一项内容信息 | 提示“请输入完整” | 预期结果 |
(4)添加优质农产品测试
添加优质农产品测试用例如下表所示。
表6-4 添加优质农产品测试用例
测试用例编号 | YL_04 | |
测试用例名称 | 系统管理员进行添加优质农产品 | |
测试用例描述 | 使用者输入优质农产品相关信息,例如资料名称、资料类型等信息 | |
系统入口 | 浏览器 | |
步骤 | 预期结果 | 实际结果 |
输入完整的优质农产品相关信息 | 提示“添加成功”,并进入系统 | 预期结果 |
不输入的优质农产品某一项内容信息 | 提示“请输入完整” | 预期结果 |
(4)添加农产品信息测试
添加农产品信息测试用例如下表所示。
表6-4 添加农产品信息测试用例
测试用例编号 | YL_04 | |
测试用例名称 | 系统管理员进行添加农产品信息 | |
测试用例描述 | 使用者输入农产品信息相关信息,例如资料名称、资料类型等信息 | |
系统入口 | 浏览器 | |
步骤 | 预期结果 | 实际结果 |
输入完整的农产品信息相关信息 | 提示“添加成功”,并进入系统 | 预期结果 |
不输入的农产品信息某一项内容信息 | 提示“请输入完整” | 预期结果 |
通过编写基于微信小程序的农产品商城的测试用例,已经检测完毕用户的用户登录、注册、添加农产品资讯、添加优质农产品、添加农产品信息等测试,在对以上功能得测试过程中,发现了系统中的很多漏送并进行了完善,经过多人在线进行测试,系统完全可以正常运行,当然在后期的维护中系统将不断完善。
本文利用SpringBoot开源、基于微信小程序配合MySQL数据库技术,通过对农产品销售、购物、交易需求的分析,完成了一个农产品商城。经过调试,系统基本可以满足一个农产品商城的业务需求。系统界面简洁美观,易于操作,并具有自己的特色。
然而,由于时间紧迫和缺乏系统开发经验,以及仅依靠少数问卷调查方式,本系统仍存在一些缺陷和不足之处。其中包括以下问题:
数据输入格式未完全检验:系统并未对所有数据输入进行格式校验,因此难以确保数据的准确性。可能会存在一些不符合规则的数据通过检验。
系统功能不够完善:目前系统提供的在线功能还不够丰富多彩,有待进一步扩展和完善。
此外,本系统还存在一些未解决的漏洞,无法完全避免在实际应用情境中出现错误。但相信通过进一步的改进和完善,可以调试出真正符合实际需求的农产品商城。
在农产品商城设计和开发过程中需要继续努力,解决现有的缺陷和不足,提升系统的稳定性、可靠性和功能性。通过持续的改进和完善,可以使农产品商城真正符合用户的实际需求,并为用户提供更好的使用体验。
[1]李卓,王珂,姜丽媛.“互联网+”农业视角下的电商助农小程序商城研究——以“稷原丰村”微信小程序为例[J].商场现代化,2024,(07):24-26.DOI:10.14013/j.cnki.scxdh.2024.07.002.
[2]晁琼,焦博妮,齐琳,等.基于微信小程序的“指上农庄”农产品交易平台设计与实现[J].电脑知识与技术,2023,19(29):40-42.DOI:10.14004/j.cnki.ckt.2023.1512.
[3]覃琼花,徐百宁.基于微信小程序的农产品营销系统设计和实现[J].无线互联科技,2023,20(18):67-70.
[4]唐双林.基于Vue和SpringBoot架构的智能推荐农产品团购销售系统[D].重庆三峡学院,2023.DOI:10.27883/d.cnki.gcqsx.2023.000390.
[5]刘明欣,罗雅过.基于微信小程序的“农百汇”系统设计[J].信息与电脑(理论版),2023,35(01):26-29.
[6]黄岐桂,莫靖聪.互联网+背景下的农产品分销平台研究——以“惠农优果”微信小程序为例[J].中国市场,2022,(25):183-186.DOI:10.13939/j.cnki.zgsc.2022.25.183.
[7]Shaoying W ,Shuo Y ,Fen W .Construction of an Online Shopping Platform Based on DApp[J].International Journal of Distributed Systems and Technologies (IJDST),2022,13(4):1-12.
[8]Anthony F .Transnational Flow of Chinese and UK Fashion Discourse: Analyses of Digital Platforms and Online Shopping in China[J].Fashion Theory,2021,25(7):917-930.
[9]李坤艳,黄克斌,戴扬威,等.基于微信小程序的农产品电子商务平台开发[J].农村经济与科技,2021,32(19):174-176.
[10]李常宝.基于微信小程序的电子商城的设计与开发[J].吕梁教育学院学报,2021,38(03):133-136.
[11]梁紫依,陈玉洁,温家坤,等.微信小程序上农产品购买行为研究[J].现代商业,2021,(25):6-8.DOI:10.14097/j.cnki.5392/2021.25.002.
[12]胡杨林.基于微服务和小程序的电子商城设计与实现[D].西北大学,2021.DOI:10.27405/d.cnki.gxbdu.2021.000827.
[13]曹艳琴.基于微信公众平台的美妆商城小程序的设计与实现[J].信息与电脑(理论版),2021,33(05):121-123.
[14]丁嘉懿,陈志民,尹卓轩,等.基于微信小程序的农产品可溯源电商平台开发[J].南方农业,2021,15(04):71-74.DOI:10.19415/j.cnki.1673-890x.2021.04.017.
[15]陆建军.基于微信小程序的精准扶贫电商平台设计[J].现代信息科技,2020,4(14):87-89.DOI:10.19850/j.cnki.2096-4706.2020.14.026.
[16]肖飞.基于微信开发平台的农业电子商务平台的设计与实现[D].山东理工大学,2020.DOI:10.27276/d.cnki.gsdgc.2020.000346.
[17]傅伟,涂刚,张贤龙.基于微信小程序的电子商城设计与实现[J].电脑编程技巧与维护,2020,(03):60-62.DOI:10.16184/j.cnki.comprg.2020.03.022.
[18]钱丽丹,刘志文.基于微信小程序的农产品分享系统的设计与开发[J].南方农机,2020,51(05):23-24.
[19]郭学超.基于微信小程序的土特产商城开发[J].安徽电子信息职业技术学院学报,2019,18(06):6-11.
[20]洪运维,黄江涛,廖剑平.基于微信小程序的精准扶贫电商平台智慧管理[J].广西农学报,2019,34(06):45-49.
结束语
至此论文结束,感谢您的阅读。在此我要特别的感谢我的导师,虽然我在实习期间很忙,论文撰写的时候经常是停停改改,但是我的导师依旧十分的负责,时不时的询问我的任务进展情况,跟进我的论文进度,在指导老师的帮助下,我逐步完成了自己的论文和程序,从导师身上也学习到很多知识和经验,这些知识和经验令我受益匪浅。同时我也从导师身上看到了自己的不足,不论是在技术层面上还是在对待工作的态度上,导师如同明镜一般照出了我的缺点我的不足。此外,我还要感谢在我实习期间在论文和程序上帮助过我的同学和社会人士,此前我对于springboot方面的一些知识还不了解,是他们在我编写程序过程中给了我很多的启发和感想,也帮助了我对于程序的调试和检测。没有他们我是不能顺利完成本次毕业设计的。至此,我的毕业设计就花上了一个圆满的句号了。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~