免费送源码:Java+ssm+MySQL “扫墓帮”小程序的设计与实现 计算机毕业设计原创定制

摘要  

SSM(Spring+SpringMVC+MyBatis)框架在现代软件开发中被广泛运用,其结合了各自的优势,提供了一个完整的解决方案,用于构建可靠、高效的应用程序。本文旨在探讨基于SSM框架的“扫墓帮”小程序系统的设计与实现。祭祀活动在中国传统文化中占据重要地位,而随着社会的发展,人们对祭祀活动的需求也在不断增加。因此,设计一个便捷、高效的祭祀服务平台成为当下的需求之一。

首先,本文分析了“扫墓帮”小程序系统的需求和功能。该系统旨在为用户提供一个方便的祭祀服务平台,包括纪念信息展示、祭祀提醒、祭祀物品购买等功能。其次,系统采用SSM框架,结合Java语言和MySQL数据库,利用前端微信小程序技术实现用户界面的设计。系统架构清晰,数据库设计合理,功能模块完善,为用户提供了良好的使用体验。通过系统的设计与实现,用户可以方便地查看祭祀信息、预定祭祀服务、管理个人祭祀记录等操作,从而满足用户对祭祀活动的需求。

本文还详细描述了系统的数据库设计、系统架构和主要功能模块的实现过程。通过对系统进行测试和验证,确保系统达到预期目标并提供有效支持。最后,本文的研究成果可为类似祭祀服务平台的设计与开发提供有益参考和借鉴。

关键词SSM框架;“扫墓帮”小程序系统;MySQL数据库

Design and Implementation of a Mini Program for "Tomb Sweeping Gang"

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

Abstract  

The SSM (Spring+SpringMVC+MyBatis) framework is widely used in modern software development, combining their respective advantages to provide a complete solution for building reliable and efficient applications. This article aims to explore the design and implementation of a "Tomb Sweeping Gang" mini program system based on the SSM framework. Sacrificial activities occupy an important position in traditional Chinese culture, and with the development of society, people's demand for them is also constantly increasing. Therefore, designing a convenient and efficient sacrificial service platform has become one of the current needs.

Firstly, this article analyzes the requirements and functions of the "Tomb Sweeping Gang" mini program system. The system aims to provide users with a convenient sacrificial service platform, including functions such as displaying commemorative information, sacrificial reminders, and purchasing sacrificial items. Secondly, the system adopts the SSM framework, combined with Java language and MySQL database, and utilizes front-end WeChat mini program technology to design the user interface. The system architecture is clear, the database design is reasonable, and the functional modules are complete, providing users with a good user experience. Through the design and implementation of the system, users can conveniently view sacrificial information, book sacrificial services, manage personal sacrificial records, and other operations, thereby meeting their needs for sacrificial activities.

This article also provides a detailed description of the database design, system architecture, and implementation process of the main functional modules of the system. By testing and validating the system, ensure that it meets expected goals and provides effective support. Finally, the research findings of this article can provide useful reference and inspiration for the design and development of similar sacrificial service platforms.

Keywords: SSM framework; "Tomb Sweeping Gang" mini program system; MySQL database

目录

1 绪论 3

1.1 研究背景与意义 3

1.2国内外研究现状 3

1.3论文主要研究内容 4

1.4论文组织结构 4

2 相关技术介绍 5

2.1 微信开发者工具 6

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

2.3 Java编程语言 6

2.4  SSM框架介绍 7

2.5 MySQL数据库 8

3 系统分析设计 9

3.1 可行性分析 9

3.1.1 技术可行性分析 9

3.1.2 经济可行性分析 9

3.1.3 操作可行性分析 9

3.2 系统流程分析 9

3.2.1 用户登录流程 9

3.2.2 信息添加流程 10

3.2.3 信息删除流程 11

3.3 功能需求分析 12

3.4 非功能性需求分析 15

3.5系统角色用例分析 16

3.5.1系统前台用户用例 16

3.5.2系统后端用例 17

4 系统概要设计 19

4.1开发流程设计 19

4.2系统功能结构设计 20

4.3数据库概念结构设计 21

4.4数据库逻辑结构设计 22

表access_token (登陆访问时长) 22

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

表article_type (文章分类) 23

表auth (用户权限管理) 24

表collect (收藏) 25

表comment (评论) 25

表customer_users (客户用户) 25

表hits (用户点击) 26

表message (留言板) 26

表notice (公告) 26

表order_evaluation (订单评价) 27

表order_information (订单信息) 27

表order_progress (订单进度) 28

表praise (点赞) 29

表product_classification (商品分类) 29

表product_information (商品信息) 30

表shopping_cart (购物车) 30

表slides (轮播图) 31

表upload (文件上传) 31

表user (用户账户:用于保存用户登录信息) 32

表user_group (用户组:用于用户前端身份和鉴权) 33

5 系统的实现 33

5.1前台用户功能模块 34

5.1.1 前台首页界面 34

5.1.2注册界面 34

5.1.3登录界面 37

5.1.4 扫墓资讯界面 42

5.1.5 商品信息详情界面 43

5.1.6购物车管理界面 44

5.1.7订单信息管理界面 45

5.1.8订单进度管理界面 46

5.2后台功能模块 47

5.2.1 系统用户界面 47

5.2.2 系统管理界面 48

5.2.3 资源管理界面 48

5.2.4 商品信息管理界面 49

5.2.6 商品分类界面 49

5.2.7订单信息界面 50

5.2.8订单进度界面 50

6系统的测试 52

6.1测试的目的 52

6.2 系统测试用例 52

6.3 系统测试结果 53

结论 54

参考文献 55

致谢 56

1 绪论

1.1 研究背景与意义

中国传统文化中的祭祀活动一直占据着重要地位,作为对祖先的尊敬和纪念的方式,祭祀活动在人们生活中扮演着不可或缺的角色。随着社会的发展和现代化的进程,人们对祭祀活动的方式和方式也在发生变化,越来越多的人开始寻求更便捷、高效的祭祀服务。因此,设计和实现一个基于SSM框架的“扫墓帮”小程序系统具有重要的现实意义和深远的文化意义。

首先,基于SSM框架的小程序系统能够为用户提供一个方便、高效的祭祀服务平台。通过该系统,用户可以轻松查看纪念信息、设置祭祀提醒、预定祭祀服务以及管理个人祭祀记录,大大简化了祭祀活动的流程,节省了用户的时间和精力。这不仅符合现代人们追求高效生活的需求,也为传统祭祀活动注入了现代化元素,有助于提升传统文化的传承和发展。

其次,通过研究基于SSM框架的小程序系统的设计与实现,可以推动传统文化与现代科技的融合发展。传统文化是中华民族的宝贵财富,而现代科技则是推动社会进步的重要动力。将传统祭祀活动与现代技术相结合,不仅可以满足当代人们对祭祀服务的需求,也有助于传统文化在当代社会中的传承和弘扬。这种跨界融合的做法有助于拓展传统文化的传播渠道,吸引更多年轻人参与传统文化活动,促进文化传统的传承和创新。

综上所述,研究基于SSM框架的“扫墓帮”小程序系统的设计与实现不仅具有现实意义,为用户提供便捷的祭祀服务平台,也具有深远的文化意义,推动传统文化与现代科技的融合发展,促进传统文化的传承和发展。这对于传统文化的传承和弘扬具有重要的意义,也为文化产业的发展提供了新的思路和方向。

1.2国内外研究现状

国内方面,随着中国互联网行业的蓬勃发展,基于SSM框架的小程序系统设计与实现逐渐受到重视。在电子商务、社交网络、在线教育等领域,研究者们开始探讨如何利用SSM框架构建高效、可靠的小程序系统,以提升用户体验和服务质量。例如,一些大型电商平台利用SSM框架实现了小程序系统,实现了商品展示、购物车管理、订单跟踪等功能。此外,在社交网络领域,一些研究关注基于SSM框架的小程序系统在用户社交互动和信息分享方面的应用。然而,对于祭祀服务领域的研究相对较少,目前尚未有较为系统和深入的研究成果。

在国外,一些发达国家开始关注移动应用和文化传承的结合。虽然对于基于SSM框架的小程序系统的研究相对较少,但在移动应用和文化保护方面的研究为类似祭祀服务平台的设计提供了一定的借鉴。例如,一些文化机构和博物馆利用移动应用技术开发了数字化展览和文化传播平台,为用户提供便捷的文化体验。这些研究成果为基于SSM框架的小程序系统在传统文化领域的应用提供了启示。

综合来看,国内外在基于SSM框架的小程序系统设计与实现方面的研究主要集中在电子商务、社交网络等领域,对于祭祀服务领域的研究还相对较少。随着传统文化的重视和现代科技的发展,基于SSM框架的小程序系统在传统文化领域的应用具有重要意义。未来的研究可以借鉴国内外相关领域的研究成果,结合祭祀服务的特点,深入探讨如何利用SSM框架设计和实现功能丰富、便捷高效的祭祀服务平台,为传统文化的传承和发展做出更多贡献。

1.3论文主要研究内容

“扫墓帮”小程序的开发及实现,所研究的主要内容如下:

(1)首先是确定选题,确定好所要做的系统,并对系统的背景及现在面临的一些问题等进行系统的初步确认。

(2)系统确认完成后,结合系统开发的需求进行确认系统开发所使用的技术,“扫墓帮”小程序的开发使用前后端分离的架构设计,SSM和Vue的技术选型,采用微信开发者工具,MySQL数据库进行平台的搭建开发,确认好使用的技术进行技术分析,所使用的技术是否可以完成系统的实现。

(3)确定好系统使用的技术,进行确认系统所划分的用户触,并且根据用户触划分确定所要设计的功能模块,对“扫墓帮”小程序的设计主要划分别为客户用户和管理员,并且所使用的功能模块也相应不同,但系统的数据库实现的内容是交互的,客户用户可以随时根据自己的需求进行商品信息搜索及下单购买,对于管理员可以根据自己的权限进行在线信息的处理及操作。

(4)系统的功能模块确认完成后进行程序及界面的设计,设计完成后,组通过测试来判断程序是否完善,对于系统测试,要不同的用户进行不同的内容编辑及提交,及使用不同的测试方式找出程序中存在的漏洞,并对程序出现的漏洞问题进行在线解决处理,如果测试系统没有任何问题时,可以将系统上传进行正式操作使用。

1.4论文组织结构

本文共分为七章,章节内容安排如下:

第一章:引言。主要介绍了课题研究的背景,国内目前相关研究现状以及本文的研究内容与主要工作。

第二章:相关技术介绍。主要对本系统使用的相关技术和开发工具进行介绍。

第三章:系统需求分析。主要从系统的用户、功能等方面进行需求分析。

第四章:系统概要设计。主要对系统框架、系统功能模块、数据库进行功能设计。

第五章:系统实现。主要介绍了系统框架搭建、系统界面的实现。

第六章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试。

第七章:总结与展望。

2 相关技术介绍

2.1 微信开发者工具

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

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

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

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

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

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

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

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

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

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

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

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

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

2.3 Java编程语言

早在上个世纪90年代,Java就由詹姆斯·高斯林进行开发,自诞生之日起,Java就一直深深的受到了程序开发者的广泛喜爱,它作为计算机主要的编程语言,一直到今。Java语言是真的是一种纯面向对象的计算机语言,在Java的世界中,所有的方法、数据类型、符号等都是以类的方式存在的,最顶层的就是Object,所有的类都是对object的继承。继承是Java中的核心思想,与C语言不同的是,子类只有一个父类,这样的好处就是操作更加的简便,让人更容易理解,在代码的书写上也会容易较多。Java另外一个特性就是多态性,调用父类接口的方法可以实现子类的实现,这样的好处就是很好的对实现方法进行了隐藏(封装),而且又能够把API进行公开,一举两得。接口思想很好的诠释了想象对象的思想,让面向对象编程渐渐转向面向接口编程。如今,随着编程思想的继续发展,Java也加入了一些函数式编程的思想,这样的好处就是让编程代码更加的简洁与方便。本管理系统采用Java编程语言进行后台的开发,一是鉴于标准化制定以后,Java语言常用于大型商业应用程序后台系统中,生态稳定;二是也希望通过本系统的开发提高自己编写Java代码的能力。

2.4  SSM框架介绍

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。

1.8.1 Spring

Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。

Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地`new`一个对象,而是让Spring框架帮你来完成这一切。

1.8.2 SpringMVC

SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。

1.8.3 mybatis

mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。

页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。

2.5 MySQL数据库

数据库作为数据的存储地方是项目必须的,MySQL是一款非常优秀的关系型数据库,早期的Mysql并不是甲骨文公司的,后来才被他收购的。Mysql非常的小巧,安装包才几兆,sql语言的书写也比较容易学习,最重要的是mysql同时也是一款开源的软件,所以不需要额外进行付费,本系统本身也是以学习总结所学知识为主,在系统的开发上最好尽量使用免费的软件,所以选用mysql进行数据库管理。Mysql的容量也是非常大的,同时支持分库分表的操作,支持分布式,所以越来越多的中小企业选择该款数据库管理工具。另外值得一提的是,开源也有一个不好的地方,就是容易遭到破解和黑客攻击,所以mysql在使用上还是更多的使用在中小项目中。

3 系统分析设计

3.1 可行性分析

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

3.1.1 技术可行性分析

“扫墓帮”小程序在技术上采用的是Java语言、基于Browser/Server模式,前台使用了Vue.js、HTML、CSS等技术,后台使用了SSM框架结合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-7所示。

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

(5)我的订单管理:在“扫墓帮”小程序中,用户和管理员都能够管理订单,可以对订单信息进行查看、删除。如下图3-8所示。

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

(6)我的模块:我的模块是用户独有的功能,可以在“我的”管理基本信息、购物车、订单信息、订单评论、订单进度和收藏,我的用例如下图3-9所示。

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

3.4 非功能性需求分析

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

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

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

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

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

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

(6)可拓展性:“扫墓帮”小程序的功能还有待完善,因此系统要有很好的拓展性,方便后期功能更新维护。

3.5系统角色用例分析

3.5.1系统前台用户用例

“扫墓帮”小程序前台用户的主要功能是对系统信息的查看、收藏、评论以及对商品的购买,购买的过程中需要对收货地址进行设置,对购物车进行管理,查看自己的订单,对订单进行售后维护。前台客户用户用例图如图3-10所示。

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-3 后台管理员用例说明

用例名称

后台管理

角色

管理员

用例说明

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

前置条件

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

后置条件

基本事件流

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

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

3.选择所要操作的数据

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

5.点击立即保存按钮

扩展流程

异常事件流

其他

4 系统概要设计

4.1开发流程设计

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

通过对“扫墓帮”小程序的成功开发,我们可以看出,采用这种方法可以显著降低系统的复杂性,并且可以通过图4-1进一步证明。

图4-1开发系统流程图

4.2系统功能结构设计

“扫墓帮”小程序总体分为前台用户模块和后台管理员模块。

两个模块表现上是分别独立存在,但是访问的数据库是一样的。每一个模块的功能都是根据先前完成的需求分析,并查阅相关资料后整理制作的。

综上所述,系统功能结构图如图4-2所示。

4-2 系统功能结构图

4.3数据库概念结构设计

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

下面是整个“扫墓帮”小程序中主要的数据库表总E-R实体关系图。

4-3 “扫墓帮”小程序总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

用户编号:

表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

更新时间:

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

表customer_users (客户用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

customer_users_id

int

10

0

N

Y

客户用户ID

2

customer_name

varchar

64

0

Y

N

客户姓名

3

customer_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

更新时间

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

表message (留言板)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

message_id

int

10

0

N

Y

留言板ID:

2

user_id

int

10

0

N

N

0

用户ID:

3

title

varchar

64

0

Y

N

标题:

4

content

longtext

2147483647

0

N

N

内容:

5

nickname

varchar

32

0

N

N

昵称:

6

avatar

varchar

255

0

Y

N

头像:

7

email

varchar

125

0

Y

N

留言者邮箱

8

phone

varchar

11

0

Y

N

留言者手机号码

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

11

reply

longtext

2147483647

0

Y

N

回复

12

reply_state

tinyint

4

0

Y

N

0

回复状态

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表order_evaluation (订单评价)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_evaluation_id

int

10

0

N

Y

订单评价ID

2

order_number

varchar

64

0

Y

N

订单编号

3

sacrifice_services

varchar

64

0

Y

N

代祭服务

4

venue_of_the_sacrifice

varchar

64

0

Y

N

代祭地点

5

product_number

varchar

64

0

Y

N

商品编号

6

product_name

varchar

64

0

Y

N

商品名称

7

product_category

varchar

64

0

Y

N

商品类别

8

product_specifications

varchar

64

0

Y

N

商品规格

9

commodity_price

varchar

64

0

Y

N

商品价格

10

customer_users

int

10

0

Y

N

0

客户用户

11

customer_name

varchar

64

0

Y

N

客户姓名

12

purchase_quantity

varchar

64

0

Y

N

购买数量

13

order_status

varchar

64

0

Y

N

订单状态

14

evaluation_score

varchar

64

0

Y

N

评价分数

15

evaluate_star_rating

varchar

64

0

Y

N

评价星级

16

evaluation_content

text

65535

0

Y

N

评价内容

17

feedback_content

text

65535

0

Y

N

反馈内容

18

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

19

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表order_information (订单信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_information_id

int

10

0

N

Y

订单信息ID

2

order_number

varchar

64

0

Y

N

订单编号

3

sacrifice_services

varchar

64

0

Y

N

代祭服务

4

venue_of_the_sacrifice

varchar

64

0

Y

N

代祭地点

5

product_number

varchar

64

0

Y

N

商品编号

6

product_name

varchar

64

0

Y

N

商品名称

7

product_category

varchar

64

0

Y

N

商品类别

8

product_specifications

varchar

64

0

Y

N

商品规格

9

commodity_price

varchar

64

0

Y

N

商品价格

10

customer_users

int

10

0

Y

N

0

客户用户

11

customer_name

varchar

64

0

Y

N

客户姓名

12

purchase_quantity

varchar

64

0

Y

N

购买数量

13

total_order_price

varchar

64

0

Y

N

订单总价

14

order_remarks

text

65535

0

Y

N

订单备注

15

pay_state

varchar

16

0

N

N

未支付

支付状态

16

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

17

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

18

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表order_progress (订单进度)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_progress_id

int

10

0

N

Y

订单进度ID

2

order_number

varchar

64

0

Y

N

订单编号

3

sacrifice_services

varchar

64

0

Y

N

代祭服务

4

venue_of_the_sacrifice

varchar

64

0

Y

N

代祭地点

5

product_number

varchar

64

0

Y

N

商品编号

6

product_name

varchar

64

0

Y

N

商品名称

7

product_category

varchar

64

0

Y

N

商品类别

8

product_specifications

varchar

64

0

Y

N

商品规格

9

commodity_price

varchar

64

0

Y

N

商品价格

10

customer_users

int

10

0

Y

N

0

客户用户

11

customer_name

varchar

64

0

Y

N

客户姓名

12

purchase_quantity

varchar

64

0

Y

N

购买数量

13

total_order_price

varchar

64

0

Y

N

订单总价

14

order_status

varchar

64

0

Y

N

订单状态

15

sacrifice_details

text

65535

0

Y

N

代祭详情

16

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

17

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表product_classification (商品分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

product_classification_id

int

10

0

N

Y

商品分类ID

2

product_category

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

更新时间

表product_information (商品信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

product_information_id

int

10

0

N

Y

商品信息ID

2

sacrifice_services

varchar

64

0

Y

N

代祭服务

3

venue_of_the_sacrifice

varchar

64

0

Y

N

代祭地点

4

product_number

varchar

64

0

Y

N

商品编号

5

product_name

varchar

64

0

Y

N

商品名称

6

product_category

varchar

64

0

Y

N

商品类别

7

product_specifications

varchar

64

0

Y

N

商品规格

8

commodity_price

varchar

64

0

Y

N

商品价格

9

product_images

varchar

255

0

Y

N

商品图片

10

product_inventory

int

10

0

Y

N

0

商品库存

11

product_introduction

text

65535

0

Y

N

商品介绍

12

product_details

longtext

2147483647

0

Y

N

商品详情

13

hits

int

10

0

N

N

0

点击数

14

praise_len

int

10

0

N

N

0

点赞数

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表shopping_cart (购物车)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

shopping_cart_id

int

10

0

N

Y

购物车ID

2

sacrifice_services

varchar

64

0

Y

N

代祭服务

3

venue_of_the_sacrifice

varchar

64

0

Y

N

代祭地点

4

product_number

varchar

64

0

Y

N

商品编号

5

product_name

varchar

64

0

Y

N

商品名称

6

product_category

varchar

64

0

Y

N

商品类别

7

product_specifications

varchar

64

0

Y

N

商品规格

8

commodity_price

varchar

64

0

Y

N

商品价格

9

customer_users

int

10

0

Y

N

0

客户用户

10

customer_name

varchar

64

0

Y

N

客户姓名

11

additional_purchase_quantity

varchar

64

0

Y

N

加购数量

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

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

注册关键代码如下所示。

  /**

     * 注册

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(HttpServletRequest request) throws IOException {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = service.readBody(request.getReader());

        query.put("username",String.valueOf(map.get("username")));

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

}

    public Map<String,Object> readBody(BufferedReader reader){

        BufferedReader br = null;

        StringBuilder sb = new StringBuilder("");

        try{

            br = reader;

            String str;

            while ((str = br.readLine()) != null){

                sb.append(str);

            }

            br.close();

            String json = sb.toString();

            return JSONObject.parseObject(json, Map.class);

        }catch (IOException e){

            e.printStackTrace();

        }finally{

            if (null != br){

                try{

                    br.close();

                }catch (IOException e){

                    e.printStackTrace();

                }

            }

        }

        return null;

    }

    public void insert(Map<String,Object> body){

        E entity = JSON.parseObject(JSON.toJSONString(body),eClass);

        baseMapper.insert(entity);

        log.info("[{}] - 插入操作:{}",entity);

}

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;

        QueryWrapper wrapper = new QueryWrapper<User>();

        Map<String, String> map = new HashMap<>();

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

            map.put("username", username);

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

        }

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

            map.put("email", email);

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

        }

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

            map.put("phone", phone);

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

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

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

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

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

        }

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

        //查询用户审核状态

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

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

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

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

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

        }

}

    public String select(Map<String,String> query,Map<String,String> config){

        StringBuffer sql = new StringBuffer("select ");

        sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");

        sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));

        if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){

            sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");

        }

        if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){

            sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");

        }

        if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){

            int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;

            int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;

            sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);

        }

        log.info("[{}] - 查询操作,sql: {}",table,sql);

        return sql.toString();

}

    public List selectBaseList(String select) {

        List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);

        List<E> list = new ArrayList<>();

        for (Map<String,Object> map:mapList) {

            list.add(JSON.parseObject(JSON.toJSONString(map),eClass));

        }

        return list;

}

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.1.8订单进度管理界面

  当用户点击“订单进度管理”,可以对自己的订单状态进行跟踪,并对订单进行评价,订单信息管理界面如下图5-11所示。

                        

                                图5-11 订单信息界面图

5.2后台功能模块

5.2.1 系统用户界面

后台管理人员是可以对前台注册的客户用户进行管理。系统用户管理界面如下图5-12所示。

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

5.2.2 系统管理界面

管理人员在“系统管理”这一菜单下是可以对“扫墓帮”小程序内展示的轮播图进行添加修改的。系统管理界面如下图5-13所示。

图5-13系统管理界面图

5.2.3 资源管理界面

后台管理人员是可以对扫墓资讯以及资讯分类的分类进行查询、删除和添加等操作。资源界面如下图5-14所示。

图5-14资源管理界面图

5.2.4 商品信息管理界面

后台管理人员对“扫墓帮”小程序内的不同商品分类下的祭祀商品信息进行维护和管理的,也可以对用户提交的关于商品的评论信息进行管控。商品信息管理界面如下图5-15所示。

图5-15商品信息管理界面图

5.2.6 商品分类界面

后台管理人员是可以对“扫墓帮”小程序内的祭祀商品的类别进行管控。商品分类界面如下图5-16所示。

图5-16商品分类界面图

5.2.7订单信息界面

后台管理人员是可以对“扫墓帮”小程序内的订单信息进行管控的,同时支持根据商品名称或者是商品的购买数量和支付状态来具体搜索订单信息,对已付款的订单进行订单进度和查看支付订单操作。订单信息界面如下图5-17所示。

图5-17订单信息界面图

5.2.8订单进度界面

后台管理人员点击“订单进度”进入到正在进行中的订单进度列表,点击详情可更新订单跟踪状态,也可以对某笔订单进度信息进行订单评价等操作。订单进度界面如下图5-18所示。

图5-18订单进度界面图

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 系统测试结果

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

结论

在网络大环境下,电子商务已经成为全国各地普及的商业模式。随着人们生活水平的提高和生活节奏的加快,电子商务的便利和快捷性受到了人们的喜爱。本次开发的“扫墓帮”小程序基于当前电子商务模式构建,旨在为用户提供一个全新的交易环境,提升用户购物体验,不仅实现祭祀商品的购物和销售,还能促进地方经济发展。

该“扫墓帮”小程序采用了功能强大的SSM技术和微信小程序开发环境。在大学学科中对这两种技术进行了重点学习,结合需求分析顺利完成了项目设计。刚开始接到任务时可能有些迷茫,但在老师的指导下,调查相关购物系统资料后,逐渐有了思路,明确了系统内容,进行了可行性分析,确定了系统功能后,按照初步设计逐步完善,学习,最终完成了程序开发和论文写作。这个过程虽然困难,但也学到了很多,对项目开发流程有了新的认识,提高了动手能力,这是书本上所学不到的。

通过开发这个项目,我感到非常有成就感,同时也对程序开发更加感兴趣了。信息技术的强大和深奥让我着迷,未来我将继续寻找与此相关的工作,深入学习,开发更优秀的项目。这次经历让我更加坚定了自己在信息技术领域的发展方向,也为将来的职业道路打下了坚实的基础。

参考文献

  1. 刘丹,崔向东. 辽西走廊与中华民族共同体的形成与发展——以北镇医巫闾山祭祀文化为中心的考察 [J/OL]. 中南民族大学学报(人文社会科学版), 1-9[2024-03-17].

[2]Prabawani B ,Hadi P S ,Fisher R M , et al. Socioeconomic perspective of agroforestry development in Central Java [J]. Environmental and Sustainability Indicators, 2024, 22 100354-.

[3]夏云飞,王佳,刘玥濛等. 微信“初心印迹”小程序的设计与实现 [J]. 电脑编程技巧与维护, 2024, (02): 57-59.

[4]许丹阳 ,傅悦 ,王瑞 等. 四川广汉市三星堆遗址祭祀区四号坑发掘简报 [J]. 四川文物, 2024, (01): 4-20+2+121.

[5]严钧,旷凯,戴铃枫. 平江宗族祠堂的祭祀空间营造特征研究 [J]. 华中建筑, 2024, 42 (02): 148-152.

[6]陈欣苹,赵子潇,程文莉. 基于大数据的题库微信小程序的设计与开发 [J]. 电脑知识与技术, 2024, 20 (03): 65-68.

[7]崔莉英. 山岳祭祀体现“天人合一”理念[N]. 大同日报, 2024-01-16 (006). [8]张鹤泉. 北魏社稷祭祀礼仪的考察 [J]. 地域文化研究, 2024, (01): 1-12.

[9]宫大鹏,曹萌,闫淳等. 我国祭祀火灾时空分布特征分析 [J]. 森林防火, 2023, 41 (04): 68-71.

[10]于梦. 甘豫伏羲祭祀文化初探 [J]. 三角洲, 2023, (23): 158-160.

[11]Joshua B Z . Book Reviews: Eva Solomon, CSJ, ssm, Come Dance with Me: A Medicine Wheel Practice of Anishinaabe Catholic Interculturation of Faith [J]. Anglican Theological Review, 2023, 105 (4): 550-551.

[12]Ghoshal A . Oracle’s MySQL HeatWave gets Vector Store, generative AI features [J]. InfoWorld.com, 2023,

[13]徐晓村. 回乡扫墓 [J]. 群言, 2023, (04): 55-57.

[14]余芳. 媒介技术视域下我国清明节祭祀仪式变迁研究[D]. 中南民族大学, 2022.

[15]文华. 开国领袖们的扫墓往事 [J]. 党史纵览, 2022, (05): 53.

[16]游璇钰. 云端寄哀思 代祭传亲情[N]. 惠州日报, 2022-04-06 (003).

[17]罗盛琼. 扫墓 [J]. 学苑创造(1-2年级阅读), 2022, (04): 33.

[18]黄星源. 环保扫墓 [J]. 学苑创造(1-2年级阅读), 2022, (04): 34.

[19]王潋昕. 思念的安放之所——关于扫墓的记忆 [J]. 全国新书目, 2020, (02): 61.

[20]成都一公墓力推“微信扫墓” [J]. 课堂内外创新作文(高中版), 2022, (07): 74.

致谢

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

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

免费领源码,麻烦一键三连,私信博主。谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值