淘淘商城6

昨天:1、前台系统搭建=rest:服务层没有jsp页面+portal:门户,表现层  2、首页分类列表展示(a.使用ajax调用服务层的服务 b.跨域问题,使用jsonp解决)

今天:首页打广告位的实现(cms系统的实现-----后台管理首页 发布服务----前台要调用cms系统只能调服务所以要发布 调用服务展示内容),就这一个但是涉及到的内容很多

首页大广告位的实现分析

 首先这一部分不能写死,要有一个后台管理的功能,如果写死了每次改版都得程序员维护,所以要让不懂技术的人在后台管理。需要动态管理,需要后台管理功能。既然需要后台管理,那么后台管理哪些东西才能实现这些功能呢?分析一下找出共同点

 

 

共性:1、有一张商品图片  2、有一个链接  3、可以有一个标题(不一定展示)  4、有链接提示(鼠标挪到图片上面有提示,img的art属性)  5、价格

前台首页是一组一组拼接起来的,大广告位是一组;右侧淘淘快报也是一组;右侧(话费,旅行,彩票,机票,电影票,理财)是一组;下面推荐商品是一组;推荐商品下面推荐商品也是一组。既然是一组一组的,我们应该把这些内容进行分类,不然一盘散沙不知道展示谁,那到底是一个分类还是层级分类呢?分类应该是一个树形结构,至于怎么用就看后台管理怎么用了但是我们提供这个用法。有了分类,可以根据分类取内容信息,把内容展示到页面,内容变了后台改即可。假如改版,改版是免不了的,就程序员来改即可,有可能美工把网页设计好了以后你重新把内容取一下。在后台管理内容及内容分类的系统就叫做cms系统

上面提炼就1、需要把内容进行分类,分类应该是一个树形结构2、在展示首页时,可以根据分类取内容信息,把内容展示到页面3、在后台管理内容及内容分类的系统就叫做cms系统需要实现

 

 

内容分类管理

1、内容分类展示

 

 

这个网站内容管理的树形视图和之前做的商品管理没什么区别,做起来简单了。唯一不同它是通过有键菜单来操作的。

 

 

先把内容分类管理展示出来,再做添加,重命名,删除功能

dao层:使用逆向工程生成的代码,看一下存储内容分类的表content-category

 

 

要展示分类管理,这是一个异步tree,首先要取第一层节点,也就是说parentid为0的节点,根据parentid查询节点列表单表查询

sql:SELECT * FROM ‘tb_content_category’ WHERE parent_id = 0;

Service层

功能:接收两个参数parentId父节点id、name:当前节点的名称。向tb content category 表中添加一条记录。返回TaoTaoResult包含记录的pojo对象。每个节点包含三个属性id,text,state。可以使用EUTreeNode。  参数:id  返回值:List<EUTreeNode>

 

controller层

接收页面传递过来的parentId,根据parentId查询节点列表。返回List<EUTreeNode>。注意需要响应json数据。

 

 

2、内容分类添加

 

无论在哪个上面有键添加,添加的都是子节点。我们现在没有实现功能右键点击添加一个子节点,也会有一个子节点出现,但是一刷新就没有了,这只是假象,只是easyUI这个控件表现它好使。其实你添加的子节点并没有持久化到数据库。

分析:

打开content-category.jsp然后当你点击有键时#contentCategoryMenu被打开一个菜单,显示出来后里面有一个添加,你点击添加触动add,在代码49行找到对add的处理,他就append添加了,append它判断一下设置一下parent,就是记录一下父节点是谁,parent就是父节点的一些信息node?node.target:null---->node是否有值,有怎么样没有null,然后节点相关信息data了,这就添加了一个新的节点,添加新的节点其实没有什么,这些是easyUI的一些动作,默认实现的。真正我们要做的是当鼠标离开时要把节点写到数据库里面

 

dao层:使用逆向工程生成的代码

service层:

功能:接收两个参数parentid:父节点id、name:当前节点名称。向tb_content_category表中添加一条记录。返回toataoresult所包含记录的pojo对象,源在之前的内容分类展示接口ContentCategoryService里面添加一个抽象方法,操作添加功能代码

需要返回主键信息:在mysql中有一个方法:SELECT LAST_INSERT_ID();这个方法,这个方法是在当前事务中取最后一个生成的id(我们现在这个添加的事务没有生成任何的id,所以就返回根目录的0,如果你要再添加一条记录,就可以把添加的这个事务添加的id取出来)

需要修改mapper文件,返回主键信息

打开TbContentCategoryMapper.xml文件用Ctrl+F找到insert,发现有两个第二个113行只要为空就跳过去只更新不为空的,用户两个insert都有可能调用,我两个都给它返回就完事了。

 

Controller层

接收两个参数,调用service添加记录。返回TaotaoResult.应该返回json数据(@ResponseBody)

3、内容分类删除

注意:删除直接是物理删除   service,controller代码略(百度)

4、内容分类重命名

 

 

代码略(百度的)测试,这个是最简单的,添加或删除时还要考虑父节点的状态来更新父节点是否为父节点,这个只用update即可

 

 

 

 

 

 

内容管理

1、展示内容分类

 

 

 

在首页index.jsp点击内容管理时会打开content.jsp,下面是它的请求url,还有请求参数datagrid有page、rows、categoreId做参数  返回值EUDataGridResult  Tatao、rows:内容pojo列表。当点击大广告时有一个click事件,把点击的那个作为查询条件传递过来,

 

业务逻辑:根据内容分类id查询内容列表。需要实现分页。返回EUDataGridResult。代码略

2、添加内容分类

 

 

上面经百度后实现了内容分类展示,

 点击新增会出现一张图,有各种信息都是和数据库中表是一一对应的,下面有两张图片,为什么会有两张图片呢?首页不是展示一张图片吗?

这是淘淘商城考虑到用户体验,有些电脑是宽屏的,所以什么样的电脑显示什么样的图片

 

 

Cms系统

 

posted @ 2019-10-19 00:24  键盘小侠  阅读(200)  评论(0编辑  收藏  举报