基于移动端的助农电商系统的设计与实现08655

news2024/11/17 0:03:06

基于移动端的助农电商系统的设计与实现

XXX专业XXXX班:XXX   指导教师:XXX

摘要  近年来,电子商务的快速发展引起了行业和学术界的高度关注。基于移动端的助农电商系统旨在为用户提供一个简单、高效、便捷的农产品购物体验,它不仅要求用户清晰地查看所需信息,而且还要求界面设计精美,使得功能与页面完美融合,从而提升系统的可操作性。因此,我们需要深入研究信息内容,并利用技术手段来完善基于移动端的助农电商系统的设计与实现

首先,论文分析了助农电商系统的需求和功能,包括前台的首页农产商城、购物车、农业资讯和后台的系统用户、农业知识管理、农事提醒管理、系统管理、通知公告管理、资源管理、商城管理等。该系统旨在提供一个便捷的农产品电商小程序,供用户购买扶贫助农的农产品。然后,系统基于SpringBoot框架,采用Java作为主要开发语言,使用MySQL数据库进行数据存储,并结合前端技术实现了用户界面的设计。通过该系统,用户可以浏览农产品信息、下单购买、管理个人订单、地址等功能。本文详细描述了系统的功能需求、数据库设计、系统架构和主要模块的实现过程。通过测试和验证,该系统达到了预期的目标,为扶贫助农的农产品线上销售提供了有效的支持。

关键词  微信小程序;Springboot;助农电商系统 ;MySQL

Design and implementation of a mobile based agricultural e-commerce system

Major: xxx  Grade: xxx  Class: xx  Student: xxx  

Supervisor: xxx 

Abstract  In recent years, the rapid development of e-commerce has attracted high attention from the industry and academia. The mobile based agricultural e-commerce system aims to provide users with a simple, efficient, and convenient shopping experience for agricultural products. It not only requires users to clearly view the required information, but also requires exquisite interface design to perfectly integrate functions and pages, thereby improving the operability of the system. Therefore, we need to conduct in-depth research on information content and utilize technological means to improve the design and implementation of a mobile based agricultural e-commerce system.

Firstly, the paper analyzes the requirements and functions of the agricultural e-commerce system, including the front-end homepage, agricultural product mall, shopping cart, agricultural information and back-end system users, agricultural knowledge management, agricultural reminder management, system management, notification and announcement management, resource management, mall management, etc. The system aims to provide a convenient agricultural product e-commerce mini program for users to purchase poverty alleviation and agricultural products. Then, based on the SpringBoot framework, the system used Java as the main development language, MySQL database for data storage, and combined with front-end technology to achieve user interface design. Through this system, users can browse agricultural product information, place orders for purchases, manage personal orders, address, and other functions. This article provides a detailed description of the system's functional requirements, database design, system architecture, and the implementation process of the main modules. Through testing and verification, the system has achieved the expected goals and provided effective support for online sales of agricultural products for poverty alleviation and agricultural assistance.

Key words  WeChat Mini Program; Springboot; Agricultural e-commerce system; MySQL

目录

1 绪论

1.1 研究背景

1.2研究意义

1.3研究现状

1.4论文结构与章节安排

2 相关技术介绍

2.1 微信开发者工具

2.2 小程序框架以及目录结构介绍

2.3  JAVA技术

2.4  Springboot框架

3 系统分析设计

3.1 可行性分析

3.1.1 技术可行性分析

3.1.2 经济可行性分析

3.1.3 操作可行性分析

3.2 系统流程分析

3.2.1 用户登录流程

3.2.2 信息添加流程

3.2.3 信息删除流程

3.3 功能需求分析

3.4 非功能性需求分析

3.5系统角色用例分析

3.5.1系统前台用户用例

3.5.2系统后端用例

4 系统概要设计

4.1开发流程设计

4.2系统功能结构设计

4.3数据库概念结构设计

4.4数据库逻辑结构设计

5 系统的实现

5.1前台用户功能模块

5.1.1 前台首页界面

5.1.2注册界面

5.1.3登录界面

5.1.4 农业资讯界面

5.1.5 农产商城详情界面

5.1.6购物车管理界面

5.1.7订单管理界面

5.2后台功能模块

5.2.1 农民电商用户管理界面

5.2.2 系统用户界面

5.2.3 农业知识管理界面

5.2.4 系统管理界面

5.2.5 农产商城管理界面

5.2.6 分类列表界面

6系统的测试

6.1测试的目的

6.2 系统测试用例

6.3 系统测试结果

结论

参考文献

致谢

1 绪论

1.1 研究背景

农业是我国的基础产业,也是亿万农民的重要生计来源。然而,在现代社会中,农民与城市居民之间的差距逐渐扩大,农村地区的贫困问题也日益突出。解决农村贫困问题,促进农村经济的发展和农民生活水平的提高,是当前社会的重要任务。随着互联网技术的迅速发展,农产品电子商务平台逐渐兴起。通过互联网平台,买家可以直接与农民进行交流和购买农产品,农民可以直接将自己的农产品销售给更广泛的消费者群体。这种形式的农产品销售模式为农民提供了更多的经济机会,同时也能够方便消费者购买优质的农产品。因此,在这种网络大环境下,选择了针对湖北地区的助农电商系统这一课题作为本次的毕业设计。

在经过多方面的调查,农产品助农行业目前还没有专门的电子商务商城平台,人们在购买农产品的时候,还是基于传统的去市场或集市摆摊的方式来选购,太浪费时间和精力了,甚至让人头疼,对于新一代年轻人,这种形式,显然已经无法满足他们的要求了,他们更趋向于网络这种选购方式,节约了时间,一是不用出门,在家就能轻松的选购,二是可根据农产品种类快速查询需要的农产品,不仅快速,在农产品展示方面也很全面,图文并茂,完全不输实体店选购,所以,从以上几点能看出,构建本助农电商系统对用户来说好处颇多,用户乐于使用,值得开发。而对于农民商家来说,不仅能够减少开支,还能提高销量,促进农民商家的发展,助农电商系统是另一个销售平台,让全部各地要想购买农产品的用户都能通过这个网站进行选购,而不仅仅局限于当地销售,客户群扩大了,销售量肯定也会提高。所以,对农民商家来说,这个助农电商系统的开发也是很有必要的。

1.2研究意义

设计和实现基于移动端的助农电商系统,旨在解决上述问题,提高农产品的销售质量和数量,促进农民的收入增长,真正实现农产品销售与助农精准对接。具体研究意义包括以下几个方面:

1解决信息不对称问题:通过基于移动端的助农电商系统,农民可以将自己的农产品信息及时发布,消费者可以直接获取到农产品的相关信息。这样可以避免信息不对称问题,提高买卖双方的信息透明度。

2提高销售渠道的多样性:基于移动端的助农电商系统可以提供多种销售渠道,包括直接销售给消费者、批发给商户、供应给餐饮业等。这样可以帮助农民更好地拓展市场,提高销量和收入水平。

3优化物流配送:基于移动端的助农电商系统可以提供优化的物流配送服务,保证农产品能够及时准确地送达消费者手中。这样可以提高消费者的购买体验,增加信任度,促进再次购买。

4引入第三方评价机制:基于移动端的助农电商系统可以引入评价机制,消费者可以对购买的农产品进行评价和反馈。这样可以提供农产品质量的参考和改进意见,促进农民提高产品品质和服务水平。

5探索其他增值服务:基于移动端的助农电商系统可以进一步探索其他增值服务,如生鲜配送服务、餐饮配套服务等,进一步提高农产品的附加值和市场竞争力。

综上所述,研究和开发一个高效、安全、用户友好的基于移动端的助农电商系统具有重要意义。通过采用SpringBoot等现代化的开发框架和技术,可以实现系统的快速开发和部署,并提供稳定可靠的功能。同时,结合电子商务的最佳实践和用户需求,设计一个符合用户期望的界面和功能,提高用户的购物体验和满意度

1.3研究现状

随着信息技术的快速发展,互联网的普及,让人们的生活发生了翻天覆地的变化,其中影响人们最深的便是互联网购物,以前人们购物,都是亲自到商场和超市来选购,在众多商品中一一挑选,挑选结束后到收银台交钱结算,然后再拎着大包小包的商品回家,但是,随着互联网+模式的出现,人们购物不再仅仅依附于去实体店来购买,还可以在家,利用电脑或者手机来进入专门的购物商城来选购自己需要的商品,在购物商城可以通过商品的类别或者商品的名称来快速的筛选出符合自己需求的商品,然后可以在线来支付,支付后只需要在家耐心等待几天,便会由快递员送货上门,不用自己大包小包的领回家,这种网购模式在当下社会工作节奏飞快的今天,已经成为了年轻人购物的首选,备受欢迎。

现在电子商务网购模式已经非常普遍,也支撑着社会经济的发展,电商平台有B2B模式(商家和商家之间的)、B2C模式(商家和用户之间的)、C2C模式(用户和用户之间的),在这三种电商模式中,人们日常生活中使用的最多的便是B2C这一电商模式,在众多B2C模式的电商平台里面,最为常见的有淘宝、京东、拼多多等,而且近几年新出现的抖音平台,从短视频的发布、分享,也渐渐的融入了电商的功能,直播带货现在也非常火热,让人们能够更直观的看到商品,也非常受人们的喜欢,一个个成功电商平台的出现,也正说明了人们对电商平台的需求,电子商务还有很大的发展空间,有待进一步的突破。

1.4论文结构与章节安排

本次写作的论文,在结构方面主要分为七大部分,每一部分都必不可少,共同组合形成一个完好的论文结构,具体的安排列出如下。

绪论部分,该部分讲述的是助农电商系统的开发背景,明确开发的意义以及系统的研究动态,并对系统的整个章节安排进行介绍。

系统开发环境介绍,该部分讲述的是开发助农电商系统所使用的技术简介、数据库概念和特点、编码工具、建模工具等。

系统分析部分,该部分首先从可行性入手进行分析,明确程序开发可行后,进而对程序的功能以及姓名需求进行分析。

系统概要设计,对系统前后台的功能分别进行设计,然后完成系统的总体功能以及各个子模块的设计。系统数据库的设计,对系统的数据库实体以及数据库表进行设计

系统的实现部分,对系统每一角色主要实现的功能的页面来进行展示一下。

系统测试部分,介绍测试的测试目的,用例,完成对程序测试工作,让投入运行的程序减少出错的几率,力求最好。

总结部分,此刻所有的工作都已经完成了,在此进行总结,展望。

2 相关技术介绍

2.1 微信开发者工具

微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试。

根据用户的需求,我们将采用不同的屏幕大小来制作小程序。

在完成了视图布置之后,可以通过执行编辑功能,快速更改当前的视图界面。

控制台:方便调试打印输出信息。

将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。

通过查看资源文件,我们可以快速地调整相关项目的文件目录,从而实现断点调试。

使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。

本地数据存储显示的是本地存储的数据。

通过使用子父层级结构,我们可以更容易地进行视图调试。

微信的代码体积应该保持在2M 以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的后台配置服务器域名。

微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。

2.2 小程序框架以及目录结构介绍

这款微信小程序的设计旨在帮助用户快速、便捷地创建出一款拥有完全独特特色的应用。它由一套完善的框架结构,将用户界面、操作界面、功能界面等多种功能完美结合,使用户只需要一点点的操作,就能轻松实现微信小程序的创建。框架的核心功能是一个快速的数据绑定机制,它能够轻松地将用户的信息和界面进行一致性的管理。它不仅支持对用户信息的实时监控,还能够根据用户的需求,实现对界面的快速调整和优化,从而使用户能够轻松地构建强大的微信小程序。

2.3  JAVA技术

Java语言在计算机的程序应用过程当中,属于非常重要的一个应用软件,因为它的性能比较高,而且能够应用在多重领域当中,因此该程序在计算机的软件程序应用当中的范围相对来说是比较广泛的。而从专业的技术角度来说,Java程序的应用的实用性也是非常强的,这是因为它与传统的C语言或C++相比没有太大的基本结构的变化,也就是说它的语法结构是相对单一,而且具有稳定的特性,还有更重要的一点是Java程序语言的基本参考对象就是C语言,所以他的程序编写并不是很复杂,而且还能够起到优化工作效率提升系统设计本身的基础功能的作用,因此他也就受到了非常广泛的程序员们的青睐。

在此次进行系统设计开发研究的过程当中,还发现Java程序语言之所以能够得到市场上更多用户的好评和青睐,其根本原因在于他能够具备各种语言的自身独特优点的展现,也就是说它的兼容性是常强的。因此,我们因此我们可以说在任何一个程序的开发过程当中,Java语言程序的应用是必不可少的,它他在程序员进行改动的时候,哪怕是一个程序字母的改动,都可以形成一种特定的程序,这是 Java程序,非常独特的另一个优点。不仅如此,Java源程序的可移植性也是非常大,而且它的安全系数很高,能够通过不同方式进行移植到其他程序当中,而且可以兼容不同程序的系统,在运行的过程当中,其安全系数也是非常强的,能够确保用户在使用网络的过程当中去确保网络的安全,而正是基于这样的可移植性,为程序员节约了很多的系统语言程序的开发设计的时间,这是非常难得的一种自有优势

2.4  Springboot框架

Spring框架是一个由SpringBoot公司发布的开放式框架,旨在通过其可扩展的特性来支持多种不同的编码方式。尽管Spring框架不会影响任何特定的编码方式,但其出色的性价比和可扩展性,已经成为EJB(EnterpriseSpringBootBeans)框架的重要组成部分,并且一直得到越来越多的人的青睐。Spring框架不仅可以有效地支撑开发,而且还可以充分利用其独有的控制反转功能,以及支撑多种持久性技术,从而将托管对象的生命周期变得更加容易,并且可以支撑声明性的事务处理,还可以支撑多种Web框架,从而有效地推动开发。

Spring框架拥有强大的IOC功能,可以轻松地实现SpringBoot对象的调度与操作,从而更好地支持项目的运行。此外,Spring还支持将SpringBoot对象的生命周期进行可视化,以实现更加灵活的调度与操作。Spring框架提供了一种新的、高效的容器设计工具,它能够根据XML文件和AOP注解的指引,从多个源中提取和组织相应的参数,从而实现多种功能。此外,它还提供了一种面向服务的框架,它能够根据用户的需求,自动调整参数,从而提高系统的效率和性能。Spring框架的AOP框架具有强大的功能,可以满足各种复杂的需求[10]。尽管AspectJ框架的性能不及其他框架,但是Spring AOP的出色表现使其在各种应用场景中都具有出色的表现,例如:在事务处理、远程控制、网络安全、数据共享、文件共享、网络安全协议、网络安全协议。

SpringBoot的事务处理框架提供了一种灵活的方式,可以将不同的内容、不同的时间段、不同的类型的数据进行处理,并且可以将这些处理结果存储到一起。此外,Spring还提供了一系列的事务模型。Spring的事务框架提供了一种灵活的方式,它允许用户根据需要调整事务的类型,例如XML、SpringBoot等,同时还支持快速的消息传输、缓冲等特性,从而有效地帮助开发者处理日益增长的数据需求。这款应用程序拥有强大的功能,能够兼容各种常见的数据处理框架,包括SpringBoot、iBATS/MyBATIs、Hibernate、SpringBoot)数据对象(JDO)、Apache OJB、Apache Cayne等,并能够将其与Spring的事务处理功能相结合,从而实现更加高效的数据处理。SpringMVC最初的目的是要替代StrutsWeb框架,因此,开发者决定将其与传统的web页面框架进行改造,使其能更好地支持用户的访问。这样,SpringMVC就能更好地支持用户的需求,从而提高web页面的性能

3 系统分析设计

3.1 可行性分析

可行性分析是系统分析的第一步,通过可行性分析我们可以得出系统是不是值得开发,如果系统的开发是不可信的,那么就没有必要再进行下面的操作,对于本助农电商系统在可行性方面进行了技术、经济以及操作的分析。

3.1.1 技术可行性分析

基于移动端的助农电商系统在技术上采用的是Java语言、基于Browser/Server模式,前台使用了Vue.js、HTML、CSS等技术,后台使用了Springboot框架结合MySQL数据库,这些技术在校期间都已经学习过,而且用这些技术开发过一些小的系统,同时在实际开发中Java功能强大被普通应用,因此开发技术是没有问题的。

3.1.2 经济可行性分析

开发助农电商系统并不需要投入太多,开发工具、服务器、数据库等,都可以通过网络搜索、下载、安装,只需要一台普通的计算机就可以完成操作,而且在系统功能规划上都是通过问卷调查了解用户需求,通过百度、知网库、学校图书馆查阅相关系统,了解它们对系统具体实现的功能需求,然后进行设计开发,不存在任何开销,因此系统的开发在经济方面是可行的。

3.1.3 操作可行性分析

助农电商系统的在开发的时候充分了解用户群体,对于使用智能机不熟练的用户也进行考虑在内,在小程序的开发中首页有醒目的导航栏,使得即使没有使用过小程序点餐的用户,也可以根据导航栏的提示进行操作,非常方便,因此系统在操作上是可行的。

3.2 系统流程分析

3.2.1 用户登录流程

第一步,为了保证系统的安全性,用户需要在登录窗口中输入自己的个人信息,并确保信息准确无误。如果输入的信息不正确,将会弹出提示框,导致用户登录失败,需要重新输入,如图3-1所示。

图3-1登录操作流程图

3.2.2 信息添加流程

基于移动端的助农电商系统可以实现快速、准确地收集和处理各种信息,而且在使用过程中,只有在按照指定的界面和指定的参考文献,才能够正确地获取和处理信息,而若信息未能满足预期,就会被退出第一步,并且在第二步中,还会继续检查信息的准确性,以确保最终的结果能够满足预期的目标。

图3-2 信息添加流程图

3.2.3 信息删除流程

无论是何种用户角色,只要进入了不正常的系统操作界面,就可以使用不同的信息内容来进行操作。当用户尝试删除系统中的数据时,必须先ACK这些数据是否已经被删除,如果没有,就应该按照图3-3的指示进行操作,以免影响系统的正常运行。

图3-3 信息删除流程图

3.3 功能需求分析

(1)农产商城模块:本助农电商系统最主要的功能就是购买农产品,所系统中需要管理员添加各种助农农产商城供用户查询,购买,管理员在此模块主要是对助农农产品的增删改查,游客实现对农产品的查询,消费用户则实现助农农产品的收藏、评论、加购立即购买等操作。如下图3-1所示。

3-4 农产商城模块用例图

(2)农业资讯模块:管理员在后台可以对农业资讯及其分类进行增删改查,游客实现查看农业资讯,用户进行收藏、点赞、评论。如下图3-2所示。

3-5农业资讯模块用例图

(3)用户管理模块:在前台游客可以通过注册,然后参与到系统当中,管理员可以对注册的用户进行修改、删除、查询、也可以添加新的用户。如下图3-3所示。

3-6用户管理模块用例图

(4)购物管理:用户对喜欢的农产商品可以进行购买,可以选择立即购买或者加入到购物车中进行购买,如下图3-4所示。

3-7购物管理模块用例图

(5)我的订单管理:在助农电商系统中,用户和管理员都能够管理订单,可以对订单进行查看、删除。如下图3-5所示。​​​​​​​​​​​​​​

3-8订单管理模块用例图。

6我的模块:我的模块是用户独有的功能,可以在“我的”管理基本信息、收货地址、收藏、订单、购物车、订单配送,我的用例如下图3-6所示。

3-9我的管理模块用例图

3.4 非功能性需求分析

系统的功能需求方面主要是从系统的安全性、存储性、可靠性、易学性、稳定性等方面进行分析:

(1)安全性:系统的安全问题是开发者首先要考虑的,如果系统存在安全隐患,可能使得用户个人信息被泄露,给用户带来困扰,造成损失。

(2)储存性:因为用户使用的关于助农电商的网站,消费用户多,而且登录后要查询各种农产品信息,那就需要一个强大的数据库来进行数据的存储,对数据库的要求是非常严格的,本系统选用的是MYSQL数据库,MYSQL的运行速度很快,执行命令的速度也非常快,而且体积小。 

(3)可靠性:可靠性指的是用户在进行农产品信息查询评论以及购买的时候,能够按照用户的指示进行显示信息,如果用户点击查询农产品详细信息,显示出来的是不可购买的信息,那就违背用户的初衷。

(4)易学性:系统的开发面向对象学历不尽相同,所有在开发的时候要考虑系统操作应该简单,不需要进行任何学习、培训,只能上网的用户就可以操作。

(5)稳定性:系统在运行方面要很稳定,系统的界面、字体要清楚,没有失真现象,给用户以良好的体验。

(6)可拓展性:本助农电商系统的功能还有待完善,因此系统要有很好的拓展性,方便后期功能更新维护。

3.5系统角色用例分析

3.5.1系统前台用户用例

基于移动端的助农电商系统前台用户的主要功能是对系统信息的查看、收藏、评论以及对商品的购买,购买的过程中需要对收货地址进行设置,对购物车进行管理,查看自己的订单。前台消费用户用例图如图3-7所示

3-10 基于移动端的助农电商系统前台消费用户用例图

在系统前台中主要实现的是对基于移动端的助农电商系统中信息的浏览,用户对信息收藏、评论以及在农产商城中对农产商品购买几个功能。

1农业资讯功能,主要实现了是对农业资讯的查看,用户进行评论、收藏、点赞,用例说明如下表所示:

3-1 农业资讯用例说明

用例名称

农业资讯

角色

用户

用例说明

对农业资讯评论

前置条件

用户登录到系统当中

后置条件

用户发表评论

基本事件流

1.进入系统登录界面

2.点击农业资讯,选择某条农业资讯查看详情

3.输入评论内容

4.点击提交按钮,发表评论

扩展流程

3a.用户没有登录成功

异常事件流

3a.输入评论内容为空

其他

2农产商城农产品购买功能,本功能是系统的主要功能,主要是实现在线购买功能,用例说明如下标所示:

3-2 农产商城用例说明

用例名称

商品购买

角色

用户

用例说明

对商品加入购物车购买或者立即购买

前置条件

用户登录到系统当中

后置条件

对商品加入购物车购买或者立即购买

基本事件流

1.进入系统登录界面

2.点击农产商城,选择某条农产商城查看详情

3.加入购物车或者立即购买

4.输入订单信息提交订单

扩展流程

3a.现在支付方式

异常事件流

3a.用户没有登录

其他

3.5.2系统后端用例

后台分为两个角色:农民电商用户和管理员,用户不能进入后台,农民电商用户进入以后对农业知识管理、农业提醒管理、商城管理(农产商城、分类列表、订单列表、订单配送)这几个模块进行管理。管理员进入以后可以对系统用户、农业知识管理、农事提醒管理、系统管理、通知公告管理、资源管理、商城管理(农产商城、分类列表、订单列表、订单配送)进行管理。

农民电商用户用例图如图3-11所示

3-11 基于移动端的助农电商系统后台农民电商用户用例图

后台管理员用例图如图3-12所示

3-12基于移动端的助农电商系统后台管理员用户用例图

后台管理员主要实现了是对系统用户、农业知识管理、农事提醒管理、系统管理、通知公告管理、资源管理、商城管理(农产商城、分类列表、订单列表、订单配送)的增删改查操作。后台管理员用例说明如下表所示:

表3-3 后台管理用例说明

用例名称

后台管理

角色

管理员

用例说明

对前端显示的信息进行管理

前置条件

管理员登录进入后台管理页面

后置条件

基本事件流

1.管理员登录进入后台管理界面

2.点击左侧选择相应功能板块

3.选择所要操作的数据

4.点击选择的内容进行增加/删除/修改/查找

5.点击立即保存按钮

扩展流程

异常事件流

其他

4 系统概要设计

4.1开发流程设计

开发基于移动端的助农电商系统需要经过多个步骤,包括分析管理模块+编写代码+规划和操作,这些步骤是打造助农电商系统信息管理AP的关键,它们将决定系统能否达到预期的功能,并且能够在完成设计之后得到实施。在开发过程中,为了确保系统的有效性,每个阶段的开发必须严格遵循线性顺序,并且每个步骤的完成情况都要经过技术检验,以确保每个步骤的准确性,避免出现拖拽现象,从而保证系统的设计功能能够得到有效实施。

通过对基于移动端的助农电商系统的成功开发,我们可以看出,采用这种方法可以显著降低系统的复杂性,并且可以通过图4-1进一步证明。

图4-1开发系统流程图

4.2系统功能结构设计

通过微信小程序开发的助农电商系统,不仅支持用户的登录,还支持对用户的信息、服务类型和评价服务的查看,并且提交全面的数据和信息,从而满足用户的各种需求。此外,该软件还支持查看农业资讯和点赞评论,为用户带来更为便利的操作体验,并且通过对用户的人性化反馈,为用户带来更为全面的服务体验。根据系统功能需求建立的模块关系图如下图:

4-2 功能结构关系

4.3数据库概念结构设计

数据库系统作为一个重要的组件,其优化针对整体网络的运行非常重要。为了构建一个高效的数据库系统,我们需要明确每个元素的特征,并将它们组合在一起。在本次研究中,我们将重点关注助农电商系统的项目概述和设计分析,并对数据库进行设计。我们将使用mysql数据库来支持我们的系统,同时我们将采用更加人性化的操作设计,以便在系统中及时处理和反馈错误信息。

下面是整个助农电商系统中主要的数据库表总E-R实体关系图。

4-5 助农电商系统总E-R关系图

4.4数据库逻辑结构设计

通过上一小节中助农电商系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。

表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

默认判断

表agricultural_knowledge (农业知识)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

agricultural_knowledge_id

int

10

0

N

Y

农业知识ID

2

article_title

varchar

64

0

Y

N

文章标题

3

knowledge_type

varchar

64

0

Y

N

知识类型

4

main_text_of_the_article

longtext

2147483647

0

Y

N

文章正文

5

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表agricultural_products_mall (农产商城)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

agricultural_products_mall_id

int

10

0

N

Y

农产商城ID

2

origin_of_goods

varchar

64

0

Y

N

商品产地

3

farmer_e_commerce

int

10

0

Y

N

0

农民电商

4

store_name

varchar

64

0

Y

N

店铺名称

5

hits

int

10

0

N

N

0

点击数

6

praise_len

int

10

0

N

N

0

点赞数

7

cart_title

varchar

125

0

Y

N

标题:[0,125]用于产品html的标签中

8

cart_img

text

65535

0

Y

N

封面图:用于显示于产品列表页

9

cart_description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

10

cart_price_ago

double

8

2

N

N

0.00

原价:[1]

11

cart_price

double

8

2

N

N

0.00

卖价:[1]

12

cart_inventory

int

10

0

N

N

0

商品库存

13

cart_type

varchar

64

0

N

N

未分类

商品分类:

14

cart_content

longtext

2147483647

0

Y

N

正文:产品的主体内容

15

cart_img_1

text

65535

0

Y

N

主图1:

16

cart_img_2

text

65535

0

Y

N

主图2:

17

cart_img_3

text

65535

0

Y

N

主图3:

18

cart_img_4

text

65535

0

Y

N

主图4:

19

cart_img_5

text

65535

0

Y

N

主图5:

20

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

21

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表agricultural_reminder (农事提醒)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

agricultural_reminder_id

int

10

0

N

Y

农事提醒ID

2

solar_term_name

varchar

64

0

Y

N

节气名称

3

solar_term_date

date

10

0

Y

N

节气日期

4

agricultural_reminder

longtext

2147483647

0

Y

N

农事提醒

5

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表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:

表consumer_users (消费用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

consumer_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

更新时间

表farmer_e_commerce (农民电商)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

farmer_e_commerce_id

int

10

0

N

Y

农民电商ID

2

farmers_name

varchar

64

0

Y

N

农民姓名

3

gender_of_farmers

varchar

64

0

Y

N

农民性别

4

store_name

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

更新时间

表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

更新时间

表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已取消

表sensitive_vocabulary (敏感词汇)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

sensitive_vocabulary_id

int

10

0

N

Y

敏感词汇ID

2

sensitive_vocabulary

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

更新时间

表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

email

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 前台注册界面图

注册关键代码如下所示。

/**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("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);

  }     

5.1.3登录界面

助农电商系统中的前台上注册后的消费用户是可以通过自己的账户名和密码进行登录的,当消费用户输入完整的自己的账户名和密码信息并通过滑动验证通过后,点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到助农电商系统的首页中;否则将会提示相应错误信息,用户登录流程如图5-4所示,登录界面如下图5-5所示。

5-4 登录流程图

图5-5消费用户登录界面图

登录的逻辑代码如下所示。

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("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.select(map, new HashMap<>()).getResultList();

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }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.select(groupMap, new HashMap<>()).getResultList();

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

            String res = String.valueOf(service.runCountSql(sql).getSingleResult());

            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());

            tokenService.save(accessToken);

            // 返回用户信息

            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, "账号或密码不正确");

        }

}

5.1.4 农业资讯界面

当访客点击助农电商系统中导航栏上的“农业资讯”后将会进入到该“农业资讯”列表的界面,然后选择想要看的农业资讯,点击进入到详细界面,农业资讯列表界面如下图5-6所示。

图5-6助农电商系统农业资讯列表界面图

5.1.5 农产商城详情界面

当访客点击了任意农产商城后将会进入该款农产商品的详情界面,可以了解到该农产商品的产品标题、商品产地、农民电商、店铺名称、商品属性等,同时可以对该农产商品进行收藏、加购、购买评论,农产商城商品详情展示页面如图5-7所示。

图5-7 农产商城商品详情界面图

5.1.6购物车管理界面

当用户点击“购物”按钮则会显示自己加入购物车的农产商,然后对其进行购买管理,购买流程图如图5-8所示购物界面如下图5-9所示。

图5-8购买流程图

图5-9 购物管理界面图

5.1.7订单管理界面

在点击导航栏上的“我的订单”后,会显示自己提交的所有的订单,可以按照订单状态等进行查看,我的订单界面如下图5-10所示。

图5-10 我的订单界面图

5.2后台功能模块

5.2.1 农民电商用户管理界面

农民电商用户通过管理员添加的账户信息进行登录后台,可以对后台首页、农业知识管理、农业提醒管理、商城管理(农产商城、分类列表、订单列表、订单配送)这几个模块进行管理。其中后台首页会显示关于商品销售数量统计、商品销售金额统计的数据图表和天气地图农民电商后台首页界面如下图5-11所示。

图5-11农民电商后台首页管理界面图

5.2.2 系统用户界面

后台管理人员是可以对前台注册的消费用户和后台的农民电商用户进行管理。系统用户管理界面如下图5-12所示。

图5-12系统用户管理界面图

5.2.3 农业知识管理界面

后台管理人员点击“农业知识管理”会显示所有的农业知识信息列表,也可以点击“农业知识添加”对新的农业知识信息进行添加农业知识管理界面如下图5-13所示。

图5-13农业知识管理界面图

5.2.4 系统管理界面

管理人员在“系统管理”这一菜单下是可以对助农电商系统内展示的轮播图进行添加修改的。系统管理界面如下图5-14所示。

图5-14系统管理界面图

5.2.5 农产商城管理界面

后台管理人员对助农电商系统内的不同农产商城的分类下的农产商品信息进行维护和管理的,农产商城管理界面如下图5-15所示。

图5-15农产商城管理界面图

5.2.6 分类列表界面

后台管理人员是可以对助农电商系统内的农产商品的类别进行管控。分类列表界面如下图5-16所示。

图5-16分类列表界面图

6系统的测试

6.1测试的目的

系统的前台、后台、数据库完成以后,这个系统才算是完成了一半,我们在这之后要对系统进行最后的一个阶段,那就是测试了,测试对一个系统来说是非常重要的,有的时候开发完一个系统,如果测试不合格的话,这个系统是没有办法进行投入使用的,所有我们要用测试对系统的功能进行检验,把不完善的功能尽量完善,把出现的bug解决掉,然后给用户呈现出一个完美的系统。通过对系统最后一步的测试,使得开发人员对自己的系统更加有信心,更加积极的为后期的系统版本的更新提供支持。

6.2 系统测试用例

系统测试包括:用户登录功能测试、农产商城展示功能测试、农产商添加、农产商城搜索、密码修改功能测试,如表6-1、6-2、6-3、6-4、6-5所示:

用户登录功能测试:

表6-1 用户登录功能测试表

用例名称

用户登录系统

目的

测试用户通过正确的用户名和密码可否登录功能

前提

未登录的情况下

测试流程

1) 进入登录页面

2) 输入正确的用户名和密码

预期结果

用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入

实际结果

实际结果与预期结果一致

农产商城查看功能测试:

表6-2 农产商城查看功能测试表

用例名称

农产商城查看

目的

测试农产商城查看功能

前提

用户登录

测试流程

点击农产商城列表

预期结果

可以查看到所有农产商城信息

实际结果

实际结果与预期结果一致

管理员添加农产商品界面测试:

表6-3 管理员添加农产商品界面测试表

用例名称

农产商品发布测试用例

目的

测试农产商品发布功能

前提

管理员用户正常登录情况下

测试流程

1)管理员点击农产商品,然后点击添加后并填写信息。

2)点击进行提交。

预期结果

提交以后,页面首页会显示新的农产商品信息 

实际结果

实际结果与预期结果一致

农产商城搜索功能测试:

表6-4 农产商城搜索功能测试表

用例名称

农产商城搜索测试

目的

测试农产商城搜索功能

前提

测试流程

1)在搜索框填入搜索关键字。

2)点击搜索按钮。

预期结果

页面显示包含有搜索关键字农产商城

实际结果

实际结果与预期结果一致

密码修改搜索功能测试:

表6-5 密码修改功能测试表

用例名称

密码修改测试用例

目的

测试管理员密码修改功能

前提

管理员用户正常登录情况下

测试流程

1)管理员密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

6.3 系统测试结果

通过编写助农电商系统的测试用例,已经检测完毕一上功能模块的测试。在测试每个功能的过程中,我们应该严格按照指定的测试计划逐步进行测试,不能急于实现,并且每个测试的结果都应该充分记录下来,最好的选择是自动化测试,这样可以更准确、更快地完成,而不是依赖手动测试,因为这样可以避免问题,它还可以防止疲劳和问题。进行测试时,必须保持高度专注,密切关注测试结果,并及时纠正任何异常情况;最后,在测试完成后,应该正确保存文档以备将来使用。经过测试可以发现,原来开发的系统是清晰的,只有对其进行细化,编程的过程才会变得更加顺利。只有有了良好的结构,后期的编程工作才能顺利完成,同时也可以大大降低时间和精力成本。

结论

网络大环境下,电子商务的商业模式已经遍及全国各地,由于人们生活水平的提高以及生活节奏的加快,让人们也已经爱上这种购物模式。本次开发的助农电商系统即是基于目前电子商务模式而建设的,其开发目的是给用户提供一个全新的交易环境,提高用户购物的体验度,系统的开发不仅可以实现道具城游戏商品的购物、销售,还能进行人机对话,功能非常多样。

助农电商系统使用的开发环境是功能强大的SpringBoot技术和小程序框架,在大学的学科中重点学习了这两技术,在对这些技术学习、熟悉之后,结合对系统进行的需求分析顺利的完成了本次项目的设计。在最初接到任务书的那一刻,比较迷茫,没有任何的思路,在经过了老师的指导以后,调查了一些购物系统相关的资料后,慢慢的有了头绪,开始入手开题,明确了系统的内容,对系统进行可行性的分析,确定系统可行以及功能内容以后,就按照开题初步设计的内容进行完善,慢慢补充、学习,最终结束了程序的开发,也完成了论文的写作。这一过程,虽然艰辛,但也学习到了很多,对项目开发流程也有了一个新的认识,动手能力也得到了提高,这正是书本上所学习不到的。

经过开发本项目,让我非常有成就高,与此同时我对程序的开发更加感兴趣了,信息技术真的很强大,也很深奥,在以后工作中,我将会寻找与其相关工作,继续深入学习,开发出更优秀的项目。

参考文献

[1]Li J ,Liu S ,Gong X , et al.Technology affordance, national polycontextuality, and customer loyalty in the cross-border e-commerce platform: A comparative study between China and South Korea[J].Telematics and Informatics,2024,88102099-.

[2]邱泽楷,赵楷迪,邓子林等.优果汇生鲜农电商后台管理系统设计与实现[J].福建电脑,2024,40(02):82-89.DOI:10.16707/j.cnki.fjpc.2024.02.018.

[3]Li Q ,Tan J ,Jiao Y .Research on the formation mechanism of brand identification in cross-border e-commerce platforms — Based on the perspective of perceived brand globalness/localness[J].Heliyon,2024,10(3):e25155-.

[4]Xiao J ,Zhou H ,Lei Q , et al.Attention-Mechanism-Based Face Feature Extraction Model for WeChat Applet on Mobile Devices[J].Electronics,2024,13(1):

[5]李跃.数字助农电商项目及发展研究[J].广东蚕业,2023,57(11):118-120.

[6]晁琼,焦博妮,齐琳等.基于微信小程序的“指上农庄”农产品交易平台设计与实现[J].电脑知识与技术,2023,19(29):40-42.DOI:10.14004/j.cnki.ckt.2023.1512.

[7]蒋婷.拼多多农村电商平台助农模式研究[D].大连海洋大学,2023.DOI:10.27821/d.cnki.gdlhy.2023.000504.

[8]孔镜婷.自媒体时代扶贫助农电商平台政府监管问题研究[D].广西民族大学,2023.DOI:10.27035/d.cnki.ggxmc.2023.001024.

[9]白雨鑫.“互联网+”背景下电商助农实施路径研究[J].中国新通信,2023,25(04):63-65.

[10]李靖雯,孟冠男,李文卓等.生鲜电商平台助农的发展路径与对策研究[J].产业科技创新,2023,5(01):1-3.

[11]代林虎,蒋磊,李玲.生鲜电商行业发展的现状、问题及对策[J].中国市场监管研究,2022,(10):32-34.

[12]冯勃.基于“互联网+”的助农电商合同助力乡村振兴发展[J].农业开发与装备,2022,(09):7-9.

[13]陈小燕,朱映辉,余晓春.基于SpringBoot+Vue的好农物商城的设计与实现[J].电脑知识与技术,2022,18(22):37-39.DOI:10.14004/j.cnki.ckt.2022.1535.

[14]鞠红凤,张瑛,黄琳倩等.一站式助农电商服务平台的设计[J].电子世界,2022,(01):198-199+203.DOI:10.19353/j.cnki.dzsj.2022.01.092.

[15]杨米娜.基于微信小程序的“助农”销售系统的设计与开发[J].电子技术与软件工程,2021,(24):34-35.

[16]俞洁,杜嘉泳,江俊源等.扶贫知识宣传及爱心助农平台[J].电脑编程技巧与维护,2021,(09):90-92.DOI:10.16184/j.cnki.comprg.2021.09.035.

[17]杨洁.西南贫困地区助农电商直播良性发展研究[D].华南理工大学,2021.DOI:10.27151/d.cnki.ghnlu.2021.000766.

[18]郑承承,马世东,王志华等.基于微信小程序的特产售卖扶贫平台设计[J].电脑编程技巧与维护,2021,(05):78-79.DOI:10.16184/j.cnki.comprg.2021.05.031.

[19]邸熇愉,马君.社会行动理论视域下助农电商直播模式探析——以安徽省砀山县为例[J].新媒体研究,2021,7(08):65-68.DOI:10.16604/j.cnki.issn2096-0360.2021.08.020.

[20]陆建军.基于微信小程序的精准扶贫电商平台设计[J].现代信息科技,2020,4(14):87-89.DOI:10.19850/j.cnki.2096-4706.2020.14.026.

致谢

通过这样设计与开发这样一个系统,首先向我们老师、同学和朋友表达真诚的感谢。没有指导老师的指导和平日子的教导,我也不能够学到如此多的专业知识。另外,也佩服老师兢兢业业的工作态度,给我们做好了表率。系统开发技术要学习的东西很多,前台框架、后台框架、业务流程、数据结构、操作系统等各种知识非常的丰富,都需要慢慢的专研。在这里,首先感谢老师细心的教导,我只想说一句:“老师,谢谢您,您辛苦了!有您在,大学生活才更加的充实。”另外,我要感谢我的室友,由于知识掌握得不够产生各种问题,正因为有了你们的帮忙,给我提出很多很好的建议,才能更好的解决系统开发问题。同时,我也应该感谢那些计算机专业的先哲们,正是由于有这么一群人,才能把这样的专业研究得如此透彻,才能助力新世界的诞生。你们的理论,是我们一生学习的内容,你们的成就,是我们一生追求的目标。

最后,也希望自己在未来的道路上能够走得更远,不辜负在大学的学习,以及老师们的细致的教导。

​​​​​​​免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~

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

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

相关文章

嵌入式以太网硬件构成与MAC、PHY芯片功能介绍

一.以太网电路基本构成 1.总体介绍 对于上述三部分&#xff0c;并不一定都是独立的芯片&#xff0c;主要有以下几种情况&#xff1a; CPU内部集成了MAC和PHY&#xff0c;难度较高&#xff1b; CPU内部集成MAC,PHY采用独立芯片(主流方案)&#xff1b; CPU不集成MAC和PHY&#…

安卓应用开发学习:通过腾讯地图SDK实现定位功能

一、引言 这几天有些忙&#xff0c;耽误了写日志&#xff0c;但我的学习始终没有落下&#xff0c;有空我就会研究《 Android App 开发进阶与项目实战》一书中定位导航方面的内容。在我的手机上先后实现了“获取经纬度及地理位置描述信息”和“获取导航卫星信息”功能后&#x…

Zookeeper笔记1

一、介绍 Zookeeper 是一个开源的分布式的&#xff0c;为分布式框架提供协调服务的 Apache 项目。是一个基于观察者模式设计的分布式服务管理框架&#xff0c;它负责存储和管理大家都关心的数据&#xff0c;然后接受观察者的注册&#xff0c;一旦这些数据的状态发生变化&#…

基于路径长度的样条插补算法(自动驾驶和路径跟踪控制适用)

以前在做车辆跟踪控制的时候发现在针对有多个X和多个Y对应的路径插补时候&#xff0c;总是报错&#xff0c;因为MATLAB里面的interp1插补函数它要求x要唯一对应一个y&#xff0c;当路径以单独的x或者y来求插补时候的时候就报错。由于在使用Matlab的interp1函数进行插值时&#…

暴雨来袭,陈赫家变“水帘洞”网友:赫哥滴滴打船吗?

在魔都上海&#xff0c;一场突如其来的暴雨 不仅让街道变成了河流&#xff0c;还悄悄上演了一场现实版的“水帘洞”奇遇 而这场奇遇的主角&#xff0c;竟然是喜剧界的明星——陈赫&#xff01; 这天&#xff0c;乌云密布&#xff0c;电闪雷鸣 魔都的天空仿佛被捅了个窟窿 雨…

为什么我的Skype点数不见了?如何重新激活 Skype 点数?

您超过180天没有使用过点数打电话功能&#xff0c;点数暂时封存在您的账户里面&#xff0c;需要您手动激活&#xff08;目前必须要登录网页版skype&#xff09; 可再次使用。 如何重新激活 Skype 点数&#xff1f; 登录到你的帐户 . 选择 重新激活信用额度 .注意&#xff1a; …

中医药文化传承进校园活动授牌仪式在石家庄主办举办

青春闪“药”&#xff0c;我心向党。2024年6月30日&#xff0c;由河北省药品医疗器械检验研究院主办的”中医药文化传承进校园活动在石家庄主办。来自河北省各地24所学校作为示范学校现场接牌。 河北省科协科普部部长范玉鑫、河北省教育厅学位管理与研究生处副处长耿立艳、河北…

Skipfish一键扫描网站漏洞(KALI工具系列三十四)

目录 1、KALI LINUX 简介 2、Skipfish工具简介 3、信息收集 3.1 目标IP 3.2 kali的IP 4、操作步骤 4.1创建目录 4.2开始扫描 4.3 配置扫描 4.4 指定范围 4.5 查看扫描结果 5、总结 1、KALI LINUX 简介 Kali Linux 是一个功能强大、多才多艺的 Linux 发行版 &#xf…

基于深度学习的水果蔬菜检测识别系统(Python源码+YOLOv8+Pyqt5界面+数据集+训练代码 MX_004期)

系统演示&#xff1a; 基于深度学习的水果蔬菜检测识别系统 界面图&#xff1a; 技术组成&#xff1a; 深度学习模型&#xff08;YOLOv8&#xff09;&#xff1a; YOLOv8是基于YOLO系列的目标检测模型&#xff0c;具有较快的检测速度和良好的准确率&#xff0c;适合于实时应用场…

DP:子数组问题

文章目录 引言子数组问题介绍动态规划的基本概念具体问题的解决方法动态规划解法&#xff1a;关于子数组问题的几个题1.最大子数组和2.环形子数组的最大和3.乘积最大子数组4.乘积为正数的最长子数组长度5.等差数列划分 总结 引言 介绍动态规划&#xff08;DP&#xff09;在解决…

6.x86游戏实战-C++实现跨进程读写-通过基址读取人物状态标志位

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 上一个内容&#xff1a;5.x86游戏实战-CE定位基地址 上一个内容找出了人物状态标志位的基址&#xff0…

电脑录音软件哪个好?7款录制音频工具大盘点,赶快学起来!(2024)

也许你渴望提取你最喜欢的节目的背景音乐&#xff0c;或者你希望录制自己的声音制作教程。如果是这样&#xff0c;你就需要一款优秀的电脑录音软件&#xff0c;来帮助你捕捉任何你想要的声音&#xff0c;而且不会损失音质。目前市场上存在着大量的录制音频工具&#xff0c;面对…

C++ | Leetcode C++题解之第207题课程表

题目&#xff1a; 题解&#xff1a; class Solution { private:vector<vector<int>> edges;vector<int> indeg;public:bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {edges.resize(numCourses);indeg.resize(numCo…

创意无界:探索国产创成式填充的无限潜力

在数字艺术与设计的世界中&#xff0c;创新技术不断涌现&#xff0c;而"创成式填充"无疑是其中的一颗璀璨新星。今天米兔要安利的这款国产ps插件-StartaAI拥有强大的AI功能&#xff0c;其AI扩图和局部重绘更是成为PS创成式填充的国产平替。 什么是创成式填充&#x…

clion开发51 没有创建成功可能是Clion版本问题

安装插件 PlatformlO for CLion 进入这个网站下载get-platformio.py https://docs.platformio.org/en/latest/core/installation/methods/installer-script.html#local-download-macos-linux-windows 点击 Installation Methods 选择 Local Download (macOS/Linux/Windows) 点…

如何评价CSS框架TailwindCSS?

端午三天&#xff0c;你们在放假&#xff0c;而我&#xff0c;一个人躲在家里&#xff0c;苦练 tailwindcss。 我在准备这样一个学习项目&#xff0c;它与传统的文章/视频类学习不同&#xff0c;我会在教程中内置大量的可交互案例&#xff0c;提供沉浸式的学习体验&#xff0c…

Vue组件化、单文件组件以及使用vue-cli(脚手架)

文章目录 1.Vue组件化1.1 什么是组件1.2 组件的使用1.3 组件的名字1.4 嵌套组件 2.单文件组件2.1 vue 组件组成结构2.1.1 template -> 组件的模板结构2.1.2 组件的 script 节点2.1.3 组件的 style 节点 2.2 Vue组件的使用步骤2.2.1 组件之间的父子关系2.2.2 使用组件的三个步…

通过nginx去除 api url前缀 并保持后面剩余的url不变向后台请求

如 我前台浏览器向后台请求的接口是 http://127.0.0.1:5099/api/sample/sample/getbuttonlist 实际的请求接口传向 http://192.168.3.71:5099/sample/sample/getbuttonlist 方法是向config中加入下面这样一个server server {listen 5099;location /api/ {rewrite ^/a…

【Python机器学习】模型评估与改进——打乱划分交叉验证

打乱划分交叉验证是一种非常灵活的交叉验证策略。 在打乱划分交叉验证中&#xff0c;每次划分为训练集取样train_size个点&#xff0c;为测试集取样test_size个不相交的点。将这一划分方法重复n_iter次。 举例&#xff1a; import matplotlib.pyplot as plt import mglearnm…

mysql wrnning Difficult to find free blocks in the buffer pool解决方法

mysql [InnoDB] Difficult to find free blocks in the buffer pool (140397 search iterations)! 我使用的是mysql8,。 原因&#xff1a;这种情况&#xff0c;多半出现在别人在非常大的写入&#xff0c;或者百万级的查询中。 解决方式&#xff0c;centos7在线安装的mysql&am…