SpringBoot助农农产品销售系统旨在通过利用SpringBoot框架开发一个便捷高效的农产品销售平台。该系统包括用户注册登录、商品浏览、购物车管理、订单生成、支付功能等模块。通过整合支付接口、地图定位、推荐系统等技术,提供给用户更好的购物体验。本文介绍了系统架构设计、功能模块划分、数据库设计以及前后端技术选型等关键要点,探讨了系统实现中的挑战和解决方案,并展望了未来的系统优化和拓展方向。希望本文能为开发人员在农产品销售系统的设计与实现过程中提供一定的参考和借鉴价值。
关键词: springboot;MySQL;农产品销售系统
abstract
SpringBoot The agricultural sales system aims to develop a convenient and efficient agricultural sales platform by using the SpringBoot framework. The system includes user registration and login, product browsing, shopping cart management, order generation, payment function and other modules. Through the integration of payment interface, map positioning, recommendation system and other technologies, to provide users with a better shopping experience. This paper introduces the key points of system architecture design, functional module division, database design and front and rear end technology selection, discusses the challenges and solutions in system implementation, and looks into the future system optimization and expansion direction. It is hoped that this paper can provide some reference and reference value for developers in the design and implementation process of agricultural products sales system.
Key words: springboot; MySQL; agricultural product sales system
目录
1 绪论
1.1 研究背景
随着互联网技术的发展和普及,电子商务已经在各个行业得到广泛应用,为消费者提供了更便捷、高效的购物体验。然而,在农产品销售领域,电子商务的应用相对较少,农产品销售仍然主要依靠中间商和传统的销售模式,导致农民的收益被大幅削减,同时也存在着信息不对称、价格波动大等问题。
为了解决这一问题,借助互联网平台建立农产品销售系统成为一种切实可行的方式。Springboot作为一种轻量级、快速开发的Java框架,具有高度灵活性和易用性,很适合用于构建农产品销售系统。通过Springboot框架开发的农产品销售系统,可以实现农产品信息的在线展示、交易的便捷进行、订单的管理以及配送等功能,为农民和消费者提供了一个便捷、高效的销售渠道。
1.2研究意义
本研究将为农产品销售领域的互联网应用提供一种新的思路和解决方案,促进农产品销售的现代化和规范化发展。通过构建基于Springboot的助农农产品销售系统,可以有效地改善农产品流通环节的效率,提升农产品的市场竞争力,促进农产品销售与农民收益的提高。
综上所述,本研究将在助农农产品销售系统的设计与实现方面做出一定的探索和实践,为推动农产品电子商务的发展和农民增收提供一定的参考和启示。
1.3研究现状
目前,越来越多的农产品销售系统开始采用Spring Boot作为后端技术框架。Spring Boot具有快速开发、易于部署以及丰富的生态系统等优势,能够帮助开发人员快速搭建出高性能的农产品销售系统。
在研究领域中,很多研究者开始关注利用Spring Boot技术来优化农产品销售系统的功能和性能。他们致力于提高系统的扩展性、稳定性和安全性,同时还关注用户体验和交互设计等方面的研究。
此外,一些研究也致力于结合其他技术,如微服务架构、Docker容器等,来进一步提升农产品销售系统的效率和可靠性。总的来说,Spring Boot在农产品销售系统研究中扮演着重要角色,为开发人员提供了强大的支持和解决方案。
2 农产品销售系统系统需求分析
系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的挖掘,如果分析的准确可以精准的解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。
2.1 可行性分析
系统可行行分析是对系统对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及操作层面的可行性上进行分析,如果三个层面度通过,我们则认为系统是比较可行的。
2.1.1 技术可行性分析
农产品销售系统系统设计与实现是一个基于Web的交易、管理平台,我们在实现这个系统所采用的技术方案是基于JAVA语言,采用的是比较流行的SpringBoot框架以及MYSQL数据库,在大学的学习中这两门课程都已经学过,而且自己也用这些技术开发过小的项目,在平时的课程设计以及作业也经常用到JAVA、SpringBoot和MYSQL,在技术上实现自己的自主开发是可行的。
2.1.2 经济可行性分析
开发本农产品销售系统系统的技术都是可以从网上直接免费下载,不用花一分钱,而且系统的源代码都是自己进行设计开发的,不需要成本,如果后期想要进行运营,只要把配置到服务器上,花费服务器的租赁费用,在使用中可以进行增加广告收益,因此在经济方面是可性的。
2.1.3 操作可行性分析
当下网络新时代,计算机已经得到了普及,多数人对计算机都比较的熟悉,知道如何使用它,当然也存在对计算机比较陌生的这一群体,也需要对其进行考虑。在进行农产品销售系统系统页面的设计的时候,考虑到使用人群,可能也存在对计算机比较陌生的人,所以,在页面的设计方面,设计的很是简单、简洁,布局明了,色调明朗,让无论是对计算机陌生还是对计算机熟悉的使用者,都可以使用自如,这也说明了该程序的操作方面非常可行。
2.2需求分析
本农产品销售系统系统的设计主要是针对三种用户进行使用,第一种是以普通用户使用,普通用户在进入系统后可以查看到系统中的所有内容,包括通知公告,留言反馈,产品商城,商城管理,如果想要交流或者购买,可以注册登录;第二种是商家用户,登录商城管理,产品商城,订单列表,订单配送等;第三种则是管理员,是系统的管理者,管理员对系统中的系统用户,系统管理,留言管理,通知公告管理,商城管理、订单进行整体把控。
2.3 功能需求分析
普通用户:
(1)首页:展示农产品销售系统的最新信息、热门产品、推荐内容等,为用户提供整体导航和信息浏览功能。
(2)通知公告:系统管理员可以发布通知和公告,用户可以查看重要信息和系统更新。
(3)留言反馈:用户可以向系统管理员提出问题、建议或意见,增强系统用户参与和互动。
(4)产品商城:展示各类农产品的详细信息、价格、图片等,并支持用户查看、筛选、加入购物车等操作,以便用户选购商品。
(5)商城管理:商城管理员可以管理商品信息、库存、价格等,功能包括商品上架、下架、编辑等操作。
(6)个人首页:用户个人信息展示页面,包括个人资料、订单记录、收藏夹等,方便用户管理个人信息和订单。
(7)订单配送:用户可以查看订单状态、物流信息,确保订单的顺利配送。
(8)收藏:用户可以收藏喜欢的商品,便于下次查看和购买。
商家模块:
(1)商城管理:商家可以管理商品信息,包括添加新商品、编辑商品信息、设置商品价格、管理库存等功能,确保商城中的商品信息准确完整。
(2)产品商城:商家可以查看系统中所有的农产品信息,包括价格、库存、销量等,可以在商城中搜索和筛选商品,方便商家了解市场情况并做出相应的决策。
(3)订单列表:商家可以查看所有的订单信息,包括订单状态、订单金额、下单时间等,方便商家统计销售数据和进行订单管理。
(4)订单配送:商家可以管理订单配送信息,可以更新订单的发货状态、填写物流信息,确保订单能及时准确地送达给客户。
管理员:
(1)系统用户管理:管理员可以管理系统用户的信息,包括添加新用户、编辑用户信息、设置用户权限等功能,确保系统安全和用户管理方便。
(2)系统管理:管理员可以管理系统的配置信息,包括数据库连接、系统参数设置、日志管理等,保证系统正常运行且方便管理员对系统进行维护。
(3)留言管理:管理员可以查看用户留言信息,回复用户留言、删除不当留言等,确保用户留言的及时响应和管理。
(4)通知公告管理:管理员可以发布系统通知和公告,包括活动通知、政策公告等,方便管理员与用户进行沟通和信息发布。
(5)商城管理:管理员可以管理商城的商品信息,包括添加新商品、编辑商品信息、设置商品价格、管理库存等功能,确保商城中的商品信息准确完整。
2.4 非功能性需求分析
系统的非功能需求方面主要是从系统的性能、可用性、安全性、可扩展性、可维护性、可测试性、可靠性、用户友好性等方面进行分析:
(1)性能:系统应能够处理大量并发用户请求,确保快速响应和稳定性,在高峰期仍能保持良好的性能表现。
(2)可用性:系统应具备高可用性,保证农产品销售服务的持续性和稳定性,最大限度地减少系统宕机时间。
(3)安全性:系统应具备良好的安全性能,包括用户身份认证、数据加密和防御性安全,确保用户数据和交易信息的保密性和完整性。
(4)可扩展性:系统应具备良好的可扩展性,能够根据需求快速扩展和缩减系统规模,以适应不同规模的农产品销售业务。
(5)可维护性:系统应易于维护和管理,包括清晰的代码结构、文档化的代码注释和易于理解的代码逻辑,以便于后续的维护和升级。
(6)可测试性:系统应易于测试,具备良好的测试覆盖率和模块化设计,以便于进行单元测试、集成测试和系统测试。
(7)可靠性:系统应具备良好的可靠性,避免因运行错误而导致系统崩溃或数据丢失,能够正确处理异常情况并进行恢复。
(8)用户友好性:系统应具备良好的用户界面设计和用户体验,确保用户可以轻松使用系统进行农产品购买和交易操作。
3 农产品销售系统系统概要设计
3.1系统体系结构
本农产品销售系统系统总体的体系结构图分为前端用户体系结构和后端管理员体系结构,其具体结构图如图3-1和图3-2所示
3.1.1前端用户功能结构图设计
图3-2 农产品销售系统系统前端功能结构图
3.2.2后端管理员功能结构图设计
图3-2 农产品销售系统系统后端功能结构图
3.2总体功设计
本农产品销售系统系统分为三种用户,前台普通用户,前台商家和后台管理员,前台普通用户浏览,前台用户评论、删除、购买、交流,管理员对系统管理、用户管理、订单管理。农产品销售系统系统的总体用例图如图3-3所示
图3-3 农产品销售系统系统功能总体用例图
4 农产品销售系统系统数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
4.1 数据库概念结构设计
下面是整个农产品销售系统系统中主要的数据库表总E-R实体关系图。
图4-1 农产品销售系统系统总E-R关系图
4.2 数据库逻辑结构设计
在数据库表中我们会看到系统的表名、主键、外键等信息,我们通过数据库表的主键、外键把每个表关联起来,然后在界面中展示,本农产品销售系统系统的主要的数据库表如下:
表access_token (登陆访问时长)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
表address (收货地址:)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 默认判断 |
表auth (用户权限管理)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表cart (购物车)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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]用于产品规格描述 |
表collect (收藏)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表comment (评论)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表goods (商品信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 添加人 |
表goods_type (商品类型)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
表hits (用户点击)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表logistics_delivery (物流配送)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间 |
表merchant_users (商家用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | merchant_users_id | int | 10 | 0 | N | Y | 商家用户ID | |
2 | merchant_name | varchar | 64 | 0 | Y | N | 商家名称 | |
3 | merchant_phone_number | varchar | 16 | 0 | Y | N | 商家电话 | |
4 | merchant_address | varchar | 64 | 0 | Y | N | 商家地址 | |
5 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表message (留言板)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | message_id | int | 10 | 0 | N | Y | 留言板ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 用户ID: |
3 | title | varchar | 64 | 0 | Y | N | 标题: | |
4 | content | longtext | 2147483647 | 0 | N | N | 内容: | |
5 | nickname | varchar | 32 | 0 | N | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像: | |
7 | | varchar | 125 | 0 | Y | N | 留言者邮箱 | |
8 | phone | varchar | 11 | 0 | Y | N | 留言者手机号码 | |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
11 | reply | longtext | 2147483647 | 0 | Y | N | 回复 | |
12 | reply_state | tinyint | 4 | 0 | Y | N | 0 | 回复状态 |
表notice (公告)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表order (订单)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 折扣 |
表praise (点赞)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
表product_mall (产品商城)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | product_mall_id | int | 10 | 0 | N | Y | 产品商城ID | |
2 | product_specifications | varchar | 64 | 0 | Y | N | 产品规格 | |
3 | product_source | varchar | 64 | 0 | Y | N | 产品来源 | |
4 | merchant_users | int | 10 | 0 | Y | N | 0 | 商家用户 |
5 | merchant_name | varchar | 64 | 0 | Y | N | 商家名称 | |
6 | merchant_phone_number | varchar | 64 | 0 | Y | N | 商家电话 | |
7 | merchant_address | varchar | 64 | 0 | Y | N | 商家地址 | |
8 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
9 | cart_title | varchar | 125 | 0 | Y | N | 标题:[0,125]用于产品html的标签中 | |
10 | cart_img | text | 65535 | 0 | Y | N | 封面图:用于显示于产品列表页 | |
11 | cart_description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
12 | cart_price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
13 | cart_price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
14 | cart_inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
15 | cart_type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
16 | cart_content | longtext | 2147483647 | 0 | Y | N | 正文:产品的主体内容 | |
17 | cart_img_1 | text | 65535 | 0 | Y | N | 主图1: | |
18 | cart_img_2 | text | 65535 | 0 | Y | N | 主图2: | |
19 | cart_img_3 | text | 65535 | 0 | Y | N | 主图3: | |
20 | cart_img_4 | text | 65535 | 0 | Y | N | 主图4: | |
21 | cart_img_5 | text | 65535 | 0 | Y | N | 主图5: | |
22 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
23 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表regular_users (普通用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | mobile_phone_number | varchar | 16 | 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 | 更新时间 |
表slides (轮播图)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表upload (文件上传)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
表user (用户账户:用于保存用户登录信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
表user_group (用户组:用于用户前端身份和鉴权)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 农产品销售系统系统详细设计与实现
5.1前台用户功能模块
5.1.1 前台首页界面
普通用户或者用户进入系统后可以查看系统的信息,包含了程序的标题,导航栏,轮播图,商品信息等,其主界面展示如下图5-1所示。
图5-1 前台首页界面图
5.1.2注册界面
普通用户可以查看系统信息,也有注册成为用户的权限。其用注册流程图如图5-2所示,注册界面展示如下图5-3所示。
图5-2注册流程图
图5-3用户注册界面图
5.1.3登录界面
当用户注册成功以后就成为了买家用户,买家用户可以通过前台的登录页面登录到系统当中,用户登录流程如图5-4所示,登录界面如下图5-5所示。
图5-4 登录流程图
图5-5登录界面图
5.1.4 留言反馈界面
留言反馈:用户可以向系统管理员提出问题、建议或意见,增强系统用户参与和互动。界面如下图5-6所示。
图5-6留言反馈界面图
5.1.5 产品商城详情界面
产品商城:展示各类农产品的详细信息、价格、图片等,并支持用户查看、筛选、加入购物车等操作,以便用户选购商品。如图5-8所示。
图5-7 产品商城详情界面图
图5-8加入购物车流程图
5.1.7我的订单界面
买家用户可以查看到自己购买的商品,查看订单状态、删除,我的订单界面如下图5-11所示。
图5-9订单界面图
5.2商家功能模块
5.2.1 产品商城界面
产品商城:商家可以查看系统中所有的农产品信息,包括价格、库存、销量等,可以在商城中搜索和筛选商品,方便商家了解市场情况并做出相应的决策。界面如下图5-12所
示。
图5-10产品商城理界面图
5.3管理员功能模块
5.3.1系统用户管理界面
系统用户管理:管理员可以管理系统用户的信息,包括添加新用户、编辑用户信息、设置用户权限等功能,确保系统安全和用户管理方便。界面如下图5-13所示。
图5-11系统用户管理界面图
5.3.2系统管理界面
系统管理:管理员可以管理系统的配置信息,包括数据库连接、系统参数设置、日志管理等,保证系统正常运行且方便管理员对系统进行维护。界面如下图5-14所示。
图5-12系统管理界面图
5.3.3留言反馈界面
留言管理:管理员可以查看用户留言信息,回复用户留言、删除不当留言等,确保用户留言的及时响应和管理。如下图5-13所示。
图5-14留言反馈界面图
5.2.5商城管理界面
商城管理:管理员可以管理商城的商品信息,包括添加新商品、编辑商品信息、设置商品价格、管理库存等功能,确保商城中的商品信息准确完整。如下图5-16所示。
图5-15商城管理界面图
6系统的测试
6.1测试的目的
一个系统测试的目的就是检验系统在真正的工作环境、条件下是不是能够正常运行,各种功能能不能符合设计的要求,通过测试发现系统当中存在的一些潜在的错误,然后对系统进行改进,使得系统最终以完美的形式展现给用户,提高用户使用过程中的体验度,真正达到项目的实际使用目的。
6.2 系统测试用例
系统测试包括:管理员登录功能测试、商城管理查看功能测试、商品添加功能测试、加入购物车购买功能测试,如表6-1、6-2、6-3、6-4所示:
表6-1 管理员登录功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
登录模块测试 | 登录成功的情况 | 管理员可以通过浏览器进入到农产品销售系统系统后台登录界面,输入用户名:admin和密码admin后,点击“登录”按钮。 | 成功登录到管理员管理的界面 | 正确 |
登录模块测试 | 登录失败的情况 | 管理员可以通过浏览器进入到农产品销售系统系统后台登录界面,输入用户名:admin和密码111后,点击“登录”按钮。 | 系统提示“用户名和密码不匹配” | 正确 |
商城管理查看功能测试:
表6-2 商城管理查看功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
查询商城管理信息功能测试 | 查询成功的情况 | 用户在导航栏中点击“商城管理”,输入关键词查询商品,输入的商品在系统中存在,显示查询商品信息 | 查询成功 | 正确 |
商城管理中商品添加界面测试:
表6-3 管理员添加商品界面测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
商品添加模块测试 | 商品添加成功的情况 | 在“商城管理”菜单中点击“商城管理”会显示出所有的商品信息,点击“添加”,输入商品信息,输入正确的信息后,点击“提交”按钮。 | 提示添加成功 | 正确 |
商品添加模块测试 | 商品添加失败的情况 | 在“商城管理”菜单中点击“商城管理”会显示出所有的商品信息,点击“添加”,不输入标题,其他信息正常填写后,点击“提交”按钮。 | 提示“添加失败,标题不能为空” | 正确 |
加入购物车购买功能测试:
表6-4 加入购物车购买功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
加入购物车购买功能测试 | 购买的情况 | 用户在商城管理的商品详情页面,点击“加入购物车”,然后在“我的购物车”界面,点击“购买”按钮,进行付款。 | 加入购物车购买成功 | 正确 |
6.3 系统测试结果
本次开发的系统是一个农产品销售系统、购买的系统,主要功能就是实现用户的在线购买,通过对管理员登录、商品查询、商品添加、加入购物车购买这几个方面的测试可以看出系统的基本可以实现用户对商品购买的功能,而且在测试的过程中也对界面的展示进行了查看,发现界面并没有出现扭曲、混乱等情况,能够满足用户的需求,系统运行良好,是可以进行投入使用的。
结论
经过了几个月的努力,本农产品销售系统系统终于完成了,虽然在校期间也开发过一些小型的系统,但是都是在老师的讲解以及辅助下完成的,没有经历过开发之前的需求分析、系统分析,都是直接从系统设计开始的,因此本次开发的农产品销售系统系统对我意义重大。
在开发系统最初,首先对用户购买农产品方面的需求进行调研,了解对于用户以及商家来说,开发的系统需要实现哪些功能才能满足使用者的需求,对需求进行分析;其次选择自己比较熟悉的JAVA语言,MYSQL数据库,使用SpringBoot框架来设计开发,通过知网库、学校图书馆等地方查阅、学习这些技术,掌握编程的思想和方法,然后就是对系统进行分析,从系统开发的可行性、系统实现的功能、系统应该具备的性能以及系统的操作流程方面,对系统进行全方位的分析,确定系统的最终功能,从而对系统的功能和数据库进行设计,最后就是系统的实现以及对实现的功能的测试,确保系统能够稳定的运行。
在开发的过程中暴露出了自己的很多问题,比如前期的准备还是不够充分,不能完全掌握其操作流程;在开发过程中对JAVA的编程掌握的还不够熟练以及对系统的环境配置上还存在很多问题,经常会导致项目在运行的时候出现错误。学无止境,通过一边查阅资料一边向导师请教,慢慢的解决了这些问题,在以后的学习、工作者我会更加严谨,通过本项目的开发,我将会受益终生!
参考文献
[1]Dequan Y ,Yuying Z ,Xiuli X , et al.Product Form Solution of a Queuing-Inventory System with Lost Sales and Server Vacation[J].Journal of Systems Science and Complexity,2024,37(2):729-758.
[2]张菁,石天恩,李秋,等.基于大数据分析的农产品销售预测系统设计与实现[J].辽宁师范大学学报(自然科学版),2024,47(01):50-58.
[3]吴温.让“石家庄特产”搭上时代快车[N].石家庄日报,2024-01-16(001).DOI:10.28728/n.cnki.nsjzb.2024.000145.
[4]TD SYNNEX launches GAPP initiative to support partners in driving B2B sales of Google Pixel; Gives partners access to a broad Google ecosystem of add-on products plus the tools and resources to drive activity and sales to business customers[J].M2 Presswire,2024,
[5]Bo T ,Yuan K ,Ge Y .Modeling and simulating the multi-generation product sales, production and inventory system within the context of quality upgrades.[J].PloS one,2024,19(4):e0299944-e0299944.
[6]AngioDynamics Updates on Sale of Dialysis Product Portfolio and BioSentry Product to Merit Medical Systems[J].Wireless News,2023,
[7]AngioDynamics Updates on Sale of Dialysis Product Portfolio and BioSentry Product to Merit Medical Systems[J].Manufacturing Close - Up,2023,
[8]Li R ,Xiao L ,Yao D .Dynamic pricing and production control in a two‐item make‐to‐stock system with flexible dual sourcing and lost sales[J].Production and Operations Management,2023,32(10):3119-3137.
[9]范斐斐,何子怡,张越,等.基于PHP的农产品销售系统的设计与实现[J].无线互联科技,2023,20(08):91-94.
[10]王慧.宁夏特色农产品销售系统设计与实现[J].软件,2023,44(03):150-153.
[11]唐双林.基于Vue和SpringBoot架构的智能推荐农产品团购销售系统[D].重庆三峡学院,2023.DOI:10.27883/d.cnki.gcqsx.2023.000390.
[12]臧玑珣,徐鑫航.基于网络嵌入的农产品销售推荐系统[J].计算机技术与发展,2022,32(10):209-214.
[13]张怡欣,桂心颜,解潇然,等.“云种植”智慧农业App设计与实现[J].乡村科技,2022,13(18):155-158.DOI:10.19345/j.cnki.1674-7909.2022.18.033.
[14]葛树杨.疫情环境下农产品交易系统的设计与实现[D].南京林业大学,2022.DOI:10.27242/d.cnki.gnjlu.2022.000531.
[15]金沛璇.基于网络表示学习的农产品供求对接推荐系统的设计与实现[D].西安电子科技大学,2022.DOI:10.27389/d.cnki.gxadu.2022.001736.
[16]陈瑞瑞.基于关联规则Apriori算法的农产品销售管理系统设计[J].信息与电脑(理论版),2022,34(10):94-96.
[17]钱紫薇.YS农产品公司营销保障措施的研究[J].营销界,2022,(09):35-37.
[18]邓林.基于Java的农产品销售系统的研究与设计[J].电脑知识与技术,2022,18(12):43-45.DOI:10.14004/j.cnki.ckt.2022.0625.
[19]贺超云.“绿丰模式”探索为农服务新路子[J].湖南农业,2022,(02):41.
[20]陈偶娣.农产品销售电子商务系统的建立与应用研究——评《网上销售农产品》[J].粮食与油脂,2022,35(01):167.
致谢
“致谢”意味着论文的结束,也意味着自己的毕业设计顺利完成,同时也代表了自己的大学生涯即将结束,我即将要离开自己敬爱的老师和亲爱的同学们,在这里我首先要感谢的就是所有的老师,“春满江山绿满园,桃李争春露笑颜,东西南北春常在,唯有师恩留心间”,他们无论在我的学业还是在我的生活上付出了所有,对我谆谆教诲;其次我要感谢我的指导老师,他在我的整个毕业设计当中起着引导作用,每当我有困难的时候,他总会第一时间帮助我,引导我进行解决问题,而不是直接告诉我答案,“授人以鱼不如授人以渔”,指导老师的这种做法让我受益终生,同时我也从指导老师身上学习到了许多的开发技巧以及检验,这对我今后的开发起着十分重要的作用;再次,我需要感谢我的同学、室友,他们不仅仅在毕业设计上给我许多帮助意见,在大学同窗四年,他们给过我的帮助太多了,我对他们有太多的不舍,无法用言语表示,我相信在以后的人生道路上只要想到他们,我心里就会很温暖,这种友情是任何感情替代不了的;最后我还要感谢家人,感谢自己,感谢家人对我的支持,感谢自己在学业上的坚持,我相信我以后的道路会越来越好。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~