[置顶] 淘淘商城业务--加油
2017-07-04 19:32
211 查看
介绍这个项目的结构
我们整个的项目框架采用的是spring+springmvc+mybatis框架搭建的。考虑到项目的安全性、海量数据、高并发,我们项目采用的是分布式架构,首先我们搭建一个大的聚合父工程,每个模块会搭建一个小的子工程,利用SOA面试服务的技术,将一个子的工程分成服务层和web层,服务层和web层分别的放在不同的tomcat里面,服务层与web层之间通讯采用的是dubbo,高并发的处理我们用nginx做负载均衡和反向代理,海量数据处理我们分别搭建了不同的集群,安全性我们采用的是shiro权限框架。1.商品管理:
1.商品查询:
业务:查询所有的商品信息,商品的分页采用的是pagehelp插件,将商品信息查询出来的信息放到pageinfo对象里面,设置分页信息,当前页和每页显示多少条数据,第一次查询的时候会先查询redis里面有没有数据,如果有
直接取出来,取出来的是一个json,需要将json转化成对象,如果没有就从数据里面查出来,同时会存进redis里面去。(总之第一次查询的时候必须是先走redis)
截图
2.商品添加:
业务:在商品添加界面录入商品信息,商品的id,商品标题,商品卖点,商品价格,库存数量,商品条形码,商品图片,商品类别,商品状态(1-正常,2-下架,3-删除'),创建时间,更新时间,商品的描述。其中图片存储考虑到数量比较多,采用的是分布式文件存储系统(fastdfs),图片多了可以搭建集群。商品的描述采用的是富文本编辑器,将录入的商品信息分别插入对应的不同的表,商品添加时还需要和redis数据库进行同步,同时也会添加到redis里面去做缓存。图片上传操作的步骤:
3.商品编辑:
修改
4.商品删除:
5.商品下架:
6.商品上架:
7.商品导入:
8.商品导出:
2.商品类目管理:
2.1商品类目查询:
业务:商品分类列表,使用EasyUI的tree控件展示,前端需要返回的json数据字段有,id
,text,state;text:节点的名称,state:如果节点下有子节点“closed”,如果没有子节点“open”。
数据的显示采用的是异步加载。点击父节点才会加载父节点下的子节点。查询的条件
是parent_id父节点的id,默认值我们给的是0,根据parent_id作为条件查询出来的数据,封装在自己定义的pojo里面,然后在转化成json,回显给界面
2.2商品类目添加:
业务: 在某个节点上添加信息,首先拿到该节点的id,插入一条数据时,将id当成父节点的字段插入进去,如果之前的节点有叶子节点就不用管,没有叶子节点,要把之前的状态改成有子节点的状态2.3商品类目修改:
2.4商品类目删除:
3.网站内容管理(CMS)
3.1内容分类查询:
业务:内容分类列表,使用EasyUI的tree控件展示,前端需要返回的json数据字段有,id
,text,state;text:节点的名称,state:如果节点下有子节点“closed”,如果没有子节点“open”。数据的显示采用的是异步加载。点击父节点才会加载父节点下的子节点。查询的条件是parent_id父节点的id,默认值我们给的是0,根据parent_id作为条件查询出来的数据,封装在自己定义的pojo里面,然后在转化成json,回显给界面
3.3重命名
业务:根据id查询该节点的对象,拿到这个对象之后,修改该对象的名字。改完之后把该对象当做参数去修改3.2删除
业务:根据id修改对应表里面的删除字段状态,1表示存在,0表示删除,删除节点的同时还需要判断该节点的父节点是否有子节点存在,如果不存在,要把父节点的那条数据的状态改成没有子节点3.4内容查询
业务:根据内容的分类,查询对应分类的广告内容信息。拿到内容分类id,在内容管理表里面查询,在将返回的对象转换成json数据显示在页面,
3.5内容编辑
3.6内容删除
业务;删除是改变对应数据里面对应的状态,如果需要同步到redis里面去,还需要把redis里面对应的K删掉,下次再查询的的时候,发现redis没有对应的k,会再次同步到redis中去4.广告位
1.轮播图:
业务:选中大广告节点,拿到内容分类大广告的id,在内容管理里面插入数据,进入到大广告添加的界面录入信息,内容的标题,内容的子标题,内容的描述,url地址,图片信息,内容,图片使用的是fastdfs,内容采用的是富文本编辑器。添加之后需要和redis进行同步。下次回显数据的时候从redis里面查,如果没有就从数据里面查询2.快报
3.边栏广告
4.页头广告
5.页脚广告
5.商品搜索
5.1同步solr库
业务:在solr配置文件schema.xml中定义要搜索的域,里面有商品Id,商品标题,商品卖点,商品价格,商品图片,分类名称,商品描述。、
首先查询出所有的商品数据,查询出来之后再创建一个solrServer对象。
在为每个商品创建一个SolrInputDocument对象,将查询出来的商品数据循环遍历添加到SolrInputDocument对象里面去,在将SolrInputDocument对象添加到SolrServer对象里面
5.2商品搜索
业务:商品搜索用到了solr技术,根据IK分词器,对查询的条件进行查询,首先创建一个SolrQuery对象作为商品搜索的查询条件,设置分页条件,指定默认的搜索域,设置高亮,执行查询,计算出总页数和总条数,返回一个QueryResponse结果集,在将结果集循环遍历添加到自己定义的集合里面,返回给页面,一个商品的图片有多个地址,需要将图片的地址分切转化成数组,页面显示的时候取数组的下标为0,取出一张图片就可以了截图方便记忆:
6.商品详情页
业务:商品详情页采用的是FreeMarker模板引擎技术,生成一个静态化页面。这样能减轻服务器的压力。首先创建一个Configuration对象,这个对象有个参数,参数是FreeMarker的版本号,拿到这个Configuration对象之后设置模板所在的路径,在设置模板文件使用的字符集,设置完之后加载一个模板,创建一个模板对象,模板创建之后会把查询出来的数据放到模板里面。截图:方便记忆
7.购物车
业务:购物车的实现功能考虑到两种情况,登录的时候商品存在哪里,没有登录的时候商品信息存在哪里。没有登录的时候我们将商品信息保存在cookie里面,在保存之前我们会先在cookie里面先查询有没有该商品,如果该商品存在只需要修改该商品的数量即可,如果cookie里面不存在,就把商品信息添加到cookie里面去。登录的时候我们将商品保存到redis里面去,这个时候需要将cookie和redis里面的商品进行合并,同时需要删除cookie里面的数据8.订单
9.支付
10.SSO(出去别说是单点登录很危险)
用户注册:
业务:客户端发送请求到后台,需要校验用户名和密码不能为空,用户名,电话,邮箱是否已经被使用,如果都通过将接受到的密码用MD5进行加密,然后在插入到数据里面去用户登录:
业务:在登录界面输入用户名和密码之后点击登录按钮,action接受用户名和密码,根据用户名查询密码,将用户输入的密码进行MD5加密,然后在和数据库里面的值进行对比,如果成立就生成一个token的变量。token的值由uuid生成。在将用户信息存到redis里面。Key是token,value就是用户信息,在设置redis的过去时间,一般半个小时,再把token写入到cookie中。客户端发送请求的时候,从cookie里面拿到token的值,把值拿到之后再redis里面当成k来取出用户信息看是都存在,存在登录成功相关文章推荐
- 淘淘商城系列——在业务逻辑中添加缓存
- [置顶] 微信公众号自动回复业务逻辑五秒不能处理完成
- [置顶] JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码
- [置顶] php异步处理繁重的业务,避免主业务被长时间阻塞
- 决策业务[置顶] 基于规则引擎的经营决策管理
- [置顶] 面向业务开发应用
- 学习淘淘商城第三十四课(在业务逻辑中添加缓存)
- 学习淘淘商城第七十二课(网页静态化-业务逻辑及测试)
- [置顶] mmog游戏开发之业务篇
- [置顶] 面向业务理论的原理- 定义操作执行者的环境。
- [置顶] 淘淘商城系列(一):项目搭建
- [置顶] android系统数据业务知识点总结(二)
- 截止账户[置顶] 国际黄金强势上涨投资者加油~~~~~~
- 内存业务[置顶] 高并发服务器的设计--内存池的设计
- [置顶] jbpm(未涉及到业务的操作)
- [置顶] 面向业务开发应用:如何避免步骤间操作冲突
- [置顶] 对AFN 进行进一步封装,再应用于具体的项目,这样可以将业务逻辑代码与网络框架进行解耦
- [置顶] 某大型银行深化系统技术方案之十一:核心层之业务活动监控
- [置顶] 使用Spring AOP注解实现Redis缓存 适合复杂业务场合
- 淘淘商城系列——网页静态化——业务逻辑及测试