尚硅谷电商毕设项目

一、电子档网址

https://www.wolai.com/atguigu/m4z5zhigfZdUSvfTUJvYZM

二、项目介绍

(一)技术栈

微服务入门项目练习! 本次课程技术全面【springboot、mybatis-plus、微服务全家桶、缓存、异步消息、搜索等技术栈】,功能齐全【销售前端和后台管理功能】

(二)项目简介

B2C模式电商项目,包含完整的销售前台和电商管理后台!

  1. 前台部分主要通过浏览器访问,用户可以登录,浏览商品,以及添加购物车和订单生成等功能,完成购物车!
  2. 后台部分主要管理员登录,对前台用户,类别,商品以及订单等数据维护!

(三)内置功能详解

  • 商城前台

    • 用户模块: 登录、注册、 账号检查

    • 轮播模块: 轮播图展示

    • 商品模块: 热门商品、类别商品、全部商品、单类别商品、商品详情、商品图片详情、商品搜索功能

    • 类别模块: 类别展示

    • 地址模块: 地址添加、地址删除、地址展示

    • 收藏模块: 收藏添加、收藏展示、收藏删除

    • 购物模块: 购物车添加、购物车修改、购物车展示、购物车删除

    • 订单模块: 订单生成、订单展示

    • 性能模块: 缓存实现、搜索实现、搜索同步、搜索添加、搜索删除

  • 商城后台

    • 用户模块: 用户展示、用户添加、用户编辑、用户删除

    • 类别模块: 类别展示、类别添加、类别修改、类别删除

    • 商品模块: 商品添加、商品展示、商品搜索、商品修改、商品删除

    • 订单模块: 订单展示

  • 总体统计
    服务 :12 个
    模块 :13个
    功能点: 42个
    数据表: 8 个

(四)数据库E-R图

在这里插入图片描述

(五)项目代码结构

b2c-cloud-store
  ├──store-admin  //后台管理服务 
  ├──store-common-feign //通用工具模块
  ├──store-front-carousel //轮播图服务
  ├──store-front-cart //购物车服务
  ├──store-front-category //类别服务
  ├──store-front-collect //收藏服务
  ├──store-front-order //订单服务
  ├──store-front-product //商品服务
  ├──store-front-user //前台用户服务
  ├──store-gateway //网关服务
  ├──store-search //搜索服务
  ├──store-static-oss //静态资源服务    
├──pom.xml //maven依赖配置文件位置
├──target  //maven构建后产生文件

注意启动顺序:store-search 不能早于gateway和product服务

(六)项目服务架构图

在这里插入图片描述

三、微服务环境搭建

  1. 云服务购买和使用
  2. finalshell安装和使用:finalshell是远程服务连接工具
  3. docker使用:docker可以理解成是手机中的应用市场,有了应用市场,就不用自己一个一个百度搜索软件并下载了,直接在应用市场中可以一键下载!
    docker帮助我们安装微服务开发需要的中间件,使用简单的命令控制docker安装即可,不需要自己手动安装!
  4. mysql安装
  5. rabbitmq安装:RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。
  6. redis安装:Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了MySQL这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便
  7. elasticsearch安装

四、项目快速部署

(一) 数据库脚本导入

# 将数据库脚本复制到某盘符下,方便导入!
# 执行数据库脚本导入命令!注意乱码问题!
# 步骤1:使用cmd命令窗口登录mysql,防止导入乱码问题
mysql -u账号 -p密码 --default-character-set=utf8  回车
# 步骤2:导入数据文件 注意,要写你自己的文件地址
source d:\store.sql  回车  
# 步骤3: 查看数据库
show databases;

(二)注册中心搭建:nacos

本项目搭建单机注册中心,非集群搭建!
我选择了 基于docker搭建:

  • 拉取镜像
docker pull nacos/nacos-server
  • 启动容器
docker run --name nacos-quick -e MODE=standalone -p 8848:8848 -d nacos/nacos-server:latest
  • 访问即可

    http://ip地址:8848/nacos

    输入账号: nacos 密码 nacos

(三)准备后端项目环境

商城后台访问地址:
http://localhost:3000/admin
账号:admin123 密码:admin123

(四)准备前端项目环境

  • 安装Node
    需要安装node,启动前端代码!
    安装node,安装成功以后:可以使用 cmd node -v 测试!(看有没有版本号,有就是安装成功了)
  • 下载依赖包
    打开cmd黑窗口: win+r 或者 🔍 cmd
#安装vue-cli 全局安装
npm install vue-cli -g
#安装webpack 全局安装
npm install webpack -g

#因为没有配置国内镜像,安装会慢一点,耐心等待!
#如果安装失败, ctrl+c 重新安装即可
  • 编译和运行
# 注意 注意 注意 必须到前端根路径下执行!
# 在线安装前端项目运行所需依赖包
# 编译命令只需要输入一次即可!
npm install

# 运行命令每次都需要打开前端程序都需要!别忘了!
# 运行前端项目命令, 执行这个命令必须在admin-ui文件夹内执行.
npm run serve
  • 商城前端访问地址:
    http://localhost:8080

五、项目搭建

(一)命名规范

  1. 三层架构
  2. 控制层 服务简称Controller
  3. 业务层 服务简称 Service | 服务简称ServiceImpl
  4. 映射层 服务简称 Mapper
  • 服务名称命名规范
  1. 前台程序 store-front-功能名
  2. 后台程序 store-admin
  3. 通用程序 store-自定义
  4. 服务名称 模块名-service

(二)搭建父工程、网关

创建工程:创建父工程->依赖配置
创建模块:创建网关服务->导入依赖->配置文件(bootstrap.yml、application.yml)->创建启动类

六、商城前台服务开发

(一)通用服务

1.介绍

创建一个通用服务,用于存放pojo,vo,param,utils,feign的接口,以及通用配置类和配置文件!主要是避免重复声明和互相依赖!但是可能会造成少量的冗余!
在这里插入图片描述

2.搭建

创建通用服务->导入依赖->创建包结构->导入工具类(两个工具类,导入到utils包下!)->maven仓库 (install打包)

(二)用户服务

1.介绍

商城用户模块! 主要涉及用户登录,注册和账号检查功能!包含用户地址管理功能实现!

2.搭建

导入数据库->创建用户服务模块->导入依赖->配置文件->启动类

3.功能实现

(1)账号检查接口

a、做好非空校验(注解):检查账号是否为null,如果为null,直接返回失败
b、不为null,进行数据库查询是否存在
c、存在,返回账号不可用
d、不存在,返回账号可用

(2)账号注册接口

a、做好非空校验(注解)、(username)账号检查是否存在
b、注意需要做好密码加密,此处需要加盐处理
c、在数据库中插入数据
d、返回封装结果

(3)账号登录接口

a、账号和密码做好非空校验(注解) 、密码加密 加盐处理
b、根据账号密码 查数据库有没有这条账号
c、返回封装结果,注意:为了安全,不返回密码

(3)地址查看接口

注意:查出的是集合list
a、参数非空校验、根据user_id去查数据库
b、封装返回即可

(4)地址添加接口

注意:是一条一条地址的插入
返回的不是封装的数据,而是地址查看功能查出的数据
a、非空参数校验、将address插入数据库
b、复用地址查看功能

(5)地址删除接口

a、非空参数校验、根据id删除数据库数据
b、返回结果

(三)静态资源服务

1.介绍

静态资源存储和静态资源外部访问服务

2.搭建

创建模块->导入依赖->配置文件->启动类->修改网关配置

(四)轮播图服务

1.介绍

首页轮播图广告图片展示,点击图片可以跳转到商品展示详情!

2.搭建

导入数据库->创建模块->依赖->配置文件->启动类->修改网关配置

3.功能实现

(1)轮播图展示接口

需求:查询轮播图数据,只要优先级最高的6条数据
步骤:
a、按照优先级查询数据库
b、用stream流,进行内存数据切割,保留6条数据

(五)商品服务

2.搭建

导入数据库->创建模块->导入依赖->配置文件->启动类->网关配置

3.功能实现

(1)首页 单类别查热门商品 接口

根据传入的单类别名称,进行商品名称查询
最多查询销售量最多7条数据商品信息
在这里插入图片描述

(2)首页 多类别查热门商品 接口

传入的类别名称数量不确定
最多查询7条
需要调用类别服务,将类别名称转成ID在这里插入图片描述

(3)类别信息接口

需要调用商品服务调用类别服务

(4)/(5)类别商品接口、查询全部商品接口

通用型业务:类别商品接口
如果传入了类别ID,根据ID去查 并分页
如果没有传入类别ID,就查看全部 并分页

(6)查询商品详情接口
(7)查询商品图片接口

(六)类别服务

2.搭建

导入数据库->创建模块->导入依赖->配置文件->启动类->网关配置

(七)商品搜索接口

1.介绍

技术:使用elasticsearch技术实现商品搜索功能,相对mysql,效率更高,分词查找更合理!
注意:启动类排除自动导入数据库配置,否者出现为配置连接池信息异常

2.搭建

创建模块->导入依赖->配置文件->启动类->网关配置

3.功能实现

(1)数据同步

在这里插入图片描述

(启动时候做一次)搜索服务 远程调用 商品服务,商品服务查全部数据 放到es库里。
步骤:
商品服务有一套提供全部数据的功能
定义productClient
dsl语句

更新搜索服务的数据

(2)

1.数据搜索:用户传关键字给商品服务,商品服务不直接对数据库访问,它调用搜索服务,搜索服务到es库里查。

3.数据更新:当商品服务新增或修改,发数据更新rabbitMQ ,更新es库。
删除时,
在这里插入图片描述

测试用:postman

在这里插入图片描述

  • 0
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值