感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以关注一下,希望帮助更多的人顺利毕业~

基于小程序的江西特色美食系统

摘要  随着中国经济的飞速增长,消费者的智能化水平不断提高,许多智能手机和相关的软件正在得到更多的关注和支持。江西是一个具有丰富的特色美食文化的地区当前,江西特色美食的传播与推广主要以线下实体店为主,这种方式存在着许多问题和挑战。随着移动互联网的迅猛发展,小程序成为了人们日常生活中必不可少的工具。小程序的快捷、便利性使得它成为了推动特色美食产业发展的重要工具之一。通过利用小程序的技术特点,可以将江西特色美食的信息传达到更广泛的受众群体中。通过小程序的便捷性和实时性,用户可以方便地找到自己所需的特色美食,提高就餐体验。同时,小程序还可以为特色美食店家提供一个展示、宣传、销售的平台,促进了店家的发展和壮大。

基于小程序的江西特色美食系统的开发项目以SpringBoot框架为基础,前端采用Vue.js的开发方法,使用MySQL数据库,首选对本基于小程序的江西特色美食系统的各个功能以及用户的需求做出了解释,然后根据用户对应江西特色美食点餐的需求,再介绍了系统的总体设计以及其详细设计,给用户提供了基于小程序的江西特色美食系统的总体结构的搭建方法。从而满足用户使用小程序线上点餐的需求。

关键词  微信小程序;SpringBoot江西特色美食;MySQL

Jiangxi Specialty Food System Based on Mini Programs

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

Supervisor: xxx 

Abstract  With the rapid growth of the Chinese economy and the continuous improvement of consumer intelligence, many smartphones and related software are receiving more attention and support. Jiangxi is a region with rich unique culinary culture. Currently, the dissemination and promotion of Jiangxi's specialty cuisine mainly rely on offline physical stores, which poses many problems and challenges. With the rapid development of mobile Internet, small programs have become an indispensable tool in people's daily life. The speed and convenience of mini programs have made them one of the important tools to promote the development of the specialty food industry. By utilizing the technical features of the mini program, information about Jiangxi's unique cuisine can be conveyed to a wider audience. Through the convenience and real-time nature of the mini program, users can easily find their desired specialty cuisine and improve the dining experience. At the same time, the mini program can also provide a platform for specialty food shop owners to showcase, promote, and sell, promoting the development and growth of the shop owners.

The development project of a Jiangxi specialty food system based on mini programs is based on the SpringBoot framework, using Vue.js development method in the front-end and MySQL database. The first choice is to explain the various functions and user needs of the Jiangxi specialty food system based on mini programs. Then, according to the user's corresponding needs for ordering Jiangxi specialty food, the overall design and detailed design of the system are introduced, Provided users with a method for building the overall structure of a Jiangxi specialty food system based on mini programs. So as to meet the needs of users to order food online through mini programs.

Key words  WeChat Mini Program; SpringBoot; Jiangxi specialty cuisine; MySQL

目录

1 绪论

1.1 研究背景与意义

1.2研究现状

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系统后端用例

3.6 系统流程分析

3.6.1数据流程

3.6.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.2后台管理功能模块

5.2.1 商家用户管理界面

5.2.2 用户商家管理界面

5.2.3 美食类型界面

5.2.4 美食信息管理界面

6系统的测试

6.1测试的目的

6.2 系统测试用例

6.3 系统测试结果

结论

参考文献

致谢

1 绪论

1.1 研究背景与意义

随着技术的发展,智能手机已经成为一个极具吸引力的工具,它使得无论何时何地,都可以轻松访问、办公、接收信息,从而实现从桌面到电脑的跨屏操作。此外,微信也成为众多社区聊天工具之一,它的使用更加便捷、高效,深得大众的喜爱。近年来,微信的影响力不断扩张,使得它成为一款流行的社交软件,几乎每个用户的手中都拥有它,这也正是智能手机技术的进步所带来的结果。微信推出的小程序广告可以让公众号更加便捷地关注,这标志着小程序和公众号之间的联系已经完全建立起来。本文讨论的是基于小程序的江西特色美食系统,它涉及到程序、数据库和计算机技术等多个方面。通过广泛涉猎各种领域,我们能够显著提升系统人员的工作效率。

随着互联网和移动互联网技术的不断发展和普及,人们的生活方式也发生了巨大的变化。江西是一个拥有丰富特色美食的地区,其独特的地理特点和民族文化影响了江西美食的发展,使其成为中国独有的一种美食文化。然而,由于江西特色美食的推广和宣传力度不足,很多人对江西的美食并不了解,导致其在外地的知名度较低。因此,一个基于小程序的江西特色美食系统的研究变得非常重要。

江西特色美食系统将结合江西地方美食特色,借助小程序平台,可以提供全面的美食介绍和推广,帮助更多的人了解和尝试江西的美食,从而促进江西特色美食的传承和发展。江西的美食作为一种重要的旅游资源,可以为江西旅游行业带来更多的客流和经济效益。通过建立一个基于小程序的江西特色美食系统,游客可以方便地了解和寻找江西的美食,从而增加江西旅游的吸引力。

1.2研究现状

在当今社会,随着人们生活水平的提高和消费需求的多样化,各地方特色美食和商品成为吸引消费者的重要因素之一。在国内,各地区的特色美食和商品多样丰富,如四川的火锅、广东的点心、江苏的苏绣等,各具特色,受到消费者喜爱。同时,随着互联网与信息技术的快速发展,电子商务逐渐崛起,为消费者提供了更便捷的购物方式。各大电商平台如淘宝、京东等提供了丰富多样的商品选择,方便了消费者的购物体验。然而,这些平台上的商品往往是全国性的,缺乏地方特色,无法满足消费者对地方特色美食和商品的需求。在国外,一些地区也有着独特的特色美食和商品,如意大利的披萨、日本的和服等,受到了全球各地游客的青睐。但是,由于地域限制和语言障碍,消费者很难直接获得这些地方特色美食和商品。人们对于地方特色美食和商品的需求日益增加,但传统的购物方式存在一定的局限性,需要开发一种新型的地方特色美食购物系统,满足消费者对地方特色美食和商品的需求。

现在电子商务网购模式已经非常普遍,也支撑着社会经济的发展,电商平台有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、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-4所示。

3-4 美食信息模块用例图

(2)美食活动模块:管理员在后台可以对美食活动信息进行增删改查,游客实现查看美食活动,用户进行收藏、点赞、评论。如下图3-5所示。

3-5美食活动模块用例图

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

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

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

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

(5)我的订单管理:在基于小程序的江西特色美食系统中,用户商家和管理员都能够管理订单,可以对订单进行查看、删除。如下图3-8所示。

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

3.4 非功能性需求分析

基于小程序的江西特色美食系统的性能性需求分析主要是分析本基于小程序的江西特色美食系统的安全性怎么样(是否会泄露用户个人信息),可靠性怎么样(用户操作的时候是不是能够根据实际操作显示信息),性能怎么样(运行是否操作流畅),可拓展性怎么样(功能能否继续拓展)等。具体可以表示在如下3-1表格中:

3-1 基于小程序的江西特色美食系统非功能需求表

安全性

主要指基于小程序的江西特色美食系统数据库的安装,数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指基于小程序的江西特色美食系统能够按照用户的指示进行操作,经过测试,可靠性90%以上。

性能

性能是影响基于小程序的江西特色美食系统占据市场的必要条件,所以性能最好要佳才好。

可扩展性

比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。

易用性

用户只要跟着基于小程序的江西特色美食系统的页面展示内容进行操作,就可以了。

可维护性

基于小程序的江西特色美食系统开发的可维护性是非常重要的,经过测试,可维护性没有问题

3.5系统角色用例分析

3.5.1系统前台用户用例

基于小程序的江西特色美食系统的前台是用户进行操作的,主要实现用户对美食活动以及美食信息的查看,注册登录以后实现美食信息的购买以及个人信息、订单的管理。前台普通用户用例图如图3-9所示

3-9 基于小程序的江西特色美食系统前台普通用户用例图

系统前端普通用户的功能包含了首页、美食信息、美食活动、商品订单、我的收藏、购物车、地址 、用户充值、修改密码等部分

(1)用户在前台可以查看美食活动信息,让用户了解江西特色美食的各种美食活动,可以对自己喜欢的美食活动进行收藏、点赞,也可以实现对美食活动的评论,与共同爱好者产生交流,用例说明如下表所示:

3-1 美食活动用例图

用例名称

美食活动收藏/点赞/评论

角色

普通用户

用例说明

用户在前台查看美食活动,对喜欢的美食活动进行收藏、点赞、评论

前置条件

用户登录

后置条件

对用户的收藏、点赞、评论在系统中展示出来

基本事件流

1、用户通过浏览器进入本基于小程序的江西特色美食系统

2、用户登录到系统当中

3、用户进入美食活动,选择美食活动进入详情

4、用户点击收藏或者点赞

5、在评论框输入评论内容,点击提交

推展流程

异常事件流

1、用户没有登录

2、输入的评论内容为空

其他

(2)基于小程序的江西特色美食系统主要的功能就是购买美食商品,所有在系统中用户可以选择自己喜欢的美食信息进行加购或立即购买,用例说明如下表所示:

3-2 美食信息用例图

用例名称

美食信息购买

角色

普通用户

用例说明

用户在前台查看美食信息,对喜欢的美食商品进行点赞、收藏、评论、加购、立即购买

前置条件

用户登录

后置条件

对美食商品添加至购物车或立即购买

基本事件流

1、用户通过微信小程序进入本江西特色美食系统

2、用户登录到系统当中

3、用户进入美食信息,选择美食商品进入详情

4、加购或立即购买

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

拓展流程

选择支付方式

异常事件流

1、用户没有登录,需要注册登录后才能操作

2、购买失败需要取消付款

其他

3.5.2系统后端用例

后台分为两个角色:商家和管理员,用户不能进入后台,商家进入以后对美食信息管理(美食类型、美食信息)、商品订单(未支付、已支付、已发货、已完成、已退款、已取消)这几个模块进行管理。管理员进入以后可以对轮播图管理、用户管理、美食活动、美食信息管理(美食类型、美食信息)、商家管理、商品订单理进行管理。

商家用户用例图如图3-10所示

3-10基于小程序的江西特色美食系统后台商家用户用例图

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

3-11 基于小程序的江西特色美食系统后台管理员用户用例图

后台管理员主要实现了是对轮播图管理、用户管理、美食活动、美食信息管理(美食类型、美食信息)、商家管理、商品订单的增删改查操作。后台管理员用例说明如下表所示:

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

用例名称

后台管理

角色

管理员

用例说明

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

前置条件

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

后置条件

基本事件流

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

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

3.选择所要操作的数据

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

5.点击立即保存按钮

扩展流程

异常事件流

其他

3.6 系统流程分析

3.6.1数据流程

基于小程序的江西特色美食系统主要的目的就是实现对江西特色美食信息在线购买,图3-12就是系统的数据流图。

3-12江西特色美食购买操作展开图

3.6.2业务流程

分析完基于小程序的江西特色美食系统的数据流,接下来我们来看系统的业务流程,图3-13就是业务流程图:

3-13 业务流程图

4 系统概要设计

4.1开发流程设计

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

通过对基于小程序的江西特色美食系统的成功开发,我们可以看出,采用这种方法可以显著降低系统的复杂性,并且可以通过图4-1进一步证明。

图4-1开发系统流程图

4.2系统功能结构

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

4-2 功能结构关系

4.3数据库概念结构设计

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

下面是整个基于小程序的江西特色美食系统中主要的数据库表总E-R实体关系图。

图4-3 基于小程序的江西特色美食系统总E-R关系图

4.4  数据库逻辑结构设计

通过上一小节中基于小程序的江西特色美食系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。

表名:storeup

功能:我的收藏

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

tablename

varchar

200

表名

name

varchar

200

名称

picture

longtext

4294967295

图片

type

varchar

200

类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注)

inteltype

varchar

200

推荐类型

remark

varchar

200

备注

userid

bigint

用户id

refid

bigint

refid

表名:shangjia

功能:商家

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shangjiazhanghao

varchar

200

商家账号

mima

varchar

200

密码

shangjiaxingming

varchar

200

商家姓名

touxiang

longtext

4294967295

头像

xingbie

varchar

200

性别

shouji

varchar

200

手机

表名:orders

功能:商品订单

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

orderid

varchar

200

订单编号

tablename

varchar

200

商品表名

goodid

bigint

商品id

goodname

varchar

200

商品名称

picture

longtext

4294967295

图片

buynumber

int

购买数量

price

double

单价

discountprice

double

折扣价

total

double

总价

discounttotal

double

折扣总价格

type

varchar

200

支付类型

status

varchar

200

订单状态

address

varchar

200

地址

tel

varchar

200

电话

consignee

varchar

200

收货人

remark

varchar

200

备注

logistics

longtext

4294967295

物流

userid

bigint

用户id

shangjiazhanghao

varchar

200

商户名称

表名:news

功能:美食活动

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

longtext

4294967295

图片

content

longtext

4294967295

内容

表名:menu

功能:菜单

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

menujson

longtext

4294967295

菜单

表名:meishixinxi

功能:美食信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

meishimingcheng

varchar

200

美食名称

meishileixing

varchar

200

美食类型

meishitupian

longtext

4294967295

美食图片

guige

varchar

200

规格

fengwei

varchar

200

风味

meishixiangqing

longtext

4294967295

美食详情

storeupnum

int

收藏数量

thumbsupnum

int

crazilynum

int

clicktime

datetime

最近点击时间

clicknum

int

点击次数

shangjiazhanghao

varchar

200

商家账号

shangjiaxingming

varchar

200

商家姓名

price

double

价格

表名:meishileixing

功能:美食类型

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

meishileixing

varchar

200

美食类型

表名:discussmeishixinxi

功能:美食信息评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表名:yonghu

功能:用户

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yonghuzhanghao

varchar

200

用户账号

yonghumima

varchar

200

用户密码

yonghuxingming

varchar

200

用户姓名

touxiang

longtext

4294967295

头像

xingbie

varchar

200

性别

shoujihaoma

varchar

200

手机号码

money

double

余额

0

表名:config

功能:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表名:users

功能:管理员

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

username

varchar

200

用户名

password

varchar

200

密码

role

varchar

200

角色

表名:cart

功能:购物车

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

tablename

varchar

200

商品表名

goodid

bigint

商品id

goodname

varchar

200

商品名称

picture

longtext

4294967295

图片

buynumber

int

购买数量

price

double

单价

discountprice

double

折扣价

userid

bigint

用户id

shangjiazhanghao

varchar

200

商户名称

表名:token

功能:token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表名:address

功能:地址

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

address

varchar

200

地址

name

varchar

200

收货人

phone

varchar

200

电话

isdefault

varchar

200

是否默认地址

userid

bigint

用户id

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-8所示。

图5-8添加至购物车界面图

立即购买订单页面如图5-9所示。

图5-9立即购买订单界面图

5.1.6我的界面

在点击导航栏上的“我的”后,会显示所有我的管理子菜单,包括商品订单、我的收藏、购物车、地址 、用户充值、修改密码界面如下图5-10所示。

图5-10 我的管理界面图

5.2后台管理功能模块

5.2.1 商家用户管理界面

商家用户进入管理后台,可以对美食信息管理(美食类型、美食信息)、商品订单(未支付、已支付、已发货、已完成、已退款、已取消)等模块的信息进行管理商家用户后台管理界面如下图5-11所示。

图5-11商家用户后台管理界面图

5.2.2 用户商家管理界面

后台管理人员是可以对前台注册的普通用户和商家用户进行管理。用户管理界面如下图5-12所示。

图5-12用户管理界面图

商家管理界面如下图5-13所示。

图5-13商家管理界面图

5.2.3 美食类型界面

后台管理人员是可以对基于小程序的江西特色美食系统内的美食商品类型进行管控。美食类型管理界面如下图5-14所示。

图5-14美食类型管理界面图

5.2.4 美食信息管理界面

后台管理人员对基于小程序的江西特色美食系统内的不同美食类型下美食信息进行维护和管理的,美食信息管理界面如下图5-15所示。

图5-15美食信息管理界面图

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]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):

[2]Wu J ,Chen N ,Xia H , et al.Design and application of a game‐based WeChat mini‐program for screening cognitive impairments in Chinese older adults[J].Alzheimer's  Dementia,2023,19(S11):

[3]龙芳,吴勇灵.微信小程序购物系统的设计与实现[J].现代信息科技,2023,7(23):25-30.DOI:10.19850/j.cnki.2096-4706.2023.23.006.

[4]刘彩萍.探讨基于微信小程序的网上购物系统的设计与实现[J].数字技术与应用,2023,41(08):182-184.DOI:10.19695/j.cnki.cn12-1369.2023.08.58.

[5]王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.

[6]崔祥.基于Web的在线购物系统设计[J].无线互联科技,2022,19(24):71-74.

[7]Gülden T .Motives in Online Shopping through Digital Platforms in Textile: Risk Perception and Purchase Intention[J].Fibres  Textiles in Eastern Europe,2022,30(5):1-7.

[8]傅勇.京东深耕农特产品“奔富”产业带[N].经济参考报,2022-09-26(008).DOI:10.28419/n.cnki.njjck.2022.004400.

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

[10]任建新,王一鸣,李鑫等.基于Java Web的智慧商城购物系统设计[J].信息技术与信息化,2022,(07):23-27.

[11]尚志豪,单超颖,王佳琦等.基于物联网技术的智能购物车系统[J].电子元器件与信息技术,2022,6(07):60-64.DOI:10.19772/j.cnki.2096-4455.2022.7.016.

[12]朱彦龙.某电商系统中购物子系统的设计与实现[D].北京邮电大学,2022.DOI:10.26969/d.cnki.gbydu.2022.000527.

[13]焦自程.基于uni-app框架的购物商城小程序的设计与实现[J].信息与电脑(理论版),2022,34(08):168-170.

[14]杜雨荃,王晓菊,田立勤.基于微信小程序的网上购物系统的设计与实现[J].网络安全技术与应用,2022,(04):60-62.

[15]田松涛,段元梅.基于SpringBoot的线上商城平台设计[J].无线互联科技,2022,19(01):56-57.

[16]郑加华.高青:数字特产商城带动“亮村共富”[N].淄博日报,2021-12-27(002).DOI:10.38290/n.cnki.nzbrb.2021.003330.

[17]张文博.个性化购物推荐系统的研究与实现[D].山东大学,2021.DOI:10.27272/d.cnki.gshdu.2021.006783.

[18]陈晗.基于RESTful的网上商城的设计与实现[D].首都经济贸易大学,2021.DOI:10.27338/d.cnki.gsjmu.2021.000739.

[19]何贵涛.A线上购物商城服务营销优化研究[D].广西大学,2021.DOI:10.27034/d.cnki.ggxiu.2021.000355.

[20]马静.基于微信小程序的购物商城系统的设计与实现[J].微型电脑应用,2021,37(03):31-34.

致谢

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

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

点赞❤关注+私信博主,免费领取项目源码

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐