利民汽车项目总结

							利民汽车项目的总结  

项目概述:
利民汽车这个项目是为xxx公司开发o2o模式一个项目。它是以宠物为中心,提供汽车收购,购买的基本功能,还提供了汽车服务,相关物品购买,汽车相关知识学习等功能一个综合性平台。它主要有组织机构,用户,服务,汽车,订单, 支付等模块,我主要负责组织机构模块,用户模块和汽车模块。我们项目使用前后端分离开发模式,前端使用的是vue技术栈,后台使用的是springboot+ssm+docker。
技术要点
1)FastDFS
2)Redis
3)短信消息
4)百度地图
5)微信三方登录
6)加密技术
7)邮件技术
8)Quartz
9)Vue技术栈: nodejs npm webpack vuecli elmentui easymock
10)Linux
11)docker
模块小结:

一 组织机构:
1部门:crud
2员工:curd
2店铺(员工):店铺入驻成本相对较低,合作双赢,给店铺提供第二个获客来源
用户提交资料—后台审核(人员审核,店铺状态的修改)----资质认证(支付宝,微信,营业执照等认证)
店铺信息:地址,logo,名称,营业执照。。。。
管理员: 用户名和密码,身份证,手机,邮箱。。。
支付模式所需资料:支付宝账号,微信账号,银行卡绑定等等
店铺管理模块:店铺管理员只能看到自己店铺,并且完善信息,提交审核
如果平台管理员,进行审核。
入驻填写-填写其他资料-提交审核(前三步建议店家做)-审核-正常使用
FastDFS 是用 c 语言编写的一款开源的分布式文件系统。使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
FastDFS 架构包括 Tracker server 和 Storage server。客户端请求 Tracker server 进行文件上传、下载,通过 Tracker server 调度最终由 Storage server 完成文件上传和下载

三 用户:
1.注册
登录信息
基本信息
安全信息

1.用户在页面输入手机号/邮箱之后,点击获取验证码。
②后台生成验证码,并将验证码存入redis。
(如果问为什么用redis?)
redis用个过期时间,设置验证码在过期时间只内有效
redis优点
开源免费
1)数据存储:存放在内存,还支持持久化.-存取速度快,并发能力强,数据安全高
2)支持value类型更多
3)支持多个语言客户端
4)还支持集群(支持高并发,海量数据)

③然后调用发送短信/邮件接口,将验证码发送到收件/邮箱。
④用户收到验证码,输入页面,点击注册。后端注册接口要比较用户输入的验证码与redis中存入的验证码比较。如果一致继续下一步,如果失败返回验证码失败,让用户重新输入。

2.用户登录:
账号登录
扫码登录-自己app扫描页面
三方登录-使用三方app(微信,qq,支付宝等)
验证码登录
整体思路
1)后台登录接口
2)前台登录实现并且保存user和token到localStorage
3)前台通过axios的前置拦截器携带token到后台
4)后台做token的登录拦截器,如果没有token,会报错给前台
5)前台通过axios后置拦截器对后台登录拦截错误进行跳转到登录页面
6)前台也要做拦截-有的地址是不需要访问后台

用户登录
   账号登录:1,访问资源,弹出登录,输入登录信息,调用登录接口,后台查询数据库做验证,登录成功后存放在redis中,设置过期时间并返回token,登录完成
  
   三方登录-使用三方app,微信是使用很频繁的社交软件,老少皆宜

访问资源,弹出登录,采用第三方微信登录,点击微信登录,访问到微信,微信会提供二维码,扫描二维码进行登录传递code,state,url,后台通过code,state,url参数对比数据库查询的数据,判断登录用户是否绑定微信,如果已经绑定,可以免密登录,如果没有,跳转到绑定界面进行绑定,绑定时判断用户是否存在,如果存在,绑定微信和用户,登录成功之后跳转主页面,如果用户不存在,创建用户,绑定微信,进行登录
表:user表。Login表,微信表
为什么有用户表之后还要登录表,回答:反三范式,登录表将微信表和用户表关联起来,在下一次登录的时候直接在登录表里面查询用户和微信的信息,减少数据库的交互,提高效率
3.地址管理
4.收藏
5.足迹

五 汽车:
1.寻主消息
表:汽车表,汽车详情表,汽车类型表
1 用户发布寻主消息
2 平台接收消息
3 找到最近门店,发送短信消息给门店,并且把这个消息划归他门下
4 收取汽车,创建订单并完成支付

寻主消息被平台分发给最近店铺,店铺管理员查看消息:
1)待处理寻主消息
①联系用户接回汽车
②汽车进行入库
③创建寻主订单并支付
2)已处理寻主消息-记录
3)店铺管理员只能看到自己店铺的消息
4)平台管理员可以看到所有的消息

数据库添加字段state用1表示已处理,0表示待处理
店铺管理员登录后台可以看到两个菜单:
待处理寻主消息
已处理寻主消息
点击对应菜单就能看到对应消息

2.汽车购买:在管理员对汽车做了上下架处理之后,用户可以在页面查询汽车详情,对喜欢的汽车进行购买,用户购买汽车之后,跳转到用户中心页面可以查询购买汽车的信息,后台数据库汽车的状态做相应的改变
服务:平台收到用户传递的需求,通过百度地图查询最近门店,将信息传递给门店,门店对用户的汽车提供服务,做订单和支付

项目部署:
Linux部署前后端分离项目
Docker部署前后端分离项目
1 Nginx语法

1)部署前端项目 vue-cli:npm run build 拷贝 htmlcss:拷贝
2)虚拟主机(部署多个前端项目)
①基于端口 通过端口区分项目
②基于域名 通过域名区分 本地hosts 云域名
3)反向代理
①解决前后端分离部署跨域
②集群调用

2 本地部署pethome:hosts 后台-反向代理 前端(虚拟主机) 跨域
3 云部署 pethome:域名解析 mysql redis 后台-反向代理 前端(虚拟主机) 跨域
4 docker
1)安装与启动和配置
yum install docker
systemctl start docker & systemctl enable docker
docker info
配置阿里云镜像加上 注册+拷贝
2)镜像基本操作
docker images
docker search
docker pull
docker rmi
1)容器操作
Docker ps ps -a
Docker -it
Docker -di -v
Docker exec
Docker stop
Docker start
Docker inspect
Docker cp

六 订单:管理员,用户
服务订单
领养订单
商品订单
充值订单
收购订单
七 支付:
资金账号管理
支付单管理
支付流水管理
余额支付
支付包支付
微信支付
银联支付
二 系统模块: 权限,角色,菜单,系统日志,操作日志,数据字典,数据字典明细
1)平台员工
2)店铺员工
店铺管理员(这个店铺所有权限)
员工:创建对应角色进行精细化权限控制
四 服务:
后台:服务 服务详情crud 上下架
前台: 列表页,详情页

1)跨越解决 ajax
开发时CorsFilter
上线Nginx

2)fastdfs
简单说一下fastdfs :开源的分布式文件系统
项目中哪儿用? :店铺入驻
为什么要使用?:使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务
3)redis
简单说一下redis:数据结构化的存储方法的集合,
为什么用redis:有过期时间
Redis通过list实现队列
Redis存储原里:
Redis 是以key-value形式存储,和传统的关系型数据库不一样
Redis提供了很多的方法,String,数组,list,set map…可以用来存取各种数据结构的数据。
总结:redis优点
开源免费
1.数据存储:存放在内存,还支持持久化.-存取速度快,并发能力强,数据安全高
2支持value类型更多
3支持多个语言客户端
4还支持集群(支持高并发,海量数据)

4)淘汰策略:
定义:
Redis官方给的警告,当内存不足时,Redis会根据配置的缓存策略淘汰部分keys,以保证写入成功。当无淘汰策略时或没有找到适合淘汰的key时,Redis直接返回out of memory错误

淘汰方式:
淘汰一些数据,达到redis数据都是有效的,节约内存资源。选择合适的淘汰策略进行淘汰
5)激活账号或者短信通知
6)百度地图
我们集成了百度地图的接口,寻主功能需要推算离用户最近的线下门店,系统需要将用户的输入的地址解析为经 纬 度。再通过经纬度计算哪一家店铺离用户地址最近

7)微信三方登录 流程
访问资源,弹出登录,采用第三方微信登录,点击微信登录,访问到微信,微信会提供二维码,扫描二维码进行登录传递code,state,url,后台通过code,state,url参数对比数据库查询的数据,判断登录用户是否绑定微信,如果已经绑定,可以免密登录,如果没有,跳转到绑定界面进行绑定,绑定时判断用户是否存在,如果存在,绑定微信和用户,登录成功之后跳转主页面,如果用户不存在,创建用户,绑定微信,进行登录

8)支付宝支付 流程
用户点击支付,选择支付宝支付,支付宝提供二维码,或者是账号密码输入框,用户扫描二维码或者扫描输入信息,点击支付,后台对用户传递给支付宝的信息做验证,如果没有数据,创建用户和密码,输入新创建信息,验证输入的信息和数据库是否一致,如果输入信息和后台查询的数据一致就输入支付密码,后台再对密码进行验证,验证成功,支付完成,跳转到支付完成的界面,如果密码验证失败,返回失败信息给用户,重新输入或者找回密码,重新获取密码之后完成支付,跳转支付成功界面

9)加密技术:
1 不可逆加密算法: 只能加密不能解密 md5 一般对登录密码处理
2 可逆加密算法: 可以加密,也可以解密 又可以分为是否对称,主要是看秘钥是否是同一个,就是对称,否则就是不对称
2.1 对称加密算法:DES,AES等 数据库密码进行加密
密文为s 加解密算法为AES 秘钥为k,明文为c ;
加密:s = AES(k,c)
解密:c = AES(k,s)
2.2非对称加密算法:RSA 网络传输数据加密
密码是成对出现的,一个私钥就对应一个公钥。如果使用私钥加密,只能使用与之对应公钥来解决。反之如果使用公钥加密,只能使用与之对应私钥解密
10)邮件技术
11)Quartz
Quartz是Job scheduling领域的一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。但是相较于Timer, Quartz增加了很多功能:

持久性作业 - 就是保持调度定时的状态;
作业管理 - 对调度作业进行有效的管理;
工作原理
1、scheduler是一个计划调度器容器(总部),容器里面可以盛放众多的JobDetail和trigger,当容器启动后,里面的每个JobDetail都会根据trigger按部就班自动去执行。
2、JobDetail是一个可执行的工作(作业详情),它本身可能是有状态的。
3、Trigger代表一个调度参数的配置

4、当JobDetail和Trigger在scheduler容器上注册后,形成了装配好的作业(JobDetail和Trigger所组成的一对儿),就可以伴随容器启动而调度执行了。
5、scheduler是个容器,容器中有一个线程池,用来并行调度执行每个作业,这样可以提高容器效率。

《电子艺术》是吴利民教授所著的一本经典电子学教材。这本书以其全面、系统、深入的内容而受到广泛认可。 这本书结合了理论和实践,旨在为电子工程师和学生提供基础知识和实用技巧。它涵盖了从电子元件的基础知识到电路设计、放大器设计、数字电路和通信系统等各个方面。无论是初学者还是经验丰富的专业人士,都能从《电子艺术》中获得有关电子学的宝贵知识。 书中的内容精心组织,深入浅出,易于理解。它以清晰的图表、丰富的例子和详细的说明来解释复杂的概念和原理。此外,书中还提供了大量的实验和项目,帮助读者将理论知识应用到实际中。 吴利民教授在这本书中分享了他数十年的教学和实践经验。他以简洁明了的语言,生动有趣的写作风格,将复杂的概念讲解得简单易懂。他还通过丰富的案例和故事,让读者更好地理解电子学的应用和意义。 《电子艺术》不仅是一本电子学教材,更是一本启发创造力和激发兴趣的书籍。它鼓励读者通过实践和探索来增强他们的电子技能。无论是对于专业人士还是电子爱好者,这本书都是一本不可或缺的参考资料。 总之,《电子艺术》是一本内容丰富、易于理解、实用性强的经典电子学教材。通过阅读这本书,读者可以在电子领域中建立坚实的基础,并获得实际应用的技能和知识。无论是为学习、工作还是兴趣,它都是一本值得推荐的电子学指南。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值