淘淘商城业务--加油

介绍这个项目的结构

我们整个的项目框架采用的是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商品类目查询:

 

 

 

业务:商品分类列表,使用EasyUItree控件展示,前端需要返回的json数据字段有,id ,text,statetext:节点的名称,state:如果节点下有子节点“closed”,如果没有子节点“open”。

数据的显示采用的是异步加载。点击父节点才会加载父节点下的子节点。查询的条件

parent_id父节点的id,默认值我们给的是0,根据parent_id作为条件查询出来的数据,封装在自己定义的pojo里面,然后在转化成json,回显给界面

 

2.2商品类目添加:

业务: 在某个节点上添加信息,首先拿到该节点的id,插入一条数据时,将id当成父节点的字段插入进去,如果之前的节点有叶子节点就不用管,没有叶子节点,要把之前的状态改成有子节点的状态

 

2.3商品类目修改:

 

2.4商品类目删除:

 

3.网站内容管理(CMS)

 

 

3.1内容分类查询:

 

业务:内容分类列表,使用EasyUItree控件展示,前端需要返回的json数据字段有,id ,text,statetext:节点的名称,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里面去,这个时候需要将cookieredis里面的商品进行合并,同时需要删除cookie里面的数据


8.订单



9.支付



10.SSO(出去别说是单点登录很危险)


 

用户注册:

业务:客户端发送请求到后台,需要校验用户名和密码不能为空,用户名,电话,邮箱是否已经被使用,如果都通过将接受到的密码用MD5进行加密,然后在插入到数据里面去



用户登录:

业务:在登录界面输入用户名和密码之后点击登录按钮,action接受用户名和密码,根据用户名查询密码,将用户输入的密码进行MD5加密,然后在和数据库里面的值进行对比,如果成立就生成一个token的变量。token的值由uuid生成。在将用户信息存到redis里面。Keytokenvalue就是用户信息,在设置redis的过去时间,一般半个小时,再把token写入到cookie中。客户端发送请求的时候,从cookie里面拿到token的值,把值拿到之后再redis里面当成k来取出用户信息看是都存在,存在登录成功

 

 

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值