# tmall-server-repo **Repository Path**: chengheng2022/tmall-server-repo ## Basic Information - **Project Name**: tmall-server-repo - **Description**: 学茶商城后端项目 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 35 - **Forks**: 28 - **Created**: 2023-07-10 - **Last Updated**: 2025-02-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: Spring, SpringBoot, Project ## README # 学茶商城(服务器端) # 1. 项目介绍 ## 1.1. 项目基本信息 本项目是一个通过茶文化相关资讯进行引流的,茶叶茶具相关的垂直电商平台。 在中国,喝茶的人很多,特别是近些年奶茶的流行,中国人对茶的需求明显提高,但是,绝大部分喝茶的人并不懂茶,甚至根本不了解茶,例如茶叶的种类、功效、喝茶的禁忌等,对茶叶的正常售价也不了解,更不了解茶文化,所以,我们搭建了这个平台,在平台上有许多关于茶相关的资讯,并对这些资讯进行了分类展示,希望用户可以更多的了解茶文化,同时,平台还有商城的功能,用户可以直接在我们的平台上购买茶相关的产品,比如茶叶、茶具等,避免用户因为不懂茶而踩坑。 项目中的主要功能包括:资讯相关的数据管理、商城相关的数据管理、用户相关的数据管理等。 整个项目包含以下几大模块: 1. 基础数据服务(例如全国的省市区数据的访问,主要用于用户管理收货地址) 2. 单点登录服务 3. 附件管理服务(包括附件上传与访问) 4. 账号后台管理服务 5. 资讯后台管理服务 6. 商城后台管理服务 7. 账号前台管理服务 8. 资讯前台管理服务 9. 商城前台管理服务 ## 1.2. 开发技术 本项目使用到了以下技术(使用各技术的依赖项进行列举): - `spring-boot-starter-web` - `spring-boot-starter-validation` - `spring-boot-starter-security` - `spring-boot-starter-aop` - `spring-boot-starter-data-redis` - `spring-boot-starter-data-elasticsearch` - `spring-boot-starter-test` - `mybatis-spring-boot-starter` - `mybatis-plus-boot-starter` - `pagehelper-spring-boot-starter` - `druid-spring-boot-starter` - `knife4j-spring-boot-starter` - `lombok` - `jjwt` - `fastjson` - `hutool` - `alipay-sdk-java` # 2. 启动项目 ## 2.1. 安装软件 在启动项目之前,你需要安装: - MySQL(或Maria DB) 5.5或以上版本 - Redis - Elasticsearch - 需配置ik分词插件 并且,保证以上软件的处于可用状态。 ## 2.2. 关于软件配置 本项目连接各数据库均使用默认配置,如下: | 软件 | 主机 | 端口 | 用户名 | 密码 | | --------------- | --------- | ---- | ------ | ---- | | MySQL / MariaDB | localhost | 3306 | root | root | | Redis | localhost | 6379 | <无> | <无> | | Elasticsearch | localhost | 9200 | <无> | <无> | 如果你不知道如何安装Redis或Elasticsearch,请参考本项目`/doc/tutorial`文件夹下的相关教程。 如果你的软件配置不同,需要调整你的软件配置,或修改各项目中`application.yaml` / `application-dev.yaml`相关配置文件中的配置值。 **注意:**本项目拆分了多个模块,但并不是微服务项目,所以没有使用集中的配置(例如:没有使用配置中心),如果你尝试修改连接以上软件的配置,则需要修改每个模块下对应的配置文件中的配置值。 ## 2.2. 创建数据库与数据表 需要创建名为`tedu_tea_mall`的数据库,创建代码示例: ```mysql CREATE DATABASE tedu_tea_mall; ``` 切换到此数据库,通过本项目中的`/doc/sql/create_table`文件夹下的各个`.sql`文件(多个脚本文件,分别用于创建不同数据表)即可创建当前项目所需的数据表。 ## 2.3. 配置上传文件夹 请自行准备一个具有访问权限的文件夹,将作为本项目上传文件(例如文章或商品的图片等)的存储文件夹,并且,把此文件夹的路径配置到`tmall-attachment`项目的`src/main/resources/application-dev.yaml`文件中的`tmall`下的`upload`下的`root-dir-name`属性的值。 ## 2.4. 插入测试数据 为了便于初次使用,并更好的理解各表的字段作用,你还可以执行`/doc/sql/insert_data`文件夹下的各个`.sql`文件,以插入测试数据。 注意:插入数据的脚本文件中均包含`truncate`语句,这意味着执行这些脚本时会清空表中已有的数据,所以,如果你并不是第一次执行这些脚本文件,需要评估是否应该执行这些脚本文件! 提示:通过脚本插入的所有用户数据中,密码的原文均为`123456`。 提示:为了得到更好的试用体验,部分测试数据是包含图片的,这些图片在`/doc/upload-files`下,建议将`resources`文件夹的全部内容复制到你此前准备的上传文件夹下的`/upload`文件夹下。 注意:在`/doc/sql/insert_data`文件夹下的各个`.sql`文件中,你可能需要修改源代码中的测试数据的图片URL,否则图片可能无法正确显示在网页中 ## 2.5. 占用端口说明 本项目各模块启动时占用端口信息如下: | 服务名 | 服务说明 | 端口号 | API文档 | | ------------------- | ---------------- | ------ | ------------------------------- | | tmall-basic | 基础数据服务 | 19080 | http://localhost:19080/doc.html | | tmall-passport | 单点登录服务 | 19081 | http://localhost:19081/doc.html | | tmall-attchment | 附件上传服务 | 19082 | http://localhost:19082/doc.html | | tmall-admin-account | 账号管理后台服务 | 19180 | http://localhost:19180/doc.html | | tmall-admin-content | 资讯管理后台服务 | 19181 | http://localhost:19181/doc.html | | tmall-admin-mall | 商城管理后台服务 | 19182 | http://localhost:19182/doc.html | | tmall-front-account | 账号管理前台服务 | 19280 | http://localhost:19280/doc.html | | tmall-front-content | 资讯管理前台服务 | 19281 | http://localhost:19281/doc.html | | tmall-front-mall | 商城管理前台服务 | 19282 | http://localhost:19282/doc.html | **注意:**许多功能均需要先登录才可以访问,在API文档中测试访问也是如此,你可能需要先通过“单点登录服务”进行登录,得到token后,将它配置在你的API文档的全局参数中的名为`Authorization`请求头属性中,才可以正常访问。如果你已经导入了测试数据,你将可以通过用户名为`root`且密码为`123456`的账号成功登录系统。 **注意:**当你尝试登录时,请不要在请求头中携带`Authorization`属性的值,否则可能导致登录失败! ## 2.6. 启动项目 你必须保证MySQL、Redis、Elasticsearch均已正确启动,才可以启动各项目! 特别注意的是:Elasticsearch可能不是开机自动启动的,你需要手动启动Elasticsearch! # 3. 其它说明 ## 3.1. 业务功能说明 当前版本中,已完成的业务功能数量总计超过100个,但与真正的电商项目相比仍有许大差距。 并不是每个完成的业务功能都会作为教学点进行讲授,许多业务功能的代码是提供用于课后参考与扩展的。 ## 3.2. 缓存与搜索的说明 当前版本中,基于讲授的需求,将某些数据使用缓存进行存储,将某些数据放在搜索服务器中供搜索,但并不完整,另有其它数据是适合缓存或搜索的,并没有全部处理。