1 绪论
1.1 研究背景
1.2研究意义
1.3论文结构与章节安排
2 微信小程序的零食盒子系统分析
2.1 可行性分析
2.2 系统流程分析
2.2.1 数据流程
3.3.2 业务流程
2.3 系统功能分析
2.3.1 功能性分析
2.3.2 非功能性分析
2.4 系统用例分析
2.5本章小结
3 微信小程序的零食盒子总体设计
3.1 系统架构设计
3.2 系统功能模块设计
3.2.1整体功能模块设计
3.2.2用户模块设计
3.2.3 评论管理模块设计
3.2.4商城管理模块设计
3.2.5订单管理模块设计
3.3 数据库设计
3.3.1 数据库概念结构设计
3.3.2 数据库逻辑结构设计
表access_token (登陆访问时长)
表address (收货地址:)
表auth (用户权限管理)
表cart (购物车)
表collect (收藏)
表comment (评论)
表consumer_users (消费用户)
表forum (论坛)
表forum_type (论坛分类)
表goods (商品信息)
表goods_type (商品类型)
表hits (用户点击)
表logistics_delivery (物流配送)
表notice (公告)
表order (订单)
表praise (点赞)
表slides (轮播图)
表snack_classification (零食分类)
表snack_labels (零食标签)
表snack_mall (零食商城)
表snack_products (零食商品)
表upload (文件上传)
表user (用户账户:用于保存用户登录信息)
表user_group (用户组:用于用户前端身份和鉴权)
3.4本章小结
4 微信小程序的零食盒子详细设计与实现
4.1用户功能模块
4.1.1 前台首页界面
4.1.2注册界面
4.1.3 登录界面
4.1.4联系方式界面
4.1.5 收货地址界面
4.1.6 产品详情界面
4.1.7 我的订单界面
4.2管理员功能模块
4.2.1用户管理界面
4.2.2后台首页管理界面
4.2.3零食标签管理界面
4.2.3系统公告管理界面
4.2.4 商城管理界面
5系统测试
5.1系统测试的目的
5.2 系统测试用例
5.3 系统测试结果
结论
参考文献
致 谢
本研究旨在利用微信小程序平台,设计并实现一款名为“零食盒子”的在线零食订购服务平台。随着现代生活节奏加快,人们对方便、多样化的零食消费需求不断增加。传统的零食购买方式存在购买渠道受限、购物体验不便等问题,因此开发一款便捷高效的在线零食订购平台具有重要意义。
“零食盒子”小程序涵盖了零食商品展示、购物车管理、订单支付等核心功能模块,用户可以通过小程序浏览各类零食产品,便捷选购,快速完成在线支付下单。该系统整合了微信支付功能,实现了安全、便捷的支付流程,同时通过智能推荐算法为用户提供个性化的零食推荐服务,满足用户不同口味和喜好。
经过系统设计与实现,本“零食盒子”小程序展现出稳定性高、操作简便的特点,为用户提供了便捷、快速的零食订购体验。未来,将继续优化小程序功能,拓展零食种类和品牌合作,提升用户体验和社交分享功能,以进一步提高用户粘性和平台活跃度。通过持续创新和优化,“零食盒子”小程序将为用户提供更多选择、更便捷的购物体验,推动零食行业的线上发展,满足消费者对零食购买的多样化需求,促进零食市场的繁荣发展。
关键词:基于微信小程序的零食盒子的设计与实现;Java技术;MYSQL;springboot框架;
Abstract
This study aims to design and implement an online snack ordering service platform called "Snack Box" using the WeChat mini program platform. With the acceleration of modern life pace, people's demand for convenient and diversified snack consumption is constantly increasing. The traditional way of purchasing snacks has problems such as limited purchasing channels and inconvenient shopping experience. Therefore, developing a convenient and efficient online snack ordering platform is of great significance.
The "Snack Box" mini program covers core functional modules such as snack product display, shopping cart management, and order payment. Users can browse various snack products through the mini program, make convenient purchases, and quickly complete online payment orders. The system integrates WeChat payment functions, achieving a safe and convenient payment process. At the same time, it provides personalized snack recommendation services to users through intelligent recommendation algorithms, meeting their different tastes and preferences.
After system design and implementation, this "Snack Box" mini program exhibits high stability and easy operation, providing users with a convenient and fast snack ordering experience. In the future, we will continue to optimize the functions of mini programs, expand the variety of snacks and brand cooperation, enhance user experience and social sharing functions, in order to further improve user stickiness and platform activity. Through continuous innovation and optimization, the "Snack Box" mini program will provide users with more choices and a more convenient shopping experience, promote the online development of the snack industry, meet the diverse needs of consumers for snack purchases, and promote the prosperous development of the snack market.
Keywords:Design and Implementation of Snack Box Based on WeChat Mini Program; Java technology; MYSQL; Springboot framework; Restaurant system
1 绪论
随着现代社会的快节奏生活和消费升级趋势,零食作为一种方便、快捷的食品消费形式,逐渐成为人们日常生活中不可或缺的一部分。然而,传统的零食购买方式存在着诸多问题,如购买渠道受限、购物体验不便等,无法满足消费者多样化、个性化的需求。在这一背景下,利用微信小程序开发在线零食订购平台具有重要意义。
微信小程序作为一种便捷、快速的移动应用形式,具有强大的用户基础和便捷的社交分享功能,为消费者提供了便捷、高效的购物体验。通过微信小程序平台,消费者可以随时随地浏览、选择并购买喜爱的零食产品,实现线上支付和快速配送,极大地丰富了零食购买的方式和体验。因此,开发基于微信小程序的在线零食订购平台不仅是对传统零食购买方式的一种创新和突破,也是满足现代消费者多样化、个性化需求的重要举措。
通过这一研究,将为零食行业的现代化发展提供新的机遇和可能性。在线零食订购平台的建立不仅可以拓展零食销售渠道,提升消费者的购物便捷性和体验,还能促进零食行业的数字化转型,推动零食市场的多元化发展。因此,借助微信小程序开发在线零食订购平台具有重要的现实意义和市场潜力。
本研究旨在基于微信小程序开发一款在线零食订购平台的设计与实现,具有重要的实践意义和社会影响。首先,随着消费者对生活品质和口味多样性需求的不断提升,传统的零食购买方式已无法满足现代消费者的需求。因此,通过开发便捷、快捷的在线零食订购平台,可以提升消费者的购物体验,满足他们对多样化零食的追求,促进零食市场的多元化发展。
其次,本研究将通过微信小程序这一便捷的移动应用平台,为零食行业的数字化转型提供新的可能性。在线零食订购平台的建立不仅可以优化零食供应链管理,提高零食品牌的曝光和销售渠道,还可以促进零食产业链的优化和升级,推动零食产业向智能化、数字化方向发展。
此外,基于微信小程序的在线零食订购平台还能够促进小微零食品牌的发展,带动零食产业的创新和发展。通过平台的搭建,小微零食品牌可以更便捷地与消费者进行互动和交流,提升品牌知名度和市场份额,推动零食产业的良性竞争和可持续发展。
综上所述,基于微信小程序的在线零食订购平台的设计与实现不仅能够提升消费者的购物体验,推动零食行业的数字化转型,还能促进小微零食品牌的发展,助力零食产业的创新和升级,具有重要的实践意义和社会价值。
论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对网站需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:
第一章:引言。第一章主要介绍了课题研究的背景,研究意义和本文的研究内容与主要工作。
第二章:系统需求分析。第二章主要从系统的用户、功能等方面进行需求分析。
第三章:系统设计。第三章主要对系统框架、系统功能模块、数据库进行功能设计。
第四章:系统实现。第四章主要介绍了系统框架搭建、系统界面的实现。
第五章:系统测试。第五章主要对系统的部分界面进行测试并对主要功能进行测试
2 微信小程序的零食盒子系统分析
系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。下面是详细的介绍。
经济可行性在此仅代表网站的运维成本,开发成本不在此考虑。
目前该模式下的微信小程序的零食盒子的数量日益增多,网购变得平民化普及化用户人数呈上升趋势,当用户人数庞大了,运维成本可以由广告费进行填补,包括开发成本。
所以经济可行性没有问题。
(2)操作可行性:
此次项目设计参考了几个该模式下网站的开发案例,对他们的操作界面分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。
因此操作可行性也没有问题。
(3)技术可行性:
技术可行性指的是对于搭建框架的可行性,以及有更优秀的技术出现时系统的技术更新换代的纳新性如何,开发时间成本费用比如何。
现有的Java技术能够迎合所有电子商务系统的搭建。开发这个微信小程序的零食盒子的时候我采用了Java+MYSQL用以运行整体程序。
综上所述技术可行性也没有问题。
(4)法律可行性:
从开发者角度来看,Java和MYSQL是网上开源且免费的,在知识产权方面不会产生任何法律纠纷。
从用户使用角度来看,只要不再系统上贩卖违禁品,对系统做出条约协议,杜绝非法支付即可。
综上所述法律可行性也没有问题。
微信小程序的零食盒子主要的目的就是实现对商品的在线选购,图2-1就是系统的数据流图。
图2-1商品购买操作展开图
分析完系统的数据流,接下来我们来看系统的业务流程,图2-2就是业务流程图:
图2-2业务流程图
按照微信小程序的零食盒子的角色,我划分为了消费用户和管理员管理模块这两大部分。
消费用户管理模块:
(1)用户注册登录:用户注册为会员并登录微信小程序的零食盒子;用户对个人基本信息的增删改查,比如修改资料,修改密码。
(2)用户查看零食商城:用户进行产品信息的阅览,通过发现喜欢的产品后可以立即购买+加入购物车+评论+收藏。
(3)联系方式:用户点击联系方式查看系统公告列表中的网站公告、关于我们、联系方式、网站介绍等信息。
(4)购物车:用户对喜欢的商品可以加购,在购物车里面,可以查看到所有加购的商品,支持对商品数量的更改、删除商品,可以进行选择购买。
(5)社区论坛:用户进行发布内容,可对发布内容点赞和收藏。
(6)收货地址:点击“我的”按钮的时候就会显示出自己的收货地址信息,支持对收货地址的增删改查操作。
(7)我的订单:用户在提交订单后,可以对提交的订单进行管理。
(8)订单配送:用户可查看配送状态、签收状态信息。
管理员管理模块:
(1)登录:管理员在后台可以输入用户名+密码进行登录,管理员的用户名和密码是在数据库中直接设定好的。
(2)后台首页:管理员可以查看后台首页展示的商品销售金额、商品销售数量等统计图信息。
(3)系统用户:管理员可以对前台上注册过的用户信息进行管控,也可以对管理员信息进行管控。
(4)零食标签管理:管理员可以对零食标签管理信息进行添加,可以查看零食标签管理列表中的某一信息详情,可以对零食标签管理列表进行查询和删除操作。
(5)系统管理:管理员点击“系统管理”菜单可以对首页展示的轮播图进行增删改查。
(6)系统公告管理:管理员点击“系统公告管理”菜单可以对系统公告进行增删改查。
(7)交流管理:管理员点击“交流管理”菜单能够对其下子菜单社区论坛和论坛分类进行增删改查。
(8)商城管理:综合管理所属微信小程序的零食盒子中的所有的零食商城、分类列表、订单列表、订单配送以及用户提交的信息进行增删改查。
微信小程序的零食盒子的非功能性需求比如微信小程序的零食盒子的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
表3-1微信小程序的零食盒子非功能需求表
安全性 | 主要指微信小程序的零食盒子数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指微信小程序的零食盒子能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响微信小程序的零食盒子占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着微信小程序的零食盒子的页面展示内容进行操作,就可以了。 |
可维护性 | 微信小程序的零食盒子开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
通过2.3功能的分析,得出了本微信小程序的零食盒子的用例图:
消费用户角色用例如图2-3所示。
图2-3 微信小程序的零食盒子消费用户角色用例图
web后台管理上的管理员是维护整个微信小程序的零食盒子中所有数据信息的。
管理员角色用例如图2-4所示。
本章主要通过对微信小程序的零食盒子的可行性分析、流程分析、功能需求分析、系统用例分析,确定整个微信小程序的零食盒子要实现的功能。同时也为微信小程序的零食盒子的代码实现和测试提供了标准。
本章主要讨论的内容包括微信小程序的零食盒子的功能模块设计、数据库系统设计。
本微信小程序的零食盒子从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1微信小程序的零食盒子系统架构设计图
表现层(UI):又称UI层,主要完成本微信小程序的零食盒子的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本微信小程序的零食盒子时的舒适度。UI的界面设计也要适应不同版本的微信小程序的零食盒子以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本微信小程序的零食盒子的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本微信小程序的零食盒子的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本微信小程序的零食盒子的数据存储和管理功能。
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本微信小程序的零食盒子中的用例。那么接下来就要开始对本微信小程序的零食盒子的架构、主要功能和数据库开始进行设计。微信小程序的零食盒子根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。
图3-2 微信小程序的零食盒子功能模块图
后台管理者能够实现对前台注册的用户增删改查操作,用户模块结构图如下图:
图3-3会员用户模块结构图
微信小程序的零食盒子是一个交流性质的公开平台,用户可以在平台上交流,增加用户之间的互动性。但是同时也为了更好的规范留言的内容,给予管理员删除不合适的言论的功能,所以需要专门设计一个评论管理模块,具体的结构图如下:
图3-4评论模块结构图
微信小程序的零食盒子是中需要存储不少商品信息,其模块功能结构,具体的结构图如下:
图3-5商城模块结构图
微信小程序的零食盒子最重要的一个功能就是购买,其模块功能结构,具体的结构图如下:
图3-5订单模块结构图
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
下面是整个微信小程序的零食盒子中主要的数据库表总E-R实体关系图。
图3-6 微信小程序的零食盒子总E-R关系图
下面根据微信小程序的零食盒子的数据库总E-R关系图可以得出微信小程序的零食盒子需要很多E-R图,在此罗列出来一些主要的数据库E-R模型图。
图3-7消费用户信息E-R关系图
图3-8零食商城信息E-R关系图
图3-9 订单信息E-R关系图
图3-10 地址信息E-R关系图
图3-11 物流配送E-R关系图
通过上一小节中微信小程序的零食盒子中总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 | 默认判断 |
表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 | gender | varchar | 64 | 0 | Y | N | 性别 | |
4 | snack_recommendations | 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 | 更新时间 |
表forum (论坛)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | forum_id | mediumint | 8 | 0 | N | Y | 论坛id | |
2 | display | smallint | 5 | 0 | N | N | 100 | 排序 |
3 | user_id | mediumint | 8 | 0 | N | N | 0 | 用户ID |
4 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
5 | praise_len | int | 10 | 0 | Y | N | 0 | 点赞数 |
6 | hits | int | 10 | 0 | N | N | 0 | 访问数 |
7 | title | varchar | 125 | 0 | N | N | 标题 | |
8 | keywords | varchar | 125 | 0 | Y | N | 关键词 | |
9 | description | varchar | 255 | 0 | Y | N | 描述 | |
10 | url | varchar | 255 | 0 | Y | N | 来源地址 | |
11 | tag | varchar | 255 | 0 | Y | N | 标签 | |
12 | img | text | 65535 | 0 | Y | N | 封面图 | |
13 | content | longtext | 2147483647 | 0 | Y | N | 正文 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
16 | avatar | varchar | 255 | 0 | Y | N | 发帖人头像: | |
17 | type | varchar | 64 | 0 | N | N | 0 | 论坛分类:[0,1000]用来搜索指定类型的论坛帖 |
表forum_type (论坛分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
3 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
4 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
5 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
6 | icon | varchar | 255 | 0 | Y | N | 分类图标: | |
7 | create_time | timestamp | 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已取消 |
表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 | 更新时间: |
表snack_classification (零食分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | snack_classification_id | int | 10 | 0 | N | Y | 零食分类ID | |
2 | snack_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 | 更新时间 |
表snack_labels (零食标签)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | snack_labels_id | int | 10 | 0 | N | Y | 零食标签ID | |
2 | snack_labels | 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 | 更新时间 |
表snack_mall (零食商城)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | snack_mall_id | int | 10 | 0 | N | Y | 零食商城ID | |
2 | snack_labels | varchar | 64 | 0 | Y | N | 零食标签 | |
3 | snack_specifications | varchar | 64 | 0 | Y | N | 零食规格 | |
4 | manufacturer | varchar | 64 | 0 | Y | N | 生产厂商 | |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | recommend | 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 | 更新时间 |
表snack_products (零食商品)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | snack_products_id | int | 10 | 0 | N | Y | 零食商品ID | |
2 | snack_name | varchar | 64 | 0 | Y | N | 零食名称 | |
3 | snack_classification | varchar | 64 | 0 | Y | N | 零食分类 | |
4 | cover | varchar | 255 | 0 | Y | N | 封面 | |
5 | snack_specifications | varchar | 64 | 0 | Y | N | 零食规格 | |
6 | manufacturer | varchar | 64 | 0 | Y | N | 生产厂商 | |
7 | details_introduction | text | 65535 | 0 | Y | N | 详情介绍 | |
8 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
10 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | 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 | 更新时间: |
整个微信小程序的零食盒子的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4 微信小程序的零食盒子详细设计与实现
微信小程序的零食盒子的详细设计与实现主要是根据前面的微信小程序的零食盒子的需求分析和微信小程序的零食盒子的总体设计来设计页面并实现业务逻辑。主要从微信小程序的零食盒子界面实现、业务逻辑实现这两部分进行介绍。
当进入微信小程序的零食盒子的时候,首先映入眼帘的是系统的导航栏,下面是轮播图以及系统内容,其主界面展示如下图4-1所示。
图4-1 前台首页界面图
不是微信小程序的零食盒子中正式用户的是可以在线进行注册的,如果你没有本微信小程序的零食盒子的账号的话,添加“注册”,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图4-2所示。
图4-2 前台注册界面图
注册逻辑代码如下:
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
query.put("username",user.getUsername());
List list = service.select(query, new HashMap<>()).getResultList();
if (list.size()>0){
return error(30000, "用户已存在");
}
user.setUserId(null);
user.setPassword(service.encryption(user.getPassword()));
service.save(user);
return success(1);
}
微信小程序的零食盒子中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到微信小程序的零食盒子的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。
图4-3登录界面图
登录的逻辑代码如下所示。
/**
* 登录
* @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, "账号或密码不正确");
}
}
用户点击联系方式查看系统公告列表中的网站公告、关于我们、联系方式、网站介绍等信息。界面如下图4-4所示。
图4-4系统公告列表界面图
当用户点击“收货地址”右后,就回去显示出目前现有的地址,也可以添加新的地址,界面如下图4-5所示。
图4-5收货地址界面图
当访客点击了任意商品后将会进入该款商品的详情界面,可以了解到该商品的图片信息、商品信息、价钱信息等,同时可以对该商品进行加购+立即购买+收藏+点赞+评论,产品详情展示页面如图4-6所示。
图4-6 产品详情界面图
当用户点击“我的订单”链接后就进入自己购买的订单的界面展示,界面如下图4-7所示。
图4-7 我的订单界面图
微信小程序的零食盒子中的管理人员是可以对前台注册的用户进行管理的,也可以对管理员进行管控。界面如下图4-8所示。
用户管理管理关键代码如下:
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
return success(1);
}
管理员可以查看后台首页展示的商品销售金额、商品销售数量等统计图信息。后台首页界面如下图4-9所示。
图4-9后台首页界面图
管理员可以对零食标签管理信息进行添加,可以查看零食标签管理列表中的某一信息详情,可以对零食标签管理列表进行查询和删除操作。零食标签管理界面如下图4-9所示。
图4-10零食标签管理界面图
管理员点击“系统公告管理”菜单可以查看到系统中的所有系统公告信息,对已经存在的系统公告,管理员可以修改,也可以添加新的系统公告或者删除系统公告。界面如下图4-11所示。
图4-11系统公告界面图
综合管理所属微信小程序的零食盒子中的所有的零食商城、分类列表、订单列表、订单配送以及用户提交的信息进行增删改查。
5系统测试
系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些bug,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。
系统测试包括:用户登录功能测试、商品展示功能测试、商品添加、商品搜索、密码修改功能测试,如表5-1、5-2、5-3、5-4、5-5所示:
表5-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
商品查看功能测试:
表5-2 商品查看功能测试表
用例名称 | 商品查看 |
目的 | 测试商品查看功能 |
前提 | 用户登录 |
测试流程 | 点击商品列表 |
预期结果 | 可以查看到所有商品信息 |
实际结果 | 实际结果与预期结果一致 |
管理员添加商品界面测试:
表5-3 管理员添加商品界面测试表
用例名称 | 商品发布测试用例 |
目的 | 测试商品发布功能 |
前提 | 卖家用户正常登录情况下 |
测试流程 | 1)点击商品信息管理就,然后点击添加后并填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,页面首页会显示新的商品信息 |
实际结果 | 实际结果与预期结果一致 |
商品搜索功能测试:
表5-4商品搜索功能测试表
用例名称 | 商品搜索测试 |
目的 | 测试商品搜索功能 |
前提 | 无 |
测试流程 | 1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
预期结果 | 页面显示包含有搜索关键字的商品 |
实际结果 | 实际结果与预期结果一致 |
密码修改功能测试:
表5-5 密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
通过编写微信小程序的零食盒子的测试用例,已经检测完毕用户登录模块、商品查看模块、商品添加模块、商品搜索模块、密码修改功能测试,通过这5大模块为微信小程序的零食盒子的后期推广运营提供了强力的技术支撑。
在本研究中,通过基于微信小程序开发的在线零食订购平台的设计与实现,取得了一系列有益的成果。首先,该平台为消费者提供了便捷、快速的零食购买途径,满足了现代消费者对购物便捷性和多样化选择的需求。用户可以通过微信小程序随时随地浏览、选购各类零食产品,并实现在线支付和配送服务,大大提升了消费者的购物体验和便利性。
其次,该在线零食订购平台的建立推动了零食行业的数字化转型和发展。通过引入微信小程序平台,零食销售商得以拓展在线销售渠道,增强了品牌曝光度和市场竞争力。消费者与零食品牌之间的互动和交流也得到促进,为零食行业带来了更多商机和合作机会,推动了零食市场的创新与发展。
最后,本研究的成果不仅具有重要的商业意义,更为零食行业的现代化发展和消费者生活品质提升做出了积极贡献。通过微信小程序在线零食订购平台的实现,为消费者提供了更便捷、高效的购物方式,为零食行业注入了新的活力和动力。未来,我们将继续优化平台功能,拓展合作伙伴关系,提升用户体验和服务质量,致力于打造一个更加智能、便捷的在线零食购物平台,促进零食行业的创新发展,实现零食消费与数字化科技的完美融合,助力消费者享受更美好、便利的零食购物体验。
[2]李国. 休闲零食为市场带来浓浓年味[N]. 工人日报, 2024-02-06 (007).
[3]陈晴. 休闲零食龙头良品铺子换帅 杨银芬董事长、总经理“一肩挑”[N]. 每日经济新闻, 2023-11-29 (007).
[4]休闲零食产业刮起“健康风”[N]. 中国食品报, 2023-11-14 (007).
[5]Ghoshal A . Oracle’s MySQL HeatWave gets Vector Store, generative AI features [J]. InfoWorld.com, 2023,
[6]二三线城市释放零食品类销售新潜力[N]. 中国食品报, 2023-08-08 (007).
[7]肖伟. 旅游旺季来临 零食行业如何抓住机遇? [J]. 中国食品工业, 2023, (13): 10.
[8]李宇杰. 基于微服务架构的电商微信小程序的设计与实现[D]. 华东师范大学, 2023.
[9]陈娇,杨欣,韩艳等. 基于微信小程序的校园综合服务化线上商城的研究与探索 [J]. 中阿科技论坛(中英文), 2022, (04): 102-106.
[10]Hejing W . Commerce Middle Office Management System Based on Springboot [J]. International Journal of Advanced Network, Monitoring and Controls, 2022, 7 (2): 32-45.
[11]李常宝. 基于微信小程序的电子商城的设计与开发 [J]. 吕梁教育学院学报, 2021, 38 (03): 133-136.
[12]乐普. 休闲零食销售暴涨:左手薯片、右手辣条 [J]. 中国食品工业, 2021, (16): 91-92.
[13]周文. 三只松鼠股份有限公司营销策略研究[D]. 云南大学, 2021.
[14]胡杨林. 基于微服务和小程序的电子商城设计与实现[D]. 西北大学, 2021.
[15]马静. 基于微信小程序的购物商城系统的设计与实现 [J]. 微型电脑应用, 2021, 37 (03): 31-34.
[16]付雯婷,毛桂津. 在校大学生线上零食消费习惯研究——以武汉东湖学院大学生为例 [J]. 科技风, 2018, (13): 208+213.
[17]康娇兰. 基于微信小程序的区块链商城系统的设计与实现[D]. 华中科技大学, 2021.
[18]徐伟,李刚,王星等. 基于微信小程序的校园服务平台设计与研究 [J]. 信息与电脑(理论版), 2020, 32 (10): 97-99.
[19]胡莹莹. 线上零食业销售前景分析 [J]. 环渤海经济瞭望, 2020, (04): 56-57.
[20]李平,李明芮,张慧敏. 大学生群体零食消费微信公众平台推广研究 [J]. 绥化学院学报, 2019, 39 (12): 122-125.
致 谢
逝者如斯夫,不舍昼夜。转眼间,大学生活便已经接近尾声,人面对着离别与结束,总是充满着不舍与茫然,我亦如此,仍记得那年秋天,我迫不及待的提前一天到了学校,面对学校巍峨的大门,我心里充满了期待:这里,就是我新生活的起点吗?那天,阳光明媚,学校的欢迎仪式很热烈,我面对着一个个对着我微笑的同学,仿佛一缕缕阳光透过胸口照进了我心里,同时,在那天我认识可爱的室友,我们携手共同度过了这难忘的两年。如今,我望着这篇论文的致谢,不禁又要问自己:现在,我们就要说再见了吗?
感慨莫名,不知所言。遥想当初刚来学校的时候,心里总是想着工科学校会过于板正,会缺乏一些柔情,当时心里甚至有一点点排斥,但是随着我对学校的慢慢认识与了解,我才认识到了她的美丽,她的柔情,并且慢慢的喜欢上了这个校园,但是时间太快了,快到我还没有好好体会她的美丽便要离开了,但是她带给我的回忆,永远不会离开我,也许真正离开那天我的眼里会满含泪水,我不是因为难过,我只是想将她的样子映在我的泪水里,刻在我的心里。最后,感谢我的老师们,是你们教授了我们知识与做人的道理;感谢我的室友们,是你们陪伴了我如此之久;感谢每位关心与支持我的人。
少年,追风赶月莫停留,平荒尽处是春山。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~