一 。项目概述
优购家居这个项目是为xxx公司开发o2o模式一个项目。它是以家具用品为中心,为用户提供了家具展示,家具分类查询,家具下单,家具上门安装服务,售后服务。它主要有组织机构,用户模块,商品管理,订单管理, 支付等模块。它是使用前后端分离开发模式,前端使用的是vue技术栈,后台使用的是springboot+ssm+docker。
二。负责业务模块
组织机构:
- 部门管理 对部门管理的表增删改查
- 员工管理 对员工管理的表增删改查
- 可以对员工的添加,使用状态的禁用,
- 店铺的员工:实现了店铺入驻,店铺审核,实名认证,支付信(支付宝,微信,银联等)息绑定,店铺创建员工。
用户模块:
- 用户的注册
- 用户的登录
- 商品的收藏,店铺的收藏功能实现
- 浏览足迹:最近浏览商品,店铺。
- 用户的地址管理
- 用户的银行卡信息管理
三。项目人员组成
项目经理(PM):管人管项目 1
架构师(SE): 负责项目架构+技术选型+疑难问题解决+培训 1
UI: 设计界面 1
H5: 前端开发工程师 2
后台: 后台开发工程师 3-4‘、
测试: 测试人员 1
运维人员: 搭建开发公共环境,线上环境 1
四。项目架构 前后端分离
前后端分离并不只是开发模式,而是web应用的一种架构模式。在开发阶段,前后端工程师约定好数据交互接口,实现并行架构,开发和测试;在运行阶段前后端分离模式需要对web应用进行分别部署,前后端之间使用HTTP或者其他协议进行交互请求。
前后端分离的优缺点:
优点:
分工明确,专业的人做专业的事情。
专业可以做出炫丽优美界面
人员培养更加专业化,精确化
缺点:
成本提高,人员多。
项目管理难度也提高,前后端都要管,协调他们之间交流。
五。使用的技术
- Springboot 后端框架
- FastDFS 分布式文件系统
- Redis 一种非关系型的数据库
- 短信消息
- 百度地图
- 微信三方登录
- 支付宝支付
- 加密技术
- 邮件技术
- Quartz
- Vue技术栈: nodejs npm webpack vuecli elmentui easymock
- Linux
- docker
六。功能实现
注册:手机号注册和游戏注册
- 用户通过页面输入手机号
- 点击注册发起获取手机验证码请求
- 输入验证码
- 输入密码
- 点击注册
这是大体的流程
具体的流程
1.获取验证码的时候
2.当前验证码是否有效
3.生成6位验证码
4.记录验证码消息,通过Redis记录发送时间,验证码
5.要判断验证码是否过期
6.调用短信接口
7.记录发送日志依据。
8.最后注册成功,后台保存注册数据到表中。
登录
账号登陆,手机号验证码登录,微信。QQ。微博等三方登录
微信三方登录
- 用户发起授权请求
- 用户扫码
- 登录成功跳转主页
- 没有绑定或者注册的
- 跳转绑定和注册页面进行绑定
- 绑定成功跳转主页实现微信登录
登录和注册的时候采用了加密技术
密码采用了md5加密的方式再存入数据库,因为md5是不可逆的,更安全
七。跨域解决
1:后端配置-最全 最通用,开发的时候我们选择它
2:前端配置-只适合脚手架搭建项目(vuecli),不支持纯html+css(主站)
3:Nginx代理 上线的时候就使用它
redis是一款优秀的nosql(非关系型),key-vlaue,内存级别的数据库!redis是单线程,操作是安全的。
Redis的list可以用来实现消息队列,key用来表示队列名称,客户端向对应的key代表的队列发消息,发消息采用rpush,lpush实现,取消息采用rpop或lpop实现。
Redis存储机制分成两种
RDB(Redis Database):指定的时间间隔能对你的数据进行快照存储。
AOF(Append Only File):每一个收到的写命令都通过write函数追加到文件中。
无论是那种机制,Redis都是将数据存储在内存中。
redis的淘汰策略
淘汰一些数据,达到redis数据都是有效的,节约内存资源。选择合适的淘汰策略进行淘汰。
FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
用在店铺入驻上传log的时候
原来的操作都需要对数据库crud
为了减轻服务器压力。
邮件技术
- 当后台的审核人员点击审核通过的时候,向用户注册时留下的邮箱发送邮件,告知用户审核通过。
- 发件人 邮件服务器 收件人
- 需要准备QQ邮箱授权码
- 发送简单的邮件和复杂邮件。