摘要
本文旨在探讨基于Spring Boot框架的中国传统服装微信小程序的设计与实现过程。该微信小程序旨在为用户提供一个便捷、高效的线上购物平台,专注于中国传统服装的展示与销售。通过深入分析用户需求和市场趋势,我们设计了包含用户管理、服装分类、热卖服装展示等核心功能的系统架构。
在开发过程中,我们利用Spring Boot框架搭建后端服务,实现业务逻辑的处理和数据交互。同时,结合微信小程序的前端开发技术,为用户提供友好的界面和流畅的操作体验。为了确保系统的稳定性和安全性,我们采用了多种技术手段进行优化,包括数据库性能调优、接口安全防护等。
此外,为了实现个性化的服装推荐,我们利用数据挖掘和算法优化技术,对用户行为数据进行深入分析,从而为用户提供精准的商品推荐。这一功能不仅提升了用户的购物体验,也有效提高了销售转化率。
通过本研究的实施,我们成功开发了一款功能完善、性能稳定的中国传统服装微信小程序。该小程序不仅提升了线上服装销售的用户体验和效率,也为传统服装行业注入了新的活力,推动了行业的创新和发展。
关键词:Spring Boot;微信小程序;中国传统服装;线上销售;个性化推荐。
Abstract
This paper aims to discuss the design and implementation process of Chinese traditional clothing WeChat applet based on Spring Boot framework. The wechat mini program aims to provide users with a convenient and efficient online shopping platform, focusing on the display and sales of traditional Chinese clothing. Through in-depth analysis of user needs and market trends, we have designed a system architecture that includes core functions such as user management, clothing classification, and popular clothing display.
In the development process, we use the Spring Boot framework to build back-end services to realize business logic processing and data interaction. At the same time, combined with the front-end development technology of wechat small program, to provide users with a friendly interface and smooth operation experience. In order to ensure the stability and security of the system, we have adopted a variety of technical means for optimization, including database performance tuning, interface security protection, etc.
In addition, in order to realize personalized clothing recommendation, we use data mining and algorithm optimization technology to conduct in-depth analysis of user behavior data, so as to provide users with accurate product recommendation. This feature not only improves the users' shopping experience, but also effectively improves the sales conversion rate.
Through the implementation of this study, we have successfully developed a fully functional, stable performance of the Chinese traditional clothing wechat mini program. The mini program not only improves the user experience and efficiency of online clothing sales, but also injects new vitality into the traditional clothing industry and promotes the innovation and development of the industry.
Key words: Spring Boot; WeChat small program; Chinese traditional clothing; online sales; personalized recommendation.
目录
1 绪论
随着互联网技术的飞速发展和智能手机的普及,人们的消费方式和购物习惯发生了巨大的变化。线上购物已成为现代人生活中不可或缺的一部分,特别是在服装行业,线上销售市场呈现出快速增长的态势。然而,传统的线上服装店往往存在用户体验不佳、操作繁琐等问题,无法满足消费者日益增长的个性化需求。
在这样的背景下,微信小程序以其轻量级、即用即走的特点,迅速成为线上销售的新宠。微信小程序不仅可以为商家提供低成本、高效率的推广渠道,还可以为消费者带来更加便捷、流畅的购物体验。因此,结合微信小程序和Spring Boot框架,开发一款专注于中国传统服装的线上销售平台,具有重要的现实意义和应用价值。
中国传统服装作为中华民族的文化瑰宝,具有深厚的历史底蕴和独特的艺术魅力。然而,在当前的线上销售市场中,专门针对中国传统服装的微信小程序还相对较少,无法满足广大消费者的需求。因此,本研究旨在通过基于Spring Boot框架的微信小程序开发,为中国传统服装行业提供一个全新的线上销售平台,促进传统文化的传承与发展,同时推动服装行业的数字化转型和创新升级。
综上所述,基于Spring Boot的中国传统服装微信小程序设计与实现的课题研究背景在于满足线上服装销售市场日益增长的需求,提升消费者购物体验,同时推动中国传统服装文化的传承与发展。
1.2 课题研究现状
首先,随着移动互联网技术的快速发展,微信小程序作为一种新兴的应用形态,其用户规模和活跃度不断攀升。微信小程序以其轻量级、即用即走的特点,为线上销售提供了新的机遇。因此,越来越多的企业和开发者开始关注微信小程序的开发与应用。
其次,Spring Boot作为一种轻量级的Java开发框架,以其快速开发、易于部署和高度可扩展性等优点,得到了广泛的应用和认可。在服装行业,越来越多的企业开始采用Spring Boot框架来构建其线上销售平台,以提供更加稳定、高效的服务。
然而,尽管微信小程序和Spring Boot在各自领域都有着广泛的应用,但将二者结合用于中国传统服装的线上销售仍属于较为新兴的研究领域。目前,市场上针对中国传统服装的微信小程序相对较少,且大多数存在功能单一、用户体验不佳等问题。因此,基于Spring Boot的中国传统服装微信小程序设计与实现的研究具有重要的现实意义和应用价值。
此外,在研究现状方面,一些学者和开发者已经开始探索将微信小程序与Spring Boot框架相结合,用于构建服装行业的线上销售平台。他们通过深入研究用户需求和市场趋势,设计出了包含用户管理、服装分类、个性化推荐等核心功能的微信小程序,并通过Spring Boot框架实现了后端服务的搭建和业务逻辑的处理。
总的来说,基于Spring Boot的中国传统服装微信小程序设计与实现的课题研究正处于一个快速发展和创新的阶段。虽然还存在一些挑战和问题,但随着技术的不断进步和市场的不断扩大,相信这一领域的研究将会取得更加显著的成果和突破。
1.3系统开发技术的特色
(1)系统采用前后端分离的开发模式,使得前端和后端可以独立开发和维护,提高了开发效率和系统的可维护性。
(2)系统采用微服务架构,将系统拆分成多个独立的服务,每个服务可以独立部署和扩展,提高了系统的灵活性和可扩展性。
(3)系统采用 Docker 容器化部署技术,使得系统可以快速部署和迁移,提高了系统的可靠性和可移植性。
(4)系统采用自动化测试技术,包括单元测试、接口测试和性能测试等,提高了系统的稳定性和可靠性。
(5)系统采用安全保障技术,包括用户认证、授权、数据加密等,保障了系统的安全性和用户的隐私。
这些技术特色使得基于springboot的中国传统服装微信小程序具有高效、稳定、可靠、安全等优点,能够满足用户的需求和提高用户的体验。
2 相关技术介绍
2.1开发工具及技术
操作系统:Windows
开发工具:IDE(集成开发环境)Eclipse、Navicat
后端开发技术:
springboot框架:用于快速构建后端应用程序,提供了自动配置和约定优于配置的特性。
Java编程语言:作为后端主要编程语言,用于实现业务逻辑和数据处理。
MySQL数据库:用于存储和管理平台的数据。
前端开发技术:
2.2 Java开发语言
Java编程语言是一种面向对象的高级编程语言,以其简单、可移植、安全和高性能等特点在软件开发领域广泛应用。通过支持类、对象、继承、多态等面向对象概念,Java提供了结构化的编程方式,使代码更易读、维护和重用。其可移植性得益于Java虚拟机(JVM),使得Java程序可以在不同平台上运行,只需编写一次代码。Java注重安全性,提供了字节码验证、异常处理和访问控制等安全机制,确保程序的稳定和安全。此外,Java还拥有丰富的类库和框架,覆盖了各个领域,如图形界面、数据库操作和企业级应用。总而言之,Java作为一门成熟且强大的编程语言,在软件开发中发挥着重要作用,帮助开发者轻松构建可靠、可移植和安全的应用程序。
2.3 springboot技术框架
Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。
2.4 MySQL数据库
现在Mysql数据库在网络上它可以支撑许多个用户,而且也可以适应客服机和服务器的部署或者配置等,我们这里的服务器和客户机其实就是一种软件上的概念,并且我们使用的计算机硬件也与他们不存在一一对应的关系。
Mysql是一款非常流行的关系型数据库管理系统,它的出现一直都是佼佼者,它不仅功能非常强大,而且使用起来非常方便,并且Mysql的跨平台能力也很好,软件开发人员非常喜欢它的这些强大的优点。不同于其他关系型数据库,对于数据库的管理它有着自己的一套方案,通过对用户设定相应的权限和角色来达到对数据库的管理。由此可见,Mysql是一个能够适用于吞吐量高,可靠性高,效率高的一款数据库管理软件。具有以下优点:
Mysql中对于不同身份的用户都设定其不同的权限来完成不同的业务逻辑,这使得Mysql在安全和完整性远远超出了其他关系型数据库。并且对于那些动画、图形和声音的数据类型Mysql也可以支持,这说明多数据类型Mysql也是可以支持的。Mysql还可以做到多个平台的开发,软件开发的多种编程语言都可以实现对Mysql数据库的操作。
3基于springboot的中国传统服装微信小程序分析
基于springboot的中国传统服装微信小程序可在微信端实现登录注册、首页、服装百科、服装导购、购物车、新闻资讯、我的(基本信息、收货地址、收藏、订单、购物车、订单配送)等操作,相对于传统毕业生服装百科管理方式,基于springboot的中国传统服装微信小程序提高了效率和便利性。在后台可对后台首页、系统用户、服装分类管理、服装百科管理、系统管理、公告管理、资源管理、商城管理(服装导购、分类列表、订单列表、订单配送)、权限管理等进行管理、有效掌握中国传统服装,充分了解用户的需求,更有针对性的服务用户。
3.1可行性分析
3.1.1技术可行性分析
基于springboot的中国传统服装微信小程序存储所使用的mysql数据库以及开发中所使用的IDEA、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用springboot框架进行开发,使系统的可扩展性和维护性更佳,减少java配置代码,简化编程代码,目前springboot框架也是很多企业选择的框架之一。
3.1.2经济可行性分析
在开发基于springboot的中国传统服装微信小程序中所使用的开发软件像IDEA开发工具、Tomcat8.0服务器、MySQL5.7数据库、Photoshop图片处理软件等,这些都是开源免费的,并且基于springboot的中国传统服装微信小程序是自己设计并编码实现的,数据库是使用流行mysql进行数据的存储,开源的mysql等技术的使用,减少系统开发费用。
3.1.3操作可行性分析
在日常生活中,随着小程序的快速推广和使用,越来越多人掌握小程序的使用方法,基于springboot的中国传统服装微信小程序在这种条件背景下是很容易被人们所接受和熟悉的,所以在操作上没任何问题。
基于springboot的中国传统服装微信小程序中的web后台管理端采用了IntelliJ IDEA 2019.3.4 开发工具,配合了java开发语言中springboot开发框架以及tomcat8.0服务器、jdk1.8,微信端采用了微信开发者工具稳定版1.05.2111300,页面使用wxss和wxml进行布局,微信端和web后台管理端采用json接口通信。
登录注册: 提供注册和登录功能,确保用户身份安全。
首页:用户可以在首页快速了解中国传统服装的最新资讯,并方便地进行预约操作。
服装百科:这一板块为用户提供中国传统服装的详细介绍,包括各类服装的历史渊源、文化内涵、设计特点等,帮助用户更好地了解和欣赏中国传统服装。
服装导购:导购功能根据用户的浏览记录、购买记录以及个人喜好等信息,为用户提供个性化的服装推荐,提高用户的购物体验和购买转化率。
公告:用户可以查看系统的重要通知和更新信息
新闻资讯:这一板块定期发布关于中国传统服装的最新动态、行业资讯和流行趋势,让用户能够随时掌握市场动态,为自己的购物决策提供参考。
我的:这是用户的个人中心,包含基本信息、收货地址、收藏、订单、购物车、订单配送等多个子功能。
2. 管理员功能:
后台首页:为管理员提供了一个概览界面,展示中国传统服装的关键指标、统计数据以及最新动态。
系统用户管理:允许管理员对中国传统服装的用户进行全面管理。
服装分类管理:对平台上的服装进行分类管理,包括创建新的分类、编辑现有分类、删除过时分类等,使服装展示更加有序和易于查找。
服装百科管理:负责服装百科内容的编辑、更新和维护,确保用户能够获取到最新、最准确的服装知识。
系统管理:包括系统参数设置、日志查看、异常处理等功能,确保系统稳定运行,同时方便管理员对系统进行优化和调整。
公告管理:发布、编辑和删除平台公告,及时向用户传达重要信息,如促销活动、系统更新等。
资源管理:管理平台的图片、视频等多媒体资源,确保资源的安全存储和高效调用。
商城管理:核心功能模块,包括服装导购内容的编辑和推荐、分类列表的维护、订单列表的查看和处理、订单配送状态的跟踪等,确保商城的正常运营和用户的良好购物体验。
权限管理:对不同角色和用户的权限进行细致管理,确保每个用户只能访问和操作其被授权的功能,保障平台的安全性和稳定性。
以上是基于 Spring Boot 和微信小程序的中国传统服装微信小程序的功能需求分析,涵盖了注册用户和管理员2个角色的功能设计与实现要求。
3.3用例分析
基于springboot的中国传统服装微信小程序的完整UML用例图分别是图2-1,图2-2。在参与者上包括注册用户以及管理员。
注册用户角色的用例包括登录注册、首页、服装百科、服装导购、购物车、新闻资讯、我的(基本信息、收货地址、收藏、订单、购物车、订单配送)。

图2-1 基于springboot的中国传统服装微信小程序注册用户角色用例图
管理员角色的用例包括后台首页、系统用户、服装分类管理、服装百科管理、系统管理、公告管理、资源管理、商城管理(服装导购、分类列表、订单列表、订单配送)、权限管理。
图2-2基于springboot的中国传统服装微信小程序管理员角色用例图
4基于springboot的中国传统服装微信小程序总体设计
在上一章节中分析了基于springboot的中国传统服装微信小程序的功能性需求,并且根据需求分析了基于springboot的中国传统服装微信小程序中的用例。那么接下来就要开始对基于springboot的中国传统服装微信小程序架构、主要功能和数据库开始进行设计。
4.1系统功能模块设计
通过对基于springboot的中国传统服装微信小程序的功能需求分析以及用例分析,得出了基于springboot的中国传统服装微信小程序的功能模块图如图3-1所示。
图3-1基于springboot的中国传统服装微信小程序功能模块图
4.2.1 数据库E-R模型
下面是整个基于springboot的中国传统服装微信小程序的数据库表的E-R实体关系图,如图3-2所示:

图3-2 基于springboot的中国传统服装微信小程序E-R实体关系图
4.2.2 数据库表设计
通过上一小节中基于springboot的中国传统服装微信小程序中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 默认判断 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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]用于产品规格描述 |
表clothing_classification (服装分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | clothing_classification_id | int | 10 | 0 | N | Y | 服装分类ID | |
2 | clothing_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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | clothing_encyclopedia_id | int | 10 | 0 | N | Y | 服装百科ID | |
2 | clothing_name | varchar | 64 | 0 | Y | N | 服装名称 | |
3 | clothing_category | varchar | 64 | 0 | Y | N | 服装类别 | |
4 | starting_year | varchar | 64 | 0 | Y | N | 起始年代 | |
5 | distribution_area | varchar | 64 | 0 | Y | N | 分布地区 | |
6 | clothing_pictures | varchar | 255 | 0 | Y | N | 服装图片 | |
7 | clothing_introduction | text | 65535 | 0 | Y | N | 服装介绍 | |
8 | clothing_culture | text | 65535 | 0 | Y | N | 服装文化 | |
9 | introduction_video | varchar | 255 | 0 | Y | N | 介绍视频 | |
10 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
11 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 添加人 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | henry_cottons_id | int | 10 | 0 | N | Y | 服装导购ID | |
2 | clothing_name | varchar | 64 | 0 | Y | N | 服装名称 | |
3 | clothing_size | varchar | 64 | 0 | Y | N | 服装码数 | |
4 | clothing_material | varchar | 64 | 0 | Y | N | 服装材质 | |
5 | clothing_color | varchar | 64 | 0 | Y | N | 服装颜色 | |
6 | clothing_culture | text | 65535 | 0 | Y | N | 服饰文化 | |
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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | registered_users_id | int | 10 | 0 | N | Y | 注册用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 基于springboot的中国传统服装微信小程序实现
基于springboot的中国传统服装微信小程序划分了微信小程序注册用户端和端、后台管理员端,微信端实现登录注册、首页、服装百科、服装导购、购物车、新闻资讯、我的(基本信息、收货地址、收藏、订单、购物车、订单配送)等功能,web端是为后台管理员提供后台首页、系统用户、服装分类管理、服装百科管理、系统管理、公告管理、资源管理、商城管理(服装导购、分类列表、订单列表、订单配送)、权限管理。
5.1.1 注册用户注册界面
不是基于springboot的中国传统服装微信小程序的用户可以在线进行注册,填写上自己的账号、密码、重复密码、昵称、邮箱登信息后点击“提交”按钮后将会验证是否有非空数据,再验证密码和重复密码是否一样,最后验证是否账号重复,都验证没问题后即可注册成功。注册实现了用户注册和发布者注册两部分,其用户注册界面展示如下图5-1所示。
图5-1用户注册界面图
注册页UserController.java,传入user对象,并将"user_id"、 "state"、 "user_group"、"login_time"、"phone"、"phone_state"、 "username"、"nickname"、"password"、"email"、"email_state"、"avatar"、"create_time"输入,重点是 "username"、"nickname"、"password"必须输入,通过获取username,数据库查询是否有该用户,如果存在,则提示“用户已存在”,否则执行将UserId置为空(数据库表中该字段已设置自动递增),代码如下:
/**
* 注册
* @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);
}
注册页password则使用了MD5加密,代码如下:
public String encryption(String plainText) {
String re_md5 = new String();
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(plainText.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
re_md5 = buf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return re_md5;
}
5.1.2 用户登录界面
注册后的用户可以通过自己的用户名和密码进行登录,在用户填写好自己的用户名和密码信息并点击“登录”按钮后,将会先验证是否有非空数据,再验证填写的用户信息和数据库中保存的是否一致,一致后将会登录成功,登录成功后将会在左上角上显示用户信息;否则将会提示相应错误信息,用户登录界面如下图5-2所示。
图5-2用户登录界面图
登录页,首先传入"username"、"email"、"phone"、"password",用户可通过用户名、邮箱、手机号进行登陆,通过判断resultList来确定查询结果,然后执行查询用户组UserGroup,用户组里面不存在,依然报“用户不存在”,执行完以上代码,最后涉及到用户带有“审核”的,会查询examine_state(用户的审核状态),数据库表user_group中含有source_table和source_field进行查询,以上步骤完成,对输入的密码进行存储Token到数据库,匹对账号和密码,数据库中的AccessToken为令牌,用于身份认证,其代码如下:
/**
* 登录
* @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.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());
Duration duration = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
// 返回用户信息
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-3所示。
图5-3首页界面图
5.1.3 新闻资讯界面
用户可以通过查看新闻资讯,了解关于中国传统服装的最新动态、行业资讯和流行趋势,让用户能够随时掌握市场动态,界面如下图5-4所示。
图5-4新闻资讯详情界面图
5.1.4 公告界面
用户可以查看系统的重要通知和更新信息,注册用户可以通过查看公告了解系统的最新动态,详情界面如下图5-5所示。
图5-5公告详情界面图
5.1.5收货地址界面
用户点击“收货地址”可以管理添加,删除,修改收货地址,界面如下图5-6所示。
图5-6收货地址界面图
5.1.6服装百科界面
这一板块为用户提供中国传统服装的详细介绍,包括各类服装的历史渊源、文化内涵、设计特点等,帮助用户更好地了解和欣赏中国传统服装,界面如下图5-7所示。
图5-7服装百科信息界面图
5.1.7购物车界面
购物车功能允许用户将心仪的服装加入购物车,方便用户随时查看和修改自己的购买清单,同时支持用户进行数量的增减和商品的删除操作。界面如下图5-8所示。
图5-8购物车界面图
5.2.1 系统用户界面
管理员点击“系统用户”这一菜单会显示管理员、注册用户这2个子菜单,管理员可以对这2个角色的信息进行增删改查操作。界面如下图5-9所示。

图5-9管理界面图
Controller用于spring控制请求的地址
新增一条数据,通过post传入一个json对象,然后经过request.getReader(),最后经过readBody()转成一个Map,含有String和Object,key用的是字段名,Object存放数据,最终得到Map,insert用拼装sql,读取body,组装成一个insert对象,runCountSql()语句,代码如下:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
修改一个数据,原理与add基本一致,不同点在于通过readConfig()读取关键字,以及通过readQuery()获取URL后面?指定位置的标识,转成Map对象后,执行update操作,同样通过拼接的sql语句执行,执行过程读取query,toWhereSql()语句完成数据库操作,body为修改对象的值,代码如下:
@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);
}
删除一条数据,通过readQuery(),获取URL后面的对象地址,删除FROM具体的table,query删除查询FindConfig语句,代码如下:
@RequestMapping(value = "/del")
@Transactional
public Map<String, Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request), service.readConfig(request));
return success(1);
}
public void delete(Map<String,String> query,Map<String,String> config){
QueryWrapper wrapper = new QueryWrapper<E>();
toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);
baseMapper.delete(wrapper);
log.info("[{}] - 删除操作:{}",wrapper.getSqlSelect());
}
5.2.2服装百科管理界面
管理员点击后台的“服装百科管理”菜单,管理员可以管理服装百科内容的编辑、更新和维护,确保用户能够获取到最新、最准确的服装知识。界面如下图5-10所示。

图5-10服装百科管理界面图
5.2.3系统管理界面
管理员点击“系统管理”这一菜单会显示轮播图这一个子菜单,管理员可以对前台展示的轮播图进行设置,界面如下图所示。

图5-11系统管理界面图
5.2.4公告管理界面
点击“通知告管理”这个菜单,可以查看到系统中所有添加的公告消息,支持通过标题对公告消息进行查询,添加、删除等操作。公告消息管理界面如下图所示。

图5-12公告管理界面图
5.2.5资源管理界面
资源管理模块允许管理员对系统中的各类资源进行管理,如图片、文档等。管理员可以上传、编辑和删除这些资源,确保资源的有效性和可用性。界面如下图所示。

图5-13资源管理界面图
图片/文件/视频等的上传方法通过MultipartFile,代码如下:
@PostMapping("/upload")
public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {
log.info("进入方法");
if (file.isEmpty()) {
return error(30000, "没有选择文件");
}
try {
//判断有没路径,没有则创建
String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";
File targetDir = new File(filePath);
if (!targetDir.exists() && !targetDir.isDirectory()) {
if (targetDir.mkdirs()) {
log.info("创建目录成功");
} else {
log.error("创建目录失败");
}
}
String fileName = file.getOriginalFilename();
File dest = new File(filePath + fileName);
log.info("文件路径:{}", dest.getPath());
log.info("文件名:{}", dest.getName());
file.transferTo(dest);
JSONObject jsonObject = new JSONObject();
jsonObject.put("url", "/api/upload/" + fileName);
return success(jsonObject);
} catch (IOException e) {
log.info("上传失败:{}", e.getMessage());
}
return error(30000, "上传失败");
}
6 基于springboot的中国传统服装微信小程序测试
基于springboot的中国传统服装微信小程序测试是为了检验软件是否达到设计要求,是否存在错误,通过测试的方法来检查基于springboot的中国传统服装微信小程序,以便发现基于springboot的中国传统服装微信小程序中的错误。测试工作是保证基于springboot的中国传统服装微信小程序质量的关键。
用户服装百科查看功能测试:
表5-1用户服装百科查看功能测试用例表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
服装百科功能模块测试 | 服装百科详情信息正常的显示 | 浏览服装百科详情信息 | 选择一个服装百科将会进入该服装百科的详情界面,同时可以服装百科、评论、收藏。 | 进入该服装百科的详情信息界面 | 正确 |
服装百科功能模块测试 | 服装百科详情信息正常的显示 | 浏览服装百科详情信息 | 点击“服装百科”查看服装百科相关资料 | 查看详细的的服装百科。 | 正确 |
评论功能测试:
表5-2评论功能测试用例表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
评论功能模块测试 | 新闻资讯正常的显示 | 浏览新闻资讯详情信息 | 点击“新闻资讯”进入新闻资讯详情页面,点击“评论”输入自己的评论内容。 | 评论成功 | 正确 |
web后台端上发布服装百科功能测试:
表5-3web后台端上发布服装百科功能测试用例表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
发布服装百科功能测试 | 添加服装百科的情况 | 输入新服装百科的基本信息 | 后台选择“服装百科管理”菜单后,填写新服装百科基本信息后点击“提交”按钮 | 新服装百科发布成功 | 正确 |
6.2测试结果
通过编写了基于springboot的中国传统服装微信小程序的测试用例,已经检测完毕了5.1章节中的3大模块,它为基于springboot的中国传统服装微信小程序系统的后期推广运营提供了强力的技术支撑。
总结与展望
本次基于springboot的中国传统服装微信小程序的设计与实现,功能方面,通过功能模块图区分该程序的用户端与管理端各自的功能权限;数据库方面,数据库使用口碑较好的mysql进行数据的存储,开源的mysql等技术的使用,相对来说体积较小,服务稳定,减少系统开发成本费用,通过数据库表的E-R实体关系图建立了表单与表单之间的连接,区分不同的表单之间的关系,更好的完善数据库的内容;测试方面,通过测试用例检查基于springboot的中国传统服装微信小程序的设计缺陷和程序存在的错误,在系统测试阶段的过程中,出现了一些问题,例如,注册信息,没有规范用户在注册页面填写信息时输入两次密码,而导致后期登录错误,最后通过多次修改程序和测试解决了问题。最终经过不断的检测、修改,实现项目的稳定,达到了预期的设计效果。
系统整体的功能到达预期的效果,但页面的美化方面还是存在一些不足,例如:小程序中的图标过于简洁;wxss页面的渲染布局方面不够完善,人们在使用软件过程中,对某些功能不易找寻,针对此次项目产生的问题,日后将不断改进,使该项目更加完善。
参考文献
[1]张馨文,孔勇.虚拟现实技术在传统服装再现中的应用[J].染整技术,2024,46(02):87-89.
[2]王润奕.泛性别虚拟服装的设计和应用研究[D].中国美术学院,2023.DOI:10.27626/d.cnki.gzmsc.2023.000248.
[3]石晓蕊.用户心智模型下中国传统图案在虚拟时装中的设计应用研究[D].浙江理工大学,2023.DOI:10.27786/d.cnki.gzjlg.2023.000206.
[4]Yang Y .Design and Implementation of Student Information Management System Based on Springboot[J].Advances in Computer, Signals and Systems,2022,6(6):
[5]许静.虚拟现实技术在服装设计中的应用研究[J].西部皮革,2022,44(21):48-50.
[6]顾学明.微信小程序在服装标签推荐中的应用[J].纺织导报,2022,(05):98-101.DOI:10.16481/j.cnki.ctl.2022.05.027.
[7]李晨璐.混合现实语境下传统服装信息的可视化设计[D].内蒙古师范大学,2022.DOI:10.27230/d.cnki.gnmsu.2022.000376.
[8]徐栋.微信小程序在个性化服装定制中的应用研究[J].纺织报告,2021,40(12):37-38.
[9]李常宝.基于微信小程序的电子商城的设计与开发[J].吕梁教育学院学报,2021,38(03):133-136.
[10]朱开心,季波,刘海涛,等.基于深度学习的时装搭配的设计[J].电脑知识与技术,2021,17(19):86-87.DOI:10.14004/j.cnki.ckt.2021.1873.
[11]王国营,马芳.基于服装吊牌信息解读的微信小程序设计[J].天津纺织科技,2021,(03):24-27.DOI:10.13518/j.cnki.tjtst.2021.03.007.
[12]曹艳琴.基于微信公众平台的美妆商城小程序的设计与实现[J].信息与电脑(理论版),2021,33(05):121-123.
[13]吴志攀,袁裕镇,赵金烽,等.基于微信小程序的DIY服装软件开发[J].现代计算机,2020,(26):94-98+104.
[14]赵威,张应青,张仁凯,等.基于微信小程序的校园服装租赁服务平台的设计与实现[J].电脑知识与技术,2020,16(21):8-9+12.DOI:10.14004/j.cnki.ckt.2020.2149.
[15]赵鑫玉,段永明,沈雷.基于微信小程序的服装个性化定制系统设计[J].武汉纺织大学学报,2020,33(02):36-41.
[16]韦玉辉,苏兆伟,潘梦诗.基于微信小程序的服装个性化定制系统设计与实现[J].服装学报,2019,4(05):460-464.
[17]艾红娟.中国传统纹样元素在游戏服饰设计中的作用[J].数码世界,2019,(06):122.
[18]Jiang Y ,Guo R ,Ma F , et al.Cloth simulation for Chinese traditional costumes[J].Multimedia Tools and Applications,2019,78(4):5025-5050.
[19]Xing L ,Zhang J ,Liang H , et al.Intelligent recognition of dominant colors for Chinese traditional costumes based on a mean shift clustering method[J].The Journal of The Textile Institute,2019,109(10):1304-1314.
[20]卢燕,董爱华.基于无线射频技术的服装零售店管理系统的设计与实现[J].仪表技术,2024,(01):20-23+27.DOI:10.19432/j.cnki.issn1006-2394.2024.01.006.
.
致谢
至此论文结束,感谢您的阅读。首先,我要感谢我的父母对我的支持与理解,在两年的本科学习生活中,倾其所能的爱护我,使我能够心无旁骛,全心全意的投入到学习中;不断鼓励我,让我能够拥有不断前进的动力。其次还要感谢我的导师,感谢在这段时间给予我有效的建议,以至于我的毕设有了整体的设计思路,尽管我在实习期间很忙,论文撰写总是停停改改,但是导师依然十分负责,时不时的询问我的任务进展情况,跟进我的论文进度。在老师的帮助下,我逐步完成了自己的论文和程序,从导师身上也学习到很多知识,和经验,这些知识和经验令我受益匪浅。
此外,还要感谢我的同学,热心的解答了我在程序上遇到的问题,是他们在我编写程序过程中给了我很多的启发和感想,也帮助了我对于程序的调试和检测,让我受益良多。在这两年的时间里,我学会了许多专业的知识,还有老师们的谆谆教诲和同学们的帮助使我不断进步,能够做得更好;我也会不断给自己充电,不断突破,成为更好的自己。
最后向所有关心我、帮助我的老师及同学们表示衷心的感谢!
点赞+收藏+关注 →私信领取本源代码、数据库